<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Edwin Unger</title>
    <description>Husband. Father. Work Horse. Beardface.</description>
    <link>https://edwinunger.com/</link>
    <atom:link href="https://edwinunger.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 26 Mar 2026 18:01:03 +0000</pubDate>
    <lastBuildDate>Thu, 26 Mar 2026 18:01:03 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>DBC Phase 3, Day 15: Final DBC Post</title>
        <description>&lt;p&gt;Today was incredible. We were the first to present this morning, and everything went smoothly. I felt confident in our group and what we had to deliver. We kept the time short enough, and there were a few questions about how the app worked, so it was nice that there was interest.
&lt;br /&gt;
&lt;br /&gt;
I’d seen all of the presentations already, but it was cool to watch everyone share the projects they’ve been working on for the past nine days. There are seven apps in all, and they all look really polished and impressive. I’d love to see some of these go into actual production, but I’d also like to see some of the pitches that didn’t make it get turned into apps.
&lt;br /&gt;
&lt;br /&gt;
After presentations, We had lunch. Some of us went to grab a celebratory drink afterwards, which was enjoyable. I don’t drink, but it was still nice to relax as a team. We got back in time for another chat with the Careers team, which was mainly about preparing for next week’s Career Week.
&lt;br /&gt;
&lt;br /&gt;
We had some time to kill before graduation, so we checked in on the Phase Two Final Projects and assisted some of the Phase One students with their challenges.
&lt;br /&gt;
&lt;br /&gt;
We also took a cohort field trip, but I’m sworn to secrecy, so you’ll find out only if you are a DBC student or if you ever become a teacher there. Suffice it to say that it was not what any of us expected, but well worth the surprise.
&lt;br /&gt;
&lt;br /&gt;
Graduation was really fun. For the past few days, we’ve been allowed to add ‘boot badges’, which are basically senior superlatives, to each of our cohort-mates’ pages. Most were funny, several were heartfelt. I ended up with ‘the wise bearded one’, among several others, so I’m happy.
&lt;br /&gt;
&lt;br /&gt;
We were each given dog tags (it’s a bootcamp, after all). Here’s mine:
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;center&gt;&lt;img src=&quot;https://github.com/edwinunger/edwinunger.github.io/blob/master/images/dogtags.jpg?raw=true&quot; /&gt;&lt;/center&gt;
&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
We had one last check-in with our cohort before heading out to celebrate. It was touching to reminisce about the program and the relationships we’ve formed here. It was a good way to end the day, and the program.
&lt;br /&gt;
&lt;br /&gt;
Weekend plans include relaxing, but I don’t think I’ll be able to do much of it. I want to get started on building a new app, update my resume, LinkedIn, and all of my other job site profiles, and get ready for Career Week.
&lt;br /&gt;
&lt;br /&gt;
This will be my last post for a little while. I’ll need to spend my time looking for a job, working on projects, preparing for interviews. I would love to say that I’ll keep writing about this whole process until I actually land a job, but I don’t want to make any promises.
&lt;br /&gt;
&lt;br /&gt;
And really, I’ve accomplished exactly what I set out to do. I wanted to write for every day of DBC, and I did. I wanted to share with the reader everything I learned and felt and experienced during my time here, and I did.
&lt;br /&gt;
&lt;br /&gt;
The promise I made when I first arrived in SF: I will write what I learn every day. For you, the reader, who’s interested in keeping up with my journey through DBC. For you, the potential student who wants to know exactly what happens in this program and if it would be the right choice for you. For you, my current cohort, who just want to read and solidify your understanding of the day’s concepts. For you, my future contemporaries in the tech world. And for me, because when I write what I know, I remember it, and when I teach it, it becomes ingrained in my memory.
&lt;br /&gt;
&lt;br /&gt;
I kept my promise, and I hope whatever group you fit into, you found some use in this blog.
&lt;br /&gt;
&lt;br /&gt;
My name is Edwin Unger. I’m a junior web developer and a graduate of Dev BootCamp.&lt;/p&gt;
</description>
        <pubDate>Fri, 05 Jun 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/06/05/dbc-phase-3-day-15.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/06/05/dbc-phase-3-day-15.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DBC Phase 3, Day 14</title>
        <description>&lt;p&gt;I’m ready. Ready to be finished with DBC, ready to return to the real world, ready to graduate and start looking for a job, ready to be finished with this project and start working on another one.
&lt;br /&gt;
&lt;br /&gt;
I’ve been feeling this way for the past few days now, but wasn’t really sure how to put it into words. I don’t think I’m getting burnt out, because the first thought I have when I imagine the day after DBC is getting started on another project. I also don’t think it’s just this final project, since there’s a lot for me to be proud of, and my fingerprints are all over it. I really think it’s just my brain telling me it’s time to move on to something new.
&lt;br /&gt;
&lt;br /&gt;
Today was mostly about putting the finishing touches on our app, though there were a few sections of which we wanted to change the functionality. All of the graphs work properly, we’ve got a nice demo created that walks through all portions of the site, and we’ve added a nice section for extra senses that tell you more about the city you’re visiting. Looks Like, Sounds Like, Smells Like, Tastes Like all give a little more info about the city, such as cool restaurants, the music scene, etc.
&lt;br /&gt;
&lt;br /&gt;
We presented a run-through of our demo today, but it definitely did not go smoothly. We kept the whole thing under ten minutes, but it looked and felt unprepared. Luckily, we weren’t the only ones, so we felt a little better, but we spent some time this evening really tightening each section.
&lt;br /&gt;
&lt;br /&gt;
Tomorrow is going to be awesome. Presentations, free lunch, graduation, freedom.
&lt;br /&gt;
&lt;br /&gt;
Until then, I’m Edwin Unger and I’m a junior web developer.&lt;/p&gt;
</description>
        <pubDate>Thu, 04 Jun 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/06/04/dbc-phase-3-day-14.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/06/04/dbc-phase-3-day-14.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DBC Phase 3, Day 13</title>
        <description>&lt;p&gt;Feature freeze tonight, so there was a lot of hustle to make sure everything we wanted to include in our app was already up in some form on the site. Not really too much trouble for us, though, since we’ve been working on portions of the site from different computers the entire time. We just had to integrate everything into one app.
&lt;br /&gt;
&lt;br /&gt;
We figured out a way to take the data for the D3 graphs and split it into multiple charts that directly compares each particular attribute. Instead of seeing the high, low, and average temps for each city on one graph, we can now cycle through three different graphs that compare these temps for two cities directly. This is what we set out to do from the beginning, so it was great seeing it load exactly as we wanted.
&lt;br /&gt;
&lt;br /&gt;
We also spent some time integrating some plain English comparisons that one of our team members has been working on. Basically, you take two cities and select a month to compare. It spits out months in your current city that are similar to the selected month in your new city. If it can’t find a comparable month, it lets you know the closest month and how far off it is from what you’re used to.
&lt;br /&gt;
&lt;br /&gt;
Tomorrow will be spent cleaning everything up and doing a bit of rehearsing for the final presentation.
&lt;br /&gt;
&lt;br /&gt;
Two days until we present. Two days until we graduate. Two days until I have to start looking for a job.
&lt;br /&gt;
&lt;br /&gt;
Until tomorrow, I’m Edwin Unger and I’m a junior web developer.&lt;/p&gt;
</description>
        <pubDate>Wed, 03 Jun 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/06/03/dbc-phase-3-day-13.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/06/03/dbc-phase-3-day-13.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DBC Phase 3, Day 12</title>
        <description>&lt;p&gt;Our little weather app is really starting to come together. We’ve built this awesome one page site that uses jQuery to slide in pages from different directions, so each slider will have different graphs that compare the weather of two different cities. I’m sort of working on adding a section that gives other information about the city, including activities, restaurants, pictures, etc. It’ll be nice if it comes together, but the core feature of the site is the weather.
&lt;br /&gt;
&lt;br /&gt;
We’re really diving into the D3 graphs now. Two of the graphs are very similar, which are the Actual temp and the Perceived temp. Different data, but duplicating the graphs will be easier. The other graph measures the Daylight, so you can see a nice ‘bubble’ effect in June and July when the daylight hours are longer.
&lt;br /&gt;
&lt;br /&gt;
I spent a large portion of the day working with one of my teammates on loading the graphs and resetting them with each click. We were having a bug where one graph would be loaded, but each time we refreshed, the old graph would still be there with a new graph pasted on top of it. We also realized that the API call to the back-end takes about 3 seconds to load all of the data into the graphs, so we had to figure out a way to clear the old data away and immediately load the new data while taking a minimal amount of time. We eventually got it going at a much faster pace, but as I said, it took a large portion of the day.
&lt;br /&gt;
&lt;br /&gt;
Tomorrow is feature freeze, which means we can’t add anything new to the app after 6pm. We have no new features that we want to insert, just finishing touches on the functionality of the site.
&lt;br /&gt;
&lt;br /&gt;
Until tomorrow, I’m Edwin Unger and I’m a junior web developer.&lt;/p&gt;
</description>
        <pubDate>Tue, 02 Jun 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/06/02/dbc-phase-3-day-12.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/06/02/dbc-phase-3-day-12.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DBC Phase 3, Day 11</title>
        <description>&lt;p&gt;This weekend was action packed, but now I’m beginning to feel the drain. Our team agreed to core hours to work on the project, which means we’re at DBC from 9-6 every day, including weekends. No big deal, but I’m definitely noticing the lack of break time.
&lt;br /&gt;
&lt;br /&gt;
We managed to get most of the database seeded, and I’m pretty much finished with the routes that will be used to get data to the front-end. There was a unanimous decision made not to use React or Node/Ember on the front-end, so we’re now building a Sinatra website that utilizes Rails for the back-end. Nothing changes for me, but it makes it easier for the front-end team to create a more polished product.
&lt;br /&gt;
&lt;br /&gt;
Today was more of the same, just finishing up the database, working on the key features we’d like to implement, and figuring out what I can do to help the front-end team. We’re also trying to learn D3, but I’m not quite ready to attack that monster yet.
&lt;br /&gt;
&lt;br /&gt;
Until tomorrow, I’m Edwin Unger, and I’m a web developer in training.&lt;/p&gt;
</description>
        <pubDate>Mon, 01 Jun 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/06/01/dbc-phase-3-day-11.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/06/01/dbc-phase-3-day-11.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DBC Phase 3, Day 10</title>
        <description>&lt;p&gt;Well, we’ve already pivoted on our app idea, but now I’m really beginning to be excited about it. We talked for a bit about the direction we expected the app to go, but realized that the market is flooded with every type of weather app already. What did we want to create that would bring a unique touch?
&lt;br /&gt;
&lt;br /&gt;
After some spitballing, brainstorming, paradigm shifting, and all those other buzzwords, we settled on the idea of weather comparisons. You can look at temperatures in one city and compare them to another, but it’s difficult to find a place that does that comparison for you based on historical data. With that, FeelsLike was born.
&lt;br /&gt;
&lt;br /&gt;
The premise for FeelsLike is this: you’re thinking of visiting or moving to a new city, but you’ve never been there. Wikipedia talks about the temperature, you can look at charts and graphs, but all you get are numbers on a line. How does that city compare directly to your own? Do you need a jacket in April, or sunscreen? We set out to create this app that will compare two cities based on historical data and give you a plain English answer.
&lt;br /&gt;
&lt;br /&gt;
The first thing we needed to do was get the data. Well, the REAL first thing to do was to FIND the data. We tried several weather APIs, but decided Weather Underground and Forecast.io would be the best options, since they provide lots of historical data and the specific values that we need. We agreed that five years of data from five different cities would be enough to get off the ground and provide a decent demo. This turned out to be a serious undertaking, however.
&lt;br /&gt;
&lt;br /&gt;
Each API request only provides one day of historical data, so we will need to make 9,125 requests to fully seed our database (5 cities x 5 years x 365 days). The trouble is, Weather Underground only allows 500 API requests per API key per day, so each of the four members of our team created a Dev account at Weather Underground so we could cycle through each team member’s API key. After we got everything set up, it was just a matter of babysitting the database to make sure all of the weather objects were being created properly. This will end up taking a few days, but should give us everything we need with plenty of time to spare.
&lt;br /&gt;
&lt;br /&gt;
While watching the database, I started building routes to the back-end data. We’re still planning on a fully decoupled app, so I volunteered to provide all of the data in easy-to-find JSON chunks.
&lt;br /&gt;
&lt;br /&gt;
On the front-end, the team quickly realized that React.js will be very difficult to learn in such a short time, so there will be a solid decision made over the weekend about either buckling down with React, checking out Node/Ember, or going back to Rails. We also have to figure out D3 during all of this, so there are a lot of hurdles to get over.
&lt;br /&gt;
&lt;br /&gt;
Until Monday, I’m Edwin Unger and I’m a junior developer.&lt;/p&gt;
</description>
        <pubDate>Fri, 29 May 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/05/29/dbc-phase-3-day-10.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/05/29/dbc-phase-3-day-10.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DBC Phase 3, Day 9</title>
        <description>&lt;p&gt;Well, today kind of sucked. Not all of it was terrible, but enough that it’s kind of spoiled the rest of the day for me.
&lt;br /&gt;
&lt;br /&gt;
We delivered our pitches to the entire school today, and man, there were a lot of pitches. There are 28 of us, and there were 28 pitches. Some people didn’t pitch at all, but some people pitched two or even three different ideas. I even gave a few of my extra ideas out to people who hadn’t planned to pitch. Everything went well, and there were a LOT of good ideas. However, there were quite a few ideas that seemed like jokes or were poorly thought out. No big deal though, since there were plenty of good pitches to choose from.
&lt;br /&gt;
&lt;br /&gt;
Voting turned out to be a disaster, though. Rather than let us each vote on the seven apps we wanted to see get made, we were each only allowed to vote once. I knew this was a bad idea, because anyone who pitched would only vote for their own idea. Of course, that’s exactly what happened. One app had five votes (I’m assuming those who voted for it planned it out ahead of time), and four other apps had two votes each, which was enough to confirm them as final projects.
&lt;br /&gt;
&lt;br /&gt;
There were two slots left, but there was a tie. a fifteen-way tie, each of which had only one vote. As expected, everyone who had pitched an idea voted for their own app. We had to hold another vote to decide which two apps would get moved forward. There were several requests to scrap the original results and re-vote, but they were denied. We voted again, most people voted for their own apps again, and the two winning apps each had only four votes.
&lt;br /&gt;
&lt;br /&gt;
I don’t mind that my app ideas weren’t picked, since I can always make them after DBC is over. My frustration comes from the fact that so many great ideas were pitched and the ideas that were pushed through were not the best that we have to offer as a cohort.
&lt;br /&gt;
&lt;br /&gt;
After voting on apps was through, it was time to request the app that we each wanted to work on. I got my first choice, which was a weather app that would dig into D3.js and make some beautiful graphs from the data we found. I chose this app not because I am interested in D3 or weather, but because the team lead is incredibly talented and I know we’ll end up with a decent product at the end of it. For me, it’s all about the demo-ability of the app, so I expect great things in the next nine days.
&lt;br /&gt;
&lt;br /&gt;
We immediately sat down together to go over the plan for the app. Our team lead had already created a basic weather app for his Phase 2 final project, so this was meant to be an extension of that. We would find a better way to present the data, expand the coverage to the entire country, and display graphs of the weather changes over time.
&lt;br /&gt;
&lt;br /&gt;
I know the next week will be challenging for me, mainly because we’ll be getting into technologies I’m not familiar with, namely React.js and D3. I’m looking forward to pushing myself and delivering a product I can show off to potential employers.
&lt;br /&gt;
&lt;br /&gt;
I guess we’ll have to see. Until tomorrow, I’m Edwin Unger and I’m a junior developer.&lt;/p&gt;
</description>
        <pubDate>Thu, 28 May 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/05/28/dbc-phase-3-day-9.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/05/28/dbc-phase-3-day-9.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DBC Phase 3, Day 8</title>
        <description>&lt;p&gt;I’m going to graduate DBC. I was pretty confident that I would, but after destroying today’s Assessment, I can breathe a long sigh of relief. Not only did I get through all of the test’s requirements, I had time to go back and add extra functionality to some of the sections, just for fun. I’ve still got a lot to learn before I’ll feel like a confident web developer, but I’ve now learned everything that DBC has to teach me. All that’s left is to complete a final project and then actually find a job. I am officially a junior developer.
&lt;br /&gt;
&lt;br /&gt;
After the assessment, a few of us went out to celebrate and relax a bit. The afternoon brought more Thunder Talks, but there were so many groups that waited until today to present that it took a couple hours to get through everything. I spent some time preparing my final project pitches, but I feel pretty good about what I want to create and how to go about doing it.
&lt;br /&gt;
&lt;br /&gt;
The pitch practice with the team was a little difficult, since we have to cut everything down to under a minute. I did okay, though. It was really nice to hear a lot of people offer support and suggestions for making my app ideas work.
&lt;br /&gt;
&lt;br /&gt;
Until tomorrow, I’m Edwin Unger and I’m now a junior developer.&lt;/p&gt;
</description>
        <pubDate>Wed, 27 May 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/05/27/dbc-phase-3-day-8.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/05/27/dbc-phase-3-day-8.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DBC Phase 3, Day 7</title>
        <description>&lt;p&gt;We presented our Thunder Talk on Server Initiated Communication first thing this morning. I feel like it went really well, and I’m looking forward to using FireBase on my final project, or on another app in the near future.
&lt;br /&gt;
&lt;br /&gt;
We talked about how regular server/client communication works, how SIC has improved that, and some of the technologies that utilize it. FireBase is the best known one, and it’s especially useful to us at DBC because it’s fully supported by several different languages and frameworks, including Rails.
&lt;br /&gt;
&lt;br /&gt;
The challenge of the day was to create Twitter completely asynchronously in Rails using AJAX to make a one page app. My pair and I stumbled through it for quite a bit and only managed to get a few of the features working, namely the top trends and top tweets to post as they were created. There was a lot of JavaScript involved, and some of it was just beyond our understanding at the moment.
&lt;br /&gt;
&lt;br /&gt;
Afternoon brought a brief chat with the DBC Careers team, but it still felt like most of the information was being kept from us. Most of the questions we asked were side-stepped and we were told not to worry about it until after we graduated. It made me think that any communication with careers should just wait until they’re ready to actually share information. Ah well.
&lt;br /&gt;
&lt;br /&gt;
The afternoon lecture was by a guest who’s currently being interviewed to become a DBC teacher. She was very nice, but wasn’t fully prepared with the appropriate materials, so I felt like our time could have been better spent working on the Twitter challenge.
&lt;br /&gt;
&lt;br /&gt;
This evening, several of us got together to prepare for tomorrow’s Assessment. We knew that we would be expected to build a CRUD app and create AJAX requests in Rails, so we set about doing just that. It took us a little while to create all of the controllers, models, and migration files, but once we had the first couple pages created, we decided to focus on the AJAX calls, since that would be the more difficult part. We managed to make everything work, and I’m feeling pretty confident for tomorrow. It was especially helpful to be the one writing the code and creating the app, because I always learn better by doing than by watching.
&lt;br /&gt;
&lt;br /&gt;
Until tomorrow, I’m Edwin Unger and I’m a web developer in training.&lt;/p&gt;
</description>
        <pubDate>Tue, 26 May 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/05/26/dbc-phase-3-day-7.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/05/26/dbc-phase-3-day-7.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DBC Phase 3, Day 6</title>
        <description>I spent the weekend accomplishing almost all of what I set out to, though there wasn&apos;t enough time to study for the Assessment. Instead, I finished my portion of the Thunder Talk on Serve Initiated Communication and finished decoupling my Stack OverFlow clone in order to present it today. I&apos;m planning to have a code review on Tuesday night with a few people, so that should be sufficient preparation for the Assessment.
&lt;br&gt;
&lt;br&gt;
Today started with presentations, and I wanted to be the first to go. I was really proud of the work I&apos;d done to decouple the app, but I&apos;d also styled the app a bit and put in a few funny animations for my team&apos;s entertainment. Here they are for you as well.
&lt;br&gt;
&lt;br&gt;
Stack GopherFlow Home Page:&lt;br&gt;
&lt;iframe class=&quot;animation&quot; src=&quot;https://clips.animatron.com/f1bda786f612029a4b51c00cb4106096?w=1000&amp;h=450&amp;r=1&amp;autoplay=1&quot; width=&quot;1000&quot; height=&quot;450&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
&lt;br&gt;
&lt;br&gt;
Stack GopherFlow Edit Page:&lt;br&gt;
&lt;iframe class=&quot;animation&quot; src=&quot;https://clips.animatron.com/b0adcb2e0183ac81491d920ad2a4b0f0?w=1000&amp;h=450&amp;r=1&amp;autoplay=1&quot; width=&quot;1000&quot; height=&quot;450&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
&lt;br&gt;
&lt;br&gt;
Did I mention that our Cohort team name is the Pocket Gophers? I&apos;m sure I did at some point.
&lt;br&gt;
&lt;br&gt;
Our lecture this morning brought us into some advanced JavaScript, mainly IIFEs, Closures, and Modules. Here&apos;s a quick rundown of each:
&lt;br&gt;
&lt;br&gt;
Immediately Invoked Function Expressions, or IIFEs (&quot;iffys&quot;), look just like any other JavaScript function, except that they have a &apos;()&apos;&apos; at the end so as to immediately call them as soon as they are defined, like so:
&lt;br&gt;
&lt;br&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;example&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;I&apos;m being called immediately!&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}();&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;br&gt;
This is different from the normal pattern, where you&apos;d create the function and then call it at a later point:
&lt;br&gt;
&lt;br&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;example&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;I&apos;m only called by my function name!&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;example&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;br&gt;
&lt;br&gt;
A Closure in JavaScript is basically a function within another function. The inner function has access to the variables and parameters of the outer function, and calling the outer function returns the product of the inner function&apos;s actions on the outer function&apos;s data. Here&apos;s what it looks like:
&lt;br&gt;
&lt;br&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;outer&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;parameter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt; &lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;​&lt;/span&gt;  &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;outerIntro&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;I&apos;m in the outer function! &lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;​&lt;/span&gt;  &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;inner&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt; &lt;/span&gt;
    &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;innerIntro&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;Now I&apos;m in the inner function!&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;​&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;outerIntro&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;innerIntro&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;parameter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt; &lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;​&lt;/span&gt;  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;inner&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;&lt;span class=&quot;err&quot;&gt; &lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;err&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;outer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;parameter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;br&gt;
&lt;br&gt;
Finally, using a Module in JavaScript allows you to define  functions and keep their variables from being accessed outside the function.
&lt;br&gt;
&lt;br&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;modular&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}());&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;modular&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;());&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;modular&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;());&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;modular&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;());&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;br&gt;
&lt;br&gt;
Our challenge for the day was to rebuild jQuery with several parts of its functionality. I was very intimidated at first until we looked into what each call was doing. We figured out how to hide items, display them, and change their class so as to add other attributes. We even added definitions for clicking, so an action could happen based on how we interacted with the object.
&lt;br&gt;
&lt;br&gt;
After lunch, we had our first round of Thunder Talks. These were all pretty interesting, but not much applicable use to me right now. I&apos;m definitely interested in learning more about background processes like auto mailing, since that seems to be a nice Rails tool to get into, but it&apos;s still a bit down the road for now.
&lt;br&gt;
&lt;br&gt;
The afternoon lecture was on JavaScript promises, and I&apos;m still trying to wrap my head around how they work. From what I understand, a promise allows you to to define a value that isn&apos;t available yet, but may be in the future. When it is, the promise can be fulfilled and the function run. If the value never becomes available, the function never runs. There are other outcomes, such as the value being rejected, or an error, but when done correctly, the function simply waits for the value until it&apos;s available. Promises will be a huge part of JavaScript 6, so this is definitely something I want to get more comfortable with.
&lt;br&gt;
&lt;br&gt;
In the afternoon, we went back to working on the jQuery challenge. After that, I worked with my Thunder Talk team to rehearse a bit before tomorrow&apos;s presentation. We divvied up what each person would talk about in addition to our own technology, so the whole thing should go very smoothly.
&lt;br&gt;
&lt;br&gt;
Until then, I&apos;m Edwin Unger and I&apos;m a web developer in training.</description>
        <pubDate>Mon, 25 May 2015 00:00:00 +0000</pubDate>
        <link>https://edwinunger.com/blog/2015/05/25/dbc-phase-3-day-6.html</link>
        <guid isPermaLink="true">https://edwinunger.com/blog/2015/05/25/dbc-phase-3-day-6.html</guid>
        
        
        <category>blog</category>
        
      </item>
    
  </channel>
</rss>
