<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss/styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>BinaryFish</title><description>A techblog focused on technology, science, software engineering, and web development.</description><link>https://binary-fish.vercel.app/</link><item><title>Why the Default Mac App “Notes” is the best note-taking app in the world</title><link>https://binary-fish.vercel.app/blog/AppleNotes.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/AppleNotes.md/</guid><description>Sometimes “Simple is best” is the golden phrase in the era of the Information Revolution</description><pubDate>Mon, 22 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In today’s world of Information Revolution, many note-taking apps are focused on certain domains. These apps can be as complex as Obsidian  and as simple as Google Docs. There has also been a debate about which app people should use for note-taking.&lt;/p&gt;
&lt;p&gt;Although Google Docs is the ultimate option for people with Windows, Linux, and Android, if you are a Mac user, the default “Notes” app is the optimal note-taking app you can ever have in your life. This is primarily due to its simplicity. There are many aspects to the “Notes app” being an excellent option for Apple users, and this article aims to explain its critical factors.&lt;/p&gt;
&lt;h2&gt;Why Apple Notes?&lt;/h2&gt;
&lt;p&gt;The note app is probably the best in the world for its simplicity. While apps like Obsidian and Evernote allow users to sophisticate their writing, not many users are leveraging the app to the full extent. The Notes App, however, has a relatively simple UI- only 13 buttons to use for daily uses.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Compared with the UI of “Apple Notes”, Obsidian (one popular note-taking app)’s UI is very simple, yet it can be very unclear for users using the app for the first time.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The note that most people take doesn’t include any complex components like highlighters and quotes. It generally includes text and images, with some bullet points and headings.&lt;/p&gt;
&lt;p&gt;Moreover, the Note app doesn’t require the internet to work. Although Google Docs and several other apps work with no internet, the Apple Notes has superior speed and stability in both online and offline situations.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Probably it is all that you need to create daily notes as simple as a shopping list.
Another reason is the “Notes” app’s high security standards. Firstly, since it runs on local devices, there is a remarkably low risk of getting hacked online. (There is still a possibility that your Apple product gets hacked but…) This ensures a high level of privacy with some personal pieces of information.&lt;/p&gt;
&lt;p&gt;In addition, by default, the Notes App supports password protection of notes. For instance, you can use your device password to lock your notes. Moreover, the app also lets you lock your notes using TouchID- one of the most secure methods to protect your notes even from friends and families.&lt;/p&gt;
&lt;p&gt;Several apps let you keep your notes secure like Obsidian and Notion, however, it is only the “Mac Notes App” that has this safety measure by default.&lt;/p&gt;
&lt;p&gt;The third and final reason to use the app “Apple Notes” is the ultimate ease of sharing between your friends, families, and other Apple devices you own. To share with other people, you can just click the share button and send it to anyone who has an Apple ID.&lt;/p&gt;
&lt;p&gt;There are no other apps that let you see your notes as quickly and reliably as the “Apple Notes” app. I have used the Notion app to manage daily notes, but other than the times I need to make mathematical notes or complex notes with sub-pages, I now tend to use Apple Notes more. The speed at which I can look at &amp;amp; edit the notes is astonishing, and it just beats most apps in terms of speed and portability.&lt;/p&gt;
&lt;h3&gt;Extra information:&lt;/h3&gt;
&lt;p&gt;With the latest Apple OS(iPhone, iPad, and Mac), you can start your math calculations inside the note app. I live in Japan so I couldn’t test this on my Apple devices, but this seems practical in daily use.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion:&lt;/h2&gt;
&lt;p&gt;In essence, the default “Notes” app is the best note-taking app in the world for most uses. Unless anyone wants to create a complex line of math proofs and database-oriented notes, Apple Notes can do everything swiftly and securely. So if you are an Apple user, start using it now.
There is also Meduim version of this article, so feel free to like that one as well!
Thank you for reading 🚀&lt;/p&gt;
&lt;h3&gt;Looking for more information?&lt;/h3&gt;
&lt;p&gt;For anyone who wants to find out more about the “Apple Notes” pros, you can type in Apple Notes on YouTube or watch the video embedded below:&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;680&quot; height=&quot;382&quot; src=&quot;https://www.youtube.com/embed/jfVrzZUQ47E&quot; title=&quot;How to (Actually) Use Apple Notes on Mac&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>10 Stylish CSS Button ideas to put into your website</title><link>https://binary-fish.vercel.app/blog/CSSButtonIdea.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/CSSButtonIdea.md/</guid><description>The top 10 modern button ideas to put into your website.</description><pubDate>Mon, 12 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Estimated reading time: &lt;strong&gt;5 minutes&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This guide is for any skill-level CSS programmer, to get some inspiration of button design for their website.
Please read until the very end to get as much inspiration from this article as possible.&lt;/p&gt;
&lt;h3&gt;Sample with all buttons&lt;/h3&gt;
&lt;p&gt;Here is my code pen project that contains all the code for all the button ideas shown in this article.&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;ALL BUTTONS&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/abMXQxJ?default-tab=result&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/abMXQxJ&quot;&amp;gt;
ALL BUTTONS&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #1 Rich Shadowed Blue Button&lt;/h2&gt;
&lt;p&gt;First off is a simple blue button. It futures box shadow and &lt;code&gt;translate Y&lt;/code&gt; function when hovered.&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Blue Rich Shadow Button&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/MWxPNRZ?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/MWxPNRZ&quot;&amp;gt;
Blue Rich Shadow Button&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #2 Gradient Button&lt;/h2&gt;
&lt;p&gt;Next up is the gradient button. Also, its decoration is simple compared to other CSS buttons, it is relatively simple to create and manage its style.&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Pretty Cool Button&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/ExMGzZJ?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/ExMGzZJ&quot;&amp;gt;
Pretty Cool Button&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #3 Red scaled button&lt;/h2&gt;
&lt;p&gt;The third idea is the red button with hover scaling transitions. It makes stronger &lt;code&gt;boxshadow&lt;/code&gt; and bigger buttons when hovered.
&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Border-transition&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/gOEZNbv?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/gOEZNbv&quot;&amp;gt;
Border-transition&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #4 Light shadowed button&lt;/h2&gt;
&lt;p&gt;A light shadow button with a special animation.
&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Button4&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/gOEqRxK?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/gOEqRxK&quot;&amp;gt;
Button4&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #5 Simple Green Button&lt;/h2&gt;
&lt;p&gt;A simple green contained button for your website.&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Untitled&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/yLwZPjL?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/yLwZPjL&quot;&amp;gt;
Untitled&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #6 Gradient green button with animation&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Simple Green Button&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/BabMmVv?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/BabMmVv&quot;&amp;gt;
Simple Green Button&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #7 Yellow 3d Button&lt;/h2&gt;
&lt;p&gt;A yellow button that plays 3d like animation when hovered.
&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;orange 3d button&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/RwdvjOB?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/RwdvjOB&quot;&amp;gt;
orange 3d button&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #8 Color changing Button&lt;/h2&gt;
&lt;p&gt;A blue modern-styled button with a toon-like box-shadow when hovered.&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;diagonal button&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/MWxLraj?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/MWxLraj&quot;&amp;gt;
diagonal button&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #9 Glowing dark blue button&lt;/h2&gt;
&lt;p&gt;A blue dark-themed button with a glow effect.&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;color changing button&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/OJqdara?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/OJqdara&quot;&amp;gt;
color changing button&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Idea #10 Round Glowing Blue Button&lt;/h2&gt;
&lt;p&gt;A round version of dark dark-themed button with a glow effect.
&amp;lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Glowing Blue Button&quot; src=&quot;https://codepen.io/Fire-Dingo/embed/WNmPYPq?default-tab=css%2Cresult&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&amp;gt;
See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/WNmPYPq&quot;&amp;gt;
Glowing Blue Button&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.
&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In this article, I showed 10 simple yet beautiful CSS button ideas. I will try to continue publishing CSS-only style ideas every two months or so, so please stay in tune for the next guide.
Thank you for reading.&lt;/p&gt;
</content:encoded></item><item><title>How to create a QR code in Canva</title><link>https://binary-fish.vercel.app/blog/CanvaQR.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/CanvaQR.md/</guid><description>A professional guide on how you can create a QR code in Canva for only 2 minutes!!</description><pubDate>Tue, 09 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;How to create a QR Code in Canva&lt;/h1&gt;
&lt;p&gt;In this guide, we will explore how you can create a QR code in Canva- a famous design app that allows anyone to create appealing designs in a minute.&lt;/p&gt;
&lt;h2&gt;Method 1: Using the app &quot;Gen QR&quot;&lt;/h2&gt;
&lt;p&gt;The first way to create a QR code inside the Canva app is by using an app called &quot;Gen QR.&quot; While many Canva apps allow users to create a QR code, this app is one of the best. In addition to being able to make a QR code for your websites, this app lets you customize the design of the QR code itself. For instance, you can customize the margin of your QR code.
After you modify the QR code, you can add it to your design by pressing the &quot;Add to design&quot; button.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;Method 2: Using external websites to generate a QR code, then import it to Canva.&lt;/h2&gt;
&lt;p&gt;The next way to create a QR code is by importing a QR code that was created with websites outside of Canva. Yet, this method requires you to go outside of the production track, which is the primary reason why Binaryfish doesn&apos;t recommend this way. In addition, there are better ways to create a QR code- such as &lt;a href=&quot;#method-1-using-the-app-gen-qr&quot;&gt;Method #1&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Method 3: Using AI to create an artistic QR code - &quot;Hello QArt&quot;&lt;/h2&gt;
&lt;p&gt;The third and last way to create a QR code in Canva is by using another app called &quot;Hello QArt&quot;. This app is unique compared to all the other websites and apps because the AI generates a QR code with a picture like the photo below. Although you cannot control the result/output of the AI, it is still possible to make a unique QR code that stands out to your audience.&lt;/p&gt;
&lt;p&gt;How to use the app &quot;Hello QArt in a nutshell:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy &amp;amp; Paste the link you want people to go to when they scan the code.&lt;/li&gt;
&lt;li&gt;Write some descriptions/prompts on types of drawing/art the AI should generate&lt;/li&gt;
&lt;li&gt;Click Generate and wait.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With this step, you only have to do three simple steps to create an artistic QR code.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Although this guide was quite short, we summarized how you can create a QR code in Canva.
If you can, supporting this blog through social media ( X, Instagram, Threads...) with #BinaryFish will be very helpful.
Thank you for reading this article.&lt;/p&gt;
&lt;h2&gt;Image Attribution&lt;/h2&gt;
&lt;p&gt;Photo by &amp;lt;a href=&quot;https://unsplash.com/@alejandroortiz?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Alejandro Ortiz&amp;lt;/a&amp;gt; on &amp;lt;a href=&quot;https://unsplash.com/photos/a-purple-and-blue-abstract-background-with-squares--xI7IFIp5Wo?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Unsplash&amp;lt;/a&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>How to sort lists, tuples, and strings in Python</title><link>https://binary-fish.vercel.app/blog/Howtosortarray.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/Howtosortarray.md/</guid><description>Learn how to sort Python variables in the simplest ways.</description><pubDate>Mon, 29 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In this guide, you will learn how to use Python&apos;s &lt;code&gt;sort()&lt;/code&gt; method and &lt;code&gt;sorted()&lt;/code&gt; function to sort data sets. Sorting is an essential skill to become a professional programmer, and by the end of this article, you will be able to use this skill with ease.&lt;/p&gt;
&lt;h2&gt;Easiest way to sort (Method #1)&lt;/h2&gt;
&lt;p&gt;The simplest way to sort items in Python is using the &lt;code&gt;sort&lt;/code&gt; method. Sorting with the &lt;code&gt;sort&lt;/code&gt; method can be done like the code below.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;numbers = [0,100,20,30,40,80,10]
numbers.sort()
print(numbers)
## Output: [0, 10, 20, 30, 40, 80, 100]

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can see, the &lt;code&gt;sort&lt;/code&gt; method quickly sorts any list in order. Now let&apos;s get into the argument that you could include to use in other situations like you want to sort from largest to smallest. You can do that by using the &lt;code&gt;reverse&lt;/code&gt; argument. This option will reverse the order of sorting from &lt;strong&gt;largest to smallest&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The reverse argument can be used like the code below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
numbers = [0,100,20,30,40,80,10]
numbers.sort(reverse=True)
print(numbers)

## Output: [100, 80, 40, 30, 20, 10, 0]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To sort a list with strings, you can use the &lt;code&gt;key&lt;/code&gt; argument. For example, the code below sorts the list of fruit in alphabetical order.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Fruits = [&quot;Banana&quot;, &quot;Apple&quot;, &quot;Lemon&quot;]
Fruits.sort(key=str.lower)
print(Fruits)
# Output =&amp;gt; Apple Banana Lemon
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The value &lt;code&gt;str.lower&lt;/code&gt; converts the string value to lowercase.&lt;/p&gt;
&lt;p&gt;With these examples now you understand how you can sort a &lt;strong&gt;list&lt;/strong&gt; in Python. Yet, the &lt;code&gt;sort()&lt;/code&gt; method only accepts a list as a data type.
Then how should you sort other types of data structures like strings?&lt;/p&gt;
&lt;p&gt;This is where the second method &lt;code&gt;sorted()&lt;/code&gt; function comes in handy.&lt;/p&gt;
&lt;h2&gt;The alternative: Method #2 Sorted()&lt;/h2&gt;
&lt;p&gt;The sorted function is similar to the sort function except for its uses and how it doesn&apos;t &lt;strong&gt;destroy&lt;/strong&gt; the original variable. Particularly, if you use the &lt;code&gt;sort()&lt;/code&gt; function, it destroys the original list.  This means that you will not be able to keep the original values in your list.&lt;/p&gt;
&lt;p&gt;One example of the way you can use the sorted function is like the code below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;numbers = [0,100,20,30,40,80,10]
sortednumbers = sorted(numbers)
print(sortednumbers)

# The output: [100, 80, 40, 30, 20, 10, 0]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As mentioned earlier, you can use the &lt;code&gt;sorted()&lt;/code&gt; function to sort other data types like tuples and strings.&lt;/p&gt;
&lt;p&gt;For the tuple type variable, you can use the &lt;code&gt;sorted()&lt;/code&gt; function in the same way as the list. For instance, you can sort your tuple in order using several lines of code like the example below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tupleA = (10,10,20,30,50,9,1,2,8)
print(sorted(tupleA))
## Result: [1, 2, 8, 9, 10, 10, 20, 30, 50]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While it successfully arranged the values of a tuple variable in order, however, the sorted value is transferred into a list when it is sorted. To fix this issue and keep the variable in the tuple data type, you can use the &lt;code&gt;tuple()&lt;/code&gt; function to convert the result back to the original tuple data type. This can be done in the upgraded version of the previous code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tupleA = (10,10,20,30,50,9,1,2,8)
print(tuple(sorted(tupleA)))
## Result: (1, 2, 8, 9, 10, 10, 20, 30, 50)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now let&apos;s move into how you can sort a string variable. Similar to how you can sort a tuple, you can sort a string by simply using the &lt;code&gt;sort()&lt;/code&gt; function. By using the code shown below, you can sort a String into A-Z order:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Apple = &quot;Apple&quot;
print(sorted(Apple))
#Result: [&apos;A&apos;, &apos;e&apos;, &apos;l&apos;, &apos;p&apos;, &apos;p&apos;]
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;In this article, we learned that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You can use &lt;code&gt;sort()&lt;/code&gt; method to quickly sort a list.&lt;/li&gt;
&lt;li&gt;You can use the &lt;code&gt;sorted()&lt;/code&gt; function to sort most datatypes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Before ending this article, I want to note that supporting my blog through social media and linking to your website will be very helpful.
Thank you for reading.&lt;/p&gt;
&lt;h2&gt;Image Attribution&lt;/h2&gt;
&lt;p&gt;Photo by &amp;lt;a href=&quot;https://unsplash.com/@fakurian?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Milad Fakurian&amp;lt;/a&amp;gt; on &amp;lt;a href=&quot;https://unsplash.com/photos/blue-and-yellow-folder-icon-CN2FEPXERRI?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Unsplash&amp;lt;/a&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>All Python String function explained</title><link>https://binary-fish.vercel.app/blog/PythonAllStringFunction.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/PythonAllStringFunction.md/</guid><description>All Python String function explained for everyfish.</description><pubDate>Sun, 04 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Estimated Reading time: 12 minutes&lt;/p&gt;
&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;In this guide, you will learn every single function that is integrated in &lt;code&gt;string&lt;/code&gt; object. Read until the very end to become Python String master.&lt;/p&gt;
&lt;h2&gt;Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#capitalize&quot;&gt;.capitalize()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#casefold&quot;&gt;.casefold()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#center&quot;&gt;.center()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#count&quot;&gt;.count()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#encode&quot;&gt;.encode()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;.capitalize()&lt;/h2&gt;
&lt;p&gt;Firstly, in Python we can use the &lt;code&gt;capitalize()&lt;/code&gt; function to make the first letter in the sentence capitalized.&lt;/p&gt;
&lt;h3&gt;Input&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;S = &quot;hello world&quot;
#Print cpitalized string
print(S.capitalize())
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Output&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Hello world
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;.casefold()&lt;/h2&gt;
&lt;p&gt;Secondly, there is the &lt;code&gt;casefold()&lt;/code&gt; function. This function allows user to decapitalize a capital letter(s) in a string object.&lt;/p&gt;
&lt;h3&gt;Input&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;S = &quot;HELLO WORLD&quot;
print(S.capitalize())
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Output&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;hello world
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;.center()&lt;/h2&gt;
&lt;p&gt;Next, there is the &lt;code&gt;center()&lt;/code&gt; function. This function can be used to center text in python.
Additionally, the second argument can be used to insert specific letter in both letter before and letter after specific text.&lt;/p&gt;
&lt;h3&gt;Input&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;S = &quot;BINARY FISH&quot;
# Insert the total number of letter after the text is centered.
print(S.center(len(S)+4,&quot;…&quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Output&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;……BINARY FISH……
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;.count()&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;count()&lt;/code&gt; function can be used to count the number of specific word or phrases in given string object. For example, count() function will return 2 if the word is &lt;code&gt;banana&lt;/code&gt; and &apos;n&apos; is specified.&lt;/p&gt;
&lt;h3&gt;Input&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;S = &quot;BANANA&quot;
print(S.count(&quot;N&quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Output&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;2
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;.encode()&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;encode()&lt;/code&gt; function is used to encodes the specific string using specific encoding method.(Default is &lt;code&gt;utf-8&lt;/code&gt;).&lt;/p&gt;
&lt;h3&gt;Input&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;print(&apos;+-*÷&apos;.encode(&apos;utf-8&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Output&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;b&apos;+-*\xc3\xb7&apos;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Atcoder Beginners Contest 321 &quot;Cutoff&quot; explained</title><link>https://binary-fish.vercel.app/blog/Atcoder321B.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/Atcoder321B.md/</guid><description>A detailed guide to solving ABC 321 problem B.</description><pubDate>Sun, 17 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Problem&lt;/h2&gt;
&lt;p&gt;Here is a very very simplified version of this problem.
If it seems like it is too complicated, please read the official text by clicking the link below.&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;There is a test that has &quot;N&quot; rounds&lt;/li&gt;
&lt;li&gt;For each round, there is a score range of 0-100&lt;/li&gt;
&lt;li&gt;The overall score is the sum of scores without the maximum and minimum&lt;/li&gt;
&lt;li&gt;The score of the &quot;i&quot; round is expressed as Ai&lt;/li&gt;
&lt;li&gt;How many points must you get to exceed X points?&lt;/li&gt;
&lt;li&gt;If you can&apos;t exceed X points even when you get 100, print -1&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Input
N　X
A1 A2 A3 .....&lt;/p&gt;
&lt;p&gt;https://atcoder.jp/contests/abc321/tasks/abc321_b&lt;/p&gt;
&lt;h2&gt;Algorithm&lt;/h2&gt;
&lt;p&gt;So here is a detailed guide to this problem.
Firstly, one thing to keep in mind when solving this problem is that like the image below, our total score is the sum of scores without the maximum and minimum scores.&lt;/p&gt;
&lt;p&gt;Basically the only thing we have to do is to test every possibility for score &quot;i&quot; from 0-100. If we have a required score that is lower than 100, that&apos;s great and we can just print the score &quot;i&quot;. On the other hand, even if score i of 100 can&apos;t reach score X, we can then print -1.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Below is the code that got AC.&lt;/p&gt;
&lt;h2&gt;Example Code in Python&lt;/h2&gt;
&lt;p&gt;This is the code that got AC on this problem.
Feel free to read the comment that is attached to the code.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# -*- coding: utf-8 -*-
#Get Inputs
N, X = map(int, input().split())
As = [int(x) for x in input().split()]
#Sort As from the lowest to the highest
As = sorted(As)
#１００回繰り返す
for x in range(0,101):
    scorenow = As[0:len(As)]
    #↑Reset score to the default score
    scorenow.append(x)
    #Delete the maximum scores from total
    scorenow.remove(max(scorenow))
    #Then delete the minimum
    scorenow.remove(min(scorenow))
    #If score is bigger or equal to x, print the scoreneeded and exit
    if sum(scorenow) &amp;gt;= X:
        print(x)
        exit()
    else:
        continue
#If not, print negative one
print(-1)
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>How to get max and min value of an array in python.</title><link>https://binary-fish.vercel.app/blog/PythonMaxMin.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/PythonMaxMin.md/</guid><description>How to get max and min value of an array in python-BinaryFish</description><pubDate>Mon, 08 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Estimated Reading Time: &lt;strong&gt;2&lt;/strong&gt; minutes&lt;/p&gt;
&lt;h1&gt;How to get the max and min values of an array in Python&lt;/h1&gt;
&lt;p&gt;In Python, you can create an array, full of functions to perform with.
In this article, it will explain to you how to get the minimum and the maximum value of an array. This tip can be used for other data types, so make sure to read the whole page until the end.&lt;/p&gt;
&lt;h2&gt;How to get the minimum value&lt;/h2&gt;
&lt;p&gt;To get the minimum value of an array, you can use the &lt;code&gt;min()&lt;/code&gt; function. The &lt;em&gt;min()&lt;/em&gt; function will return the minimum value of a data set(including variables and arrays) given inside the brackets ().&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;scores = [0,100,200,300]
print(min(scores)) #returns 0, the smallest in the array &quot;scores&quot;
# = 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;How to get the maximum value&lt;/h2&gt;
&lt;p&gt;In Python, you can create an array, full of functions to perform with.
In this article, it will explain to you how to get the minimum and the maximum value of an array. This tip can be used for other data types, so make sure to read the whole page until the end.&lt;/p&gt;
&lt;h2&gt;How to get the minimum value&lt;/h2&gt;
&lt;p&gt;To get the maximum value of an array, you can use the &lt;code&gt;max()&lt;/code&gt; function. Just like the min() function, the &lt;em&gt;min()&lt;/em&gt; function will return the maximum value of a data set(including variables and arrays) given inside the brackets ().&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wins = [20,28,39,68]
print(max(wins)) #returns 68, the largest in the array &quot;wins&quot;
# = 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Overall, it is pretty easy to get both the minimum and the maximum value of an array in Python. Yet, knowing this function makes a huge difference from the others that don&apos;t know.
If this article was helpful, please consider sharing the link to your SNS.
&amp;lt;br /&amp;gt;&lt;strong&gt;Thank you for reading.&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>Atcoder Beginners Contest 346 Recap</title><link>https://binary-fish.vercel.app/blog/AtcoderContest346.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/AtcoderContest346.md/</guid><description>Recap of the Atcoder Beginners Contest 346.</description><pubDate>Sun, 24 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Welcome Atcoders to BinaryFish! In this article, we will recap Atcoder Beginners Contest #346, diving into key ideas, detailed explainations, and more. Whether you participated in this contest or not, this article will help you with your journey of competitive programming. Let&apos;s dive in!&lt;/p&gt;
&lt;p&gt;https://atcoder.jp/contests/abc346/tasks?lang=en&lt;/p&gt;
&lt;h2&gt;Problem A-&amp;gt; Adjacent Product&lt;/h2&gt;
&lt;p&gt;This problem had decent difficulty, but it should be a question that most coders can answer.
Here is the problem.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You are given N integers $$ A_1, A_2,…,A_N $$ .
Also define $$ B_i = A_i \times A_{i+1} (1≤i≤N-1)$$.
Print $$B_1,B_2,...,B_{N-1}$$ in this order, separated by spaces.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Guide&lt;/h3&gt;
&lt;p&gt;So the only two things you have to do in order to solve this problem is&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a list with every $$ A_i * A_{i+1} $$&lt;/li&gt;
&lt;li&gt;Sperate the results with spaces, then print it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It took about 7 minutes to get AC on this problem. My code is not the simplest way of solving this problem, but still I got it right.&lt;/p&gt;
&lt;p&gt;Here is the code that does the two things and got &lt;code&gt;AC&lt;/code&gt; on Atcoder.&lt;/p&gt;
&lt;h3&gt;Answer&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# -*- coding: utf-8 -*-
# Get Inputs
N = int(input())
As = input().split()
# Array to store the results
Bs = []

# Cacuculate
for i in range(0,N-1):
    Bs.append(int(As[i])*int(As[i+1]))
# Bss is the variable that gets printed
Bss = &quot;&quot;
# For loop for formatting the answers
for i in range(0,len(Bs)):
    Bss = Bss +str(Bs[i] )  + &quot; &quot;
print(Bss)

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Problem B =&amp;gt; Piano&lt;/h2&gt;
&lt;p&gt;Problem B was the problem that I got stuck on.  Usually, I am able to atleast correctly answer both A and B, but I couldn&apos;t in this competition. I strongly belives that this question is one of the &lt;strong&gt;hardest&lt;/strong&gt; problem B in all of the Atcoder Beginners Contest. Still, I solved this problem afterwards so I will write a recap here.&lt;/p&gt;
&lt;p&gt;Here is the problem.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There is an infinitely long piano keyboard. Is there a continuous segment within this keyboard that consists of W white keys
and B black keys?
Let S be the string formed by infinitely repeating the string &lt;code&gt;wbwbwwbwbwbw&lt;/code&gt;.
Is there a substring of S that consists of W occurrences of w and B occurrences of b?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Guide&lt;/h3&gt;
&lt;p&gt;So this problem is type of problem that has numerous way to solve it. For instance, the official explanation uses a strategy with mod, but here I used a simpler method inspired by code of a youtube @EbimaLabo.
After the competition, I looked at his code and analyzed what was really happening. Here is the result of my analysis and adaptation to it.&lt;/p&gt;
&lt;p&gt;Firstly, you have to create a reccuring String &quot;Wbwbwwbwbwbw&quot; that has exact length as length of original String and values of W and B.
Next, test if the certain section of the String contains exact number of &quot;w&quot; as the given value.
If there is a section, then print Yes, and if not print No.&lt;/p&gt;
&lt;p&gt;That is the basic algorythm that is used to solve this problem.
Here is my adapted code that got AC, (the original version from @ebimalabo).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
# -*- coding: utf-8 -*-
Letter = &quot;wbwbwwbwbwbw&quot;

W,B = map(int,input().split())
NewString = Letter * (W+B)
answer = False
# Repeat 12 times (The length of original String)
for i in range(len(Letter)):
    answer |= NewString[i : i + W + B ].count(&quot;w&quot;) == W
# If answer is true then print Yes, if not print No
if answer:
    print(&quot;Yes&quot;)
else:
    print(&quot;No&quot;)

&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Full problem explaination by EbimaLabo&lt;/h1&gt;
&lt;p&gt;Here is a Youtube Video I found that explains every problem. This guide walked through only the As and Bs so if you need more guide, this would definently help. The audio is in Japanese, but it should be not be that hard to undertsand with auto translation of subtitles.&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/NireH9qqt3Y?si=8O_PooMWnXJz_Ts9&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;The contest 346 was a good contest, with new types of problems and skills I worked on. I apologize that I only put two questions in this guide, but it would be greatly appreciated if you can understand that I am a beginner Atcoder.
Thank you for reading.&lt;/p&gt;
</content:encoded></item><item><title>Atcoder Beginners Contest 349 Recap</title><link>https://binary-fish.vercel.app/blog/Atcoder349Recap.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/Atcoder349Recap.md/</guid><description>Recap of the Atcoder Beginners Contest 349 with pictures, diagrams, and more!</description><pubDate>Sun, 14 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;How did you do in Atcoder Beginners Contest 349? For me, I got A and B correct and I gained AC on C after the competition. This guide will explain how I solved A through B during the competition, and how I got C after it. Let&apos;s dive in!&lt;/p&gt;
&lt;h2&gt;Problem A &quot;Zero Sum Game&quot;&lt;/h2&gt;
&lt;p&gt;Problem:&lt;/p&gt;
&lt;p&gt;https://atcoder.jp/contests/abc349/tasks/abc349_a?lang=en&lt;/p&gt;
&lt;h3&gt;Guide&lt;/h3&gt;
&lt;p&gt;The problem A in this contest was somewhat convoluted. This is because to solve this question, you had to deeply understand what the problem was asking for and how to calculate it. Yet, it becomes so simple once you understand the fact that the order of the game doesn&apos;t affect the result. , I didn&apos;t understand this and I got stuck on this problem for a while until I finally noticed that it was a question that asked me to make a simple process to calculate the player&apos;s unknown points by calculating the number of wins and losses for other players.&lt;/p&gt;
&lt;p&gt;The way I used to solve this problem is simple. I thought of the array As as a list with each person&apos;s number of victories. Then, I checked if the person[i] has won a lot or not (A&amp;gt;0), and if so delete the expected score by the score of person[i]. This goes for the opposite. If a person[i]&apos;s score is negative, then I added their score to the expected score. And finally, I print out the expected score, and the code finish.&lt;/p&gt;
&lt;p&gt;Here is a code that I got AC on this problem:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# -*- coding: utf-8 -*-
N = int(input())
As = list(map(int,input().split()))
answer = 0

for i in range(0,len(As)):
    if As[i] &amp;gt; 0:
        answer -= As[i]
        continue
    elif As[i] &amp;lt; 0:
        answer += abs(As[i])
        continue
print(answer)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Link to my submission (As a proof):&lt;/p&gt;
&lt;p&gt;https://atcoder.jp/contests/abc349/submissions/52344057&lt;/p&gt;
&lt;h2&gt;Problem B &quot;Commencement&quot;&lt;/h2&gt;
&lt;p&gt;Next, I would like to discuss problem B. In my opinion, problem B was much easier to understand and solve than problem A. Let&apos;s take a look at the guide.&lt;/p&gt;
&lt;h3&gt;Problem&lt;/h3&gt;
&lt;p&gt;https://atcoder.jp/contests/abc349/tasks/abc349_b?lang=en&lt;/p&gt;
&lt;h3&gt;Guide&lt;/h3&gt;
&lt;p&gt;The way to solve Problem B is fairly simple. You have to create a list of &lt;code&gt;letters&lt;/code&gt; with each letter&apos;s frequency and count the number of letters with the same frequency in the array &lt;code&gt;letters&lt;/code&gt;. If all the number of letters with the same frequency is either 2 or 0, then the code prints Yes. If not, the code will print No.&lt;/p&gt;
&lt;p&gt;To give more explanation on what I just said, let&apos;s take a look at the printed output of the list of &quot;letters&quot; in my code.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;commencement
[2, 1, 3, 3, 2, 1]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can see, the list contains the frequency of each letter in a given word, starting with the frequency of &apos;c&apos; and ending with the frequency of &apos;t&apos;. We can use this list inside a for loop to count the number of a number in the list.
The code below is an example of a for loop that does this job perfectly.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;for i in range(0,len(letters)):
    if letters.count(letters[i]) == 2:
        continue
    elif letters.count(letters[i]) == 0:
        continue
    else:
        print(&quot;No&quot;)
        exit()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For each turn, the code calculates the frequency of a specific letter in Letters[i] using the &lt;code&gt;.count()&lt;/code&gt; method. If the returned value is either two or zero, the for loop continues; if the value is neither one of them, it stops the code by printing no.&lt;/p&gt;
&lt;p&gt;Here is my code that got AC on this problem.&lt;/p&gt;
&lt;h3&gt;Code&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# -*- coding: utf-8 -*-
S = input()
letters = []
alreadyused = []
for i in range(0,len(S)):
    if S[i] not in alreadyused:
        letters.append(S.count(S[i]))
        alreadyused.append(S[i])
        continue
    else:
        continue

for i in range(0,len(letters)):
    if letters.count(letters[i]) == 2:
        continue
    elif letters.count(letters[i]) == 0:
        continue
    else:
        print(&quot;No&quot;)
        exit()
print(&quot;Yes&quot;)
exit()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;https://atcoder.jp/contests/abc349/submissions/52328192&lt;/p&gt;
&lt;h2&gt;Problem C &quot;Airport code&quot;&lt;/h2&gt;
&lt;p&gt;Finally, I would like to explain problem C &quot;Airport code.&quot; This problem is one of my favorite C problems in Atcoder because of how this problem is really straightforward and also delightful. The link to the problem is attached below.&lt;/p&gt;
&lt;h3&gt;Problem&lt;/h3&gt;
&lt;p&gt;https://atcoder.jp/contests/abc349/tasks/abc349_c?lang=en&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Guide&lt;/h3&gt;
&lt;p&gt;This problem is one of the simplest problems in the world. It gives you two values, S which tells the airport&apos;s name, and T which gives the airport&apos;s code. The problem asks one simple question: Is the given airport code a valid airport code?
According to the problem, a valid airport code satisfies either of these two requirements.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The code is a capitalized version of the substring(it can have some distance- like Narita&apos;s code can be NRA).&lt;/li&gt;
&lt;li&gt;The first two letters of the code are the capitalized version of a substring of &lt;code&gt;S&lt;/code&gt;, and the third letter is X.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now that we know what the question asks, it gets to &quot;how?&quot;&lt;/p&gt;
&lt;p&gt;The &quot;how&quot; part can be done in multiple ways. The way I and a user from whom I got my code inspired was to run a for loop that checks for each letter in &lt;code&gt;T&lt;/code&gt; with &lt;code&gt;S&lt;/code&gt;. If it all matches three times or it matches two times but the third letter in T is &lt;strong&gt;&quot;X&quot;&lt;/strong&gt;, the code prints &quot;Yes&quot;, and if this is not true then the code prints &quot;No&quot;.
Here is my version of this algorithm in code. Feel free to tweak some parts to understand how it works in detail.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;S = input().upper()
T = input()
# Count=&amp;gt; The number of letters of T so that is in the airport&apos;s name
Count = 0
for i in S:
    if T[Count] == i:
        Count+=1
        if Count == 3:
            print(&quot;Yes&quot;)
            exit()
        elif Count == 2 and T[2] == &quot;X&quot;:
            print(&quot;Yes&quot;)
            exit()
        else:
            continue
    else:
        continue
# If not all the letters in T were in the airport&apos;s name, then print no.
print(&quot;No&quot;)
exit()
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;In conclusion, Atcoder beginner&apos;s Contest 349 was another superb contest with lots of great problems and ways to solve them. There are millions of possibilities to solve each problem, so I recommend you look for other people&apos;s submissions in your language that are correct if you want to dig deep into other ways of solving these problems.
I will be thrilled if someone finds this article useful.
Thank you for reading.&lt;/p&gt;
</content:encoded></item><item><title>Atcoder Beginners Contest 350 Recap</title><link>https://binary-fish.vercel.app/blog/Atcoder350Recap.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/Atcoder350Recap.md/</guid><description>Recap of the Atcoder Beginners Contest 350 with pictures, diagrams, and more!</description><pubDate>Wed, 24 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;How did you do in Atcoder Beginners Contest 350? For me, I got A and B correct. My performance score was 362!
This guide will explain how I solved A through B during the competition.&lt;/p&gt;
&lt;h2&gt;Problem A &quot;Past ABCs&quot;&lt;/h2&gt;
&lt;p&gt;Problem:&lt;/p&gt;
&lt;p&gt;https://atcoder.jp/contests/abc350/tasks/abc350_a?lang=en&lt;/p&gt;
&lt;h3&gt;Guide&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The problem A in this contest was somewhat easy. Probably this was the problem that most people got AC since in Atcoder Problems it is rated 32.
The only thing you have to do is to check if it&apos;s a valid contest name that existed or not.
This can be done by putting an if statement like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if S != &quot;ABC316&quot; and int(S[3:6]) &amp;lt;= 349 and int(S[3:6]) &amp;gt; 0 and &quot;ABC&quot; in S and len(S) == 6:
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Other than that, the only thing you have to be careful about is some exceptions. For instance, &lt;code&gt;ABC350&lt;/code&gt; and &lt;code&gt;ABC316&lt;/code&gt; are not a valid contest name.
So, the code prints &quot;Yes&quot; if it meets all the requirements and prints &quot;No&quot; if it doesn&apos;t. It is as simple as the code below.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# -*- coding: utf-8 -*-
S = input()
if S != &quot;ABC316&quot; and int(S[3:6]) &amp;lt;= 349 and int(S[3:6]) &amp;gt; 0 and &quot;ABC&quot; in S and len(S) == 6:
 print(&quot;Yes&quot;)
else:
 print(&quot;No&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Link to my submission (As a proof):&lt;/p&gt;
&lt;p&gt;https://atcoder.jp/contests/abc350/submissions/52553391&lt;/p&gt;
&lt;h2&gt;Problem B &quot;Dentist Aoki&quot;&lt;/h2&gt;
&lt;p&gt;Next, I would like to discuss problem B. In my opinion, problem B was much easier to understand and solve than problem A. Let&apos;s take a look at the guide.&lt;/p&gt;
&lt;h3&gt;Problem&lt;/h3&gt;
&lt;p&gt;https://atcoder.jp/contests/abc350/tasks/abc350_b?lang=en&lt;/p&gt;
&lt;h3&gt;Guide&lt;/h3&gt;
&lt;p&gt;The way to solve Problem B is fairly simple. You have to create a list named &lt;code&gt;teeth&lt;/code&gt; which holds either &quot;0&quot; or &quot;1&quot; depending on whether he has teeth in a specific position or not.
First, we get the input from the problem using the code below.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;N, Q = map(int,input().split())
Ts = list(map(int,input().split()))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then when the teeth[i] is 0, the code changes the value to 1. And when it is the opposite, Teeth[i] changes to 1.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if Teeth[number] == 0:
 Teeth[number] = 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After all the treatment is done (when the for loop finishes), the code prints the number 1 in the list.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;print(Teeth.count(1))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Here is my code that got AC on this problem.&lt;/p&gt;
&lt;h2&gt;Code&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# -*- coding: utf-8 -*-
N, Q = map(int,input().split())
Ts = list(map(int,input().split()))
Teeth = []
for i in range(0,N):
 Teeth.append(1)
for i in range(0,Q):
 number = Ts[i]-1
 if Teeth[number] == 0:
 Teeth[number] = 1
 continue
 if Teeth[number] == 1:
 Teeth[number] = 0
 continue
print(Teeth.count(1))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;https://atcoder.jp/contests/abc350/submissions/52567991&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;In conclusion, Atcoder Beginner&apos;s Contest 350 was another awesome contest with lots of great problems and ways to solve them. There are millions of possibilities to solve each problem, so I recommend you look for other people&apos;s submissions in your language that are correct if you want to dig deep into other ways of solving these problems.
I hope someone finds this article useful.
Please consider sharing this page on your social media so you can support this blog.
Thank you for reading.&lt;/p&gt;
</content:encoded></item><item><title>About this blog</title><link>https://binary-fish.vercel.app/blog/first-post.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/first-post.md/</guid><description>Discover our visions and goals for this blog.</description><pubDate>Sun, 03 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Welcome to Binary Fish, a blog all about learning Atcoder, web, and game development!! Here, I will share my learning journey as I build a new website and explore the world of computer science.&lt;/p&gt;
&lt;h2&gt;Goals for this blog&lt;/h2&gt;
&lt;p&gt;Before we get into goals and some of the basic directions of this blog, I just want to bring up this quote from Pablo Picasso.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Good artists copy, and great artists steal.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Like the quote above, the ultimate goal for this website is to become the website that you can steal and get better at coding.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Making things fun&lt;/strong&gt;: Computer science can sometimes be boring because how you have to stare at your screen for hours. This blog&apos;s first goal is to resolve this by writing down as many ways to solve your issues or errors or wondering as you visit this website. Furthermore, this blog will hopefully be a website that helps you avoid mistakes that I made while going through this journey.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Be the big tree&lt;/strong&gt;: This website will be the tree of knowledge and wisdom, with anyone to see and learn from.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Be the helper&lt;/strong&gt;: this website&apos;s third and final goal is to keep everyone&apos;s passion and motivation through easy-to-read blog posts.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;What&apos;s next&lt;/h2&gt;
&lt;p&gt;I will try to post as many articles and blog posts as I can.
So look forward to new articles!!!!&lt;/p&gt;
</content:encoded></item><item><title>A year in BinaryFish!!</title><link>https://binary-fish.vercel.app/blog/ayear.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/ayear.md/</guid><description>This article reflects on a year in BinaryFish, since the start in 2023.</description><pubDate>Sat, 28 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hello everyone!!
This is SnowDingo from BinaryFish.&lt;/p&gt;
&lt;p&gt;Although it&apos;s a bit late, I decided to write an article celebrating one year since the release of BinaryFish.&lt;/p&gt;
&lt;p&gt;Looking back, my article from a year ago was quite short and lacked quality, but I&apos;ve improved it over time.&lt;/p&gt;
&lt;p&gt;Instead of dwelling on the past, I&apos;d like to rapidly share some statistics:&lt;/p&gt;
&lt;p&gt;Most Read Article:
&quot;How to get the maximum and minimum value of an array in Python&quot;&lt;/p&gt;
&lt;p&gt;https://binary-fish.vercel.app/blog/pythonmaxmin/&lt;/p&gt;
&lt;p&gt;Best Page Viwes:
1173 in November&lt;/p&gt;
&lt;p&gt;This article is very brief, but I want to extend a huge thanks to everyone who supported my blog this year. I aim to update this blog monthly, so please check out my articles in 2025!&lt;/p&gt;
&lt;p&gt;Happy New Year!!&lt;/p&gt;
&lt;p&gt;-By SnowDingo&lt;/p&gt;
</content:encoded></item><item><title>Manim for the beginners - A complete guide to mainm a python library to make math animations</title><link>https://binary-fish.vercel.app/blog/Manim.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/Manim.md/</guid><description>Discover the ultimate beginner&apos;s guide to Manim, the Python library for creating wonderful math animations. Learn step-by-step techniques and classes to use Manim effectively.</description><pubDate>Thu, 04 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In this guide, you will learn the basics of manim, a python math animation library. Manim is really fun tool you can use, and you will be able to use the core parts after reading this article.
Let&apos;s dive in!&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;To install manim, you have to run commands shown below in your Python envoirment. Please take a look at the official document for multiple platform installation of manim.&lt;/p&gt;
&lt;p&gt;https://docs.manim.community/en/stable/installation.html&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install py3cairo ffmpeg

brew install pango pkg-config scipy

pip3 install manim
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Project 1- Displaying circle, cube, and triangle&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;As our first step at understanding Manim, let&apos;s try rendering three basic shapes with &lt;code&gt;Create()&lt;/code&gt; animation.
Manim provides several classes for basic shapes, such as these three shapes that we are going to display.
To create a triangle, you can use the &lt;code&gt;Triangle&lt;/code&gt; object. Yet, this line of code itself won&apos;t render a triangle on the screen. To solve this, we have to use the function &lt;code&gt;self.play()&lt;/code&gt; to animate and show the object we are trying to show on the screen. In this case, I used &lt;code&gt;Create()&lt;/code&gt; animation, which animates an object like it has been rendered.
The rest of the code follows the same step, except for the previously created object.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;from manim import *
 
class SquareToCircle(Scene):
    def construct(self):
        triangle = Triangle()
        self.play(Create(triangle))
        square = Square()
        self.play(Create(square))
        circle = Circle()
        self.play(Create(circle))

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once you have written the code, run the following command in your terminal.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;manim -pql [filename].py [functionname]   
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, after several seconds new window should be popped up with following video.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Now that we know the very basic of manim, let&apos;s try animating texts.&lt;/p&gt;
&lt;h2&gt;Animating the texts&lt;/h2&gt;
&lt;p&gt;In Manim, you can use the &lt;code&gt;Text()&lt;/code&gt; class to display a text, or equation on the screen. The text could be written in either a plain way or a LaTeX format supporting many mathematical symbols. If you follow several steps, you will be able to create this↓&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Let&apos;s get started!&lt;/p&gt;
&lt;p&gt;Firstly, try creating a variable called &lt;strong&gt;original equation&lt;/strong&gt;, which stores the original form of the equation we want to animate.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    original equation= Text(r&quot;2x = 4&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You may have noticed that there is &lt;strong&gt;r&lt;/strong&gt; in front of the string object. Since we are displaying an equation, we are using the LaTeX format of text by putting r in front of the String.
The LaTeX supports many math symbols and formulas, from the classic π to trig functions like cotangent.
As I mentioned in the &lt;a href=&quot;#project-1--displaying-circle-cube-and-triangle&quot;&gt;project 1&lt;/a&gt;, this itself won&apos;t display text on the screen. For this reason, we have to use &lt;code&gt;Write()&lt;/code&gt; animation.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;self.play(Write(original equation))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are other alternatives for displaying text, like the &lt;code&gt;FadeIn&lt;/code&gt; animation and &lt;code&gt;GrowFromCenter()&lt;/code&gt;. &lt;strong&gt;Don&apos;t use the &lt;code&gt;create()&lt;/code&gt;&lt;/strong&gt; animation for displaying text though! When used to display the text, it will often lead to a disaster, like the photo below.&lt;/p&gt;
&lt;p&gt;Now that we know how to animate and create Text in manim, let&apos;s work on the rest of our code.
For the rest of the code, we can create two more variables, one for the step 2 equation and another for the final state. In addition, I used &lt;code&gt;self.play(ApplyMethod(Text-variable-name.shift.Position)&lt;/code&gt; to move text upward- avoiding overlap of the text during the animation.&lt;/p&gt;
&lt;p&gt;Here is the final code. Feel free to copy&amp;amp;paste and tweak some things to make this code your own!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;from manim import *
 
class SquareToCircle(Scene):
    def construct(self):
        originalequation= Text(r&quot;2x = 4&quot;)
        self.play(Write(originalequation))
        self.wait(0.5)
        self.play(ApplyMethod(originalequation.shift, UP))
        equation2 = Text(r&quot;x=4/2&quot;)
        self.play(Write(equation2))
        self.play(FadeOut(originalequation))
        self.play(ApplyMethod(equation2.shift, UP))
        equation3 = Text(r&quot;x=2&quot;)
        self.play(Write(equation3))
        self.wait(0.5)
        self.play(FadeOut(equation2))
        self.play(FadeOut(equation3))
        
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;In this guide, I explained the key concepts of Manim, with two simple animation projects that everyone can easily make and have fun tweaking it. I am sorry the article went through the concepts rapidly, I am planning to make a detailed article that explains more in detail for each concept so stay tuned! If you want more guidance on Manim or any other concepts in computer science, feel free to share this guide on your Social Media.
Thank you for reading!&lt;/p&gt;
</content:encoded></item><item><title>How to get started on Atcoder- a complete guide for coders</title><link>https://binary-fish.vercel.app/blog/howtostartAtcoder.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/howtostartAtcoder.md/</guid><description>Learn how you can start your Atcoder journey in 2024 for free.</description><pubDate>Wed, 06 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;How to get started on Atcoder&lt;/h1&gt;
&lt;p&gt;In this article, you will learn how to get started on &lt;strong&gt;Atcoder&lt;/strong&gt;&lt;br /&gt;
Estimated reading time: &lt;strong&gt;12 minutes&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Just as proof, the link to my Atcoder profile is pasted below&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;https://atcoder.jp/users/DINGOO&lt;/p&gt;
&lt;h2&gt;What is Atcoder?&lt;/h2&gt;
&lt;p&gt;Atcoder is a Japanese website that hosts weekly programming competitions. Although Atcoder is a Japanese website, it has decent English support as well. Atcoder has three main contests that they host regularly: Atcoder Beginners Contest (&lt;strong&gt;ABC contest&lt;/strong&gt;), Atcoder Regular Contest(&lt;strong&gt;ARC&lt;/strong&gt;), and Atcoder Heuristic Contest (&lt;strong&gt;AHC&lt;/strong&gt;).&lt;br /&gt;
There are lots of other contests like the Atcoder Grand Contest that you can participate in, however, if you are a person who just started coding or Atcoder, participating mainly in Atcoder Beginners Contest is &lt;strong&gt;strongly recommended&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Some pros of starting Atcoder&lt;/h2&gt;
&lt;p&gt;So here are some of the very generalized bullet points of skills you can get while doing Atcoder.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You can learn more about your favorite programming languages like Python and C#.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You can learn some of the important algorithms that can help you in your real-world project.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Abstract thinking&lt;/strong&gt; As you get better at Atcoder, you need more and more skills in thinking about the problem abstractly and simply.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;The rating system of Atcoder&lt;/h2&gt;
&lt;p&gt;Before getting started on sign-up and competition, there is one more important thing in Atcoder. The rating system.
In Atcoder, when you participate in a competition and solve problems, your ¨rating¨ either increases or decreases depending on how well you do in the competition.
For every 400 points or rating, you become a new color.&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0-400 Grey&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;401-800 Brown&lt;/strong&gt; (Skill level about the same as a typical college student with computer science as their major)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;801-1000 Green&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1001-1600 Light Blue&lt;/strong&gt;  (People at this rank will most likely fill most of the needs of the average tech company)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1601-2000 Blue&lt;/strong&gt; (The skill exceeds the general high-standard requirement of all the companies)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2001-2400 Yellow&lt;/strong&gt; (From here, the level reaches a point where you are ready to be competitive)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2401-2800 Orange&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2801-∞ Red&lt;/strong&gt; (The highest color)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2&gt;How to start your journey&lt;/h2&gt;
&lt;p&gt;Now that we know Atcoder, let&apos;s start the journey. This section will briefly summarize the process needed to start Atcoder from sign-up to how to guide participating in the contest.&lt;/p&gt;
&lt;h2&gt;Step 1: Create an Atcoder account&lt;/h2&gt;
&lt;p&gt;The first step for any competitor is to create an account. To do this, first visit the official Atcoder website listed below.&lt;/p&gt;
&lt;p&gt;https://atcoder.jp/home&lt;/p&gt;
&lt;p&gt;Then, there is a &quot;sign up&quot; button in the header, so click it like the image below.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Consequently, it will lead to the sign-up form, where you can fill out your new account username, password, and email. Some choices are optional, so only four of them are required. When you are ready, press the sign-up button to finalize the process.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If you have successfully created an Atcoder account,  you have two choices; you can choose to wait for the competition or to try doing some sample problems before participating.
From past experiences, doing some sample problems is strongly  &lt;strong&gt;recommanded&lt;/strong&gt; for anyone who started Atcoder.&lt;/p&gt;
&lt;h2&gt;Sample Problems&lt;/h2&gt;
&lt;p&gt;Here is the link to the practice problem. The website shows you all the steps and fundemental knowledge to participate in contests.
The guide will not explain all the details here since there is better guide inside the practice contests.&lt;/p&gt;
&lt;p&gt;https://atcoder.jp/contests/practice&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;When you are done with all of these steps, try participating competitions. It is hosted weekly, so participating every week will be helpfull with making a great start on your journey.
If you want to solve past problems, Binary Fish offers several &lt;strong&gt;free&lt;/strong&gt; guides, so make sure to check that out as well.
Lastly, Rome isn&apos;t built on one day. Therefore try doing Atcoder consistently, and one day you will establish your own coding Roman empire.
Thank you for reading.&lt;/p&gt;
</content:encoded></item><item><title>【Unlock your daily creativity】- A beginner&apos;s guide to digital journaling with Obsidian in 2024.</title><link>https://binary-fish.vercel.app/blog/Obsidian.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/Obsidian.md/</guid><description>Learn how to start your journaling habit using Obsidian through our easy to read guide for beginners.</description><pubDate>Sun, 21 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In this guide, you will learn how you can use the Obsidian app to start your journaling habit for free. Make sure to follow our social media through Github and X. Let&apos;s dive into the world of digital journaling.&lt;/p&gt;
&lt;h1&gt;What is Obsidian?&lt;/h1&gt;
&lt;p&gt;Obsidian is a free note-taking app that you can download on most devices. Obsidian includes a wide variety of features from simple todos to advanced markdown editing. Similar to the famous app &quot;Notion&quot; Obsidian uses Markdown to create each note page.&lt;/p&gt;
&lt;h2&gt;Pricing&lt;/h2&gt;
&lt;p&gt;Obsidian is free for most uses. Obsidian doesn&apos;t require any sign-in, and it is free unless you want to do something commercial using Obsidian. While Obsidian has some premium options, it doesn&apos;t have a pay-block wall like most note-taking app does.
Here is the list of things you have to pay to use and its price:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Commercial Use (50$)&lt;/li&gt;
&lt;li&gt;Sync (4$ on yearly billing) - A plan in which you can sync your obsidian notes with two or more devices.&lt;/li&gt;
&lt;li&gt;Publish (8$ on yearly billing) - A subscription where you can share your Obsidian file to the Internet.&lt;/li&gt;
&lt;li&gt;Early Access (25$+) - A way to use the newest version of Obsidian&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So, unless you want to use it in a other way than a personal note-taking app, you can confidently and safely use Obsidian as your favorite app.&lt;/p&gt;
&lt;p&gt;You can download Obsidian from the link below.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://obsidian.md/&quot;&gt;https://obsidian.md&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;Why digital journaling?&lt;/h1&gt;
&lt;p&gt;
&lt;em&gt;Digital journaling can help you in many ways&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Digital journaling can bring many benefits to you. First, using the digital journaling method can make it much easier for you to write a journal. There are other benefits to this like improving the privacy of your journal. Many scientists and wise leaders have proved journalism&apos;s effectiveness for many centuries. So, digital journaling is an online version of the classic diary technique.&lt;/p&gt;
&lt;h1&gt;Setting up Obsidian&lt;/h1&gt;
&lt;p&gt;Now let&apos;s get started on our journey. First, go to&lt;/p&gt;
&lt;p&gt;https://obsidian.md/&lt;/p&gt;
&lt;p&gt;to download Obsidian on your devices. Then, launch Obsidian.
After you launch Obsidian, you can probably see this screen.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This is Obsidian&apos;s start page. You have to follow several simple steps to start journaling.
The first step is to create something called &lt;strong&gt;vault&lt;/strong&gt;. Like what the name suggests, the vault acts as a folder/container that stores all of your related notes in one place. You can create multiple vaults, making it easy to organize your everyday notes. For instance, you can have one vault for digital journaling and another with personal tech wiki. In addition, installed plugins are not shared with other vaults, making it easier to specialize the vault into a container for each use.&lt;/p&gt;
&lt;p&gt;To create a Vault and start writing, follow the steps below.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First, press the Create New Vault button. This will move you to a screen where you can configure vault settings.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Next, name your vault(2) and select where you want to create your vault(3). In this guide, I chose Desktop as the location.
&lt;/li&gt;
&lt;li&gt;Lastly, you can press the Create button. This finishes all the setup🚀&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After all of these steps, you should see this screen.
&lt;/p&gt;
&lt;h2&gt;Using Obsidian&lt;/h2&gt;
&lt;p&gt;Now that we have finished setting up Obsidian, we can start learning how you can &lt;strong&gt;use&lt;/strong&gt; it.
Let&apos;s get started by learning how to create a new note. It is pretty easy. You just have to click the button with the pencil icon like the image below.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And boom!
You just created your first note.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For any readers who are interested in knowing more about each button, here are my explanations.
The number is from left to right, in order.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create Note - Create a new note like I just explained above.&lt;/li&gt;
&lt;li&gt;Create a folder - Create a folder where you can store Images, plugin files (Like Excalidraw files), and notes.&lt;/li&gt;
&lt;li&gt;Sort notes- Sort your vault in ordered ways. ( Sort in alphabetic order, Created time, etc...)&lt;/li&gt;
&lt;li&gt;Expand/Collapse all.  Either expand or Collapse the folder view to make it simpler to look at.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now you can write &amp;amp; create notes. As a next step, let&apos;s learn how you can create daily entries in your vault.&lt;/p&gt;
&lt;h3&gt;Creating Daily Entries&lt;/h3&gt;
&lt;p&gt;To create a daily entry, you can click the calendar button. This lets you instantly create a note with a date in the file name.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The rest of the guide focuses on features and plugins that you can use to boost your productivity of journaling.&lt;/p&gt;
&lt;h2&gt;Extra: Best Plugins to install when you write your journal in Obsidian&lt;/h2&gt;
&lt;h3&gt;#1 Editing Toolbar&lt;/h3&gt;
&lt;p&gt;
The first plugin you want to install when you write your wiki/journal in Obsidian is the Editing Toolbar. It is straightforward. It creates an editing toolbar on your screen like Google Docs and Word, where you can easily write markdowns without huge amounts of effort.
This is probably one of the few &lt;strong&gt;must-have&lt;/strong&gt; plugins in any vault.
Consider using this to increase your productivity in Obsidian journaling.&lt;/p&gt;
&lt;h3&gt;#2 Reminder&lt;/h3&gt;
&lt;p&gt;This plugin, &quot;Reminders&quot; helps you with creating reminders with Obsidian. When writing a daily journal, sometimes we want to make a reminder to ourselves like, &quot;Tomorrow by 5 pm - Buy three apples.&quot; This plugin just does that.
The details about how you can use this plugin are all written in the description of the plugin so I won&apos;t explain how you can use it in detail.
But it is still a cool plugin you can use so make sure to install it.
&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;In this article, I explained how you can start your digital journaling using Obsidian. It explained the steps to set up the app and a way to create your daily journal entries.
I hope this article helped you in your journey. Make sure to share this post on social media like X and put #BinaryFish for more articles.
Thank you for reading.&lt;/p&gt;
&lt;h3&gt;Image Attribution&lt;/h3&gt;
&lt;p&gt;Photo by &amp;lt;a href=&quot;https://unsplash.com/@thoughtcatalog?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Thought Catalog&amp;lt;/a&amp;gt; on &amp;lt;a href=&quot;https://unsplash.com/photos/woman-sitting-beside-table-using-laptop-UK78i6vK3sc?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Unsplash&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;Photo by &amp;lt;a href=&quot;https://unsplash.com/@ricvath?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Richard Horvath&amp;lt;/a&amp;gt; on &amp;lt;a href=&quot;https://unsplash.com/photos/blue-and-white-heart-illustration-cPccYbPrF-A?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Unsplash&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;https://en.m.wikipedia.org/wiki/File:2023_Obsidian_logo.svg&lt;/p&gt;
</content:encoded></item><item><title>CSS Margin VS Padding in a nutshell</title><link>https://binary-fish.vercel.app/blog/CSSMarginVsPadding.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/CSSMarginVsPadding.md/</guid><description>Discover the difference between CSS margin and padding - essential for your website layout. Maximize design impact now!</description><pubDate>Tue, 16 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When working with CSS, it is very beneficial to know the difference between CSS margin and padding. It is widely understood by numerous people that the two properties are spacing properties, but there are only a few engineers who understand the true difference between these properties. Let&apos;s dive in!&lt;/p&gt;
&lt;h1&gt;CSS Margin VS Padding&lt;/h1&gt;
&lt;h2&gt;Padding&lt;/h2&gt;
&lt;p&gt;In CSS, &lt;code&gt;padding&lt;/code&gt; is a property that sets the inner spacing of a CSS element. In a nutshell, the padding determines the spacing of the inner area.
Padding has four sub-properties that you can use to specify the spacing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Padding-Top&lt;/li&gt;
&lt;li&gt;Padding-Bottom&lt;/li&gt;
&lt;li&gt;Padding-Left&lt;/li&gt;
&lt;li&gt;Padding-Right&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Instead of specifying the padding of each direction using every one of these sub-properties, you can also select the same value in plain padding property like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;padding: 2px 2px 2px 2px; /* From left=&amp;gt;right: Top, Right, Bottom, Left */
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For more details about padding, visit the MDN docs.&lt;/p&gt;
&lt;p&gt;https://developer.mozilla.org/en-US/docs/Web/CSS/padding&lt;/p&gt;
&lt;h2&gt;Margin&lt;/h2&gt;
&lt;p&gt;The margin, on the other hand, sets the spacing of the outer element. It is used to create an actual space between one component with the other.
Similar to padding, there are four sub-properties like &lt;code&gt;padding-bottom&lt;/code&gt; and &lt;code&gt;padding-right&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can also easily apply a margin of four directions in plain margin property like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;margin: 2px 2px 2px 2px; /* From left=&amp;gt;right: Top, Right, Bottom, Left */
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For more details, visit the MDN docs.&lt;/p&gt;
&lt;p&gt;https://developer.mozilla.org/en-US/docs/Web/CSS/margin&lt;/p&gt;
&lt;h2&gt;In Tailwind CSS&lt;/h2&gt;
&lt;p&gt;In tailwind CSS, margin and padding can be applied by using the following class:&lt;/p&gt;
&lt;p&gt;Padding:
&lt;code&gt;p-2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Margin:
&lt;code&gt;m-2&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;‼️ Never use padding for positioning&lt;/h2&gt;
&lt;p&gt;Many beginners fall into this trap of using padding for positioning and mixing up the roles of each property. While some uses are acceptable in web design, it is not a good idea to use padding for positioning elements. This is because the true role of padding is to extend the border of the elements(the inner spacing), not to adjust the spacing of the elements.  In addition, using margin instead of padding for positioning gives more clarity and consistency to your code from a third person&apos;s view.
So, use margin instead of padding when it comes to the positioning of elements.&lt;/p&gt;
&lt;h2&gt;So Padding VS Margin&lt;/h2&gt;
&lt;p&gt;According to the MDN Web Docs, margin and padding can be explained in the following sentence:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Padding creates extra space within an element. In contrast, a margin creates extra space around an element.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;https://developer.mozilla.org/en-US/docs/Web/CSS/padding&lt;/p&gt;
&lt;p&gt;&lt;em&gt;In a nutshell, while padding creates an inner space of an element, the margin determines the outer spacing.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;A diagram representing the relationship between the content, padding, and margin&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Now that we know what is the difference between these two properties, how should we determine which one to use?
In this guide, we created a table that anyone can use to determine which one to use:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Margin&lt;/th&gt;
&lt;th&gt;Padding&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Creating space between two or more items&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;⚠️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adding space between text and the border of a button&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Space between the header/footer and the body&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;QUIZ:&lt;/h1&gt;
&lt;p&gt;Now take our two-question test that tests your knowledge from this guide.
The answer is in the very end.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;How do you apply a 2px margin to a &lt;code&gt;p&lt;/code&gt; element?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Which one is the correct use of padding?
A. Creating spacing between the header and body
B. To modify the positioning of an element
C. To create inner space in its element.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Throughout this guide, we explained a quick overview of CSS margin and padding, with its differences.
We hope this guide helped you in your web design journey.
Lastly, we would appreciate it if you could share our posts and blog on social media using the hashtag &lt;code&gt;#BinaryFish&lt;/code&gt;.
Thank you for reading.&lt;/p&gt;
&lt;h2&gt;Recommended posts&lt;/h2&gt;
&lt;p&gt;https://binary-fish.vercel.app/blog/cssbuttonidea/&lt;/p&gt;
&lt;p&gt;https://binary-fish.vercel.app/blog/dropshadowanimation/&lt;/p&gt;
&lt;h2&gt;Quiz Answers:&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;margin-right:2px;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;C&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Image Attribution&lt;/h2&gt;
&lt;p&gt;Photo by &amp;lt;a href=&quot;https://unsplash.com/@frostroomhead?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Rodion Kutsaiev&amp;lt;/a&amp;gt; on &amp;lt;a href=&quot;https://unsplash.com/photos/a-close-up-of-a-blue-and-yellow-liquid-F573ZRbKOEw?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash&quot;&amp;gt;Unsplash&amp;lt;/a&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>Hover dropshadow CSS animation in 3 minutes </title><link>https://binary-fish.vercel.app/blog/Dropshadowanimation.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/Dropshadowanimation.md/</guid><description>Dropshadow hover animation in CSS explained in 3 minutes.</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;In this guide, you will learn how to create your own custom CSS drop shadow animations. It is really easy and useful, so please read this guide until the very end.&lt;/p&gt;
&lt;h2&gt;Finished Code&lt;/h2&gt;
&lt;p&gt;&amp;lt;p class=&quot;codepen&quot; data-height=&quot;300&quot; data-default-tab=&quot;html,result&quot; data-slug-hash=&quot;rNRmvyN&quot; data-user=&quot;Fire-Dingo&quot; style=&quot;height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;&quot;&amp;gt;
&amp;lt;span&amp;gt;See the Pen &amp;lt;a href=&quot;https://codepen.io/Fire-Dingo/pen/rNRmvyN&quot;&amp;gt;
Untitled&amp;lt;/a&amp;gt; by Fire Dingo (&amp;lt;a href=&quot;https://codepen.io/Fire-Dingo&quot;&amp;gt;@Fire-Dingo&amp;lt;/a&amp;gt;)
on &amp;lt;a href=&quot;https://codepen.io&quot;&amp;gt;CodePen&amp;lt;/a&amp;gt;.&amp;lt;/span&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;script async src=&quot;https://cpwebassets.codepen.io/assets/embed/ei.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;h1&gt;Step 1: HTML&lt;/h1&gt;
&lt;p&gt;First off, let&apos;s start by writing some HTML.
In this guide, we will use an &lt;code&gt;img&lt;/code&gt; tag as our main object to apply animation.
You can either write the code entirely from scratch or copy the code I wrote below.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;img src=&quot;https://assets.st-note.com/img/1703121447054-We6okqAydF.png?width=800&amp;amp;dpr=2&quot; alt=&quot;sled&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Step 2: CSS&lt;/h1&gt;
&lt;p&gt;You can add shadows to an element(s) by using &lt;code&gt;box-shadow&lt;/code&gt; property. in this guide, I will not explain about this property deeply, but you can check the details on the website pasted below.&lt;/p&gt;
&lt;p&gt;https://developer.mozilla.org/ja/docs/Web/CSS/box-shadow&lt;/p&gt;
&lt;p&gt;Firstly, let&apos;s start writing CSS for default conditions.
Properties that we need to define are &lt;strong&gt;box-shadow and transition&lt;/strong&gt;.
Here is a sample program for the default status styling.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;img{
    transition: all .3s ease-in-out;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With this code, your element(in this case, an image) should look similar to the photo below.&lt;/p&gt;
&lt;p&gt;&amp;lt;img src=&quot;/example.png&quot;  alt=&quot;The finished default styling&quot;/&amp;gt;&lt;/p&gt;
&lt;p&gt;After this, let&apos;s set up the hover animation.
In CSS you can use the &lt;code&gt;transition&lt;/code&gt; property to apply simple animations easily.
The basic way to use transition property is,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;body{
    transition:all /* Duration */ /* Type of animation */;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If we apply this, the code will look something like this.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;img:hover{
    box-shadow: 0 4px 18px rgba(0,0,0,.4);
    transition: all .3s ease-in-out;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now let&apos;s follow step by step on what this code does.
On the first line, the code sets the box shadow to the color rgba(0,0,0,0.4).
Compared to the default style, the hovered style will decrease the transparency of the shadow.&lt;/p&gt;
&lt;p&gt;Secondly, the second line of the code applies ease in our transition for 0.3 seconds, which creates an animated effect of the shadow widening.
By applying both the transition and the box-shadow property in two states, the transition property can successfully create a rich animation without any conflict or issues.&lt;/p&gt;
&lt;h1&gt;Finished code&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;img{
    transition: all .3s ease-in-out;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
img:hover{
    box-shadow: 0 4px 18px rgba(0,0,0,.4);
    transition: all .3s ease-in-out;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;This guide explains the best way to add rich box-shadow animation to your website. Sharing our website through social media platforms will be greatly helpful.
Thank you for reading.&lt;/p&gt;
</content:encoded></item><item><title>What is so good about Godot? -BinaryFish</title><link>https://binary-fish.vercel.app/blog/WhtasGodot.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/WhtasGodot.md/</guid><description>The new GodotEngine explained in simple 3 minutes article</description><pubDate>Thu, 21 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Estimated reading time: &lt;strong&gt;3 minutes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Recently, there was a large news in game dev community which was all about famouse game engine called Unity changing its charging mesurement.
About five years ago, Unity and Unreal Engine were the &lt;strong&gt;top two&lt;/strong&gt; on game dev market. However, the boom of &lt;code&gt;Godot&lt;/code&gt; is changing this fact that was true five years ago.
If you like this article, please consider sharing this on social media platforms.&lt;/p&gt;
&lt;h2&gt;What is Godot Engine🤔？？？&lt;/h2&gt;
&lt;p&gt;Here are main takeaways of this article
The great part of Godot&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Beginner friendly&lt;/li&gt;
&lt;li&gt;Light&lt;/li&gt;
&lt;li&gt;Supportive and active communities&lt;/li&gt;
&lt;li&gt;Completely free&lt;/li&gt;
&lt;li&gt;Supports both 2D and 3D games&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So let&apos;s get into the details.
Godot Engine is a &lt;strong&gt;opensource&lt;/strong&gt; games engine that was released in 2014. Because of how this engine is open-source, it is completely free to use.&lt;/p&gt;
&lt;p&gt;No fees. No payments. No pro subscriptions.&lt;/p&gt;
&lt;p&gt;Furthermore, this game engine offers GDScript(basicaly Python) as a main coding language, which really helps game devs with any levels to code around their project.
Although Godot doesn&apos;t fully support c#, it still has some resources you can use to migrate from Unity.&lt;/p&gt;
&lt;p&gt;With these futures, godot is supported by thousands of game developers &lt;strong&gt;worldwide&lt;/strong&gt;...&lt;/p&gt;
&lt;p&gt;&amp;lt;img src=&quot;/image5.png&quot;  alt=&quot;GodotEditor&quot;/&amp;gt;&lt;/p&gt;
&lt;h2&gt;Things you can do with Godot&lt;/h2&gt;
&lt;p&gt;You can make both 2D and 3D games in Godot. Because it recived a major update 4.0 last year the overall feel of the engine got polished too.&lt;/p&gt;
&lt;p&gt;There is currently no AAA games made with Godot but because of its popularity there might be one soon.&lt;/p&gt;
&lt;p&gt;The video attached below shows mantmajor titles made with Godot. It is intresting and inspiring so watching until the end is &lt;strong&gt;strongly reccomanded&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/UAS_pUTFA7o?si=W5rOJQMFEtPYd_Dj&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; class=&quot;iframe&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;In conclusion, Godot is wonderful game engine despite some of the downsides.  From its friendly and polished quality, you can build games from 2d tradtional tetris to massive 3d open world game.
The link to download the game engine is attached below so please go and download Godot.
Thank you for reading.&lt;/p&gt;
&lt;p&gt;https://godotengine.org/&lt;/p&gt;
</content:encoded></item><item><title>Grammarly vs QuillBot - The ultimate writing assistant app review for free users in 2024</title><link>https://binary-fish.vercel.app/blog/%20grammarlyvsquillbot.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/%20grammarlyvsquillbot.md/</guid><description>Discover the ultimate writing assistant app of 2024 for free users.</description><pubDate>Mon, 21 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Are you looking for the best writing assistant to elevate your writing in 2024?
There are tons of free writing assistant apps, but I belive that the two best and solid options are Grammarly and QuillBot.
But which one is the “ultimate” writing app that everyone should use?
The advantages and disadvantages of every app will be discussed in this article by SnowDingo, along with the ranking’s eventual winner.
Before we compare them, let us take a closer look at each app’s description and details.&lt;/p&gt;
&lt;h2&gt;What is Grammarly?&lt;/h2&gt;
&lt;p&gt;&amp;lt;br/&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Grammarly is an app released in 2009 in Kiev. Now it is a multinational company that hosts offices in some of the most famous cities in the world, like Los Angeles.&lt;/p&gt;
&lt;p&gt;Grammarly’s main feature is its English correction, which identifies a variety of common mistakes made by users.  In addition to this, Grammarly provides several suggestions that allow users to write more clear.&lt;/p&gt;
&lt;p&gt;It is available for downloads on any of the following platforms in 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chrome Extension&lt;/li&gt;
&lt;li&gt;Mac&lt;/li&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;Safari Extension&lt;/li&gt;
&lt;li&gt;IPhone and iPad&lt;/li&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While Grammarly offers most of its basic features for free, its premium plan costs $12 per month. The premium version unlocks tone editing, AI, clarity, engagement suggestions, and more.  Yet since the majority of users use the free version, and this article is focused on each app&apos;s free tier, I will not discuss the premium features.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;What is QuillBot&lt;/h2&gt;
&lt;p&gt;QuillBot is an app that emphasizes AI that was launched in 2017. Similar to Grammarly, QuillBot provides spelling, grammar, and punctuation correction at default.
It is available as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web app-&amp;gt; Visit https://quillbot.com for the app.&lt;/li&gt;
&lt;li&gt;MacOS app&lt;/li&gt;
&lt;li&gt;IOS app&lt;/li&gt;
&lt;li&gt;Android app&lt;/li&gt;
&lt;li&gt;Word add in&lt;/li&gt;
&lt;li&gt;Chrome Extension&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;QuillBot’s premium plan costs $8.33 per month This includes things like unlimited length of text for every tool, generating 500 emails per day, and comparing between different writing tones.&lt;/p&gt;
&lt;h2&gt;Comparision: Which app is the best for free users?&lt;/h2&gt;
&lt;p&gt;There are tons of ways where one stands out than the other, but I’ve tried to rank them by each of these five distinct criteria. Please note that the tick and no are based on free versions. That does not mean it doesn’t have that specific feature in the premium version.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criteria&lt;/th&gt;
&lt;th&gt;Grammarly&lt;/th&gt;
&lt;th&gt;QuillBot&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rephrasing tools&lt;/td&gt;
&lt;td&gt;⛔️&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Desktop and native apps&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;⚠️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple Language Support&lt;/td&gt;
&lt;td&gt;⛔️ (🇺🇸🇬🇧)&lt;/td&gt;
&lt;td&gt;✅ (🇺🇸🇩🇪🇪🇸)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Extension&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;⛔️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Overall&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;As shown in the table, overall QuillBot is more appealing to its users than Grammarly.
Now let’s take a deep look at why I ranked each app like this.&lt;/p&gt;
&lt;h3&gt;Criteria 1: Rephrasing/Paraphrase Tools&lt;/h3&gt;
&lt;p&gt;The first criteria was the rephrasing/paraphrase tool. This one is relatively easy to compare between the two since Grammarly offers only three free rephrasing suggestions per day for free users. In contrast, while paraphrasing in a variety of tones is a paid feature, QuillBot offers its free users limitless paraphrasing in a general and fluent tone.&lt;/p&gt;
&lt;p&gt;This clearly shows that Quillbot is the winner in this field.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Criteria2: Desktop and Native Apps&lt;/h3&gt;
&lt;p&gt;The next part is the desktop and native apps. I tested both apps in the desktop version, but since my mobile devices were too old to install anything, this is mainly for desktop. (Pardon me for neglecting to test on mobile devices.😰)
For this one, Grammarly is the winner for a few reasons. While QuillBot works perfectly in Mac, unlike Grammarly, it doesn’t work on every single app.
There are only a few apps that QuillBot works with: Apple Notes, iMessage, Word, Mail, Pages, and Slack.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Grammarly, on the other hand, functions flawlessly in all apps that have an input field, regardless of operating system. It offers the same features as the web extension version, and it is free to download. The only drawback of Grammarly is its heaviness, which prevents some apps from running smoothly.&lt;/p&gt;
&lt;p&gt;The results are ambigious, but in essence, QuillBot will get 0.5 points and Grammarly will get 1 full point.&lt;/p&gt;
&lt;h3&gt;Criteria 3: Multiple Language Supports&lt;/h3&gt;
&lt;p&gt;While many of these writing assistant apps offer English versions, it is equally important for some users to have multiple language support or billingal support.
For this section, QuillBot is the clear winner since Grammarly only offers suggestions in English.
QuillBot has German, Spanish, and other language support.&lt;/p&gt;
&lt;h3&gt;Criteria 4: Web Extension&lt;/h3&gt;
&lt;p&gt;Even though I knew from the start that both of the apps would receive full points on this section, I wanted to compare it between the two.
Both offer Chrome extensions, but the only difference is that QuillBot supports Microsoft Edge and Grammarly supports Safari.
Both extensions work perfectly, so each gets one point.&lt;/p&gt;
&lt;h3&gt;Criteria 5: AI&lt;/h3&gt;
&lt;p&gt;Lastly, I want to finish the ranking by comparing its AI features.
Since each of the apps has different types of AI, I scored based on the usefulness of the AIs. QuillBot has several AI features that are open to use for any user. Unfortunately, most of the AI features in QuillBot are for premium users. In contrast, Grammarly offers 100 uses for its generic Grammarly AI.
As a result, I chose Grammarly as the winner for this one.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In conclusion, while QuillBot edged out Grammarly by 0.5 points in this comparison, the best writing assistant for you ultimately depends on your specific needs and how you intend to use the tool. For free users, QuillBot offers slightly more features, particularly in paraphrasing and basic features. However, if you opt for the paid versions, both apps provide powerful, comprehensive tools that can support your entire English writing journey.&lt;/p&gt;
&lt;p&gt;Huge thanks to both Grammarly and QuillBot for helping me with writing this article.&lt;/p&gt;
&lt;p&gt;If you find this article helpful, please consider sharing it with your friends on Social Media. Adding your opinion on which one you prefer will definently be wonderful as well! Any support you can provide will largely help me with the continued writing of great articles like this.&lt;/p&gt;
&lt;h2&gt;Sources:&lt;/h2&gt;
&lt;p&gt;Please use these sources to download and try these tools on your own.&lt;/p&gt;
&lt;p&gt;Grammarly Official Website&lt;/p&gt;
&lt;p&gt;http://grammarly.com&lt;/p&gt;
&lt;p&gt;Quillbot Official Website&lt;/p&gt;
&lt;p&gt;http://quillbot.com&lt;/p&gt;
</content:encoded></item><item><title>Guide at making Github profile appealing</title><link>https://binary-fish.vercel.app/blog/post-9.md/</link><guid isPermaLink="true">https://binary-fish.vercel.app/blog/post-9.md/</guid><description>HOW To guide in making your github guide good in 3 minutes.</description><pubDate>Thu, 25 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;In this guide, you will learn how to create a appealing and beatiful Github profile.
Read until the end to make your Github profile 100% better!&lt;/p&gt;
&lt;h2&gt;Question: Why do I have to even care about Github profile page?&lt;/h2&gt;
&lt;p&gt;The reason you should make your profile page appealing is because similar to portfolio, the content of your Github profile page is what people will look to try understand what kind of person you are.  Having great profile &lt;code&gt;user/README.md&lt;/code&gt; file is not required, but it is still something free that you can use to build your reputation.&lt;/p&gt;
&lt;h2&gt;Editing your &lt;code&gt;user/README.md&lt;/code&gt; file&lt;/h2&gt;
&lt;p&gt;For each account, Github gives you access to one README file that could be written as a profile. The content of README file will be displayed on its user&apos;s profile, like the image shown below.&lt;/p&gt;
&lt;p&gt;&amp;lt;img src=&quot;/screenshot-1.png&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;This can be used to tell not only about yourself, but your projects and portfolio as well. The important thing is that this profile page could be written in readme format, meaning that it supports far more variety of content to display than normal Github profile description.&lt;/p&gt;
&lt;h3&gt;Step 1: List out things about yourself.&lt;/h3&gt;
&lt;p&gt;The first step at creating appealing Github profile is to make a list about yourself. This should probably include your main language, goals, visions, and some links to your projects or portfolio.&lt;/p&gt;
&lt;p&gt;You could use list formt &lt;code&gt;- abcd&lt;/code&gt; to display each information in bulleted list form.
Here is a template that you can copy and paste into your own README.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# About ME
I am a young passionate coder, and here are some little facts about me:
- 😎 current status
- 👀 Your intrest/curiocity/field
- 🌱 What you are learning
- 📫 Portfolio/contact information
- 🌟 Additional information(Like your nationality.)
- 💞️ Pronouns(Extra)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Step 2: Use Github Stats to display your Github status&lt;/h3&gt;
&lt;p&gt;This already looks great, but there is another thing that you can put into your Github profile README file.
There is a tool called Github Stats, which allows anyone to put their Github statistics inside your profile.
There are plenty of customization available, but this guide will not go full depth into this so please visit the link below for detiled guide at using this.&lt;/p&gt;
&lt;p&gt;https://github.com/anuraghazra/github-readme-stats&lt;/p&gt;
&lt;h4&gt;Sample&lt;/h4&gt;
&lt;p&gt;Here are some of the sample cards you can copy and paste into your README file.&lt;/p&gt;
&lt;p&gt;Simple:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![GitHub Stats Card](https://github-readme-stats.vercel.app/api?username=username)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dark theme:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![snowdingo&apos;s GitHub stats](https://github-readme-stats.vercel.app/api?username=&quot;username&quot;&amp;amp;show_icons=true&amp;amp;theme=radical)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Gradient:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![snowdingo&apos;s GitHub stats](https://github-readme-stats.vercel.app/api?username=&quot;username&quot;&amp;amp;show_icons=true&amp;amp;theme=ambient_gradient)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Github extra pins:&lt;/p&gt;
&lt;p&gt;(https://github.com/SnowDingo/BinaryFishBlog)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=&quot;username&quot;&amp;amp;repo=binaryfishblog)(https://github.com/SnowDingo/BinaryFishBlog)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Github language chart:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=&quot;username&quot;&amp;amp;langs_count=5)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Top language without chart:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=&quot;username&quot;&amp;amp;hide_progress=true)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Step 3: Final adjustments&lt;/h3&gt;
&lt;p&gt;For final adjustments, make sure to check for any speeling or grammar erros in your profile. Futhermore, you can try adding some emojis if your README looks too professional.&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;This guide explained how to make your Github profile appealing in 3 simple steps. Again, Github stats has plenty of things to customize so we reccomand readingg their guide onece.
Sharing our website through social media platforms will be greatly helpful.
Thank you for reading.&lt;/p&gt;
</content:encoded></item></channel></rss>