-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
408 lines (209 loc) · 15.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Mega Awesome Blog 'n Stuff</title>
<meta name="author" content="Greg Palmer">
<meta name="description" content="Aug 5th, 2013 Javascript, open-source So, Does This Mean I Work for Adobe? Well, not really, but as of a few days ago, I can officially say my name …">
<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="" rel="alternate" title="Mega Awesome Blog 'n Stuff" type="application/atom+xml">
<link rel="canonical" href="http://gpalmer.me/">
<link href="/favicon.ico" rel="shortcut icon">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
<!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,700' rel='stylesheet' type='text/css'>
<!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
<link href="http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
<link href="http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
</head>
<body>
<div class="container">
<div class="left-col">
<div class="intrude-less">
<header id="header" class="inner"><div class="profilepic">
<script src="/javascripts/md5.js"></script>
<script type="text/javascript">
$(function(){
$('.profilepic').append("<img src='http://www.gravatar.com/avatar/" + MD5("gpalmer323@gmail.com") + "?s=160' alt='Profile Picture' style='width: 160px;' />");
});
</script>
</div>
<hgroup>
<h1><a href="/">Mega Awesome Blog 'n Stuff</a></h1>
<h2>My thoughts aren't just for me anymore</h2>
</hgroup>
<nav id="main-nav"><ul class="main-navigation">
<li><a href="/">Blog</a></li>
<li><a href="/blog/archives">Archives</a></li>
<li><a href="/about">About</a></li>
<li><a href="/projects">Projects</a></li>
</ul>
<section class="aboutme">
<p>
The rambling nonsense of a basketball player turned budding software engineer experiencing the exciting world of brackets and semicolons
</p>
</section>
</nav>
<nav id="sub-nav">
<div class="social">
<a class="twitter" href="http://twitter.com/notthereal_GMP" title="Twitter">Twitter</a>
<a class="github" href="https://github.com/g-palmer" title="GitHub">GitHub</a>
<a class="linkedin" href="http://www.linkedin.com/in/gmpalmer">LinkedIn</a>
</div>
</nav>
</header>
</div>
</div>
<div class="mid-col">
<div class="mid-col-container">
<div id="content" class="inner">
<div itemscope itemtype="http://schema.org/Blog">
<article class="post" itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
<div class="meta">
<div class="date">
<time datetime="2013-08-05T09:50:00-07:00" data-updated="true" itemprop="datePublished">Aug 5<span>th</span>, 2013</time></div>
<div class="tags">
<a class='category' href='/blog/categories/javascript/'>Javascript</a>, <a class='category' href='/blog/categories/open-source/'>open-source</a>
</div>
</div>
<h1 class="title" itemprop="name"><a href="/blog/2013/08/05/so-does-this-mean-i-work-for-adobe/" itemprop="url">So, Does This Mean I Work for Adobe?</a></h1>
<div class="entry-content" itemprop="articleBody">
<p>Well, not really, but as of a few days ago, I can officially say my name is on their Brackets project! See <a href="http://github.com/adobe/brackets/pull/4515" target="_blank">pull request #4515</a>.</p>
<p>If you’re not familiar with Brackets, it’s Adobe’s open-source code editor built mostly with web technologies (HTML, CSS, JS). While a bit of a ways off from more established code editors like Sublime Text, the Brackets software is pretty sweet and gaining momentum everyday. <a href="http://brackets.io/" target="_blank">Read more here if interested</a>.</p>
<p><img class="center" src="/images/brackets-logo.png" title="'Adobe Brackets logo'" ></p>
<p>A few weeks back, during the final couple weeks of Hack Reactor, we had some time to work on open-source projects. I chose to dive right in and sought out as many projects as I could. I spent the greater part of a week discussing (and eventually submitting fixes for) various small GitHub issues in Backbone, Underscore, and Reveal.js to no avail. But it was all worth it when I received a series of GitHub emails in the middle of the night letting me know that <a href="https://github.com/TomMalbran" target="_blank">Tomás Malbrán</a> was reviewing the code I had submitted that evening to the Brackets project.</p>
<p>A code review from a fellow Brackets hacker halfway across the world? <a href="http://files.myopera.com/bud8girl/albums/41795/napoleondynamite.gif" target="_blank">Flippin’ sweet!</a></p>
<p>So what did I even do, exactly?</p>
<a href="/blog/2013/08/05/so-does-this-mean-i-work-for-adobe/" class="more-link">Read on →</a>
</div>
</article>
<article class="post" itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
<div class="meta">
<div class="date">
<time datetime="2013-07-16T22:19:00-07:00" data-updated="true" itemprop="datePublished">Jul 16<span>th</span>, 2013</time></div>
<div class="tags">
<a class='category' href='/blog/categories/javascript/'>Javascript</a>
</div>
</div>
<h1 class="title" itemprop="name"><a href="/blog/2013/07/16/loopy-labels/" itemprop="url">Loopy Labels</a></h1>
<div class="entry-content" itemprop="articleBody">
<p><strong>TIL: loops have labels…and in certain situations, they might actually be useful</strong></p>
<p>Way way back, to a time long long ago, when I was just getting started teaching myself how to code, I picked up one of the premier beginner’s books on Javascript — <a href="http://eloquentjavascript.net/" target="_blank"><em>Eloquent Javascript</em></a> by Marijn Haverbeke.</p>
<p>It’s been awhile, so I decided to check out the book once again. Aside from reminding myself just how far I’ve come, I ended up discovering something I’d never seen before.</p>
<p>Basically, when dealing with nested loops (typically not a very good idea due to potential complexity issues), you can provide labels to the inner and outer loops. The label can be any valid variable name that isn’t a keyword and the syntax looks like this:</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="nx">label</span><span class="o">-</span><span class="nx">outer</span> <span class="o">:</span>
</span><span class='line'> <span class="c1">// some statement or loop</span>
</span><span class='line'>
</span><span class='line'> <span class="nx">label</span><span class="o">-</span><span class="nx">inner</span> <span class="o">:</span>
</span><span class='line'> <span class="c1">//some statement of loop</span>
</span></code></pre></td></tr></table></div></figure>
<p>This now provides us with a certain bit of additional functionality using the <code>break</code> and <code>continue</code> statements.</p>
<a href="/blog/2013/07/16/loopy-labels/" class="more-link">Read on →</a>
</div>
</article>
<article class="post" itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
<div class="meta">
<div class="date">
<time datetime="2013-07-05T21:57:00-07:00" data-updated="true" itemprop="datePublished">Jul 5<span>th</span>, 2013</time></div>
<div class="tags">
<a class='category' href='/blog/categories/javascript/'>Javascript</a>, <a class='category' href='/blog/categories/design/'>design</a>, <a class='category' href='/blog/categories/jquery/'>jQuery</a>, <a class='category' href='/blog/categories/math/'>math</a>
</div>
</div>
<h1 class="title" itemprop="name"><a href="/blog/2013/07/05/hexagram/" itemprop="url">Hexagram</a></h1>
<div class="entry-content" itemprop="articleBody">
<p><a href="http://hexagram.gpalmer.me" target="_blank"><strong>Click here for a live example of the Hexagram image gallery!</strong></a> or <a href="http://github.com/g-palmer/hexagram" target="_blank">Check out the code on Github</a></p>
<p>This blog is a bit overdue, but I thought I’d take a second to highlight the personal project I worked on earlier this month. I had the unique opportunity of taking on a challenge from a local SF based startup. Without divulging too much information, they were basically looking for a cool way to dynamically display a busy feed of images.</p>
<p>Given a bit of creative freedom, I immediately took to sketching out as many ideas as I could on paper.</p>
<p><img class="right" src="/images/collageideas.jpg" width="400"></p>
<p>After speaking with the client and going over each of the ideas, it became apparent that the honeycomb style interested them the most. Little did I know how much of a treat I was in for…</p>
<p>After only a few minutes of staring at my computer, I quickly realized how difficult it was to create dynamic, image-filled hexagons within the web world where hexagons weren’t really meant to play. Then get them to tesselate, no less.</p>
<p>It took quite a bit of research and an even greater amount of revisiting middle and high school geometry, but I finally figured it out.</p>
<a href="/blog/2013/07/05/hexagram/" class="more-link">Read on →</a>
</div>
</article>
<article class="post" itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
<div class="meta">
<div class="date">
<time datetime="2013-07-02T20:55:00-07:00" data-updated="true" itemprop="datePublished">Jul 2<span>nd</span>, 2013</time></div>
<div class="tags">
<a class='category' href='/blog/categories/javascript/'>Javascript</a>, <a class='category' href='/blog/categories/jquery/'>jQuery</a>
</div>
</div>
<h1 class="title" itemprop="name"><a href="/blog/2013/07/02/who-needs-jquery/" itemprop="url">Who Needs jQuery?</a></h1>
<div class="entry-content" itemprop="articleBody">
<p><strong><em>THIS POST IS VERY MUCH STILL A WORK IN PROGRESS</em></strong></p>
<p>When first learning Javascript, aside from simple syntax and some for loops, typically a new developer will jump right into jQuery. This is largely a testament to the simplicity and power of the library as it allows someone with limited programming experience to start doing some pretty nifty things in the browser. jQuery doesn’t even shy away from this fact: ‘Write less, Do More’. But as overused quotes from that one movie go, <em>“With great power, comes great responsibility.”</em></p>
<p><img class="center" src="http://ejohn.org/apps/workshop/adv-talk/jquery_logo.png" title="'jQuery'" ></p>
<p>The difference between a beginning developer and an intermediate to advanced developer is their ability to understand where all of this ‘magic’ is coming from. So what better way to spend the next few minutes than checking out some of the native DOM methods that jQuery is replacing. And in doing so, we can come to better appreciate the library and maybe even speed up some of our sites<sup>1</sup>.</p>
<a href="/blog/2013/07/02/who-needs-jquery/" class="more-link">Read on →</a>
</div>
</article>
<article class="post" itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
<div class="meta">
<div class="date">
<time datetime="2013-06-22T22:25:00-07:00" data-updated="true" itemprop="datePublished">Jun 22<span>nd</span>, 2013</time></div>
<div class="tags">
<a class='category' href='/blog/categories/javascript/'>Javascript</a>, <a class='category' href='/blog/categories/underscore/'>Underscore</a>, <a class='category' href='/blog/categories/source-code/'>source code</a>
</div>
</div>
<h1 class="title" itemprop="name"><a href="/blog/2013/06/22/reading-the-underscore-dot-js-source-code/" itemprop="url">Reading the Underscore.js Source Code - Part 1</a></h1>
<div class="entry-content" itemprop="articleBody">
<p>Now that I feel like I’ve got a better understanding of the Javascript language, it’s always been a side goal of mine to read through as many of the major JS frameworks, libraries, etc. as I can. I feel like being able to read through and understand what others have done to make really awesome code, will help push me along the way to be an even better coder myself.</p>
<p><img class="center" src="http://underscorejs.org/docs/images/underscore.png" title="'underscore.js'" ></p>
<p>The <a href="http://underscorejs.org/" target="_blank"><em>underscore.js</em></a> library has a special place in my heart as it played a major role in the early stages of learning JS. So what better place to start — here are a few notes from my runthrough of the <em>underscore.js</em> source:</p>
<a href="/blog/2013/06/22/reading-the-underscore-dot-js-source-code/" class="more-link">Read on →</a>
</div>
</article>
<article class="post" itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
<div class="meta">
<div class="date">
<time datetime="2013-06-02T21:10:00-07:00" data-updated="true" itemprop="datePublished">Jun 2<span>nd</span>, 2013</time></div>
<div class="tags">
<a class='category' href='/blog/categories/hello-world/'>Hello World</a>
</div>
</div>
<h1 class="title" itemprop="name"><a href="/blog/2013/06/02/hello-world/" itemprop="url">Hello World</a></h1>
<div class="entry-content" itemprop="articleBody">
<p>Hey it’s my first blog post. Everybody look at me.</p>
</div>
</article>
</div>
<nav id="pagenavi">
<div class="center"><a href="/blog/archives">Blog Archives</a></div>
</nav></div>
</div>
<footer id="footer" class="inner"><p>
Copyright © 2013 - Greg Palmer -
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
</p>
Design credit: <a href="http://shashankmehta.in/archive/2012/greyshade.html">Shashank Mehta</a></footer>
<script src="/javascripts/slash.js"></script>
<script src="/javascripts/jquery.fancybox.pack.js"></script>
<script type="text/javascript">
(function($){
$('.fancybox').fancybox();
})(jQuery);
</script> <!-- Delete or comment this line to disable Fancybox -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-42177710-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</div>
</div>
</body>
</html>