<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sim Greenbaum</title>
    <description>The latest articles on DEV Community by Sim Greenbaum (@gbs4ever).</description>
    <link>https://dev.to/gbs4ever</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F211002%2Fd6cf6d30-2c72-44b3-809a-3ab8d508bdbb.jpeg</url>
      <title>DEV Community: Sim Greenbaum</title>
      <link>https://dev.to/gbs4ever</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gbs4ever"/>
    <language>en</language>
    <item>
      <title>Node.js VS Rails?</title>
      <dc:creator>Sim Greenbaum</dc:creator>
      <pubDate>Sun, 01 Dec 2019 01:10:31 +0000</pubDate>
      <link>https://dev.to/gbs4ever/node-js-vs-rails-4b87</link>
      <guid>https://dev.to/gbs4ever/node-js-vs-rails-4b87</guid>
      <description>&lt;p&gt;Why is node.js so popular as a back-end server and what is so bad about Rails? You are right a small app for a local shop so they could do some marketing, not a full eCommerce page most probably Rails is fine. You won’t be getting that many hits and your costs will be minimal. However think Twitter or even a small e-commerce website if you will be using a blocking I/O which means the lines are shared and everything runs synchronously, the way Active Record(an ORM) works. When we query the database while we wait for a response the server won’t process a new request on the other hand non-blocking I/O when we will query the database we wait for a response or as we call them today promises. While we are waiting we can move on to the next request till we get a response. Think of a checkout counter at the grocery we wait for the cashier to finish with the person in front of us who needs a price check on an item even if we only have two items (seems like a waste of time).&lt;/p&gt;

&lt;p&gt;With this architecture, we have the ability to build a bigger and better system. In addition, Node.js is lightweight and more efficient. Scalability and server costs are the companies’ number one priority. If the site will be slow it makes less money, if the hosting server CPU costs are high their profit margin will be smaller. Being a developer is not just about being able to write or even debug code. You need to understand things on a deeper level as this will help you decide what technologies are a good fit for each project.&lt;/p&gt;

&lt;p&gt;All the best,&lt;/p&gt;

&lt;p&gt;Simcha Greenbaum&lt;/p&gt;

</description>
      <category>rails</category>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Programing languages</title>
      <dc:creator>Sim Greenbaum</dc:creator>
      <pubDate>Sun, 03 Nov 2019 22:38:50 +0000</pubDate>
      <link>https://dev.to/gbs4ever/programing-languages-20jf</link>
      <guid>https://dev.to/gbs4ever/programing-languages-20jf</guid>
      <description>&lt;p&gt;Learning any programming language is not just about the syntax but more about what is really going on under the hood. pass by value, pass by reference, mutable or immutable. Why is this so important?&lt;/p&gt;

&lt;p&gt;You might say why, I can write and read the code? If you don’t understand what is really going on you will be very confused by many of the bugs and will even have trouble finding them.&lt;/p&gt;

&lt;p&gt;Mutable - the value can be changed&lt;br&gt;
Immutable - the value cant be changed&lt;br&gt;
Pass by value - the variable contains the value&lt;br&gt;
Pass by reference - the variable just points to a place in memory that holds that piece of data.&lt;/p&gt;
&lt;h2&gt;
  
  
  Mutable/immutable
&lt;/h2&gt;

&lt;p&gt;In Ruby, strings can be mutated this means we can directly change the string, let’s say there is a spelling mistake in the string you can just access it and make a direct change&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;string = "hellyworld"&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;



&lt;p&gt;&lt;code&gt;string[4] = "o"&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;



&lt;p&gt;&lt;code&gt;stirng =&amp;gt; "helloworld"&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;In python a string is immutable and can't be changed if we try to run the above code we will get an error&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;TypeError: 'str' object does not support item assignment&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;which means strings cant to be changed. We would need to slice and copy what we want and add it to a new variable&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;newString = string[:4] +"o" + string[5:]&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;



&lt;p&gt;&lt;code&gt;newStirng &amp;gt;&amp;gt;&amp;gt; "helloworld"&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Pass by value/ Pass by reference
&lt;/h2&gt;

&lt;p&gt;In python, a variable that has an immutable (can't be changed) the value is actually saved inside the variable and if we copy one variable to another the original variable will be on touched and the addition will only affect the new variable.&lt;/p&gt;

&lt;p&gt;For example&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;addString = newStirng&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;



&lt;p&gt;&lt;code&gt;addString + " simcha "&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;This will return&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt;' helloworld simcha'&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;But if we check the old variable,&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;newStirng &amp;gt;&amp;gt;&amp;gt; 'helloworld'&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;However, a List in python which is mutable the variable is just a reference to a place in memory that holds that data so saving it to a new variable has just created a new reference to that data. Think of it like this, in Windows sometimes we create an icon on our desktop, a shortcut to a file path for quick access. If we would make a copy of the icon we are just making a copy of the shortcut, not the file. The same thing in python with mutable data variables are only a reference or a shortcut to that data. The reason for this is a list can hold thousands of pieces of data and we might be changing only one of them with index lookup&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;myList[35] = “change me”&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Instead of loading the whole list every time we call the variable, there is just a reference that will only look at that index speeding up the execution. These concepts are not just a simple syntax but to truly understand the mechanics behind a language. If you want to be a true good developer make sure you understand these concepts well.&lt;/p&gt;

&lt;p&gt;Stay tuned for more,&lt;/p&gt;

&lt;p&gt;All the best,&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.simchagreenbaum.com"&gt;Simcha Greenbaum&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title> Junior Developer</title>
      <dc:creator>Sim Greenbaum</dc:creator>
      <pubDate>Sun, 27 Oct 2019 03:18:22 +0000</pubDate>
      <link>https://dev.to/gbs4ever/junior-developer-6cp</link>
      <guid>https://dev.to/gbs4ever/junior-developer-6cp</guid>
      <description>&lt;p&gt;I will change from my normal technical blog style and give some tips that apply to all levels of devs.&lt;/p&gt;

&lt;p&gt;Recently I was hired to build a few projects where the technology and requirements where out of my comfort zone my initial reaction was to turn it down let the more experienced developers who are “better” at it. I spoke it over with a good &lt;a href="https://twitter.com/yechielk"&gt;friend&lt;/a&gt;/mentor and he showed me that I can build much more if I would believe in myself. All these  “thoughts” are just imposter syndrome sinking in and destroying you. Yes, you are a Junior Developer and should always listen to what the experienced devs have to say because they actually do know more. &lt;strong&gt;However that doesn’t mean you don’t know how to do it,&lt;/strong&gt; you might have to read the docs a little more but stop &lt;strong&gt;you do have mad skills!&lt;/strong&gt; .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imgur.com/lAqRK9j"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jR4aNtNd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/lAqRK9j.jpg" title="source: imgur.com"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Top tips to succeed as a  Junior Developer,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Think&lt;/li&gt;
&lt;li&gt;Think again what needs to be done.&lt;/li&gt;
&lt;li&gt;Don’t be embarrassed to ask for help even if it might seem obvious.&lt;/li&gt;
&lt;li&gt;Know what your skills are .&lt;/li&gt;
&lt;li&gt;What areas can your skills use improvement.&lt;/li&gt;
&lt;li&gt;Dont just copy and paste code , know what your code should be doing.&lt;/li&gt;
&lt;li&gt;Find a friend/mentor to help you grow.&lt;/li&gt;
&lt;li&gt;If a senior Dev is telling you something that you know your right, don't be push-over stay firm but  be respectful
there is a chance you might only &lt;strong&gt;think your right but are very wrong&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Read Docs not just Stack overflow, you will learn alot more that way.&lt;/li&gt;
&lt;li&gt;Don’t let anyone ever make you feel your  worth less because you don’t know XYZ &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To the last one, my response to this is always adding the word &lt;strong&gt;YET&lt;/strong&gt;, it usually stops people in their tracks because you have just made it clear to them you not scared to take on new projects/skills. &lt;/p&gt;

&lt;p&gt;All the best,&lt;/p&gt;

&lt;p&gt;Simcha Greenbaum&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WSL -Windows Subsystem for Linux</title>
      <dc:creator>Sim Greenbaum</dc:creator>
      <pubDate>Mon, 12 Aug 2019 15:43:17 +0000</pubDate>
      <link>https://dev.to/gbs4ever/wsl-windows-subsystem-for-linux-4ekp</link>
      <guid>https://dev.to/gbs4ever/wsl-windows-subsystem-for-linux-4ekp</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update!!   WSL 2.0 has arrived and it allows users to run WSL1 and WSL 2 at the same time. Lets see how&lt;br&gt;
 it works &lt;a href="https://docs.microsoft.com/en-us/windows/wsl/wsl2-about" rel="noopener noreferrer"&gt;see more&lt;/a&gt;&lt;/strong&gt; &lt;br&gt;
​&lt;br&gt;
It seems that most programmers love the Mac and refuse to look at a PC, which is true, as mac comes preinstalled with a lot of stuff to set up a local environment. However, you might need to write some programs that are only windows based (.net framework) or your future client needs software for his business that only works on a pc.&lt;br&gt;
​&lt;br&gt;
&lt;strong&gt;Now what?&lt;/strong&gt; &lt;br&gt;
But windows doesn't have bash or many of the  Linux based commands, so I need to stay on a mac which is Unix based. Well, we could try a dual-boot or a VirtualBox on windows, I think just mentioning those can make all of us go mad !! &lt;br&gt;
​&lt;br&gt;
Well, Microsoft in  Windows 10 has figured it out with  WSL -Windows Subsystem for Linux. I won't explain all the boring stuff but basically, it lets us install Ubuntu and use Linux based commands, programming language interpreters like Ruby and Python and a bunch of other cool stuff. We get the best of both worlds!!!&lt;br&gt;
​&lt;br&gt;
&lt;a href="https://imgur.com/JxW1PVn" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FJxW1PVnh.png" title="source: imgur.com"&gt;&lt;/a&gt;&lt;br&gt;
​&lt;br&gt;
​&lt;br&gt;
 We still need to understand how this works, basically, there is a connection or a &lt;em&gt;tunnel&lt;/em&gt; from the MNT directory in Linux to the C:  drive in windows. But your Linux user name and programs are in the home directory of Linux.  There is one very important point to keep in mind is we want to use this setup only as a &lt;em&gt;one-way street&lt;/em&gt;. We should only store our projects and files in our windows directory, &lt;strong&gt;we use Linux to work or translate those files&lt;/strong&gt;(our gems and Linux codes would be saved in Linux home Dir)In newer builds of win 10 they did open it to a 2 way street, but that can get very confusing very fast. &lt;a href="https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/" rel="noopener noreferrer"&gt;For more info click here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imgur.com/Qrt9iwU" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FQrt9iwUl.png" title="source: imgur.com"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;​&lt;br&gt;
​&lt;br&gt;
So to recap we only use Linux to operate on our Windows files, therefore our text editor and most of the programs we use we should only install the windows version. If you &lt;a href="https://github.com/micahshute/wsl-setup" rel="noopener noreferrer"&gt;click here&lt;/a&gt; it gives you step by step instructions on how to get it all set up and you can do your learn.co labs on a local environment. One last thing to keep in mind if you have more than one hard drive or a partitioned  hard drive as of now, &lt;strong&gt;you can only use bash on your c: drive where your main OS lives.&lt;/strong&gt;&lt;br&gt;
​&lt;br&gt;
​&lt;br&gt;
​&lt;br&gt;
Coding can be fun and frustrating at the same time ,sounds weird like either you like it or you hate it. Well welcome to be being a true developer, the frustration is our minds trying to learn and retain a new concepts and the fun comes from seeing how much we can do with programming. &lt;strong&gt;To all future dev’s ,do not I repeat do not let the frustration kill that love and passion you have for coding !! As you move along hopefully there will be less frustration.&lt;/strong&gt;&lt;br&gt;
​&lt;br&gt;
​&lt;br&gt;
Signing off&lt;br&gt;
​&lt;br&gt;
&lt;strong&gt;SIM&lt;/strong&gt;&lt;br&gt;
​&lt;br&gt;
​&lt;br&gt;
​&lt;br&gt;
Links:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/micahshute/wsl-setup" rel="noopener noreferrer"&gt;Micahshute wsl-setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://maker.pro/linux/tutorial/basic-linux-commands-for-beginners" rel="noopener noreferrer"&gt;Basic linux commands&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10" rel="noopener noreferrer"&gt;Microsoft&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;​&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
