<?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: stanleyluong</title>
    <description>The latest articles on DEV Community by stanleyluong (@stanleyluong).</description>
    <link>https://dev.to/stanleyluong</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%2F262391%2F3b0b4394-7066-4c2d-8669-42e018e26d79.jpg</url>
      <title>DEV Community: stanleyluong</title>
      <link>https://dev.to/stanleyluong</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stanleyluong"/>
    <language>en</language>
    <item>
      <title>Stan's Links #3</title>
      <dc:creator>stanleyluong</dc:creator>
      <pubDate>Sat, 28 Dec 2019 23:05:37 +0000</pubDate>
      <link>https://dev.to/stanleyluong/stan-s-links-3-35b9</link>
      <guid>https://dev.to/stanleyluong/stan-s-links-3-35b9</guid>
      <description>&lt;p&gt;&lt;a href="https://www.scrumguides.org/scrum-guide.html#acknowledgements"&gt;https://www.scrumguides.org/scrum-guide.html#acknowledgements&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bl.ocks.org/taigereye/10a79a8d5b18a7c3d2833e79231351d8"&gt;https://bl.ocks.org/taigereye/10a79a8d5b18a7c3d2833e79231351d8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/js/js_json_arrays.asp"&gt;https://www.w3schools.com/js/js_json_arrays.asp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/49481934/fetching-local-json"&gt;https://stackoverflow.com/questions/49481934/fetching-local-json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.quora.com/In-JavaScript-how-do-I-read-a-local-JSON-file"&gt;https://www.quora.com/In-JavaScript-how-do-I-read-a-local-JSON-file&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/d3/d3"&gt;https://github.com/d3/d3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=nzshmMlOuwI"&gt;https://www.youtube.com/watch?v=nzshmMlOuwI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://d3js.org/"&gt;https://d3js.org/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Stan's Links #2</title>
      <dc:creator>stanleyluong</dc:creator>
      <pubDate>Mon, 02 Dec 2019 11:39:00 +0000</pubDate>
      <link>https://dev.to/stanleyluong/stan-s-links-2-2mb4</link>
      <guid>https://dev.to/stanleyluong/stan-s-links-2-2mb4</guid>
      <description>&lt;p&gt;&lt;a href="https://help.github.com/en/github/importing-your-projects-to-github/adding-an-existing-project-to-github-using-the-command-line"&gt;https://help.github.com/en/github/importing-your-projects-to-github/adding-an-existing-project-to-github-using-the-command-line&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://support.apple.com/en-us/HT201361"&gt;https://support.apple.com/en-us/HT201361&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/react-images-upload"&gt;https://www.npmjs.com/package/react-images-upload&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.competa.com/blog/storing-javascript-object-localstorage/"&gt;https://www.competa.com/blog/storing-javascript-object-localstorage/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=bebuiaSKtU4"&gt;https://www.youtube.com/watch?v=bebuiaSKtU4&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Using Imgur API with Ruby on Rails, Javascript, and React</title>
      <dc:creator>stanleyluong</dc:creator>
      <pubDate>Mon, 02 Dec 2019 11:14:31 +0000</pubDate>
      <link>https://dev.to/stanleyluong/using-imgur-api-with-ruby-on-rails-javascript-and-react-3g40</link>
      <guid>https://dev.to/stanleyluong/using-imgur-api-with-ruby-on-rails-javascript-and-react-3g40</guid>
      <description>&lt;p&gt;Ruby on Rails backend:&lt;/p&gt;

&lt;p&gt;For my bug tracking app, users are able to upload screenshots of bugs.&lt;/p&gt;

&lt;p&gt;My model "bugs" has an "attachments" table. Instead of storing a blob/image/base64 data... attachments are just an array of strings. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--slb5Uq7d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/r8cefg0daayegbgeonqp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--slb5Uq7d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/r8cefg0daayegbgeonqp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the "bugs" controller, I set the attachments to an array. Make sure the array is the LAST one in the controller or it won't work.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bWfVZ5c6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gvc7wuseydsan0c7szjk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bWfVZ5c6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gvc7wuseydsan0c7szjk.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React JS frontend:&lt;/p&gt;

&lt;p&gt;I used the ImageUploader component from 'react-images-upload'&lt;br&gt;
You can find that here: &lt;a href="https://www.npmjs.com/package/react-images-upload"&gt;https://www.npmjs.com/package/react-images-upload&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My onDrop looks like this: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--b8z-sBN8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ubc1mnq6ipo3jc3dgi1l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--b8z-sBN8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ubc1mnq6ipo3jc3dgi1l.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Replace clientId with your own clientId that you get from imgur. All you need to begin posting to their API is your own clientId. You don't need to do all that OAuth stuff unless you need to for auth purposes for your app. It might take a few minutes or a few days to get your clientId. Make sure you include that space in clientId in your headers: 'Authorization': 'Client-ID '+ clientId&lt;/p&gt;

&lt;p&gt;The response you get from imgur after posting to their API will include the link. Upon receiving the response I post that link as a string to my Rails backend.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aF7O1dDX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/uaufxfvr49gc01pp2baw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aF7O1dDX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/uaufxfvr49gc01pp2baw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>imgur</category>
      <category>rails</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Seed Data for SET card game
</title>
      <dc:creator>stanleyluong</dc:creator>
      <pubDate>Sat, 30 Nov 2019 02:24:35 +0000</pubDate>
      <link>https://dev.to/stanleyluong/seed-data-for-set-card-game-19ld</link>
      <guid>https://dev.to/stanleyluong/seed-data-for-set-card-game-19ld</guid>
      <description>&lt;p&gt;For a project at school, I worked on a SET card game. One challenge I had was getting a database of cards. The first idea I had was to use google images to find all 81 cards. It was hard to find a collection of all 81 cards as individual images. As you can see from the screenshot below there weren’t any.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f4cmgxSI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/aae1hon31anpg9wguhey.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f4cmgxSI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/aae1hon31anpg9wguhey.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, I considered taking a picture of every single card with my phone. That idea was rejected because it would be too much work and lower quality.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s1Og-0wz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yjwrst323prresglit9o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s1Og-0wz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yjwrst323prresglit9o.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After searching Google Images more, I did find a single image with all 81 cards.&lt;/p&gt;

&lt;p&gt;I tried to crop all the images using command+shift+4 to screenshot but that was taking too long too. I was advised to try slicing images using canvas and pointing coordinates to each card.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K7zm0doG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/emqt98g10f5q8aa1vheo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K7zm0doG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/emqt98g10f5q8aa1vheo.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_nDIwgg7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ln4952hq5wid5rqowjie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_nDIwgg7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ln4952hq5wid5rqowjie.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This also took too much work and was a headache. &lt;/p&gt;

&lt;p&gt;I thought I had a huge breakthrough when I discovered an image splitter. The first one I used split images into squares for Instagram.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1joYGg5M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/3j9tst9ow8bjenouu4m4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1joYGg5M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/3j9tst9ow8bjenouu4m4.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The card images were rectangular and needed to be square so it wouldn’t be off-centered so I changed the resolution and stretched the card images horizontally. &lt;/p&gt;

&lt;p&gt;It sort of worked but cards were still off-centered.&lt;/p&gt;

&lt;p&gt;After looking around some more I stumbled upon a public GitHub repo that already had all the card images so I just used those instead.&lt;/p&gt;

&lt;p&gt;TLDR: Look harder for images before making your own.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>stan's links</title>
      <dc:creator>stanleyluong</dc:creator>
      <pubDate>Sat, 30 Nov 2019 01:42:42 +0000</pubDate>
      <link>https://dev.to/stanleyluong/stan-s-links-4idj</link>
      <guid>https://dev.to/stanleyluong/stan-s-links-4idj</guid>
      <description>&lt;p&gt;&lt;a href="https://flatironschool.com/career-services-commitment/"&gt;https://flatironschool.com/career-services-commitment/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://pages.github.com/"&gt;https://pages.github.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://semantic-ui.com/elements/icon.html#health"&gt;https://semantic-ui.com/elements/icon.html#health&lt;/a&gt;&lt;br&gt;
&lt;a href="https://react.semantic-ui.com/usage/"&gt;https://react.semantic-ui.com/usage/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://ctrlq.org/code/20526-javascript-image-uploader"&gt;https://ctrlq.org/code/20526-javascript-image-uploader&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/react-images-upload"&gt;https://www.npmjs.com/package/react-images-upload&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/react-slideshow-image"&gt;https://www.npmjs.com/package/react-slideshow-image&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>New Tech Job Fair discount code: flatironschool</title>
      <dc:creator>stanleyluong</dc:creator>
      <pubDate>Thu, 31 Oct 2019 22:10:16 +0000</pubDate>
      <link>https://dev.to/stanleyluong/new-tech-job-fair-discount-code-flatironschool-182e</link>
      <guid>https://dev.to/stanleyluong/new-tech-job-fair-discount-code-flatironschool-182e</guid>
      <description>&lt;p&gt;I wasn’t planning to go but everyone else in the cohort was going. How could I decline if it was 50% off? It still felt scammy to pay a $5 fee to talk to possible employers. Shouldn’t employers be paying to speak to candidates like us instead? Alas, I had to go with the flow to avoid being left behind.&lt;/p&gt;

&lt;p&gt;Dress Code&lt;/p&gt;

&lt;p&gt;People were worried about how they would look. It reminded me of something someone once said about the dress code. “Don’t dress up for tech interviews: the more you dress up, the more they hate you.” I relayed that story to my brother and he responded with a story about a guy at work who was probably the best coder there and he wore a suit to work every day. I guess sometimes you can judge a book by its cover and sometimes you can’t.&lt;/p&gt;

&lt;p&gt;Preparation&lt;/p&gt;

&lt;p&gt;I didn’t dress up though. I didn’t even work on my resume. I didn’t know it was needed until the last minute when I was registering on the fair website. During all this, I felt overwhelmed. I have less than a dozen LinkedIn connections while others in my cohort have over 500. It might be a good idea to bring business cards also next time.&lt;/p&gt;

&lt;p&gt;Arrival&lt;/p&gt;

&lt;p&gt;There were multiple times you could schedule your own arrival: 4-5pm, 5-6pm, and 6-7pm. I figured that the early bird would get the worm so I picked the earliest time available which was 4pm. When I got there the place was already packed. I didn’t know job fairs had lines like this. It reminded me of Disneyland but for a corporate rat race. Nintendo had the longest line. By 6pm the lines were about as half as long. I should have come later. The only reason to go early is to get free stuff. If you want swag, go early. If you want to avoid long lines to talk to employers at their booths then go later. If you go right on time you’ll just end up at the end of a long line of people who arrived early.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Update your resume/portfolio&lt;br&gt;
Print resume&lt;br&gt;
Get business cards&lt;br&gt;
Dress up but not TOO up&lt;br&gt;
Don’t go too early.&lt;/p&gt;

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