Skip to content

Commit

Permalink
Merge pull request #29 from lab2023/feature/2016-08-04-ruby-on-rails-…
Browse files Browse the repository at this point in the history
…uygulamasinin-heroku-servisinde-coklu-ortamda-yayinlanmasi

This merge includes by some typo fixes, file name changes and conflict resolves
  • Loading branch information
tayfunoziserikan authored Apr 11, 2017
2 parents 58f2ccc + f507b33 commit 088c853
Show file tree
Hide file tree
Showing 13 changed files with 61 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ prepend_around_filter :ar1, :ar2

before_filter :b1
prepend_around_filter :ar1
before_filter :b1
before_filter :b2
prepend_around_filter :ar2

# ar2(before) --> ar1(before) --> b1 --> b2 -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Her tag’e özellik atamak kullanışlı değildir, özel durumlarda kullanılm

# 3-Harici stil dosyası ekleme:

Bu yöntemde stil özelliklerimizi .css uzantılı ayrı bir sayfaya yazarız. `<head>...</head>` tag’leri arasındada css dosyamızın yolunu belirterek etkinleştirmiş oluruz.
Bu yöntemde stil özelliklerimizi .css uzantılı ayrı bir sayfaya yazarız. `<head>...</head>` tag’leri arasında da css dosyamızın yolunu belirterek etkinleştirmiş oluruz.

Örnek: style.css adlı stil dosyası

Expand Down Expand Up @@ -71,7 +71,7 @@ Bu sayfanın web sayfasına eklenmesi aşağıda gösterilmiştir.

# 4- @import yöntemi ile:

Bu yöntem kullanılış yönünden 2. yönteme, çalışma mantığı yönündende 3. yönteme benzer. İçerik bakımından yüklü sitelerde bölümlere ayrılmış stil yapısı için kullanımı uygundur.
Bu yöntem kullanılış yönünden 2. yönteme, çalışma mantığı yönünden de 3. yönteme benzer. İçerik bakımından yüklü sitelerde bölümlere ayrılmış stil yapısı için kullanımı uygundur.

Örnek:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tags: capistrano, deploy, ruby on rails, tr

Ürünlerimizi geliştirme aşamasında production ve staging olarak iki sunucuya deploy ediyoruz. Hafta bitiminde yaptığımız işleri staging sunucusuna deploy edip test edilmesini bekliyoruz. Onay geldiğinde ise production sunucusuna gönderiyoruz.

Deploy işlermlerinde bildiğiniz gibi capistrano kullanıyoruz. İşlemleri halihazırda capistrano kullandığınızı düşünerek anlatacağım.
Deploy işlemlerinde bildiğiniz gibi capistrano kullanıyoruz. İşlemleri halihazırda capistrano kullandığınızı düşünerek anlatacağım.

`config/deploy.rb` ye capistrano multistage extension ekliyoruz.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Merhabalar,

Şirket olarak 8 ay önce PostgreSQL' e geçmiştik ama o zamanlar devam edegelen projeleri iş yoğunluğundan dolayı PostgreSQL' e geçiremedik. Aslında bu bizim için ek bir maliyetti. Şimdi tüm projelerimizi PostgreSQL' e geçirmeye başladık.

Bu işlemler için [Taps][1] gemini kullanıyoruz. Alternatif olarak [Valkyrie][2] geminide kullanabilirsiniz.
Bu işlemler için [Taps][1] gemini kullanıyoruz. Alternatif olarak [Valkyrie][2] gemini de kullanabilirsiniz.

Taps' ta server ve client olarak iki kavram var. Veritabanınızın birisini server yapıyorsunuz diğerini client. Client olan veritabanında pull ve push işlemlerini yapıyoruz.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ Gördüğünüz gibi yapılacak işler shell1 ve shell2 arasında paylaşılmakt

Peki `Consumers` bu uzun işlemleri yaparken bir hata ile karşılaşıp ölür ise ne olur? Şuanki kodumuza göre o işlem yapılmamış olur çünkü RabbitMQ mesajın gönderilmesi ile ilgili mesajı hafızadan siler. Bu durumda hem iş yapılmamış olur, hemde mesaj gönderildiği anda hafızadan silindiği için tekrar kuyruğa atma şansımız olmaz.

Mesajların kaybolmasını engellemek için RabbitMQ `acknowledgments` özelliğini sunar. Basitçe anlatmak gerekir ise `ack(nowledgement)` mesajın başırı ile alındaığını ve işlem gerçekleşince `consumer`'a bir mesaj ile bildirir. Bundan sonra RabbitMQ hafızadan mesajı siler.
Mesajların kaybolmasını engellemek için RabbitMQ `acknowledgments` özelliğini sunar. Basitçe anlatmak gerekir ise `ack(nowledgement)` mesajın başarı ile alındığını ve işlem gerçekleşince `consumer`'a bir mesaj ile bildirir. Bundan sonra RabbitMQ hafızadan mesajı siler.

Eğer `consumer` ack göndermeden ölür ise, RabbitMQ bu mesajın yerine ulaşmadığını veya işlemin başarı ile tamamlanmadığını anlar. Hafızasından silmediği mesajı başka bir `consumer`'a gönderir.

Expand Down
2 changes: 1 addition & 1 deletion source/posts/2014-06-13-android-temelleri.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ ile fragment yaşam döngüsünü kontrol edebileceğimiz obje alınır. Transac
Bu transaction' ı, commit() fonksiyonu ile çalıştırabiliriz.

Fragment Class' ımız olan _**PlaceholderFragment**_' in fonksiyonları da Activity fonksiyonları gibidir. Fragment içerisinde constructordan sonra ilk olarak onCreateView() fonksiyonu
çalıştırılır. Bu fonksiyon içerisinde de fragment layout _**LayoutInflater**_ objesi ile xml dosyamız view nesnesine dönüştürülir. Ardından ise oluşturulan view Activity'e döndürülür ve
çalıştırılır. Bu fonksiyon içerisinde de fragment layout _**LayoutInflater**_ objesi ile xml dosyamız view nesnesine dönüştürülür. Ardından ise oluşturulan view Activity'e döndürülür ve
activity, bu fragment' i ekrana basar.

Artık temel yapıyı öğrendiğimize göre uygulamamızı çalıştırabiliriz. :)
Expand Down
2 changes: 1 addition & 1 deletion source/posts/2014-06-20-ubuntu-da-screen-kullanimi.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Ubuntu'da screen'i kullanmaya başlamak için terminal üzerinde
```

komutunu çalıştıralım, bu komut screen komutu yüklüyse, yüklü komutun versiyonunu verir.
Komutun bulunamadı ile ilgili bir hata mesajı alırsanız screen komutunu yüklemek için:
Komutun bulunamadığı ile ilgili bir hata mesajı alırsanız screen komutunu yüklemek için:

```bash
sudo apt-get install screen
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ AllCops:
```
şeklinde belirtiyoruz. Ancak eğer var olan dosyalar için işlem yapmak istiyorsanız `.rubocop.yml` dosyasını oluşturmadan da
yukarıdaki komutları koşup rubocop'u rails projenize entegre edebilrsiniz.
yukarıdaki komutları koşup rubocop'u rails projenize entegre edebilirsiniz.

Ek olarak rubocop entegre edildikten sonra projeniz için,

Expand Down
39 changes: 39 additions & 0 deletions source/posts/2014-11-24-flat-design-simple-is-perfect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: Flat Design, Simple is perfect
date: 2014-11-24
author: klapancg
tags: ui design, web design, graphic design, visual design, flat design, ui, ux, en
---
Originally ‘Flat UI design’ is a design style trend that becomes from the interfaces and mobile modern digital designs. This minimalistic style is an integration of basic elements, flat shapes and good practices on graphic diagramming, result is not only a very attractive design, but also optimizing web development and completely adapted to the HTML5 standards.

Flat design is focused on one particular design principle called ‘form and function’ or ‘form and content’, one of the most relevant concepts in the visual language. Design means make a plan or convention for any creation or construction, in this way we can understand that the main importance for a designer is the final purpose or application of this design. and in this case the optimization of the design for development issue is a basic need, a need that Flat design trend is solving in a highly creative way.

It is not the first time that computer graphics explore the deep relation between aesthetics and functionality in the design, but nowadays this trend tells us to realize that functionality is the true face of the aesthetic, because simple is perfect. Concept about simplicity is hard to interiorize because this doesn't mean that it is going to be easier for designers, actually it is exactly the opposite, a real paradox: less elements more strategy, more visual techniques applied.

Here are some advices and techniques for Flat design creations:

### Diagramming

The proportioned order of the elements, being aware about your empty spaces in the composition and use a grid is the key for the best diagramming practices. placing the elements in the correct way will save space, give more clear information and make your design look professional.

![Picture 1](../assets/images/articles/2014-11-19-flat-design/2014-11-19-flat-design-diagramming.jpg)

### Simplicity

Decorative elements are completely not necessary, use contents, color, typography and flat shapes for give the perfect appearance, you don't need useless graphics making noise in your composition. Erase effects, complicated shadows, unnecessary gradients, don't be afraid to do a clean job.

![Picture 2](../assets/images/articles/2014-11-19-flat-design/2014-11-19-flat-design-simplicity.jpg)

### Typography

Give typography the importance it deserves, it is not just text, typography is a design element as it can be colors, shapes, photographs, icons and others. choose the right typography, go for the more readable ones. Sans serif is preferred for Flat design.

![Picture 3](../assets/images/articles/2014-11-19-flat-design/2014-11-19-flat-design-typography.png)

### Color

Flat design is nothing without this terrific color schemes representative of this style, if you are not sure about how to mix colors in an appropriate way, there are already a lot of sources that you can use from the internet. but always remember to plan your palette before start.

![Picture 4](../assets/images/articles/2014-11-19-flat-design/2014-11-19-flat-design-color.jpg)

For more info about color you can review [How to choose right colors for web design](/how-to-choose-right-colors-for-web-design.html).
2 changes: 1 addition & 1 deletion source/posts/2015-11-24-populer-front-end-araclari.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ komutunu çalıştırarak template oluşturabiliriz.
```bash
yo
```
komutunu yazıyoru.
komutunu yazıyoruz.

![yeoman] (../assets/images/articles/25-09-08-tools-for-front-end/yeoman-yo.jpeg)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ tags: ruby, rails, sunucu, server, client, cap, capistrano, ssh, bash, script, r
Merhaba,

Sizlere Ubuntu-14.04 sunucusunu sıfırdan ayağa kaldırıp, kendi rails uygulamalarınızı sunucuya hızlı bir şekilde aktarabileceğiniz <a href="https://github.com/capistrano/capistrano" target="_blank">Capistrano</a> uygulamasından bahsedecek ve bazı kaynak kodlar paylaşacağız.
Kullandığımız capistrano'nun versiyonu 3.4'tür. Sunucu üzerinde kullanıdığımız ruby versiyonu ise 2.2.3'tür. Capistrano 'nun kaynak kodlarına <a href="https://github.com/capistrano/capistrano" target="_blank">github</a> adresinden erişip göz atabilirsiniz.

Örnek olarak, [Netinternet](http://www.netinternet.com.tr/panel/aff.php?aff=916) 'ten veya [DigitalOcean](https://www.digitalocean.com/) 'dan alacağınız bir sunucuyu aşağıdaki bash scriptleri ile 2-3 saat içinde ayağa kaldırıp Nginx, Postgresql, Unicorn ayarlarını yaparak çalışır hale getirebilirsiniz.
Kullandığımız capistrano'nun versiyonu 3.4'tür. Sunucu üzerinde kullandığımız ruby versiyonu ise 2.2.3'tür. Capistrano 'nun kaynak kodlarına <a href="https://github.com/capistrano/capistrano" target="_blank">github</a> adresinden erişip göz atabilirsiniz.

Örnek olarak, [Netinternet](https://www.netinternet.com.tr/vps-sunucular?aff=916) 'ten veya [DigitalOcean](https://www.digitalocean.com/) 'dan alacağınız bir sunucuyu aşağıdaki bash scriptleri ile 2-3 saat içinde ayağa kaldırıp Nginx, Postgresql, Unicorn ayarlarını yaparak çalışır hale getirebilirsiniz.

Sunucuda ruby ortamı için temel kurulum scripti aşağıdaki gibidir. Bu script root kullanıcısı olarak bağlanıp çalıştırmalısınız.

Expand Down
2 changes: 1 addition & 1 deletion source/posts/2015-12-22-bulutfon-ruby-sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Bugün sizlere, gelişiminde bizim de katkıda bulunduğumuz


Bu gem ile uygulamanızın [`Bulutfon API Servisi`](https://github.com/bulutfon/documents) ile kolayca haberleşmesini sağlayabileceksiniz. SMS gönderme, arama kayıtlarına erişme, otomatik arama
oluşturma gibi birçok özelliği hızlı bir şekilde uygulmalarınıza entegre edebileceksiniz. [`Bulutfon API`](http://api.bulutfon.com/docs) ile daha fazla neler yapabileceğiniz hakkında bilgi almak için
oluşturma gibi birçok özelliği hızlı bir şekilde uygulamalarınıza entegre edebileceksiniz. [`Bulutfon API`](http://api.bulutfon.com/docs) ile daha fazla neler yapabileceğiniz hakkında bilgi almak için
[https://github.com/bulutfon/documents](https://github.com/bulutfon/documents) adresine göz atabilirsiniz.

Sözü daha fazla uzatmadan örnek kodlara geçelim;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Bu ayarlar içinde e-posta göndermek için kullandığımız SMTP ayarları ola

Mail servisi olarak <a href="https://sendgrid.com" target="_blank">SendGrid</a> servisi size ücretsiz olarak aylık 12000 e-posta sağlamaktadır. Hobi projeleriniz için bu servisi kullanabilirsiniz. <a href="https://app.sendgrid.com/settings/credentials" target="_blank">Settings->Credentials</a> sayfasından gerekli username ve password'u alabilirsiniz.

* Hataları izleyebilmek için kullnadığımız Rollbar servisinde aldığımız token'ı config/initializers/rollbar.rb dosyasında yer alan your_token yazan string ile değiştiriyoruz. Rollbar servisi üzerinde projenizi oluşturduğunuzda size doğrudan gerekli token'ı, yönergeleri ile birlikte verecektir.
* Hataları izleyebilmek için kullandığımız Rollbar servisinde aldığımız token'ı config/initializers/rollbar.rb dosyasında yer alan your_token yazan string ile değiştiriyoruz. Rollbar servisi üzerinde projenizi oluşturduğunuzda size doğrudan gerekli token'ı, yönergeleri ile birlikte verecektir.
* User ve Admin model'leri için db/migrate/*.rb dizininde yeralan migration dosyalarındaki is_active alanının varsayılan değerini true olarak ayarlıyoruz.
* Projenin config/settings.yml dosyasında yeralan username ve password alanlarını değiştiriyoruz.
* Son olarakta projenin public dizini için VERSION.txt dosyası oluşturmak için şu komutu çalıştırıyoruz;
Expand Down Expand Up @@ -75,12 +75,12 @@ Heroku üzerinde heabımızı oluşturup giriş yaptıktan sonra yeni bir uygula

[![heroku-uzerinde-uygulama-olusturma](../assets/images/articles/2016-08-04-ruby-on-rails-uygulamasinin-heroku-servisinde-coklu-ortamda-yayinlanmasi/heroku-uygulama-olusturma.png)]()

Oluşturduğumuz uygulamannın ismi eşsiz olmalıdır. Heroku size alt alanadı sağladığı için aynı isimli uygulamara izin vermemektedir.
Oluşturduğumuz uygulamanın ismi eşsiz olmalıdır. Heroku size alt alanadı sağladığı için aynı isimli uygulamara izin vermemektedir.
Biz uygulama ismi olarak lab2023-blog-sample tercih ettik. Bu uygulama production ortamı için kullanacağımız kodları barındıracaktır.
Yukarıdaki adımları izleyerekten tekrar bir uygulama daha oluşturuyoruz. Bu uygulama ise staging ortamımız olacak ve develop branch'indeki kodlarımızı barındıracağız.
Staging ortamı için uygulama ismi olarak staging-lab2023-blog-sample'ı tercih ettik.

Production ve Staging uygulamalarımızı oluşturduktan sonra bu iki uygulamaya da uygulamnaın detaylar sayfasında bulunan Resources sekmesinden Heroku Postgres::Database, Logentries ve Redis To Go elementlerini şekilde ki gibi ekliyoruz.
Production ve Staging uygulamalarımızı oluşturduktan sonra bu iki uygulamaya da uygulamanın detaylar sayfasında bulunan Resources sekmesinden Heroku Postgres::Database, Logentries ve Redis To Go elementlerini şekilde ki gibi ekliyoruz.

[![heroku-uzerinde-uygulamaya-element-ekleme](../assets/images/articles/2016-08-04-ruby-on-rails-uygulamasinin-heroku-servisinde-coklu-ortamda-yayinlanmasi/heroku-uygulamaya-element-ekleme.png)]()

Expand All @@ -104,7 +104,7 @@ Git komutlarında kullancağınız remote.production.url'in ayarlandığını g
git config --list
```

Eğer yanlış bir url eklemesi yaptıysanız şu komutu kullanarak aklediğiniz url'i kaldırabilirsiniz.
Eğer yanlış bir url eklemesi yaptıysanız şu komutu kullanarak eklediğiniz url'i kaldırabilirsiniz.

```bash
git remote remove production
Expand All @@ -117,7 +117,7 @@ Terminalden git url'i ekleme bölümünde ise şu şekilde ki komutu çalıştı
git remote add staging https://git.heroku.com/staging-lab2023-blog-sample.git
```

Bu işlemlerden sonra artık uygulamamızın heroku urllerinide eklenmiş olduk.
Bu işlemlerden sonra artık uygulamamızın heroku urllerini de eklenmiş olduk.

Şimdi staging uygulamamıza kodları gönderme kısmına gelelim.
Bu işlemi yapabilmek için heroku uygulamalarına erişimimiz olması gerekmektedir. Heroku sunucularına, git ile uygulama kodlarını gönderebilmek için heroku komutları ile login olmalıyız. Heroku komutlarının kullanılabilmesi için ise <a href="https://toolbelt.heroku.com" target="_blank">Heroku Toolbelt</a> kurulumunu yapmalısınız.
Expand All @@ -128,7 +128,7 @@ Kurulum yapıldıktan sonra şu komut ile heroku hesabınıza giriş yapabilirsi
heroku login
```

Giriş yaptıktan sonra staging uygulmamızı yayına almak için şu komutu kullanıyoruz;
Giriş yaptıktan sonra staging uygulamamızı yayına almak için şu komutu kullanıyoruz;

```bash
git push staging develop:master
Expand Down Expand Up @@ -167,7 +167,7 @@ Bu işlemlerden sonra .env.local dosyamızda tutduğumuz ENV değişkenlerinin h
heroku config:set BASIC_AUTH_IS_ACTIVE=yes --app staging-lab2023-blog-sample
```

Ayarlarınızı bu komutlar ile ayarladıktan sonra heroku üzerinde uygulamanın ayarlar sayfasında Config Variables bölümünde bu değişkenleri görebilirsiniz, ayrıca portal üzerinden de bu değişkenleri değiştirebilirsiniz. Herokuya rails uygulaması gönderildiğinde RAILS_ENV varsayılan olarak production olarak ayarlanıyor. RAILS_ENV değerinide staging ile değiştirebilirsiniz.
Ayarlarınızı bu komutlar ile ayarladıktan sonra heroku üzerinde uygulamanın ayarlar sayfasında Config Variables bölümünde bu değişkenleri görebilirsiniz, ayrıca portal üzerinden de bu değişkenleri değiştirebilirsiniz. Herokuya rails uygulaması gönderildiğinde RAILS_ENV varsayılan olarak production olarak ayarlanıyor. RAILS_ENV değerini de staging ile değiştirebilirsiniz.

```bash
heroku config:set RAILS_ENV=staging --app staging-lab2023-blog-sample
Expand All @@ -191,7 +191,7 @@ Ayarlarınızı bu komutlar ile ayarladıktan sonra heroku üzerinde uygulamanı
heroku ps:restart --app staging-lab2023-blog-sample
```

Komut bilgilerinin ardından production ortamında uygulamamızı yayınlama işemine gelecek olursak; Şu anda master branch'imizde herhangi bir release kodu bulunmamakta. Git-flow'dan yararlanarak v1.0.0 etiketi ile bir versiyon yayınlayalım.
Komut bilgilerinin ardından production ortamında uygulamamızı yayınlama işlemine gelecek olursak; Şu anda master branch'imizde herhangi bir release kodu bulunmamakta. Git-flow'dan yararlanarak v1.0.0 etiketi ile bir versiyon yayınlayalım.
Bu işlem için gerekli olan komutlar şunlardır;

```bash
Expand Down Expand Up @@ -241,7 +241,7 @@ Gemfile dosyanızda özel github repolarınız varsa bu repolara heroku uygulama
heroku keys:add ~/.ssh/heroku_id_rsa.pub
```

Sık ihtiyac duyabileceğiniz bazı komutların listesi aşğıdaki gibidir;
Sık ihtiyac duyabileceğiniz bazı komutların listesi aşağıdaki gibidir;

```bash
# Web dynonusunu yeniden başlatır
Expand Down

0 comments on commit 088c853

Please sign in to comment.