These are chat archives for FreeCodeCamp/Help

20th
Oct 2017
knight2
@knight2
Oct 20 2017 00:00
@LuxSeraphim why not use codepen.io?
Keri
@LuxSeraphim
Oct 20 2017 00:00
Eh.... idk XD
Good question XD
Kyle Holm
@thekholm80
Oct 20 2017 00:00
@LuxSeraphim did you link in the font awesome library?
Keri
@LuxSeraphim
Oct 20 2017 00:01

I have this up at the top:

<link rel="stylesheet" href="maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"/>

Kyle Holm
@thekholm80
Oct 20 2017 00:04
weird
i remember having to use aria-hidden: true or something like that with font awesome
Moisés Man
@moigithub
Oct 20 2017 00:05
add https or http to ur link
Kyle Holm
@thekholm80
Oct 20 2017 00:05
trying to find where i used it
@moigithub i've got it in my jsbin right now and it's not working
Sorin Ruse
@sorinr
Oct 20 2017 00:05
@LuxSeraphim try giving also the protocol http/https like https://maxcdn........
knight2
@knight2
Oct 20 2017 00:06
<link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
knight2
@knight2
Oct 20 2017 00:06
something like that
@thekholm80 thoughts on namesilo?
seems like cheaper version of namecheap.
Kyle Holm
@thekholm80
Oct 20 2017 00:08
@knight2 never used it
i host my react-only projects on firebase and my full stack stuff on heroku
but i don't intend on anyone ever really using any of it
and i just use the urls they give me, no custom domain
Keri
@LuxSeraphim
Oct 20 2017 00:09
@knight2 it worked~!
Thanks so much~!
knight2
@knight2
Oct 20 2017 00:09
@LuxSeraphim Nice! Using codepen.io will be good too since you'll be able to send us exactly what you're doing
@thekholm80 XD registering some new domains... options... Next Discount: 49 more registrations
Kyle Holm
@thekholm80
Oct 20 2017 00:12
i'm glad i've never gone down that rabbit hole. I've heard horror stories of people searching for a domain, getting a quote, then finding that some companies automatically buy domains people search for so they can jack up the price and resell them (like godaddy, I think?)
korzo
@korzo
Oct 20 2017 00:14
@thekholm80 yep, that's true.
Also if you buy domain and later let it expire, they will buy domain and spam you for next x years
Kyle Holm
@thekholm80
Oct 20 2017 00:15
@korzo i'm letting the domain on my blog lapse, i guess i'll have that to look forward to
knight2
@knight2
Oct 20 2017 00:15
@thekholm80 Oh no, the website is awesome. Namesilo looks like cheapest + most legit option out there. That discount is just some extra thing
korzo
@korzo
Oct 20 2017 00:17
@thekholm80 If you had the domain for more than year and site has some backlinks, maybe try to sell it on flippa or other service.
Kyle Holm
@thekholm80
Oct 20 2017 00:17
that sounds like work
Keri
@LuxSeraphim
Oct 20 2017 00:35
Is it better to use the separate css tab, or is putting the stuff in <style></style> fine?
Kyle Holm
@thekholm80
Oct 20 2017 00:37
in codepen? use the css tab
Keri
@LuxSeraphim
Oct 20 2017 00:42
Okay ^^
Keri
@LuxSeraphim
Oct 20 2017 00:53

Oooookay, so I tried moving stuff from the style on my HTML tab to the CSS tab and it didn't carry over my stuff except for the green border around the cat image;;

HTML tab:

<style>
h2 {
font-family: Lobster, Monospace;
}

.thick-green-border {
border-color: green;
border-width: 10px;
border-style: solid;
border-radius: 50%;
}
body {
background-color: silver;

}

</style>

Then deleted that and put this in the CSS tab:

h2 {
font-family: Lobster, Monospace;
}

.thick-green-border {
border-color: green;
border-width: 10px;
border-style: solid;
border-radius: 50%;
}
body {
background-color: silver;

}

is confuzzled

Kyle Holm
@thekholm80
Oct 20 2017 00:59
can you give us the link to your pen?
Keri
@LuxSeraphim
Oct 20 2017 00:59
How do I do that?
Kyle Holm
@thekholm80
Oct 20 2017 01:00
copy the link from your browser and paste it here
Aha;;;;
So like, see, I have it working fine in the <style></style> section, but when I tried to put it in CSS earlier, it didn't work, except for the border;;
Kyle Holm
@thekholm80
Oct 20 2017 01:01
your css box is empty?
Keri
@LuxSeraphim
Oct 20 2017 01:01
Well yeah, I moved the stuff back because it didn't work;;
Kyle Holm
@thekholm80
Oct 20 2017 01:02
i just cut this from your html box and pasted it in the css box and it worked fine:
h2 {
    font-family: Lobster, Monospace;
  }

  .thick-green-border {
    border-color: green;
    border-width: 10px;
    border-style: solid;
    border-radius: 50%;
  }
  body {
  background-color: silver;

  }
Keri
@LuxSeraphim
Oct 20 2017 01:02
Whatttttt, I just did it now and it still isn't doing it for me ;;~;;
there's my fork
Keri
@LuxSeraphim
Oct 20 2017 01:03
See, but the background is supposed to be silver and the h2 font is supposed to be some kind of lobster thing
Like, if you put it back in as style on the HTML tab, it sets the background and font properly.
Kyle Holm
@thekholm80
Oct 20 2017 01:05
something is taking priority
body {
    font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size: 14px;
    line-height: 1.42857143;
    color: #333;
    background-color: #fff;
}

bootstrap.min.css:5
body {
    margin: 0;
}

body {
    background-color: silver;
}
looks like it's bootstrap
Keri
@LuxSeraphim
Oct 20 2017 01:07
So bootstrap is doin' something funky?
Kyle Holm
@thekholm80
Oct 20 2017 01:07
yep
try adding
body {
    background-color: silver !important;
}
Keri
@LuxSeraphim
Oct 20 2017 01:07
Hm....
  • throws !important everywhere*
XDDD
I was just thinking that XD
Kyle Holm
@thekholm80
Oct 20 2017 01:08
!important isn't a good solution, but it helps you see the problem
Keri
@LuxSeraphim
Oct 20 2017 01:09
How does it help me see the problem? Like it shows me what's being overridden somewhere?
Kyle Holm
@thekholm80
Oct 20 2017 01:10
in this case it shows you your css is where it's supposed to be, so the problem is not that you put the css in the css box
Keri
@LuxSeraphim
Oct 20 2017 01:14
So the problem is somewhere within the html....hm.....
Kyle Holm
@thekholm80
Oct 20 2017 01:14
the problem is that bootstrap has defined css for <body> that is taking precedence over your css
Moisés Man
@moigithub
Oct 20 2017 01:15
move ur external style links inside pen settings
html-> "stuff for head"
...problem is codepen loading order
Keri
@LuxSeraphim
Oct 20 2017 01:19
Ohhhhh, cool! Thanks! @moigithub
CamperBot
@camperbot
Oct 20 2017 01:19
luxseraphim sends brownie points to @moigithub :sparkles: :thumbsup: :sparkles:
:star2: 3681 | @moigithub |http://www.freecodecamp.com/moigithub
saiwill
@saiwill
Oct 20 2017 02:49
<style>
body {
background:black;
color:green;}
<h1>hello world</h1>
</style>
Henry
@GitHub-Henry
Oct 20 2017 02:50
eightball are inline styles in style?
CamperBot
@camperbot
Oct 20 2017 02:50
@GitHub-Henry :8ball: you may rely on it :sparkles:
korzo
@korzo
Oct 20 2017 02:50
@saiwill <h1>hello world</h1> have to be after the </style>
Henry
@GitHub-Henry
Oct 20 2017 02:51
not sure i agree with eightball on that one
saiwill
@saiwill
Oct 20 2017 02:51
thanks
panda
@pandaxsj
Oct 20 2017 02:53
hi
I'm new here
Henry
@GitHub-Henry
Oct 20 2017 02:55
hello
宋小健
@jon011
Oct 20 2017 03:25
Why is it wrong? <style> h2 {color: blue;}
</style>
Henry
@GitHub-Henry
Oct 20 2017 03:25
looks good
宋小健
@jon011
Oct 20 2017 03:26
But the error is suggested
Henry
@GitHub-Henry
Oct 20 2017 03:26
what is the error
宋小健
@jon011
Oct 20 2017 03:27
wrong
Henry
@GitHub-Henry
Oct 20 2017 03:27
what is the error message
宋小健
@jon011
Oct 20 2017 03:56
ok,thanks
heroiczero
@heroiczero
Oct 20 2017 03:59
@GitHub-Henry @thekholm80 @moigithub @sjames1958gm @DarrenfJ @korzo @daddycardona @Manish-Giri @khaduch @longnt80 TY for the help you are giving to Help channels.
CamperBot
@camperbot
Oct 20 2017 03:59
heroiczero sends brownie points to @github-henry and @thekholm80 and @moigithub and @sjames1958gm and @darrenfj and @korzo and @daddycardona and @manish-giri and @khaduch and @longnt80 :sparkles: :thumbsup: :sparkles:
:cookie: 401 | @daddycardona |http://www.freecodecamp.com/daddycardona
:star2: 1521 | @thekholm80 |http://www.freecodecamp.com/thekholm80
:star2: 3682 | @moigithub |http://www.freecodecamp.com/moigithub
:star2: 2157 | @darrenfj |http://www.freecodecamp.com/darrenfj
:cookie: 401 | @github-henry |http://www.freecodecamp.com/github-henry
:cookie: 644 | @korzo |http://www.freecodecamp.com/korzo
:star2: 3382 | @khaduch |http://www.freecodecamp.com/khaduch
:star2: 8585 | @sjames1958gm |http://www.freecodecamp.com/sjames1958gm
:cookie: 603 | @longnt80 |http://www.freecodecamp.com/longnt80
:star2: 6666 | @manish-giri |http://www.freecodecamp.com/manish-giri
Long Nguyen
@longnt80
Oct 20 2017 04:03
@heroiczero thank you
CamperBot
@camperbot
Oct 20 2017 04:03
longnt80 sends brownie points to @heroiczero :sparkles: :thumbsup: :sparkles:
:star2: 1906 | @heroiczero |http://www.freecodecamp.com/heroiczero
Henry
@GitHub-Henry
Oct 20 2017 04:07
@heroiczero hello, ty for the brownies
CamperBot
@camperbot
Oct 20 2017 04:07
github-henry sends brownie points to @heroiczero :sparkles: :thumbsup: :sparkles:
:star2: 1907 | @heroiczero |http://www.freecodecamp.com/heroiczero
刘俊波
@cutemeeting
Oct 20 2017 04:21
我被墙了,无法看到右边的视频,求助
怎么翻墙
Ken Haduch
@khaduch
Oct 20 2017 04:22
@LuxSeraphim - you can always get interesting information from the css-tricks website. https://css-tricks.com/when-using-important-is-the-right-choice/
@heroiczero @DarrenfJ - thanks for the brownies yesterday... hope to be back on line today, but just got to my destination after a day of driving, so we'll see... in the meanwhile, happy coding and thanks for the coding help...
CamperBot
@camperbot
Oct 20 2017 04:24
khaduch sends brownie points to @heroiczero and @darrenfj :sparkles: :thumbsup: :sparkles:
:star2: 1908 | @heroiczero |http://www.freecodecamp.com/heroiczero
:star2: 2158 | @darrenfj |http://www.freecodecamp.com/darrenfj
姜一帆
@OutisJM
Oct 20 2017 05:05
how to create a script
Fabien SHAN
@X140hu4
Oct 20 2017 05:14
@OutisJM Can you be more specific?
Darren
@DarrenfJ
Oct 20 2017 06:34
thanks back atcha @heroiczero @khaduch
CamperBot
@camperbot
Oct 20 2017 06:34
darrenfj sends brownie points to @heroiczero and @khaduch :sparkles: :thumbsup: :sparkles:
:star2: 1911 | @heroiczero |http://www.freecodecamp.com/heroiczero
:star2: 3384 | @khaduch |http://www.freecodecamp.com/khaduch
Darren
@DarrenfJ
Oct 20 2017 06:35
:D
gishy1
@gishy1
Oct 20 2017 14:18
hello world need help
image.png
Fabien SHAN
@X140hu4
Oct 20 2017 14:19
Write your question, it sometimes help to get a better idea of your problem. sometimes you may find the answer
gishy1
@gishy1
Oct 20 2017 14:20
image.png
Stephen James
@sjames1958gm
Oct 20 2017 14:21
@gishy1 sort modifies the array it is sorting so assignment is not needed.
Also look at what you are doing to arr with that sort statement.
gishy1
@gishy1
Oct 20 2017 14:22
@sjames1958gm yes but if i say return it will just return
Stephen James
@sjames1958gm
Oct 20 2017 14:22
This message was deleted
gishy1
@gishy1
Oct 20 2017 14:23
i needed to house the arrays in something
Stephen James
@sjames1958gm
Oct 20 2017 14:23
@gishy1 the arrays are already in arr - you can sort them in place
gishy1
@gishy1
Oct 20 2017 14:24
so if i say return they return back into arr?
@sjames1958gm
as in return b-a;
Stephen James
@sjames1958gm
Oct 20 2017 14:24
@gishy1 Yes, back into arr[i]
gishy1
@gishy1
Oct 20 2017 14:25
@sjames1958gm not arr?
Stephen James
@sjames1958gm
Oct 20 2017 14:25
@gishy1 Well arr[i] is an array inside of arr so yes into arr
gishy1
@gishy1
Oct 20 2017 14:27
@sjames1958 take a 2nd look then
image.png
Stephen James
@sjames1958gm
Oct 20 2017 14:28
arr = arr[i].sort()
this will replace your array of arrays with a single array
So arr[i] will be a number and arr[i].slice() is not a function
gishy1
@gishy1
Oct 20 2017 14:30
@sjames1958gm slice is for strings?
Stephen James
@sjames1958gm
Oct 20 2017 14:31
arr was [[4, 5, 1, 3] ...]
after your sort assignment arr will be
[1, 3, 4, 5]
so arr[0] is now 1
slice is for arrays and strings.
gishy1
@gishy1
Oct 20 2017 14:34
@sjames1958gm this is so frustrating !!!
@sjames1958gm how will i get them to my largest variable
Ai rui 艾瑞
@aisolae
Oct 20 2017 14:39
like i am feeling frustrated over toggle menu too
gishy1
@gishy1
Oct 20 2017 14:42
@sjames1958gm if slice is for strings and arrrays then why is it not a function?
anyone with some couples of minute to help me check this, can't seem to figure why my toggle isn't working .
Ken Haduch
@khaduch
Oct 20 2017 15:14
@gishy1 - the item that you add the .slice() to has to be an array or string. arr[0] is an integer, so it will report the “Not a function “ because an integer doesn’t have a slice method.
gishy1
@gishy1
Oct 20 2017 15:15

anyone else care to help?

this is why i eventually end up watching videos of people whove already done the task
im contemplating switching to udemy

@khaduch sorry that was typed while back ive just seen this
@khaduch ok just got that
@khaduch meaning you cant perform methods on any of the arr[a]?
Ken Haduch
@khaduch
Oct 20 2017 15:30
Since they are integers, you can perform any integer methods in the individual array elements. If the array elements were String elements, then you could use String methods, etc.
Stephen James
@sjames1958gm
Oct 20 2017 15:31
@gishy1 Because you changed arr[i] from an array to a number because you overwrote arr
remove the arr = part you don't need it for sort and you esp. don't want to write over the array
gishy1
@gishy1
Oct 20 2017 15:32
@sjames1958gm ovewrote?
Stephen James
@sjames1958gm
Oct 20 2017 15:33
you changed the value in arr from [[1, 3, 4, 5], [], []] to simply [1, 3, 4, 5]
Ignore the actual numbers just the structure
@gishy1 largest is an array so you will need to use push or concat to add to it.
largest = largest.concat(arr[i].slice(0,1))
Darren
@DarrenfJ
Oct 20 2017 16:01
@manish Q for you (or anyone who wants to chime in).. playing around with https://www.codewars.com/kata/product-of-consecutive-fib-numbers/train/javascript and trying to figure out a good way to pick a starting value to test for prod.. Guessing on square root of prod but then to find the 2 fibs does it make sense to do it in array and find 'next lowest..' something like that..
@manish did you end up doing this one?
hey hi @sjames1958gm
and much thanks to you for always being in here helping out :D
thanks @sjames1958gm
CamperBot
@camperbot
Oct 20 2017 16:03
darrenfj sends brownie points to @sjames1958gm :sparkles: :thumbsup: :sparkles:
:star2: 8586 | @sjames1958gm |http://www.freecodecamp.com/sjames1958gm
Darren
@DarrenfJ
Oct 20 2017 16:03
and thanks @khaduch as well.. you guys rawk
CamperBot
@camperbot
Oct 20 2017 16:03
darrenfj sends brownie points to @khaduch :sparkles: :thumbsup: :sparkles:
:star2: 3386 | @khaduch |http://www.freecodecamp.com/khaduch
gishy1
@gishy1
Oct 20 2017 16:03
@DarrenfJ is code wars any good for algorithm practise?
Darren
@DarrenfJ
Oct 20 2017 16:04
it's pretty good actually. if you've done any of the fCC ones then the lower kyu (8, 7, 6) you can breeze through but some good challenging ones as you move up
I try to do one a day as part of a 100 day challenge
this one i'm trying to figure out where you start cause i don't want to run through a loop from 0, 1 upwards for a number like 1000 that i know the prod of fib numbers should be much higher (like sqrt is what I'm thinking is a good starting point)
Stephen James
@sjames1958gm
Oct 20 2017 16:09
@DarrenfJ :+1:
Darren
@DarrenfJ
Oct 20 2017 16:14
ok gonna go poke around trying it with sqrt first
Albert Cardona II
@daddycardona
Oct 20 2017 17:12
@DarrenfJ LOL and thanks for the virtual shots LOL
CamperBot
@camperbot
Oct 20 2017 17:12
daddycardona sends brownie points to @darrenfj :sparkles: :thumbsup: :sparkles:
:star2: 2159 | @darrenfj |http://www.freecodecamp.com/darrenfj
Albert Cardona II
@daddycardona
Oct 20 2017 17:20
okay people what up and hi, what is a better way of saying this or statement
function truthCheck(collection, pre) {

    // Only change code below this line

    let x = Object.keys(collection).every(function(k) {
        //console.log(collection[k])
        if (collection[k].hasOwnProperty(pre)) {
          if(collection[k].hasOwnProperty(pre)===undefined
             ||collection[k].hasOwnProperty(pre)===''
             ||collection[k].hasOwnProperty(pre)===null
             ||collection[k].hasOwnProperty(pre)===0
             ||collection[k].hasOwnProperty(pre)==NaN)
            return true;
        }
    });

    console.log(x);

    // Only change code above this line
    return x;
}
alpox
@alpox
Oct 20 2017 17:21
@daddycardona You don't have to test for every single thing
Kyle Holm
@thekholm80
Oct 20 2017 17:21
why would hasOwnProperty() return all those things?
alpox
@alpox
Oct 20 2017 17:21
if(collection[k].hasOwnProperty(pre) && collection[k])
is enough
Albert Cardona II
@daddycardona
Oct 20 2017 17:22
sometimes I feel like I have to @alpox and because of this truthCheck([{"single": ""}, {"single": "double"}], "single") should return false truthCheck([{"single": "double"}, {"single": undefined}], "single") should return false truthCheck([{"single": "double"}, {"single": NaN}], "single") should return false
alpox
@alpox
Oct 20 2017 17:22
@thekholm80 Actually, if you have var bar = { foo: null }, bar.hasOwnProperty("foo") returns true
Kyle Holm
@thekholm80
Oct 20 2017 17:23
right, it returns true, not null, NaN, etc
alpox
@alpox
Oct 20 2017 17:23
@daddycardona The thing is, this:
var p = null;
if(!p) console.log("This loggs!"); // This actually logs.
Albert Cardona II
@daddycardona
Oct 20 2017 17:23
oh I see but what does that mean @alpox && collection([k]) I always get confused with that
alpox
@alpox
Oct 20 2017 17:24
The same is true for NaN, undefined etc.
Albert Cardona II
@daddycardona
Oct 20 2017 17:24
lets try that
alpox
@alpox
Oct 20 2017 17:25
@daddycardona && ist the logical "and" operator. The rest just takes out the value which is assigned to the key k
Albert Cardona II
@daddycardona
Oct 20 2017 17:25
yes I know the && part lol
alpox
@alpox
Oct 20 2017 17:26
@daddycardona Btw. its collection[k], not collection([k])as in what you showed
Albert Cardona II
@daddycardona
Oct 20 2017 17:26
yes I messed that up a lot but i did it properly on my code lol
alpox
@alpox
Oct 20 2017 17:26
@daddycardona In your case, the && and hasOwnPropertything are not even really necessary. A simple:
if(collection[k]) would also work
Albert Cardona II
@daddycardona
Oct 20 2017 17:27
so your saying I only need one if statement || I need to if statements one that says hasOwnProperty and one that says collection[k]
alpox
@alpox
Oct 20 2017 17:27
And to complete the confusion: you can just return that as a boolean expression and get rid of the if :D
Albert Cardona II
@daddycardona
Oct 20 2017 17:28
???
alpox
@alpox
Oct 20 2017 17:28
@daddycardona You don't even need any if statement
When it is about the need:D
.every already interprets everything that you return from its callback as a boolean expression (truth value)
Its the same as if you do !!NaN or !!undefined(double negation)
All those values become a boolean
Albert Cardona II
@daddycardona
Oct 20 2017 17:29
yes I tried using that but get confused using that lol
alpox
@alpox
Oct 20 2017 17:29
So you can just return it
@daddycardona yea you can do it with the if at first for less confusion
But you only need one - and you don't need the hasOwnProperty part
Albert Cardona II
@daddycardona
Oct 20 2017 17:31
so it should look like pre = collection.every()
alpox
@alpox
Oct 20 2017 17:31
@daddycardona No the outer part is alright
Only inside of your function you can make it more tight
Albert Cardona II
@daddycardona
Oct 20 2017 17:37
okay so the first if statement is good then I can use every in it?
like how would I use every in main question
alpox
@alpox
Oct 20 2017 17:38
@daddycardona You use the if in the every :D not the every inside the if
The same as the first code you showed
Just change your ifs
Albert Cardona II
@daddycardona
Oct 20 2017 17:40
? so it would be more like let pre = collection.every(function(a,b){ the if statements})
alpox
@alpox
Oct 20 2017 17:40
yes
Albert Cardona II
@daddycardona
Oct 20 2017 17:40
or collections = pre.every()?
alpox
@alpox
Oct 20 2017 17:40
except that the function takes only 1 argument and not (a,b)
and i don't think you should override pre
Albert Cardona II
@daddycardona
Oct 20 2017 17:41
didn't mean to meant to put let x = collection pre etc..
alpox
@alpox
Oct 20 2017 17:41
return Object.keys(collection).every(function(key) {
    < the ifs -- condition>
}));
Albert Cardona II
@daddycardona
Oct 20 2017 17:42
okay I will be back on later my family came to touch me i mean visit me lmao
alpox
@alpox
Oct 20 2017 17:42
Alright :D have fun!
Uriel Guzmán
@Burinson
Oct 20 2017 20:32

Hey, guys.

function uniteUnique(arr) {
  var array = [];

  for (var i = 0; i < arguments.length; i++) {   
    array.push(arguments[i]);
   array = [].concat.apply([], array);  
  }

var uniqueArray = array.filter(function(item, pos) {
    return array.indexOf(item) == pos;
});

  return uniqueArray;
}

uniteUnique([1, 3, 2], [1, [5]], [2, [4]]);

Why is my code returning [1, 3, 2, 5, [4]] instead of [1, 3, 2, [5], [4]]?

artbohr
@artbohr
Oct 20 2017 20:48
@Burinson did you try using http://www.pythontutor.com/?
Uriel Guzmán
@Burinson
Oct 20 2017 20:48
@artbohr Hey, what is that?
artbohr
@artbohr
Oct 20 2017 20:49
@Burinson it's a very useful tool to understand every step of your code, try javascript and insert your code and run it, then watch every step
@Burinson discovered it in the MIT computer science course, I think every programmer should you use to better understand what's going on
should use it*
artbohr
@artbohr
Oct 20 2017 21:02
@Burinson looking in the pythontutor I see that at step 14 the line array = [].concat.apply([], array); takes the "5" and concats it to the array lifting the array property
artbohr
@artbohr
Oct 20 2017 21:08
@Burinson step 14 to step 15
Uriel Guzmán
@Burinson
Oct 20 2017 21:42
@artbohr Thank you!
CamperBot
@camperbot
Oct 20 2017 21:42
burinson sends brownie points to @artbohr :sparkles: :thumbsup: :sparkles:
:cookie: 313 | @artbohr |http://www.freecodecamp.com/artbohr