-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
572 lines (327 loc) · 19.7 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
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
<!DOCTYPE html>
<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
<head>
<meta charset="utf-8">
<title>Hamit YAY</title>
<meta name="author" content="Hamit YAY">
<meta name="description" content="Bu yazı, bir yazılım geliştiricisi olarak linux terminalde en çok kullanılan komutlar hakkında olacaktır. Linux terminal açık kaynak felsefesi ile …">
<!-- 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 rel="canonical" href="http://hamityay.github.io/">
<link href="/favicon.png" rel="icon">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
<link href="/atom.xml" rel="alternate" title="Hamit YAY" type="application/atom+xml">
<script src="/javascripts/modernizr-2.0.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="/javascripts/libs/jquery.min.js"%3E%3C/script%3E'))</script>
<script src="/javascripts/octopress.js" type="text/javascript"></script>
<!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
<link href="//fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
<link href="//fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
</head>
<body >
<header role="banner"><hgroup>
<h1><a href="/">Hamit YAY</a></h1>
<h2>Blog Journey...</h2>
</hgroup>
</header>
<nav role="navigation"><ul class="subscription" data-subscription="rss">
<li><a href="/atom.xml" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
</ul>
<form action="https://www.google.com/search" method="get">
<fieldset role="search">
<input type="hidden" name="sitesearch" value="hamityay.github.io">
<input class="search" type="text" name="q" results="0" placeholder="Search"/>
</fieldset>
</form>
<ul class="main-navigation">
<li><a href="/">Blog</a></li>
<li><a href="/blog/archives">Archives</a></li>
</ul>
</nav>
<div id="main">
<div id="content">
<div class="blog-index">
<article>
<header>
<h1 class="entry-title"><a href="/blog/2016/08/06/linux-terminal/">Linux Terminal</a></h1>
<p class="meta">
<time class='entry-date' datetime='2016-08-06T20:24:09+03:00'><span class='date'><span class='date-month'>Aug</span> <span class='date-day'>6</span><span class='date-suffix'>th</span>, <span class='date-year'>2016</span></span> <span class='time'>8:24 pm</span></time>
</p>
</header>
<div class="entry-content"><p>Bu yazı, bir yazılım geliştiricisi olarak linux terminalde en çok kullanılan komutlar hakkında olacaktır. Linux terminal açık kaynak felsefesi ile yazılım geliştiren bir kimsenin eli ayağı niteliğindedir. Bu yüzden terminale dolayısı ile terminal komutlarına elimizden geldiğince hakim olmakta yarar var. Bu düşünceye dayanarak, Lnux yaz kampında bu gün gösterilen terminal komutlarına değineceğim.</p>
<p>İlk olarak</p>
<pre><code>$PATH
</code></pre>
<p>komutu.(Büyük yazıldığına dikkat edelim) PATH çalıştırılabilir dosyaların yerini gösteren değişken. Kullanıcı tarafından çalıştırılabilecek komut ve yazılımların aranacakları yerleri belirtir. Yukarıdaki komutta tanımlı olan dzinleri listeler.</p>
<pre><code>export PATH=$PATH:~/project
</code></pre>
<p>komutu ile bir önceki komut ile listelenen dizinlere kök dizinindeki project klasör dizininin eklenmesini sağlar. Bu işlem sadece terminalin kullanıldığı oturum için geçerli olur.</p>
<p>Kalıcı olarak eklemek için kök dizininde bulunan <em>.bashrc</em> dosyasına istenilen dizin eklenebilir. Bu işlemi terminal üzerinden <em>nano</em> editörü kullanılarak yapılabilir.</p>
<pre><code>nano .bashrc
</code></pre>
<p>komutu terminal üzerinde <em>.bashrc</em> dosyasının içeriğinin düzenlenebilmesine olanak tanır. İstenilen değişiklikler yapıldıktan sonra</p>
<blockquote><p>ctrl + x</p></blockquote>
<p>kısa yolu editörden çıkılmasını sağlar. Değişiklikleri kaydetmek için <em>“y”</em> ve <em>“enter”</em> tuşlarına basılması yeterli olacaktır.</p>
<p><strong>Dosya işlemleri ile ilgili komutlar</strong></p>
<pre><code>ls
</code></pre>
<p>komutu bulunulan dizindeki klasör ve dosyaları listeler.</p>
<pre><code>ls -a
</code></pre>
<p>komutu bulunulan dizindeki dosya ve klasörleri gizli olanlar ile birlikte listeler.</p>
<pre><code>cd ~/project
</code></pre>
<p>komutu kök dizindeki project klasör dizinine geçmeyi sağlar.</p>
<pre><code>cd ..
</code></pre>
<p>komutu bir üst dizine geçmeyi sağlar.</p>
<pre><code>pwd
</code></pre>
<p>bulunulan dizini gösterir.</p>
<pre><code>mkdir deneme
</code></pre>
<p>Bulunulan dizine <em>deneme</em> isimli klasör oluşturur.</p>
<pre><code>mkdir -p deneme/deneme1
</code></pre>
<p>Bulunulan dizinde iç içe dosya açar.</p>
<pre><code>rm -rf deneme.txt
</code></pre>
<p>komutu klasör ya da dosya silmek için kullanılabilir.</p>
<pre><code>nano deneme.txt
</code></pre>
<p>komutu eğer dizinde <em>deneme.txt</em> dosyası yoksa oluşturur ve terminal üzerinde düzenleyebilmek için açar.</p>
<pre><code>cat gemfile
</code></pre>
<p> <em>gemfile</em> dosyasının içeriğini terminal üzerinde gösterir.</p>
<pre><code>tail -f development.log
</code></pre>
<p><em>tail</em> komutu dizindeki dosyanın son bölümünü gösterir. <em>-f</em> parametresi ile log dosyasının realtime takip edilebilmesini sağlar.</p>
<pre><code>which ruby
</code></pre>
<p>komutu konsolda çalıştırılan komutların(ruby gibi) hangi dizinden çalıştırıldığını gösterir.</p>
<pre><code>grep -i Hasan seed.rb
</code></pre>
<p><em>seed.rb</em> dosyası içerisinde <em>hasan</em> stringini arar ve eşleşen satırları listeler. <em>-i</em> parametresi büyük küçük harf duyarlılık sorununu ortadan kaldırmak için kullanılabilir. Kullanılmadan da arama yapılabilir. Kullanılmadığı takdirde arama yaparken büyük küçük harfe duyarlı bir şekilde arama yapar.</p>
<pre><code>find ~project/ruby -name "*.css"
</code></pre>
<p>Arama yapmak için kullanılır. Belirtilen dizindeki tüm <em>css</em> uzantılı dosyaları listeler.</p>
<p>Herhangi bir komutun aldığı parametreleri ve nasıl kullanıldığını görmek için</p>
<pre><code>ls --help
</code></pre>
<p>komutu gibi istenilen komutun sonuna <em>–help</em> ekleyerek terminalde çalıştırılır.</p>
<p>Komut hakkında daha detaylı bilg almak için</p>
<pre><code>man ls
</code></pre>
<p>komutu gibi istenilen komutun başına <em>man</em> ifadesi eklenip çalıştırılır.</p>
<p>Bu komutun çıktısı uzun olduğu için sayfa sayfa görebilmek için komutun sonuna <em>more</em> ifadesi eklenebilir. Bir sonraki sayfaya geçmek için <em>space</em> tuşuna basarak ilerlenebilir.</p>
</div>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/blog/2016/08/02/git-flow/">Git Flow</a></h1>
<p class="meta">
<time class='entry-date' datetime='2016-08-02T10:14:30+03:00'><span class='date'><span class='date-month'>Aug</span> <span class='date-day'>2</span><span class='date-suffix'>nd</span>, <span class='date-year'>2016</span></span> <span class='time'>10:14 am</span></time>
</p>
</header>
<div class="entry-content"><p>Git flow, git deki yeni bir branch oluşturma işlemlerini bir standart haline getirmiş, uygulama geliştirme aşamasında büyük kolaylık sağlayan git tabanlı bir araçtır. Git tabanlı olması git deki komutların aynen kullanılabilmesini sağlar.</p>
<h4>Git flowu kurmak için</h4>
<pre><code>apt-get install git-flow
</code></pre>
<p>komutunu (linux için) terminal üzerinde çalıştırmak gerekir.</p>
<h4>Git flowu bir projede kullanabilmek için başalangıçta</h4>
<pre><code>git flow init
</code></pre>
<p>komutu kullanılır.</p>
<p>Git flowda standartlaştırılmış 5 adet branch mevcut. Bunlar;</p>
<ul>
<li><p><strong>Master</strong> ana branch.</p></li>
<li><p><strong>Develop</strong> uygulama geliştirme branchi.</p></li>
<li><p><strong>Feature</strong> uygulamaya yeni bir özellik eklemek için branch. Her bir yeni özellikiçin yeni bir feature branch oluşturmak ve bitirmek gerekiyor. nasıl yapıldığına birazdan değineceğiz.</p></li>
<li><p><strong>Hotfix</strong> uygulamadaki ataları gidermek için branch.</p></li>
<li><p><strong>Release</strong> uygulamayı yayınlamak için branch.</p></li>
</ul>
<h4>Yeni bir feature (özellik) oluşturmak için</h4>
<pre><code>git flow feature start myfeature
</code></pre>
<p>komutu kullanılır. Bu komut uygulamaya yeni bir özellik eklemek için develop brachini temel alan myfeature isimli feature branch ouşturur.</p>
<h4>Bir feature tamamlamak için</h4>
<pre><code>git flow feature finish myfeature
</code></pre>
<p>komutu kullanır. Bu komut kullanılan branchi develop olarak değiştirir. Eklenmiiş olan özellikleri develop branchi ile birleştirir.(merge) Oluşturulmuş olan myfeature feature branchini siler</p>
<h4>Bir feature yayınlamak için</h4>
<pre><code>git flow feature publish myfeature
</code></pre>
<p>komutu kullanılır. Bir ekip olarak çalışılıyorsa ekipdeki diğerleri bu feature a ulaşabilirler.</p>
<h4>Yayınlanmış bir feature ı almak için</h4>
<pre><code>git flow feature pull myfeature
</code></pre>
<p>komutu kullanılır.</p>
<h4>Bir uygulamayı yayımlamak için (release)</h4>
<pre><code>git flow release start 0.1.0
</code></pre>
<p>örnek komutu kullanılır. Bu kumut yeni bir release branch oluşturur.</p>
<h4>Yayımlanmış bir release i yayınlamak için</h4>
<pre><code>git flow release publish 0.1.0
</code></pre>
<p>komutu kullanılır. Bu komut öncesinde local olarak yapılan release barnchi ile beraber yayınlamayı sağlar.</p>
<h4>Bir uygulamanın yayımlanmasını bitirmek için</h4>
<pre><code>git flow release finish 0.1.0
</code></pre>
<p>komutu kullaılır. Bu komut release barnchini master branchine birleştirir. Arka planda develop barnchi ile de birleştirir. Yayınlama için açılmış olan 0.1.0 release branch silinir.</p>
<h4>Yeni bir hata düzeltme branchi oluşturmak için</h4>
<pre><code>git flow hotfix start version
</code></pre>
<p>komutu kullanılır. Yeni bir hotfix branch oluşturur.</p>
<h4>Hata düzeltme branchini bitirmek için</h4>
<pre><code>git flow hotfix finish version
</code></pre>
<p>komutu kullanılır. Bu komut oluşturulmuş olan hotfix branchini develop ve master branchleri ile birleştirir. Hotfix branchi silinir.</p>
<p>Aşağıdaki resimde çeşitli git flow işlemleri gösterilmektedir.</p>
<p><img src="http://nvie.com/img/git-model@2x.png" alt="gitflow chart" /></p>
<p>Aşağıda git flow için komut şablonu gösterilmektedir.</p>
<p><img src="http://danielkummer.github.io/git-flow-cheatsheet/img/git-flow-commands.png" alt="gitflow command chart" /></p>
<p>Daha detaylı bilgi için <a href="http://danielkummer.github.io/git-flow-cheatsheet/">git-flow cheatsheet</a> adrsini ziyaret edebilirsiniz.</p>
</div>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/blog/2016/08/02/semantik-versiyonlama/">Semantik Versiyonlama</a></h1>
<p class="meta">
<time class='entry-date' datetime='2016-08-02T09:13:07+03:00'><span class='date'><span class='date-month'>Aug</span> <span class='date-day'>2</span><span class='date-suffix'>nd</span>, <span class='date-year'>2016</span></span> <span class='time'>9:13 am</span></time>
</p>
</header>
<div class="entry-content"><p>Versiyonlama işlemi uygulamalar için bir sınıflandırma işlemidir. Geriye yönelik gelişimini takip edebilmek ve hata denetimini yapabilmek gibi bir çok amaca hizmet eder.</p>
<p>Semantik versiyonlama, uygulama versiyonlama işlemi için belirli standartları olan ve yaygın olarak kullanılan versiyonlama sistemidir.</p>
<blockquote><p>Rails 4.2.6</p></blockquote>
<p>Rails'ın bir önceki sürümünü örnek olarak verecek olursak;</p>
<blockquote><p>Rails 4 | 2 | 6</p>
<p> major|minor|patch</p></blockquote>
<p>versiyon numaralarını bu şekilde ilişkilendirebiliriz.(Semantik Versiyonlamaya uygun olarak)</p>
<dl>
<dt><strong><em>Major</em></strong></dt>
<dd> Uygulamada köklü değişikler yapıldığında değişir. <strong>Bu değişiklikler geriye yönelik (önceki sürümler ile) uyumlu olmayabilir. (Geriye Yönelik Uyumlu Değildir)</strong></dd>
<dt><strong><em>Minor</em></strong></dt>
<dd> Uygulamaya yeni özellikler, fonksiyonellikler eklendiğinde değişir. <strong>Bu değişiklikler geriye yönelik uyumludur.</strong></dd>
<dt><strong><em>Patch</em></strong></dt>
<dd> Uygulamada oluşan hataların giderilmesi gibi durumlarda değişir. <strong>Bu değişiklikler geriye yönelik uyumludur.</strong></dd>
</dl>
<p>Major, Minor, Patch nuaralandırılırken dikkat edilmesi gereken hususları özetleyecek olursak;</p>
<ul>
<li><p> Negatif olmayan sayılar kullanılmalıdır.</p></li>
<li><p> Bir uygulama 0.1.0 versiyonu ile başlar.</p></li>
<li><p> Uygulamanın yayınlanması için 1.0.0 versiyonunda olmalıdır.</p></li>
<li><p> Bir uygulama henüz yayınlanmadıysa yani Major ‘0’ (sıfır) ise uygulama karalı değildir.</p></li>
<li><p> Her uygulama versiyonunu gösteren API'si olmalıdır.</p></li>
</ul>
<p>Versiyon numarası o uygulamanın yaşını, ne kadar geliştiğini ve ona ne kadar emek harcandığını gösterir.</p>
<p>Daha detaylı bilgi için <a href="http://semver.org/">Semantik Versiyoning 2.0</a> adresini ziyaret edebilir, türkçesi için ise <a href="https://github.com/lab2023/semver/blob/master/semver_tr.md">Lab2023 Semver</a> adresini ziyaret edebilirsiniz.</p>
<blockquote><p>Bir sonraki yazımız <strong><a href="https://hamityay.github.io/blog/2016/08/02/git-flow/">Git Flow</a></strong> hakkında olacaktır.</p></blockquote>
</div>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/blog/2016/08/01/ruby-ruby-environment-hakkinda-dot-dot-dot/">Ruby-Ruby Environment Hakkında...</a></h1>
<p class="meta">
<time class='entry-date' datetime='2016-08-01T19:54:21+03:00'><span class='date'><span class='date-month'>Aug</span> <span class='date-day'>1</span><span class='date-suffix'>st</span>, <span class='date-year'>2016</span></span> <span class='time'>7:54 pm</span></time>
</p>
</header>
<div class="entry-content"><p>Ruby bir object oriented programlama dilidir. 1995 yılında Yukihiro Matsumoto tarafından Japonya'da tasarlanmıştır.</p>
<p>Ruby ingilizceye yakın ve anlaşılması kolay bir programa dilidir. Ruby çok çeşitli ve güçlü bir ekosisteme sahiptir. Bu sayede geliştiriciler için bir çok kolaylık sunmaktadır. Ruby, yazmaya başladığınızda anlayabileceğiniz gibi sintax ı kolay ve eğlenceli bir dildir. Şu an Ruby'nin 2.3.1 karalı sürümü mecuttur.</p>
<p>Ruby environment burada devreye giriyor. Ruby environment, birçok proje için farklı ruby versiyonları ile çalışabilme olanağı sunmaktadır. Mesela A projesi 1.9 ruby versiyonu ile çalışırken, B projesi 2.3 versiyonu ile çalışır olsun. Bu iki farklı projeyi ruby environment sayesinde kolaylıkla çalıştırabiliriz. Ruby environmetn ile local ve global olarak ruby versiyonları tanımlayabiliriz. ‘Local’ olarak tanımlanan ruby versiyonu sadece ilgili proje için geçerli olurken, ‘global’ olarak tanımlanan ruby versiyonu ise yeni bir proje için ve local olarak tanımlanmayan projeler için geçerlidir.</p>
<p>Ruby environment için geçerli bazı kodları paylaşalım. <em>Linux terminal için geçerlidir.</em></p>
<pre><code>rbenv versions
</code></pre>
<p>Bu komut ile tanımlamış olduğunuz global ve local tanımlı olan ruby versiyonlarının listesini görebilirsiniz.</p>
<pre><code>rbenv local 2.4.6
</code></pre>
<p>Proje kök dizinizde sadece o proje için geçerli ruby versiyonunuzun 2.4.6 olmasını sağlar. Yukarıda da bahsettiğimiz gibi ayrıca proje kök dizinine</p>
<blockquote><p>.ruby-versiyon</p></blockquote>
<p>dosyası oluşturup içine 2.4.6 yazıyor.</p>
<p>Ruby environment ile kullanılabilecek komutları ve açıklamalarını</p>
<pre><code>rbenv help
</code></pre>
<p>komutu ile terminalde listeleyebilirsiniz.</p>
<p>Ruby ve ruby environment ile ilgili daha detaylı bilgiyi <a href="https://www.ruby-lang.org">Ruby Programming Language</a> adresinden elde edebilirsiniz.</p>
<p>Ruby environment ile aynı işlevi gören <strong>Ruby Versiyon Manager (RVM)</strong> da mevcut ancak <strong>RuBy ENVironment (rbenv)</strong> daha yaygın olarak kullanılmaktadır.</p>
<blockquote><p>Bir sonraki yazımız <strong><a href="https://hamityay.github.io/blog/2016/08/02/semantik-versiyonlama/">Semantik Versiyonlama</a></strong> hakkında olacaktır.</p></blockquote>
</div>
</article>
<div class="pagination">
<a href="/blog/archives">Blog Archives</a>
</div>
</div>
<aside class="sidebar">
<section>
<h1>Recent Posts</h1>
<ul id="recent_posts">
<li class="post">
<a href="/blog/2016/08/06/linux-terminal/">Linux Terminal</a>
</li>
<li class="post">
<a href="/blog/2016/08/02/git-flow/">Git Flow</a>
</li>
<li class="post">
<a href="/blog/2016/08/02/semantik-versiyonlama/">Semantik Versiyonlama</a>
</li>
<li class="post">
<a href="/blog/2016/08/01/ruby-ruby-environment-hakkinda-dot-dot-dot/">Ruby-Ruby Environment Hakkında...</a>
</li>
</ul>
</section>
<section>
<h1>GitHub Repos</h1>
<ul id="gh_repos">
<li class="loading">Status updating...</li>
</ul>
<a href="https://github.com/hamityay">@hamityay</a> on GitHub
<script type="text/javascript">
$(document).ready(function(){
if (!window.jXHR){
var jxhr = document.createElement('script');
jxhr.type = 'text/javascript';
jxhr.src = '/javascripts/libs/jXHR.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(jxhr, s);
}
github.showRepos({
user: 'hamityay',
count: 0,
skip_forks: true,
target: '#gh_repos'
});
});
</script>
<script src="/javascripts/github.js" type="text/javascript"> </script>
</section>
</aside>
</div>
</div>
<footer role="contentinfo"><p>
Copyright © 2016 - Hamit YAY -
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
</p>
</footer>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js#appId=212934732101925&xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<script type="text/javascript">
(function(){
var twitterWidgets = document.createElement('script');
twitterWidgets.type = 'text/javascript';
twitterWidgets.async = true;
twitterWidgets.src = '//platform.twitter.com/widgets.js';
document.getElementsByTagName('head')[0].appendChild(twitterWidgets);
})();
</script>
</body>
</html>