This document discusses the importance of interpersonal skills and how to develop them. It notes that interpersonal skills can improve relationships, work environment, leadership abilities, productivity and overall success. Some key interpersonal skills include listening, verbal and non-verbal communication, managing criticism, giving praise, and handling conflict. The document then provides tips on how to strengthen these skills, such as active listening, empathizing with others, and overcoming communication barriers. Developing interpersonal skills is important for becoming an effective leader.
O documento discute a formação de multiplicadores para treinamentos eficazes. Ele aborda conceitos de aprendizagem, como inteligências múltiplas e a construção do conhecimento, e a arte de treinar, incluindo o ciclo vivencial de aprendizagem. Também discute tipos de treinamentos e como desenvolver uma apresentação eficaz para formar multiplicadores.
OKR com Kanban - Do Upstream ao Downstream orientado ao propositoDouglas Castanharo
O documento apresenta um framework para alinhar objetivos e resultados-chave (OKR) com o propósito da organização de forma a orientar o trabalho no sentido do upstream e downstream. Apresenta o conceito de Propósito Transformador Massivo e como definir OKRs que apoiem o propósito, além de explicar a dinâmica de trabalho orientada ao propósito do upstream ao downstream usando indicadores de desempenho.
Know and avoid the biggest mistake in difficult conversations 181114Sonia Gill
The single biggest reason a difficult conversation fails is because we don’t clearly tell the other person what the problem is. In this webinar Sonia Gill will be sharing how you can get clear on the issue and say it so that you can create the positive change that is needed.
Apresentação da Palestra do DevOps Summit Brasil 2017. O Scrum Master é frequentemente lembrado quando o time precisa de um removedor de impedimentos ou de um facilitador. Mas será que sua atuação se limita a estas duas competências? Entenda neste talk quais são as competências que um Scrum Master pode desenvolver, quais são as dificuldades de cada uma delas e como identificar quais o Time Scrum mais necessita.
Soft skills are personality traits such as communication, problem solving, and teamwork abilities rather than technical or job-specific skills. Industry places high importance on oral communication, critical thinking, and ability to work productively in a team. Soft skills are essential for finding and maintaining a job, with effective communication being the cornerstone. Communication skills encompass both verbal abilities like speaking clearly and written proficiency, while also considering body language and emotional delivery. Presentation, interpersonal interaction, time management, leadership, stress management, and professional ethics are also important soft skills for career success.
This document discusses the importance of interpersonal skills and how to develop them. It notes that interpersonal skills can improve relationships, work environment, leadership abilities, productivity and overall success. Some key interpersonal skills include listening, verbal and non-verbal communication, managing criticism, giving praise, and handling conflict. The document then provides tips on how to strengthen these skills, such as active listening, empathizing with others, and overcoming communication barriers. Developing interpersonal skills is important for becoming an effective leader.
O documento discute a formação de multiplicadores para treinamentos eficazes. Ele aborda conceitos de aprendizagem, como inteligências múltiplas e a construção do conhecimento, e a arte de treinar, incluindo o ciclo vivencial de aprendizagem. Também discute tipos de treinamentos e como desenvolver uma apresentação eficaz para formar multiplicadores.
OKR com Kanban - Do Upstream ao Downstream orientado ao propositoDouglas Castanharo
O documento apresenta um framework para alinhar objetivos e resultados-chave (OKR) com o propósito da organização de forma a orientar o trabalho no sentido do upstream e downstream. Apresenta o conceito de Propósito Transformador Massivo e como definir OKRs que apoiem o propósito, além de explicar a dinâmica de trabalho orientada ao propósito do upstream ao downstream usando indicadores de desempenho.
Know and avoid the biggest mistake in difficult conversations 181114Sonia Gill
The single biggest reason a difficult conversation fails is because we don’t clearly tell the other person what the problem is. In this webinar Sonia Gill will be sharing how you can get clear on the issue and say it so that you can create the positive change that is needed.
Apresentação da Palestra do DevOps Summit Brasil 2017. O Scrum Master é frequentemente lembrado quando o time precisa de um removedor de impedimentos ou de um facilitador. Mas será que sua atuação se limita a estas duas competências? Entenda neste talk quais são as competências que um Scrum Master pode desenvolver, quais são as dificuldades de cada uma delas e como identificar quais o Time Scrum mais necessita.
Soft skills are personality traits such as communication, problem solving, and teamwork abilities rather than technical or job-specific skills. Industry places high importance on oral communication, critical thinking, and ability to work productively in a team. Soft skills are essential for finding and maintaining a job, with effective communication being the cornerstone. Communication skills encompass both verbal abilities like speaking clearly and written proficiency, while also considering body language and emotional delivery. Presentation, interpersonal interaction, time management, leadership, stress management, and professional ethics are also important soft skills for career success.
O documento discute os desafios de continuar crescendo rapidamente garantindo autonomia e aprendizado para os funcionários. A empresa escolheu uma cultura forte baseada em valores, modelo de gestão lean e processos de gestão de talentos alinhados para lidar com o crescimento. A cultura é construída diariamente através de decisões e valores compartilhados.
This presentation discusses soft skills, which are personal attributes that enable good relationships and job performance. It defines soft skills and explains why they are important for both entering and sustaining employment. Key soft skills include communication, leadership, creativity, interpersonal skills, and professionalism. The presentation provides tips for learning and improving soft skills, such as taking courses, seeking mentors, volunteering, practicing skills consistently, and setting goals. It emphasizes that soft skills can be developed and recommends highlighting them on resumes and in interviews.
O documento discute a cultura e valores de uma empresa. Ele define cultura como um conjunto de crenças e práticas compartilhadas que servem para atrair bons funcionários, desenvolver suas habilidades e manter um bom ambiente de trabalho. A cultura também representa quem a empresa é atualmente e quem quer ser no futuro.
Plano de carreira, isso funciona ? Me consegue uma bússola por favor. (Agile...Jéferson Machado
O documento discute práticas para o desenvolvimento de carreira de funcionários de forma mais efetiva, mencionando problemas comuns em abordagens tradicionais e propondo alternativas como acompanhamentos semanais, feedback 360, retrospectivas e métricas de retenção.
Guia do Papel e Responsabilidade do Scrum MasterPaulo Lomanto
O Guia do Papel e Responsabilidade do Scrum Master é um documento que contém dicas gerais sobre a figura do ScrumMaster em equipes de tecnologia que utilizam Scrum.
Esse guia foi concebido através de um trabalho conjunto de diversos profissionais e contém uma grande coletânea de dicas e guias para auxiliar os ScrumMasters a desempenharem melhor as suas atividades.
Palestra Business Agility: Escalando Agilidade em Toda OrganizaçãoCarlos Silva Júnior
O documento apresenta Carlos Silva Junior, um consultor especializado em transformação digital e agilidade organizacional. Ele descreve sua experiência de 23 anos na área de TI e suas certificações em gestão de projetos. O texto também discute a importância da agilidade para as organizações se adaptarem rapidamente às mudanças e entregarem valor aos clientes.
Introduction to Ruby and Introduction to Ruby on Rails basic concepts for beginners. The google presentation is even better in full screen https://docs.google.com/presentation/d/1EE0VuB_PkD2-8j5JNs6CUQHb4J9ToIgC7-IxYTojiS0/pub?start=false&loop=false&delayms=3000#slide=id.p
Ruby on Rails is a popular web application framework written in Ruby. It follows the model-view-controller (MVC) pattern and includes components like Action Pack, Active Support, Active Record, and Action Mailer. The document provides an overview of Rails, Ruby basics, installing Rails, the directory structure of a Rails application, and the MVC pattern.
Artificial intelligence (AI) is everywhere, promising self-driving cars, medical breakthroughs, and new ways of working. But how do you separate hype from reality? How can your company apply AI to solve real business problems?
Here’s what AI learnings your business should keep in mind for 2017.
O documento discute os desafios de continuar crescendo rapidamente garantindo autonomia e aprendizado para os funcionários. A empresa escolheu uma cultura forte baseada em valores, modelo de gestão lean e processos de gestão de talentos alinhados para lidar com o crescimento. A cultura é construída diariamente através de decisões e valores compartilhados.
This presentation discusses soft skills, which are personal attributes that enable good relationships and job performance. It defines soft skills and explains why they are important for both entering and sustaining employment. Key soft skills include communication, leadership, creativity, interpersonal skills, and professionalism. The presentation provides tips for learning and improving soft skills, such as taking courses, seeking mentors, volunteering, practicing skills consistently, and setting goals. It emphasizes that soft skills can be developed and recommends highlighting them on resumes and in interviews.
O documento discute a cultura e valores de uma empresa. Ele define cultura como um conjunto de crenças e práticas compartilhadas que servem para atrair bons funcionários, desenvolver suas habilidades e manter um bom ambiente de trabalho. A cultura também representa quem a empresa é atualmente e quem quer ser no futuro.
Plano de carreira, isso funciona ? Me consegue uma bússola por favor. (Agile...Jéferson Machado
O documento discute práticas para o desenvolvimento de carreira de funcionários de forma mais efetiva, mencionando problemas comuns em abordagens tradicionais e propondo alternativas como acompanhamentos semanais, feedback 360, retrospectivas e métricas de retenção.
Guia do Papel e Responsabilidade do Scrum MasterPaulo Lomanto
O Guia do Papel e Responsabilidade do Scrum Master é um documento que contém dicas gerais sobre a figura do ScrumMaster em equipes de tecnologia que utilizam Scrum.
Esse guia foi concebido através de um trabalho conjunto de diversos profissionais e contém uma grande coletânea de dicas e guias para auxiliar os ScrumMasters a desempenharem melhor as suas atividades.
Palestra Business Agility: Escalando Agilidade em Toda OrganizaçãoCarlos Silva Júnior
O documento apresenta Carlos Silva Junior, um consultor especializado em transformação digital e agilidade organizacional. Ele descreve sua experiência de 23 anos na área de TI e suas certificações em gestão de projetos. O texto também discute a importância da agilidade para as organizações se adaptarem rapidamente às mudanças e entregarem valor aos clientes.
Introduction to Ruby and Introduction to Ruby on Rails basic concepts for beginners. The google presentation is even better in full screen https://docs.google.com/presentation/d/1EE0VuB_PkD2-8j5JNs6CUQHb4J9ToIgC7-IxYTojiS0/pub?start=false&loop=false&delayms=3000#slide=id.p
Ruby on Rails is a popular web application framework written in Ruby. It follows the model-view-controller (MVC) pattern and includes components like Action Pack, Active Support, Active Record, and Action Mailer. The document provides an overview of Rails, Ruby basics, installing Rails, the directory structure of a Rails application, and the MVC pattern.
Artificial intelligence (AI) is everywhere, promising self-driving cars, medical breakthroughs, and new ways of working. But how do you separate hype from reality? How can your company apply AI to solve real business problems?
Here’s what AI learnings your business should keep in mind for 2017.
2.
Ruby Ne Zaman Doğdu?
Yukihiro Matsumoto (a.k.a Matz) tarafından yaratıldı.
İlk temel 23 Şubat 1993 yılında atıldı.
Aralık 1995'de 0.95 sürümü Japon haber listelerine duyuruldu.
Bu tarihten itibaren geliştirici ve kullanıcı sayısında patlama yaşandı.
Ruby, şu an Japonya'dan en çok kullanılan programlama dillerinden biri.
Son kararlı sürüm 1.8.5 (29 Ağustos 2006)
3.
Ruby Nasıl Doğdu?
Matz'ın üniversite yıllarındaki en büyük hayali, kendi programlama dilini tasarlamaktı.
Nesneye yönelik programlamanın avatajlarını, betikleme alanında göstermek istiyordu.
Aradığı özelliklere uygun bir dil yoktu. Bu yüzden tasarlayacağı dilin;
Perl'den daha güçlü,
Python'dan daha nesneye yönelik olmasını istiyordu...
4.
Ruby'nin Büyüme Hızı Nedir?
Camiaya sunulduğu 1995 yılından beri dünyanın dört bir yanından programcıların ilgisini çeken bir programlama dili oldu,
2006 yılı, Ruby'nin geniş kitleler tarafından kabul gördüğü bir yıl oldu.
Ruby-talk listesinin günde ortalama 200 e-posta
trafiği var,
TIOBE istatistiklerine göre, Ruby şu an dünyanın en popüler 11. dili.
6 ay içinde, ilk 10'a gireceği söyleniyor.
5.
Ruby'nin Temel Aldığı Felsefeler Nelerdir?
Programcı makinaya odaklanmak yerine, programlamanın nasıl yapıldığı ile ilgilenmeli,
“ We are the masters they're the slaves”...
Bir şeyi yapmanın birden fazla yolu vardır,
Ruby, size seçme özgürlüğü verir.
6.
Ruby'nin Temel Aldığı Felsefeler Nelerdir? #2
İyi bir arayüz,
Programlama dilinin sihirli kurallarına dikkat edeceğimize, pseudo kod yazar gibi programlama yapsak olmaz mı?
POLS (Principle of Matz's Least Suprise)
Belirsiz bir durumla karşılaşıldığında, çözüm sizi sürprize uğratmayacak olanıdır.
7.
RUBY'nin GENEL ÖZELLİKLERİ
8.
Ruby'de herşey bir nesnedir
Ruby yüzde yüz saf nesneye yönelik bir dildir,
Ruby'de her kod parçasına kendisine ait özellikler ve olaylar verilebilir,
Özellikler -> Örnek değişkenler (instance variables),
Olaylar -> Metotlar ile gerçekleştirilir.
Yönlendirdiğiniz herşey ve bunların döndürdüğü sonuçlar birer nesnedir.
9.
Metotlar nesneye bir mesaj yollanarak uyandırılırlar,
number = Math.abs(number) //Java
number = number.abs #Ruby
Bir sayıya bile olay verebiliriz!
5.times { puts "We *love* Ruby!" }
Ruby'de herşey bir nesnedir #2
10.
Ruby Esnektir...
Ruby kullanıcıları kısıtlamaz,
Beğenmediğiniz kısımları değiştirebilir, yeniden tanımlayabilirsiniz.
Toplama işlemini + operatörü ile değil, topla diye bir metodla yapmak istiyorum?
class Numeric
def topla (x)
self. + (x)
end
end
y = 2.topla 3
# y'nin değeri 5 oldu.
11.
Ruby gücünü bloklardan alır...
Blok kavramı, Ruby'nin esnek bir dil olmasının nedenlerinden biridir,
Ruby'de herhangi bir metoda blok koyabilirsiniz.
Ruby'nin blokları fonksiyonel dillerden esinlenilerek yaratılmıştır,
Matz, blok kavramını Lisp dilinden aldığını ifade etmiştir.
search_engines =
%w[Google Yahoo MSN].map do |engine|
"http://www." + engine.downcase + ".com"
end
[" http://www.google.com ", "http://www.yahoo.com", "http://www.msn.com"]
12.
Mix-in tekniği?
Ruby, özellikle yalnızca tekli mirası destekler,
Modül kavramı, çoklu mirası gerçekleştirmek için daha iyi bir yöntemdir.
Bir sınıf, bir modül ile karıştırılabilir (mix-in),
Böylece modülün metodlarına sahip olur.
class MyArray
include Enumerable
end
#each yöntemi varsa, sort ve find yöntemlerini bedava aldık.
13.
Dinamik tanımlanan bir dil...
Ruby değişken tanımlamalarını duck-typing paradigmasına göre yapar,
Değişken tanımlamak gereksiz!
String dizge;
dizge=”pinar”;
dizge=”pinar”
Değişkenlerin yaşam alanı basit kurallarla belirleniyor,
degisken # yerel değişken
@degisken # örnek değişken
$degisken # global değişken
14.
Türemiş bir dil...
Ruby, bir çok programlama dilinden özellikler almıştır;
- Smalltalk, CLU, Lisp, C, C++, Perl, Kornshell...
Tekerleği yeniden keşfetmeye gerek yok,
Bozulmamış olanı düzeltmeye gerek yok,
İnsanların varolan tecrübelerinden faydalanmak her zaman iyidir...
15.
Doğrudan Sistem Çağrıları Gönderebilme,
UNIX'teki tüm sistem çağrılarına erişebiliyor,
Win32 API'si sayesinde, tüm sistem çağrılarına erişebiliyor.
Yüksek Taşınabilirlik,
Linux üzerinde geliştirilse de diğer işletim sistemleri üzerinde de çalışabilir,
UNIX, DOS, Windows 95/98/Me/NT/2000/XP, MacOS, BeOS, OS/2 ...
Platform bağımsız...
16.
Ve daha pek çok iştah kabartan özellik!
Kolay hata yakalama mekanizması,
Güçlü metin işleme ve düzenli ifadeler,
Mark & Sweep çöp toplayıcısı,
C kodlarını koda gömmek Perl ve Python'a göre daha kolay,
17.
Ruby hangi uygulamalar için uygun?
Metin işleme,
CGI programlama,
Web programlama,
XML programlama,
GUI uygulamaları,
Yapay zeka ve keşifsel matematik,
Genel programlama,
Programlama eğitimleri,
Extreme programlama ...
18.
Yüksek trafikli web uygulamaları,
İşletim sistemi gerçekleştirimleri,
Derleyici gerçekleştirimleri...
Ruby hangi uygulamalar için uygun değil?
19.
Ruby nerelerde kullanılıyor?
Simülasyonlarda,
NASA ve Motorola, bazı simülasyonlarını yapmak için Ruby'yi kullanıyor.
Robotbilimde,
Siemens, bir servis robotunun kontrolünü sağlamak için Ruby'yi kullandı.
Oyunlarda,
Japonya'da ticari bir oyun firması, Ruby ile geliştirdiği RPG oyununu Haziran 2004'te piyasaya sürdü.
20.
Telefonculukta,
UCB, kablosuz telefonları ve trafiğin yükünü kontrol etmek için Ruby'yi kullanıyor.
3G kablosuz telefonculuk şirketi, ~150K'lık C++ koduna karşı, ~6K'lık Ruby kodunu kullandı.
Bilimde,
Yüksek yoğunluklu yıldız sistemlerinin modellemesi üzerinde çalışan ACS şirketi de projelerinde Ruby kullanıyor.. .
Ruby nerelerde kullanılıyor? #2
21.
KARŞILAŞTIRMALAR
22.
Java vs Ruby
Java, gelişmiş, test edilmiş ve Ruby'ye göre hızlı bir dil.
Peki o zaman niçin Ruby'ye geçelim?
Ancak bir o kadar da gereksiz sözcüklerle dolu.
Ruby kullanarak, aynı kodu çok daha kısa sürede ve çok daha az satırda yazabilirsiniz.
23.
Java & Ruby arasındaki benzerlikler
Otomatik çöp toplayıcısı,
Değişkenlerin tiplerine uygun içerikte olup olmadığının sıkı kontrolü (strongly typed),
Public, protected ve private metotlar,
Gömülü dosya aracı (Rdoc ~ Javadoc'a benziyor)
24.
Java & Ruby arasındaki farklar
Yazdığınız kodu derlemenize gerek yoktur, direkt olarak çalıştırabilirsiniz,
Her şey birer nesnedir (3.15, 5 vs...)
Değişken tipi tanımlamaya gerek yoktur,
int[] a = {1,2,3}; # java
a = [1,2,3] # ruby
25.
Ruby'de yapılan her işlem nesneye mesaj olarak geçer,
number = Math.abs(number) // Java
number = number.abs # Ruby
Bazı kavramlar,
#ruby //java
require import
nil null
self this
mix-in'ler interface'ler
Java & Ruby arasındaki farklar #2
26.
PHP vs Ruby
PHP, web uygulamaları için çok kullanılan yaygın bir dil.
Peki o zaman Ruby ile neden ilgileneyim?
Ruby on Rails (RoR) kullanmak istiyorsanız,
Ya da daha geniş amaçlar için kullanılan bir dil arıyorsanız göz atmakta fayda var.
27.
PHP & Ruby arasındaki benzerlikler
Değişken tipleri dinamik olarak tanımlanıyor (dynamic typing)
Public, protected, private erişim mekanizmaları,
Geniş bir standart kütüphaneye sahipler, ...
28.
Ruby, strong typing bir dil (dönüştürmeler için to_s, to_i, ...),
Dizgeler, sayılar, diziler birer nesne,
Soyut sınıf ya da arayüz yoktur,
Ruby'de her işlem nesneye mesaj olarak geçer, ...
PHP & Ruby arasındaki benzerlikler #2
29.
Python vs Ruby
Python da tıpkı Ruby gibi genel amaçlı bir dildir,
Python ~ Ruby (ya da tam tersi) göç çok kolaydır,
Ruby kullanmak size Python'dan daha fazla syntax öğretebilir...
30.
Python & Ruby arasındaki benzerlikler
İkisinde de interaktif komut satırı vardır (ipython ~ irb),
Komut satırından döküman okuyabilirsiniz (pydoc ~ ri),
Nesneler strong ve dynamic type'dır,
Gömülü belgeleme araçları,
31.
Tüm işlemler nesneye mesaj olarak geçer,
Python'da metotların haricinde fonksiyonlar yazmak mümkündür,
Ruby'de miras mix-in tekniği ile gerçekleştirilir,
Python'da çoklu miras vardır,
Bazı sözcük farklılıkları,
#ruby #python
require import
elsif elif
Python & Ruby arasındaki farklar
32.
Niçin Ruby?
Basit; öğrenmesi ve kodlaması kolay,
Güçlü,
Zengin kütüphaneler,
Hızlı geliştirme,
Yardımsever Ruby topluluğu,
Açık kaynak kodlu,
Eğlenceli :)
33.
Performans
Tıpkı Perl ya da Python gibi, C kodu ile sarılsa dahi yeterince hızlı değil,
İyi bir VM'ye sahip değil,
Ruby2, RITE...
Varolan dahili standartlar,
Deneyim,
İyi bilinen bir dil değil; belgelendirme çok az,
Çok az deneyimli coder...
Niçin Ruby değil ?
37.
Dizgeler #3
Karakter seçimi,
kelime=”ruby”
kelime[0]
#114, r harfinin ASCII kodu
kelime[-1]
#121, y harfinin ASCII kodu
Eşitlik kontrolü,
kelime= “ruby”
kelime == “ruby”
#true
kelime == “perl”
#false
39.
Dizgeler #5
Değişkenlerin değerini geçici değişkenler kullanmadan değiştirebiliriz!
v1, v2 = v2, v1
x, y, z = %w(Kestane Gurgen Palamut)
#["Kestane", "Gurgen", "Palamut"]
x, y, z = y, z, x
#["Gurgen", "Palamut", "Kestane"]
41.
Bir cümleyi tersine çevirelim,
cumle=”ruby programlama dili”
ters_byte = cumle.reverse
# "ilid amalmargorp ybur"
ters_kelime = cumle.split(" ").reverse.join(" ")
# "dili programlama ruby"
Büyük harf, küçük harf dönüşümleri,
x = "ruby on rails".upcase # "RUBY ON RAiLS"
x.downcase! # "ruby on rails"
x.capitalize! # "Ruby on rails"
Dizgeler #7
42.
Diziler
Ruby'de dizilere farklı türden nesneler atayabilirsiniz,
dizi=[1.9,3,"ruby"]
# [1.9,3, "ruby"]
Dizileri de , aynı dizgeler gibi birleştirebilir, ya da tekrar ettirebilirsiniz,
dizi + [“programlama”, “dili”]
# [1.9,3, "ruby","programlama", "dili"]
dizi*2
# [1.9,3, "ruby",1.9,3,"ruby"]
48.
Hashler #3
Acaba vereceğimiz anahtar değere karşılık gelen bir değer var mı?
if (dizi.has_key?(“Pinar”))
puts “Zaten var...!”
else
puts “Boyle bir anahtar bulunmuyor.”
end
# Zaten var...!
[ "Figen", "Sule" ].each { |name|
print name, " ailenin ", yas.has_key?(name) ? "bir ferdidir" : "bir ferdi degildir", ""
}
#Figen ailenin bir ferdi degildir
#Sule ailenin bir ferdi degildir
50.
Hashler #5
İki hash'de aynı olan ya da farklı olan anahtarları nasıl tespit ederiz?
ogr_no={“Pinar”, 30401012, “Figen”, 40401022}
#{"Figen"=>40401022, "Pinar"=>30401012}
İkisinde de var olan anahtarlar?
genel= yas.keys & ogr_no.keys
#["Pinar"]
Birinci hash'de olup da ikincisinde olmayan anahtarlar?
farkli= yas.keys - ogr_no.keys
# ["Ikbal", "Ozgur", "Tulin"]
51.
Düzenli İfadeler
Düzenli ifadeler, bir dizgenin verilen şablona uyup uymadığını bulmaya yarar,
Ruby'de düzenli ifadeler (regex) ters bölü işaretleri arasına yazılır,
/regex/ tanımlaması yapıldığı an yeni bir Regexp nesnesi yaratılır.
=~ bulduğu dizgenin konumunu, aksi halde nil değerini döndürür,
ifade = "ruby programlama dili"
ifade =~ /programlama/
# 5
52.
Düzenli İfadeler #2
< > işaretleri arasında, onaltılık sayı olup olmadığını kontrol edelim...
def hex(s)
(s =~ /<0(x|X)(|[a-f]|[A-F])+>/) != nil
end
hex "Bu değil." #false
hex "Belki bu? {0x35}" #false
hex "Ya da bu? <0x38z7e>" #false
hex "Tamam, bu: <0xfc0004>" #true
Metodumuzu deneyelim:
53.
Denetim Yapıları
case,
i=8
case i
when 1,2..5
print “1..5”
when 6..10
print “6..10”
end
# 6..10
case 'ruby programlama dili'
when 'python', 'perl'
print "python ya da perl"
when /ruby/
print "ruby! "
end
# ruby!
54.
Denetim Yapıları #2
sayac = 0
while satir = gets
if satir =~ /Ruby/
sayac += 1
end
end
puts "#{sayac} Ruby satırı var"
Girdi:
Bu birinci Ruby satırı
Bu ikinci
Bu da üçüncü Ruby satırı
^D
Çıktı:
2 Ruby satırı var
While
55.
Denetim Yapıları #3
for i in [200,-3.6,"ruby"]
print "#{i}(#{i.type})"
end
=begin
200 (Fixnum)
-3.6 (Float)
ruby (String)
=end
For,
56.
57.
dizi =[200,-3.6,"ruby"]
for i in dizi
puts i
end
# 200
#-3.6
#ruby
Yineleyiciler #2
For yineleyicisi,
58.
Yineleyiciler #3
Yield, denetimi yineleyiciye parametre olarak geçilen kod bloğuna verir..
def repeat(num)
while num > 0
yield
num -= 1
end
end
repeat(3) { print "ruby" }
#ruby
#ruby
#ruby
59.
Dosya Erişimi
Dosya açma işlemleri:
dosya = File.new("/home/odev.txt", "r")
# path'de belirttiğimiz dosyayı sadece okumak için açar,
dosya = File.new(path, "w")
# path'de belirttiğimiz dosyayı yazmak için açar,
dosya = File.open(“/home/odev.txt”, File::WRONLY|File::CREAT, 0666)
# path kısmında belirtilen dosyayı yazmak için aç. Eğer dosya yoksa, 666 izni ile beraber bu dosyayı yarat.
60.
Dosya Erişimi #2
passwd dosyasında kullanıcı adı hexa olan kullanıcının bilgilerini bulalım:
File.open("/etc/passwd").each { |line|
puts line if line =~ /hexa/
}
#hexa:x:1001:1001::/home/hexa:/bin/bash
61.
Dosya Erişimi #3
Harici bir temp dosyası kullanmadan, dosyanın içeriğini nasıl değiştiririz?
File.open('/home/moon/dosya.txt', 'r+') do |f|
lines = f.readlines
lines.each do |it|
it.gsub!(/pinar/, 'pinguar')
end
f.pos = 0
f.print lines
f.truncate(f.pos)
end
62.
Miras
Ruby'de miras denince kastedilen tekli mirastır,
Ruby'nin tasarım sürecinde, tekli miras kavramının daha anlaşılır ve daha az karmaşık olduğu kabul edilmiş ve çoklu miras gerçeklenmemiştir.
Gerçek hayatta yaptığımız sınıflandırmalar son derece hiyerarşiktir,
Küçük sınıflar büyük sınıfların karakteristik özelliklerini miras alırlar,
Eğer bütün memeliler nefes alabiliyorsa, bütün kediler de nefes alıyor demektir...
63.
Miras #2
class Memeli
def nefes
print "Nefes al, Nefes ver"
end
end
Basit bir Memeli sınıfı tanımlayalım:
Şimdi de bir Kedi sınıfı tanımlayalım, ancak bu sınıfın Memeli sınıfının alt sınıfı olduğunu belirtelim:
class Kedi<Memeli
def konus
print "Miyauvvvv"
end
end
pisi = Kedi.new
pisi.nefes
#Nefes al, Nefes ver
pisi.konus
#Miyauvvvv
64.
Modüller & Mix-in
Ruby'de modüllerin ve sınıfların ilk harfi büyük olmak zorundadır,
Modüller module ... end şeklinde tanımlanır.
Modüller iki amaç için kullanılabilir,
İlki iişkili yöntemler ve sabitlerin bir araya toplandığı modüllerdir:
Örneğin standart kitaplıktaki Math modülü:
Math.sqrt(2) #1.41421 include Math
Math::PI #3.14159 sqrt(3)
65.
Mix-in
İkinci kullanım yolu ise mix-in tekniğidir,
module Trig
PI = 3.141592654
def Trig.sin(x)
# ..
end
def Trig.cos(x)
# ..
end
end
class Geo
include Trig
# ....
end
Modüller:
Mix-in:
66.
Tekil Metotlar
Bir örneğin davranışı mensup olduğu sınıf tarafından belirlenir,
Fakat bazen belirli bir örneğin özel bir davranışı olmasını isteyebiliriz...
Çözüm : Tekil (singleton) metotlar...
Tekil metotlar, genelde GUI tasarlarken değişik düğmelerin değişik eylemler yapması istendiği zaman kullanılır.
67.
Tekil Metotlar #2
def kisi1.konus
print “Selam”
end
kisi1= TekilOrnek.new
kisi1.konus
#Selam
class TekilOrnek
def konus
print “Merhaba”
end
end
kisi1= TekilOrnek.new
kisi1.konus
#Merhaba
kisi2= TekilOrnek.new
kisi2.konus
#Merhaba