-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
603 lines (443 loc) · 57.4 KB
/
atom.xml
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
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><![CDATA[What did I get myself into???]]></title>
<link href="http://rodriguezd.github.com/atom.xml" rel="self"/>
<link href="http://rodriguezd.github.com/"/>
<updated>2013-09-05T00:11:37-04:00</updated>
<id>http://rodriguezd.github.com/</id>
<author>
<name><![CDATA[David Rodriguez]]></name>
<email><![CDATA[davidrodriguez212@gmail.com]]></email>
</author>
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[Mobile Native App vs Responsive Web Site]]></title>
<link href="http://rodriguezd.github.com/blog/2013/09/04/mobile-native-app-vs-responsive-web-site/"/>
<updated>2013-09-04T22:46:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/09/04/mobile-native-app-vs-responsive-web-site</id>
<content type="html"><![CDATA[<p>Earlier today I was at a job interview where the interviewer asked me what my opinion was as far as whether the future of mobile development lay in native apps or responsive web sites. Not those exact words but you get the idea. Sadly, I not only did not really answer the question but the answer I did provide involved a totally unrelated topic. (You gotta love interviews.) Anyway, I decided to poke around a bit and see what I could learn on the topic not only so that I can be a more educated developer but also to avoid making an arse of myself if it were to come up again in any future interview.</p>
<p>So what did I learn??? Which is the “best” implementation to pursue? What solution will pour the most success upon you and your enterprise? — the Magic 8-Ball says, “It depends.” It’s far from a black or white, up or down, yes or no issue. What might be the best solution depends on the nature of your “app”, what you’re trying to accomplish, and what resources you have available (funds, time, expertise, patience).</p>
<p>If you’re building the next, great, super-interactive, processing-intensive mobile game or application, or you need your “app” to function offline, or you want to push data to your users, or you require significant interaction with the device’s core functions (SMS, GPS, camera, etc.) then it’s pretty much a no-brainer (at least for now) — your destiny lies in native-app land. Otherwise you have serious thinking and self-reflection to do. And by the way, don’t be surprised if “both” seems like the best answer. It may very well be. And if it is, maybe you want to start with a responsive site and work your way up from there. Just saying.</p>
<p>As far as which solution will shine brightest in the future, I think it’s safe to say that it’s too hard to tell at this point. Mobile, web, and wireless technologies are all changing so fast it’s difficult to predict what will be possible a year out never mind five or ten. My interview question would not have even made any sense ten years ago. “What’s a mobile app?” “A what web site?” It may not make any more sense ten years from now.</p>
<p>Below is a cool infographic from <a href="http://www.tablexi.com/">tablexi.com</a> that provides a very basic guide for starting the process of deciding which route may be best for your needs.</p>
<p><img src="http://www.tablexi.com/blog/wp-content/uploads/2013/08/web-versus-native-e1375886926788.jpeg"></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Sharing Partials Across Models In Rails]]></title>
<link href="http://rodriguezd.github.com/blog/2013/08/21/sharing-partials-in-rails/"/>
<updated>2013-08-21T08:56:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/08/21/sharing-partials-in-rails</id>
<content type="html"><![CDATA[<p>So yesterday I was working on a Rails side project and I found myself in a situation where I had a partial that I wanted to use in several different views spanning several different models. My first impulse was just to place a copy of the partial in each of the models’ views folders but that felt very wrong. Not very “dry” at all. There had to be a better way. It took me about ten seconds of research to come upon a perfect solution. The kind of solution that as soon as you read about it you knock yourself on the forehead and go “Duuuuuuuuhhh!”.</p>
<p>The best thing to do is to create a “shared” subdirectory under <code>app/views</code>. Technically you can name the subdirectory whatever you want but “shared” seems so right. (DHH himself has also endorsed this approach.) And then you place all your shared partials in this new directory. Then in your code instead of <code>render 'partial'</code> you just have to <code>render 'shared/partial'</code>. That simple.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Modifying Rails ActiveModel Error Messages]]></title>
<link href="http://rodriguezd.github.com/blog/2013/08/08/modifying-rails-activemodel-error-messages/"/>
<updated>2013-08-08T23:53:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/08/08/modifying-rails-activemodel-error-messages</id>
<content type="html"><![CDATA[<p>Recently I was applying some validations to models on a Rails application I’m currently working on when I found myself in a bit of a double pickle. I had a need to get rid of an ActiveModel error message that was being generated and add one that wasn’t. How do you do either of those? Let me tell you how you can do both.</p>
<p>In Rails, when you try saving an object to a database or execute the <code>.valid?</code> method on it, if any model validations fail, error messages are written to an ActiveModel errors hash. This hash can be accessed by executing <code>.errors.messages</code> on the object. So let’s say you have a <code>@user</code> object you execute <code>@user.save</code> or <code>@user.valid?</code> on, after doing so, you can execute <code>@user.errors.messages</code> to check for any error messages. The resulting hash will look something like the following:</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>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="p">{</span><span class="ss">:name</span><span class="o">=>[</span><span class="s2">"can't be blank"</span><span class="o">]</span><span class="p">,</span>
</span><span class='line'><span class="ss">:email</span><span class="o">=>[</span><span class="s2">"can't be blank"</span><span class="o">]</span><span class="p">,</span>
</span><span class='line'><span class="ss">:email_confirmation</span><span class="o">=>[</span><span class="s2">"can't be blank"</span><span class="o">]</span><span class="p">,</span>
</span><span class='line'><span class="ss">:password</span><span class="o">=>[</span><span class="s2">"can't be blank"</span><span class="o">]</span><span class="p">,</span>
</span><span class='line'><span class="ss">:password_confirmation</span><span class="o">=>[</span><span class="s2">"can't be blank"</span><span class="o">]</span><span class="p">,</span>
</span><span class='line'><span class="ss">:password_digest</span><span class="o">=>[</span><span class="s2">"can't be blank"</span><span class="o">]</span><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>
<p>This hash comes in handy to display the error messages to the user. Rails makes it even easier with the <code>.full_messages</code> method. For the errors hash above, <code>@user.errors.full_messages</code> results in</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>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="o">[</span><span class="s2">"Name can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Email can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Email confirmation can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Password can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Password confirmation can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Password digest can't be blank"</span><span class="o">]</span>
</span></code></pre></td></tr></table></div></figure>
<p>Iterating through this array and printing the error messages is a snap. But …</p>
<p>What if you don’t want to print one or more of these error messages? For example, “Password digest can’t be blank”. That message will very well leave many a user scratching their head. Let’s get rid of it from the hash. <code>@user.errors.delete(:password_digest)</code> will do the trick. You can use <code>.errors.delete(:key)</code> to delete any of the messages in the errors hash.</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='ruby'><span class='line'><span class="o">[</span><span class="s2">"Name can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Email can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Email confirmation can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Password can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Password confirmation can't be blank"</span><span class="o">]</span>
</span></code></pre></td></tr></table></div></figure>
<p>The error messages that are automatically generated result from failed validations on model attributes of the object in question. But what about validations you perform on any associations or any non-standard validations? If any of those validations fail and you want a message included in the ActiveModel errors hash, you have to add it in yourself.</p>
<p>In my situation, I performed a validation on a ‘roles’ association with my User model. Since the validation was not on an attribute of my <code>User</code> model, if the validation failed an error message would not be automatically generated and added to the errors hash. So after a little research I wound up using <code>@user.errors[:base] << "error message"</code>. This added my message to the hash and made it available in the <code>@user.errors.full_messages</code> array. That easy.</p>
<p>And, should you want to, you can also add additional messages associated with specific model attributes in the same way. For example, if I performed some validation checking that the name entered is all lower-case, on failure I could execute <code>@user.errors[:name] << "must be all lower-case"</code>. The resulting messages array winds up looking as follows:</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>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="o">[</span><span class="s2">"Name can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Name must be all lower case"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Email can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Email confirmation can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Password can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Password confirmation can't be blank"</span><span class="p">,</span>
</span><span class='line'><span class="s2">"Password digest can't be blank"</span><span class="o">]</span>
</span></code></pre></td></tr></table></div></figure>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Rails Console: Useful tricks]]></title>
<link href="http://rodriguezd.github.com/blog/2013/07/24/rails-console-some-tricks/"/>
<updated>2013-07-24T22:22:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/07/24/rails-console-some-tricks</id>
<content type="html"><![CDATA[<p>The past couple of weeks I’ve been engaged in what could be best described as a love/hate relationship with the Rails console. I’m not alone. At times, it can be your best friend, other times it can leave you bewildered, frustrated, and wishing you had a bat. But it’s not always console’s fault, you have to know how to help console help you. There are a few tricks which can go a long way to helping you do that. Following are a few of the more useful and interesting ones.</p>
<p>Let’s start with a few oldies but goodies. <code>reload!</code> will reload your Rails environment in the console enabling any changes to your app’s models to be reflected. Much less annoying than exiting and then restarting the console every time you make a change. If what your seeing in the console output just doesn’t make any sense, it may not be a bad idea to execute <code>reload!</code> just in case your console environment needs updating. No guarantees but every so often it does the trick.</p>
<p>When you have a need to experiment but are worried about placing your database in great peril, have no fear, <code>rails c --sandbox</code> is there to alleviate your fears. Starting the console with the <code>--sandbox</code> option places your console environment in “sandbox” mode. Any database changes which occur while you’re in this mode will be rolled back when you exit. You can be as reckless as you want. Rails console has you covered.</p>
<p>In Rails console, the underscore, <code>_</code>, has never been more useful. In console, <code>_</code> represents the output of the last command run. How often do you run a command with the intent of assigning the output to a variable but forget the variable assignment. That is situation where <code>_</code> shines. You can assign the aforementioned variable with the command output by entering <code>foo = _</code>.</p>
<p>Now for one of my favorites. It’s very easy to remember, the letter <code>y</code>. If you place a <code>y</code> ahead of your command (<code>y User.first</code>), the output will load to YAML. The resulting formatting makes the output immensely easier to read. This works with most model objects and data structures. <code>y</code> is worth it’s virtual weight in gold when dealing with nested hashes.</p>
<p><code>helper</code> can be used to access Rails helper methods in the console. For example, <code>helper.pluralize(3, 'dog')</code> results in <code>"3 dogs"</code>. <code>helper.number_to_currency(25.32)</code> results in <code>"$25.32"</code>. <code>helper.link_to 'Sign out', '/sign_out'</code> results in <code>"<a href=\"/sign_out\">Sign out</a>"</code>.</p>
<p>The <code>app</code> object can be used to access your controllers through the console. For example, <code>app.new_user_path</code> returns <code>"/users/new"</code>. <code>app.cookies</code> returns a Rails CookieJar object with which you can access session cookie data.</p>
<p>And last but not least, I can highly recommend Ryan Bates’ Railscast <a href="http://railscasts.com/episodes/48-console-tricks-revised">“Console Tricks”</a>.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[When application.html.erb just doesn't cut it]]></title>
<link href="http://rodriguezd.github.com/blog/2013/07/10/when-application-dot-html-dot-erb-doesnt-cut-it-dot/"/>
<updated>2013-07-10T01:19:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/07/10/when-application-dot-html-dot-erb-doesnt-cut-it-dot</id>
<content type="html"><![CDATA[<p>Recently I was working on a Rails application on which I had a need to apply layouts to views other than the default <code>application.html.erb</code> alyout. The following is what I discovered on how to do that. (<em>I make no claim that the following are the only and/or best ways to do this. Rails being Rails there are probably at least ten additionals ways.</em>)</p>
<h3>Controller Level Layout</h3>
<p>If you wish to use a different layout for all the views associated with a particular controller, you have two options. The first option is to create a new layout with the same name as the controller you wish to apply it to. For example, let’s say you have a controller named <code>UsersController</code> in your app, you could place a layout file named <code>users.html.erb</code> in the <code>app/views/layouts</code> folder. Rails will then apply the <code>users.html.erb</code> layout to all the Users views.</p>
<p>The second option is to include <code>layout "alternate_layout"</code> in the controller’s class defnition. The alternate layout file must be present in the <code>app/views/layouts</code> folder. In this case the file’s name does not have to be the same as the controller’s.</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>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="k">class</span> <span class="nc">UsersController</span> <span class="o"><</span> <span class="no">ApplicationController</span>
</span><span class='line'>
</span><span class='line'><span class="n">layout</span> <span class="s2">"alternate_layout"</span>
</span><span class='line'>
</span><span class='line'><span class="c1">### controller code ###</span>
</span><span class='line'>
</span><span class='line'><span class="k">end</span>
</span></code></pre></td></tr></table></div></figure>
<h3>Action/View Specific Layouts</h3>
<p>But what if you don’t want to apply an alternative layout to an entire controller? What if you only want to apply it to specific views? You have a few options here also.</p>
<p>One option is to specify which controller actions an alternative layout is to be apllied to. You can do so 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>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="k">class</span> <span class="nc">UsersController</span> <span class="o"><</span> <span class="no">ApplicationController</span>
</span><span class='line'>
</span><span class='line'><span class="n">layout</span> <span class="s2">"alternate_layout"</span><span class="p">,</span> <span class="ss">only</span><span class="p">:</span> <span class="o">[</span><span class="ss">:index</span><span class="p">,</span> <span class="ss">:show</span><span class="o">]</span>
</span><span class='line'>
</span><span class='line'><span class="c1">### controller code ###</span>
</span><span class='line'>
</span><span class='line'><span class="k">end</span>
</span></code></pre></td></tr></table></div></figure>
<p><code>application.html.erb</code> will be applied to the remainder of the action views.</p>
<p>A second option is to add a method in your controller which determines which layout to use at run time.</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>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="k">class</span> <span class="nc">UsersController</span> <span class="o"><</span> <span class="no">ApplicationController</span>
</span><span class='line'>
</span><span class='line'> <span class="n">layout</span> <span class="ss">:resolve_layout</span>
</span><span class='line'>
</span><span class='line'> <span class="c1">### controller code ###</span>
</span><span class='line'>
</span><span class='line'> <span class="kp">private</span>
</span><span class='line'> <span class="k">def</span> <span class="ss">:resolve_layout</span>
</span><span class='line'> <span class="k">case</span> <span class="n">action_name</span>
</span><span class='line'> <span class="k">when</span> <span class="s1">'show'</span>
</span><span class='line'> <span class="s1">'show_layout'</span>
</span><span class='line'> <span class="k">when</span> <span class="s1">'index'</span>
</span><span class='line'> <span class="s1">'index_layout'</span>
</span><span class='line'> <span class="k">else</span>
</span><span class='line'> <span class="s1">'application'</span>
</span><span class='line'> <span class="k">end</span>
</span><span class='line'> <span class="k">end</span>
</span><span class='line'><span class="k">end</span>
</span></code></pre></td></tr></table></div></figure>
<p>And if you choose you can specify an alternative layout at the controller action level.</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>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="k">def</span> <span class="nf">show</span>
</span><span class='line'>
</span><span class='line'> <span class="n">render</span> <span class="ss">:layout</span> <span class="o">=></span> <span class="s1">'show_layout'</span>
</span><span class='line'>
</span><span class='line'> <span class="c1">### action code ###</span>
</span><span class='line'>
</span><span class='line'><span class="k">end</span>
</span></code></pre></td></tr></table></div></figure>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Don't miss out: NYC Ruby/Rails Community]]></title>
<link href="http://rodriguezd.github.com/blog/2013/06/21/six-degrees-of-separation-from-everyone-nyc-ruby-slash-rails-meetups/"/>
<updated>2013-06-21T23:16:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/06/21/six-degrees-of-separation-from-everyone-nyc-ruby-slash-rails-meetups</id>
<content type="html"><![CDATA[<p>So I just finished my third week of the Flatiron School and the experience has been nothing short of fantastic. Hard work, but all worth it. And one of the bonuses of being a student at the school is having guest developer notables come in and share their knowledge, insights, experiences, and excitement about what they do with us.</p>
<p>I thought I would write about what has been a common thread amongst several of their talks, praise for the NYC Ruby/Rails community. I couldn’t agree with them more. My experience with the community began over a year ago with the first Meetup I ever attended. It was a Thursday Hacker Hours hosted by Aidan Feldman (a recent speaker at Flatiron). Aidan was the first person I met/spoke to at a Meetup. The second person I spoke to, introduced to by Aidan, was Blake Johnson (a current teaching assistant at Flatiron). After that meetup there have been many others.</p>
<p>Don’t be mistaken, it’s not all about meetups, there are also hackathons, code retreats, happy hours, and conferences where the community congregates to share ideas, stories, knowledge, lessons learned, and sometimes just generally hang out and have a good time with like-minded people. (The occasional free food and beer doesn’t hurt either.) And you never know who you might meet or what you may learn at one of these events. But one thing you can be sure of is that if you need help with something or want to learn more about anything, all you need to do is ask. Don’t be shy. Members of the NYC Ruby/Rails community are always very willing to help and they are extremely welcoming and accepting of those who may just be getting started. It doesn’t matter if you are an aspiring developer or maybe want to turn your “next big thing” idea into a reality.</p>
<p>I have never left a meetup or other community event without having learned something new. Whether it’s about some new Ruby gems, or Rails projects, or development techniques/tools, or lessons learned, or many other things, there is always an opportunity to learn. Sometimes you learn a whole lot! The community can be an invaluable resource for someone who is trying to learn on their own as I was. And all that from experienced programmers who have seen and done it all. Many of whom where at the same point you are at earlier in their careers so they can identify. It’s ok to admit that you’re just a beginner. No one is going to make fun of you. And the more questions you ask the more you will learn. Take advantage.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Can one ever know too many command line tricks?]]></title>
<link href="http://rodriguezd.github.com/blog/2013/06/16/one-can-never-know-too-many-command-line-tricks/"/>
<updated>2013-06-16T18:37:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/06/16/one-can-never-know-too-many-command-line-tricks</id>
<content type="html"><![CDATA[<p>I don’t think so either.</p>
<p>Looking through some presentation decks on <a href="https://speakerdeck.com/">speakerdeck.com</a>, I came across two presentations addressing this which I can never can get enough of. The two decks are ”<a href="https://speakerdeck.com/keithrbennett/unix-command-line-productivity-tips">Unix Command Line Productivity Tips</a>” by Keith Bennet and ”<a href="https://speakerdeck.com/janosgyerik/time-saving-tricks-on-the-command-line">Time-saving tricks on the command line</a>” by Janos Gyerik.</p>
<p>Following are some of the command line gems I gathered from their presentations. If you are unfamiliar with any of them, I strongly encourage you to try them out. I suspect you will like what you find.</p>
<ul>
<li><strong>cd -</strong></li>
</ul>
<p>(The dash is part of the command) Ever find yourself jumping back and forth between two directories? This puppy toggles the current and previous directory.</p>
<ul>
<li><strong>pushd</strong> and <strong>popd</strong></li>
</ul>
<p>Pushd is short for ‘push directory’ and popd for ‘pop directory’. If you execute <strong>‘pushd .’</strong> and then move to a different directory, you can then execute <strong>‘popd’</strong> and it will take you back to the directory you pushed previously. How cool is that?!?</p>
<ul>
<li><strong>!$</strong></li>
</ul>
<p>Not pretty but this captures the last parameter in the previously executed commad. For example, if you <strong>‘touch file.txt’</strong> and then <strong>‘subl !$’</strong>, Sublime Text opens <strong>file.txt</strong>.</p>
<h3>For your editing on the commad line pleasure:</h3>
<ul>
<li><strong>ctrl - w</strong></li>
</ul>
<p>Deletes the last word you have entered on the commad line</p>
<ul>
<li><strong>ctrl - k</strong></li>
</ul>
<p>Deletes from the cursor position to the end of the line</p>
<ul>
<li><strong>ctrl - y</strong></li>
</ul>
<p>Pastes whatever you deleted in the previous commad</p>
<ul>
<li><strong>cntrl-a</strong></li>
</ul>
<p>Jump to the start of the line</p>
<ul>
<li><strong>cntrl - e</strong></li>
</ul>
<p>Jump to the end of the line.</p>
<ul>
<li><strong>option - left/right</strong></li>
</ul>
<p>Skip left/right one word at a time</p>
<p>Enjoy.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[No Turning Back Now]]></title>
<link href="http://rodriguezd.github.com/blog/2013/04/15/no-turning-back-now/"/>
<updated>2013-04-15T10:52:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/04/15/no-turning-back-now</id>
<content type="html"><![CDATA[<p>Today I gave notice at my school that May 31st would be my lasy day there. The following Monday I start the Flatiron School. It was rather nerve wracking. The mental drafts of what to say and how to say it changed every five seconds heading into the appointed time. In the end, I can’t even remember exactly what I said. However, I was grateful that the response was very positive. All the administrators I spoke to were very understanding and wished me well. Not that I was really expecting any sort of negative reaction, but the human mind seems to always tasks at least a few neurons to formulating and screening such scenarios.</p>
<p>“<em>We must be willing to get rid of the life we’ve planned, so as to have the life that is waiting for us.</em>” - Joseph Campbell</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Moving Along]]></title>
<link href="http://rodriguezd.github.com/blog/2013/04/11/moving-along/"/>
<updated>2013-04-11T15:39:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/04/11/moving-along</id>
<content type="html"><![CDATA[<p>So the Flatiron pre-work moves along. I’ve gone through the command line lessons and have moved on to SQL and databases. I worked with SQL some back when I was with Accenture so I hope any residual familiarity that remains kicks in. Really want to get to the HTML and CSS material. Those are areas in which my lack of knowledge greatly frustrates me. Soon enough.</p>
<p>Visited the school tonight to attend one of the sort-of weekly Flatiron Presents meetups. There was a bonus presentation by Lucas Mazza of Plataformatec in Brazil. It felt good to tell some current students who knew I had applied that I had been selected for the next session. Some even invited me to drop by on Saturdays if I wanted any help with the pre-work. They said some of them are always around. I believe it. It was very nice of them to offer.</p>
<p>“<em>A jug fills drop by drop.</em>” - Buddha</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[The Beginning of the Beginning]]></title>
<link href="http://rodriguezd.github.com/blog/2013/04/09/the-beginning-of-the-beginning/"/>
<updated>2013-04-09T08:21:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/04/09/the-beginning-of-the-beginning</id>
<content type="html"><![CDATA[<p>Finally! The weather is turning for the better. After leaving work today, I actually sat in my hot car in the parking lot for a full minute enjoying the hotness. In a month I’ll be complaining and reaching for the AC knob but not today. I just wanted to soak it in for a bit. It’s been a while.</p>
<p>I started working on the Flatiron School pre-work today. It begins with some website “basics” which are pretty much just that. I watched several Team Treehouse videos on website basics and aesthetic foundations. Felt like I was in art class for a bit. Lines, shapes, hue, contrast, symmetry, balance, … Good stuff coming though.</p>
<p>Ended the evening on an extremely pleasant note. Met the girlfriend in the city at NYU where she works, we strolled to McDougal Street to grab some delicious kati rolls to go, and then we headed to Washington Square Park. It was so enjoyable and relaxing sitting there soaking in the beautiful weather and the laid back buzz in the park. Many people walking around, sitting around enjoying what we’ve all been missing for so long.</p>
<p>“<em>The grand essentials of happiness are: something to do, something to love, and something to hope for.</em>” - Allan K. Chalmers</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[The Future Looks Bright]]></title>
<link href="http://rodriguezd.github.com/blog/2013/04/08/the-future-looks-bright/"/>
<updated>2013-04-08T20:25:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/04/08/the-future-looks-bright</id>
<content type="html"><![CDATA[<p>Got some great news today!</p>
<p>Yesterday I interviewed for the <a href="http://flatironschool.com/">Flatiron School</a>. The school is an intensive, full time, twelve week program meant to turn individuals like myself into “internet swiss army knives”. I’ve had the good fortune to become familiar with the school over the course of its first two sessions. (The second one ends in a couple weeks.) I have visited the school several times, spoken with current students, met with alumni of the first class (all of whom are now working as developers) and they have nothing but great things to say about the school. They give it their full endorsement. All the student presentations I have seen have been very impressive. And I think it’s safe to say that the students have had a good time in the process. Intense but fun.</p>
<p>So after the interview yesterday afternoon I began experiencing the mandatory post-interview, second guessing, anxiety inducing, hope-I-didn’t-sound-stupid phase wondering how long I would have to wait before I heard anything. I was sure it would be the end of the week at the earliest. I was thankfully mistaken.</p>
<p>12:03 PM today I get an email congratulating me on joining the next Flatiron School semester. What a relief! I was and still am super syked. June 3rd can’t get here soon enough. Having said that though, I do have some hefty pre-work to get done. Luckily I’ve already completed a fair number of the items on the pre-work list. Better for me. I’ll have more time to dig in even deeper. I want to be as ready as I can be for this. I want to make sure I squeeze every last drop of knowledge and experience I can out of the school and position myself to knock any prospective employers’ socks clean off.</p>
<p>It’s game time! Gotta go big or go home.</p>
<p>(I know I’m repeating the following quote from my first post but it’s definitely called for here.)</p>
<p>“<em>And, when you want something, all the universe conspires in helping you to achieve it.</em>” - Paulo Coelho, <em>The Alchemist</em></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Day 9: The Tax Man Cometh]]></title>
<link href="http://rodriguezd.github.com/blog/2013/04/05/day-9-the-tax-man-cometh/"/>
<updated>2013-04-05T12:48:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/04/05/day-9-the-tax-man-cometh</id>
<content type="html"><![CDATA[<p>I made some phone calls I had been putting off, sent out some emails, finished my taxes, filed my taxes, spent some time dejected about my taxes, went out to dinner, attended the Alicia Keys concert at the Barclays Center. That was my day.</p>
<p>“<em>The secret of life is honesty and fair dealing. If you can fake that, you’ve got it made.</em>” - Groucho Marx</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Day 8: You gotta do what you gotta do]]></title>
<link href="http://rodriguezd.github.com/blog/2013/04/04/day-8-you-gotta-do-what-you-gotta-do/"/>
<updated>2013-04-04T15:09:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/04/04/day-8-you-gotta-do-what-you-gotta-do</id>
<content type="html"><![CDATA[<p>Today I had to get myself to Stony Brook University for a STEM (Science, Technology, Engineering, and Math) conference my high school wanted me to attend. Not exactly something I was looking forward to doing during my Spring break. They want to start a new program next year and they want me to be one of the teachers. (If you have read my first blog post, you probably picked up on the irony here.) My engineering degree guaranteed that there was no way I wasn’t going to be picked for this.</p>
<p>So off to Stony Brook I headed. I took the LIRR for the first time to get there and back. I’m writing this post on the train on my way back to the city. Off peak hours so didn’t have seating neighbors. Pretty comfy I have to say. It was nice reading some more <em>Learning Rails 3</em> on the way there. Will probably read some <em>Pragmatic Thinking and Learning</em> after I’m done here.</p>
<p>The conference itself was 90% boredom with a semi-decent lunch. The only high point was talking to some middle schoolers about the projects they demonstrated. They were so enthusiastic and eager to show you things. They’ve 3-D printed stuff! How cool is that? Very impressed with them. Wish all middle/high school students were like them.</p>
<p>Tonight I’ll be going to the <a href="http://www.meetup.com/nyc-on-rails/events/112427872/?a=md1_grp&rv=md1">Flatiron School Presents</a> meetup. Always a good time combined with great student presentations. Hopefully in the Summer I’ll get to do a few myself. ;]</p>
<p>“<em>Don’t be afraid to give up the good to go for the great.</em> - John D. Rockefeller”</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Day 7: Can't plan for the unexpected]]></title>
<link href="http://rodriguezd.github.com/blog/2013/04/03/day-7-cant-pln-for-the-unexpected/"/>
<updated>2013-04-03T09:16:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/04/03/day-7-cant-pln-for-the-unexpected</id>
<content type="html"><![CDATA[<p>So it turns out that yesterday I was able to reserve two tickets to the <em>Daily Show with Jon Stewart</em> taping today. Completely unexpected. I checked online and lo and behold there were tickets available. I’ve never seen that before. My girlfriend and I are big fans so I jumped on it. Very exciting. Kind of an early birthday surprise for the girlfriend since I was hoping to do this very thing around her birthday in May.</p>
<p>Problem with all this is that to pick up the tickets you have to go to the studio, stand outside in line for a couple hours (in the cold and wind mind you), get the tickets, then come back a couple hours later for the taping. That represents a very good chunk of the day. To make matters worse, today was also laundry day. I hate doing the laundry. I don’t have a washing machine/dryer in my apartment nor is there a laundry room in my building. I have to pack everything up and lug it and myself a couple blocks to the laundromat. It’s like a two and a half hour process. And I hate every second of it.</p>
<p>Needless to say, between laundry first thing in the morning, trekking up to Hell’s Kitchen to stand in line for two and a half hours to pick up my ticket, lunch, returning to the studio early so that my girlfriend could pick up her ticket, the show taping (a lot of fun), and then dinner afterwards at a delicious hummus place, I didn’t get much done today. Only exception was bit of <em>Learning Rails 3</em> reading on the subway and while standing/freezing in line.</p>
<p>C’est la vie!</p>
<p>And on a big, exciting, positive note, I received an email inviting me to interview for the <a href="http://flatironschool.com/">Flatiron School</a>’s’ summer session. Skype interview on Sunday. Looking forward to it. Keeping fingers crossed. If you don’t know about the school, check it out.</p>
<p>“<em>To accomplish great things, we must not only act, but also dream; not only plan, but also believe.</em>” - Antoie France</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Day 6: The Taming of Heroku]]></title>
<link href="http://rodriguezd.github.com/blog/2013/04/02/day-6-the-taming-of-heroku/"/>
<updated>2013-04-02T15:19:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/04/02/day-6-the-taming-of-heroku</id>
<content type="html"><![CDATA[<p>Last night I told myself that I was not going to spend more than a half-hour today trying to finish deploying my Help A Cause app on Heroku. That’s what I told myself. I meant it to. I really did.</p>
<p>I started off reading some from the <em>Learning Rails 3</em> book which I was reading on the subway ride to NYU which is where I was going to be spending the day. (My fiance works at NYU.) I read a couple chapters then started playing an episode of <a href="http://rubyrogues.com/"><em>Ruby Rogues</em></a> and switched back to deploying on Heroku again. That’s when I became a victim of quick success. I resolved the last issue I was having yesterday pretty quickly and that got me excited thinking I just might be close to it working. (Not really.) And I kept telling myself, “But maybe this is the last error message before it works!”.</p>
<p>I discovered (unfortunately not soon enough) that Heroku seems to run through the Rails app migrations sequentially one by one as it tries to build the database in PostgreSQL. Not sure why this is the way it does it but it just does. There has to be a better way. What was causing me problems was that every time Heroku came across a migration that did something that PostgreSQL did not like, it would puke some cryptic error about some DB incompatibility that most likely did not actually exist in my database any more. It existed in that particular migration it was trying to execute at the time but not in the current schema. Heroku was making me pay for offenses my db commited in its youth. So eventually I figured out that if I deleted the offending migration file and re-ran the migration, Heroku would get further before finding the next migration it didn’t care for. Eventually I got it to finish the migration and Walla! the app came online.</p>
<p>Had lunch and afterwards joined my girlfriend in visiting a restaurant we’re considering for our post-wedding dinner. Not happening til August 2014 but you can never start planning too soon.</p>
<p>After getting back, I decided to try to populate the production database with the data I had in my development database so I had something to work with. Shouldn’t be too hard. All it should take is “heroku db:push”, right? I entered the command, hit enter, and then a few seconds later I learned that Heroku wasn’t done with me yet. “Time zone displacement out of range.” Just rolls off the tongue doesn’t it? Whatever was going on it caused the push to fail and the app to crash to boot. So I hit Google and Stack Overflow and tried to figure out what in the world this error might mean.</p>
<p>Long story short, I came across a proposed solution which I found hard to believe. You’re gonna love this. The proposed solution was to switch to Ruby 1.9.2, reinstall the necessary gems, conduct the push, and then switch back to Ruby 1.9.3. Seriously? With great skepticism I tried it and wouldn’t you know it, it worked. Apparently there’s something about the Heroku db that is incompatible with Ruby 1.9.3. So the only way to get the data push to work is to use 1.9.2. Wow. But everything worked after that.</p>
<p>I ended the day looking into Sinatra. I installed the gem and created and ran my first, basic-as-it-gets Sinatra app. Looks pretty interesting. Can’t wait to learn more.</p>
<p>“<em>Our greatest glory is not in never failing, but in rising up every time we fail</em>” - Ralph Waldo Emerson</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Day 5?]]></title>
<link href="http://rodriguezd.github.com/blog/2013/04/01/day-5/"/>
<updated>2013-04-01T21:05:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/04/01/day-5</id>
<content type="html"><![CDATA[<p>It’s me again. I didn’t really do much over the weekend. Enjoyed the really nice weather on Saturday and then Sunday was a Sunday i.e. I don’t usually get a whole lot done on Sundays despite whatever my intentions may be. Just seems to usually work out that way.</p>
<p>Today on the other hand was a different story. I spent the whole day working on my Rails app which from this point forward I will be referring to as ”<em>Help A Cause</em>”. “fundraise” was always just the name of the Github repository I created for the project when I had no idea what to call it. So <em>Help A Cause</em> it is.</p>
<p>I started off completing the addition of ‘Date’ and ‘Time’ fields in the event creation form. I used ‘date_select’ and ‘time_select’ form helpers which were new to me and took a bit to figure out how the various options worked. A lot of trial and error was involved. And for some God forsaken reason, my app insists on displaying GMT time versus local time. In the Rails console, accessing the same attributes displays local time. ??? A battle to be fought another day.</p>
<p>After a bit of a break followed by lunch in Washington Square I returned determined to add a Date field to my event search. Sounded easy enough but it turned out to be a huge pain in the hiney. Could not get the date_select fields to function the way I wanted to save my life. For a good while there it didn’t matter what the hell I did with the options. The date fields (year, month, day) appeared and functioned exactly the same no matter what I changed. It turned into an elongated, shake your head with an incredulous look on your face while staring at the screen episode. Eventually I figured out that I was missing a second, non-option parameter. So got passed that but then it became “How do I access the data stored by the date_select helper in the Date object and then use it in a search with other parameters?”.</p>
<p>Worked on the search for a bit but frankly my brain was getting a bit mushy by now. (I need to get better at giving my brain and myself more frequent breaks to keep my thinking more crispy. Need to get away for a bit some times. Just fighting through it is not always the best approach.) So I decided to try to deploy what I had to Heroku. I remember it not being that big a deal when I did the Michael Hartl Rails tutorial so I decided “why not?”. Yeah, well, it sounded like a good idea in theory. To make a long story short, I learned that PostgreSQL, the database of choice for Heroku, apparently has an issue with type casting string values to integer values which I happen to do with phone numbers on a form. (Do you hear that sound of grinding metal? That’s a wrench flying into my productivity gears.) Couldn’t complete a migration of the database on Heroku. So my app only kind of, sort of deployed. And that’s where I’m starting tomorrow. But only for bit.</p>
<p>To close the day I read a few more chapters of <em>Eloquent Ruby</em>.</p>
<p>“<em>Absorb what is useful, discard what is not, add what is uniquely your own.</em>” - Bruce Lee</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Day 2 (Thank God it's Friday)]]></title>
<link href="http://rodriguezd.github.com/blog/2013/03/29/day-2-thank-god-its-friday/"/>
<updated>2013-03-29T22:28:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/03/29/day-2-thank-god-its-friday</id>
<content type="html"><![CDATA[<p>Got some Code School done. Read several chapters of <em>Eloquent Ruby</em> interacting with IRB along the way. Then banged my head against the wall for several hours trying to make my Rails app look “prettier” with Twitter bootstrap. Met with as much success as Congress on, well, anything. Bootstrap is easy enough to install, but unfortunately that by iteslf only gets you from the crappy Rails default look to crappy with smoother edges. At least I figured out how to make my buttons look nicer.</p>
<p>Lesson learned: Worry about functionality first, making it look “pretty” later.</p>
<p>On a totally unrelated topic, I saw the documentary <a href="http://revolutionaryoptimists.org/">The Revolutionary Optimists</a> in the city tonight at <a href="http://www.cinemavillage.com/chc/cv/">Cinema Village</a>. Great documentary, great story. I highly recommend it. Two thumbs it. Go see it.</p>
<p>Gonna take a break tomorrow. Have a great weekend.</p>
<p>“<em>I firmly believe that any man’s finest hour, the greatest fulfillment of all that he holds dear, is that moment when he has worked his heart out in a good cause and lies exhausted on the field of battle - victorious.</em>” - Vincent Lombardi</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[So at the end of Day 1 ...]]></title>
<link href="http://rodriguezd.github.com/blog/2013/03/28/so-at-the-end-of-day-1-dot-dot-dot/"/>
<updated>2013-03-28T22:01:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/03/28/so-at-the-end-of-day-1-dot-dot-dot</id>
<content type="html"><![CDATA[<p>Don’t you hate it when at the end of a long day, whatever that means for you, you ask yourself “So what did I really get done today?” and then the mental math just doesn’t seem to add up? I know I can be really hard on myself and I know that I got more done than I give myself credit for but I just wish I thought “I did too much today.” more often.</p>
<p>So I started the day finishing one Code School course and then starting another. Three videos in all and the accompanying exercises for each. If you’re not familiar with Code School courses, each course consists of about five to seven, five to fifteen minute videos each followed by eight to ten practice problems. I have a habit of pausing the videos often to look up associated material in an effort to understand the topic better. Needless to say, this can really slow things down. But then maybe I get more bang for my time buck. I just need to not get carried away.</p>
<p>Then while eating my tuna melt with chips for lunch, I decided to look up information about the Twitter API. I had no intention of this going beyond the last chip on my plate. So much for intentions. About three hours later I was still experimenting on IRB with the Twitter API via the ‘Twitter’ Ruby gem (after about an hour of troubleshooting) and the Foursquare API via their developer site. What I was most curious about was what data one could access and what form did it take. At the end of it all, I decided that I will not pursue the Twitter API becuase of the limitations they place on the public API. I concluded it would become a problem. Foursquare looks more promising even if I may wind up duplicating some functionality that already exists on their site. But then the end goal is learning new things and practicing coding so whatever.</p>
<p>So I never got to working on the “fundraise” app today as I intended but then I did research the APIs pretty thoroughly which I would have done later. So I guess I can call it a draw.</p>
<p>Tomorrow I will finish that second Code School course, get in some <em>Eloquent Ruby</em> reading, but then the rest of the day is all about “fundraise”. It’s been a good while since I’ve spent so much time in one day working on dev stuff. It felt good but I have to be smarter about it. I will be tomorrow.</p>
<p>“<em>Pick your battles big enough to matter, small enough to win.</em>” - Jonathan Kozol</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Spring Break => Code, Code, Read, Code]]></title>
<link href="http://rodriguezd.github.com/blog/2013/03/28/spring-break-equals-%3E-code/"/>
<updated>2013-03-28T09:04:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/03/28/spring-break-equals->-code</id>
<content type="html"><![CDATA[<p>Today is the first day of my school’s Spring break. I’m off until April 7th. Now is when I have to stop thinking and talking about all the great stuff I’m going to get done over the break and start actually doing it. So here’s my Spring break checklist:</p>
<ul>
<li>Get my “fundraise” Rails app into presentable shape and deploy it to Heroku</li>
<li>Create a Sinatra app that utilizes either the Twitter or 4Squre API (OR a Rails app that catalogs, retrieves, and displays photo image files based on their embedded EXIF data)</li>
<li>Start writing tests using Rspec for everything!</li>
<li>Watch one Code School video each day (Rails, Javascript, GIT)</li>
<li>Finish reading <em>Eloquent Ruby</em></li>
<li>Finish reading <em>Pragmatic Thinking & Learning</em></li>
<li>Revisit my HTML tutorial book to prep for learning Javascript</li>
<li>Finish my income taxes (Always sucks. Times a million when you owe like my sorry ass.)</li>
</ul>
<p>Yeah. That’s it.</p>
<p>And of course blogging about my progress along the way. (I’ll try to keep the cursing to a minimum.)</p>
<p>“<em>Getting good at something means going through various periods of being not-good, during which you tend to feel dumb, clueless, incompetent.</em>” - <a href="http://www.forbes.com/sites/erikaandersen/2013/03/09/the-secret-to-getting-really-really-good-at-something/">Erika Andersen</a>, <em>Forbes</em></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[So where do I begin?]]></title>
<link href="http://rodriguezd.github.com/blog/2013/03/21/so-where-do-i-begin/"/>
<updated>2013-03-21T21:03:00-04:00</updated>
<id>http://rodriguezd.github.com/blog/2013/03/21/so-where-do-i-begin</id>
<content type="html"><![CDATA[<h3><em>A long time ago, in a galaxy far, far, away …</em></h3>
<p>I’ve been meaning to start blogging for quite some time. But like most who do, I just hadn’t gotten around to it. My time has come.</p>
<p>What you’re reading now was not my first draft of this post. In what I can only describe as an episode of irrational post writing exuberance, I began writing a rambling post that began with my childhood career preferences. It went downhill from there. Luckily for me and every reader of my blog, my wonderful and beautiful girlfriend (a.k.a my fiance) knocked some blogging sense into me. (She’s a budding food blogger herself. <a href="http://foodentity.wordpress.com">Check hers out</a>.)</p>
<p>So let’s just say that about a year ago I started down a path to change my career from a high school math teacher to a full stack web developer. Being a teacher is not a lifetime occupation for me, it’s not where I’m meant to be. It had it’s moments, there are many things I did that I am very proud of, and in one very significant and wonderful way it lead to very big change in my life for the better. I have no regrets but it’s time to move on.</p>
<p>I have an engineering degree, I used to work for Fortune 100 companies on technology projects, and I have always been the techie, tinkering type. How I wound up teaching is not important. What is important is that I have decided to go back to where I belong. Back to the world of technology, engineering, and problem solving with creative solutions. (In other words, working on really cool stuff, using really cool technologies, with really cool people, and making magic happen.)</p>
<p>So in posts to follow I hope to chronicle my experiences on this “little” endeavor I have embarked on. I am also quite sure there will be a decent peppering of tangential and completely random posts on events, people, and thoughts the universe throws my way. I can’t tell you what to expect should you choose to return and read my future posts because frankly I have no idea what to expect myself. We can find out together. Stay tuned.</p>
<p>It’s gonna be interesting.</p>
<p>“<em>And, when you want something, all the universe conspires in helping you to achieve it.</em>” - Paulo Coelho, <em>The Alchemist</em></p>
]]></content>
</entry>
</feed>