-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
332 lines (209 loc) · 14.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
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><![CDATA[Hamit YAY]]></title>
<link href="http://hamityay.github.io/atom.xml" rel="self"/>
<link href="http://hamityay.github.io/"/>
<updated>2016-08-07T09:31:49+03:00</updated>
<id>http://hamityay.github.io/</id>
<author>
<name><![CDATA[Hamit YAY]]></name>
</author>
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[Linux Terminal]]></title>
<link href="http://hamityay.github.io/blog/2016/08/06/linux-terminal/"/>
<updated>2016-08-06T20:24:09+03:00</updated>
<id>http://hamityay.github.io/blog/2016/08/06/linux-terminal</id>
<content type="html"><![CDATA[<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>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Git Flow]]></title>
<link href="http://hamityay.github.io/blog/2016/08/02/git-flow/"/>
<updated>2016-08-02T10:14:30+03:00</updated>
<id>http://hamityay.github.io/blog/2016/08/02/git-flow</id>
<content type="html"><![CDATA[<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/[email protected]" 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>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Semantik Versiyonlama]]></title>
<link href="http://hamityay.github.io/blog/2016/08/02/semantik-versiyonlama/"/>
<updated>2016-08-02T09:13:07+03:00</updated>
<id>http://hamityay.github.io/blog/2016/08/02/semantik-versiyonlama</id>
<content type="html"><![CDATA[<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>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Ruby-Ruby Environment Hakkında...]]></title>
<link href="http://hamityay.github.io/blog/2016/08/01/ruby-ruby-environment-hakkinda-dot-dot-dot/"/>
<updated>2016-08-01T19:54:21+03:00</updated>
<id>http://hamityay.github.io/blog/2016/08/01/ruby-ruby-environment-hakkinda-dot-dot-dot</id>
<content type="html"><![CDATA[<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>
]]></content>
</entry>
</feed>