26 Mart 2013 Salı

"Çin ile Ubuntu arasında tarihi anlaşma" ve Debian Tabanlı Pardus karşılaştırması

http://haber.sol.org.tr/bilim-teknoloji/cin-ile-ubuntu-arasinda-tarihi-anlasma-haberi-70344 adresindeki haberden bazı alıntılarla başlamak istiyorum. Kırmızı renkli kısımlar haberdan alıntıyı ifade etmektedir.


"Çin’in Sanayi ve Bilişim Teknolojileri Bakanlığı’na bağlı Yazılım ve Entegre Yonga Yaygınlaştırma Merkezi (China Software and Integrated Chip Promotions Centre) tarafından yapılan açıklamaya göre Ubuntu, ülke çapında kullanılması öngörülen yeni işletim sisteminin temelini oluşturacak."


 Tubitak'da Debian tabanlı bir Pardus Linux dağıtımı hazırladı.


"Önceki yıllarda Çin hükümetinin, ülkenin olası düşmanları tarafından hazırlanmış kapalı kaynak kodlu işletim sistemlerine olan bağımlılığını ortadan kaldırmak adına girişimleri olmuştu. Örneğin, Red Flag (Kızıl Bayrak) adında yine Linux tabanlı bir işletim sistemi geliştirilmiş, internet kafelerde ve devlet kurumlarında kullanılması sıkı yaptırımlarla teşvik edilmeye çalışılmıştı. Ancak hem teknolojik yetersizlikleri ve kullanışsızlığı hem de okullarda öğretilmemesi nedeniyle yeterli yaygınlığa ulaşamamıştı"


Daha önceki Pisi Pardus ekibi de Red Flag gibi sıfırdan bir dağıtım yapmaya çalıştı. Paket eksikliği başta olmak üzere bir çok yetersizlik sebebiyle dağıtım yeterli yayğınlığa ulaşamadı.

 "Ubuntu ile yapılan ortaklık sonucunda geliştirilip sisteme eklenecek Çin alfabesinin istisnai durumu nedeniyle gereksinim duyulan klavye arayüzleri, Çin takvimi, yerel harita, hava durumu ve müzik hizmetleri gibi uygulamaların bu sorunlardan ilkini çözmesi bekleniyor."


Tubitak yeni Pardus ile en iyi Türkçe dil desteği olan Linux dağııtmı olmayı hedeflemekte. Ayrıca kamuda yayğın kullanılan uygulamaların Linux alternatiflerini çıkarmayı planlamaktadır.



"Bununla birlikte, eğitim kurumları aracılığıyla yaygınlaştırma konusunun Çin hükümeti tarafından nasıl ele alınacağı henüz açıklığa kavuşmuş değil. Bu yeni işletim sisteminin yaygınlık kazanması için yeni bilgisayar kullanıcılarının, yani öğrencilerin, alışkanlıkları büyük önem taşıyor."

 Her ne kadar eksiklikleri olsa da FATIH projesi kapsamında Linux'un başta tablet ve akıllı tahta olmak üzere eğitm kurumlarına ulaşması hedeflenmektedir. Yani bu konuda Çinlilerden bir adım ilerideyiz.



"Pardus gibi yarım kalır mı?
Bilindiği üzere, ülkemizde de benzer bir girişim olmuştu. Ancak Pardus adını verdiğimiz Linux tabanlı işletim sistemini geliştirmek için TÜBİTAK bünyesinde yetenekli ve istekli onlarca araştırmacının bir araya getirilmesine rağmen, projenin önemli başarılar kazandığı bir dönemde tamamen ortadan kaldırıldığına şahit olduk"


Yeni Pardus'un ne olacağı hakkında şimdiden bir yorum yapamam fakat yukarıdaki alıntıda Pisi tabanlı Pardus, Çinlilerin Red Flag dağıtımı ile aynı süreci uyguladığı için yarım kalmıştı.


Red Flag konusu oldukça önemli. Çin, dünyada kendi dağıtımını sıfırdan yapmaya kalkan bir kaç ülkeden birisidir. Bünyesinde binlerce yazılımcı barındıran Çin bile kendi yaptığı dağıtımın sürekliliğini sağlayamayıp, Ubuntu ile anlaşma yapıyorsa, hala Pisi tabanlı Pardus'u göklere çıkarıp, Debian tabanlı Pardus'u yerin dibine batıran arkadaşların şapkayı önüne koyup bir daha düşünmelerini rica ederim.

 Çin'in Ubuntu ile gitmesi ne kadar mantıklı ve doğru bir kararsa, Tubitak'ın da Debian ile gitmesi o  kadar doğru bir karardır.


 Özetle, Çin hükümeti ve Tubitak yönetimi aynı paralelde yerli dağıtım geliştirme süreci uyguluyor.
 

25 Mart 2013 Pazartesi

Kurumsal yönetim ve Proje yönetimi 'Türkçemsi' si

Kurumsal yönetimden sonra Proje yönetimi dersinde de ingilizce kelimelerin Türkçe tercümesinde anlam kargaşası yaşıyoruz.

Derste 15 dakikadır adaptable,flexible kelimelerinin uyarlanabilir ve esneklik tercümelerinin arasındaki farkları anlamaya anlatmaya çalışıyoruz.

Daha bir çok benzer kelimeler var. versatile, adaptable,flexible,elastic,resilent. Alayına esnek deyip geçmişiz. Dili sadeleştireceğiz diye birbirine yakın fakat nüansları olan 5-10 farklı kelimeyi tek kelime ile ifade edersek olacağı buydu zaten.

Rahatsız olduğum kalıplara örnekler:

-Olur olmaz herşeyi  "olay" kelimesi ile ifade eder olduk.
- Bazen arkadaşlar "sana bir ev yapalım" diyorlar. Aslında "seni ev sahibi yapalım" demek istiyorlar. Ne zaman bu cümleyi kursa birisi hemen "tamam sen kumları getir bende çimentoyu,haftaya inşaata başlayalım." hafifçe kafa buluyorum. Veya "sana bir araba yapalım" diyorlar. "tamam lastikler nerede ben vidaları sıkayım" diye geçiştiriyorum.

Yapmak yine ucuz bir ingilizce kalıbı. Gavurların "make money" ifadesindeki make'i biz her yerde kullanmaya başladık. "make money" para yapmak değil. Para kazanmaktır.


Böyle giderse Türkçemiz Nasrettin hocanın kuşuna dönecek. Sonrasında ya anlamıyoruz zaten resmi dil İngilizce olsun kurtulalım bu işkenceden diyecekler.


Dil konusu olduğumda aklıma hep Polonyalıların rus işgali sonrasında rusların polonya dilinde yazı yazmayı ve kitap okumayı yasaklamasından sonra Polonyalıların yer altında gizlice yürüttüğü eğitim faaliyetleri aklıma gelir. Ruslar Polonya dilini eğiten birini ölümle cezalandırmaktadır. Halk bunu korkuya rağmen gizlice eğitimlerini tamamlarlar. Hatta gizlice eğitimleri tamamlayın sonunda diploma basıp dağıtmaktadırlar. Birgün ruslar çekildiğinde dillerinden hiç birşey kaybetmemişlerdi.

Fakat filmin sonu bu kadar güzel değil. Dillerine bu kadar önem veren insanlar, Amerikan hayranlığı neticesinde ana dildeki firma isimlerinin yerine bizdeki donerch, simitch gibi özenti isimler vermeye başlıyorlar. Sonuçta rusların savaşarak kıramadığı dil kültürünü amerikalılar mcdonals ve sinemalarla kan dökmeden paramparça ettiler.

 

Postfix'de port numarası ve çalıştığı IP adresini değiştirme

Centos/RedHat Linux ile ön tanımlı olarak postfix e-posta sunucusu gelmektedir.

Eğer sadece gönderim amaçlı kullanacaksanız kapsamlı bir ayar yapmaya veya qmail kurmaya gerek yok :)

Güvenlik amacıyla SMTP servisinin sadece localhost üzerinden çalışmasını isteyebilirsiniz.

Bunun için /etc/postfix/main.cf dosyasındaki inet_interfaces değerinin localhost olarak tanımlanması yeterlidir.


inet_interfaces = localhost


Değişikliğin etkinleşmesi için  postfix servisi yeniden başlatılmalıdır.

# service postfix restart

Ayrıca ön tanımlı smtp portu (25) yerine başka bir port kullanmak isterseniz de /etc/postfix/master.cf dosyasındaki

smtp inet  n       -       n       -       -       smtpd

satırının başındaki smtp yerine başka bir port numarası belirtmeniz yeterlidir. Aşağıdaki örnekte 2525 portundan çalışacak şekilde tanımlama yapılmıştır.


# more master.cf
#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)

==========================================================================
#  IPTAL smtp     inet  n       -       n       -       -       smtpd

2525      inet  n       -       n       -       -       smtpd


Değişikliğin etkinleşmesi için  postfix servisi yeniden başlatılmalıdır.

# service postfix restart

# telnet localhost 2525
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 sunucu ESMTP Postfix

17 Mart 2013 Pazar

Adet yerini bulsun diye vizyon ve misyon belirlemek

MBA Stratejik Yönetim ve Planlama dersinde büyük firmaların vizyon ve misyon için adet yerini bulsun kabilinden "karaladıkları" ifadeleri görünce anladım ki bizde vizyon ve misyon göre şirketler kendileri konumlandırmıyor. Aksine şirket bir yere gelmiş veya geliyor ve bulunduğu konumdaki özelliklerine göre vizyon misyon 'uyduruluyor' :)

Birde bu vizyon ve misyon için danışmanlık firmalarına ücret ödeniyor. Bunun adına para verip kendi kendimizi kandırarak mutlu olmak diyebilirim.

Bugünden tezi yok şirketimiz için doğru ve tutarlı bir vizyon ve misyon belirlemek için kolları sıvıyorum.


Yr. Doç Dr. Ayla Esen ders notlarına göre kısaca vizyon ve misyon nasıl olmalıdır?

Vizyon: Bir organizasyonun gelecekte olabileceği ve olmak istediği konum. Kişilerin veya kurumların, kendilerinin veya işletmelerin gelecekte olmasını arzu ettikleri durumun ifadesidir.

Liderlerin gücünün kaynağı olan vizyon;

  • Kurum açısından iddia
  • Çalışanlar açısından hedefe ulaşma yolunu gösteren geleceğe yolculuğun haritası
  • İlgili paydaşlar için de gelecekle ilgili verilmiş sözdür.

İyi ifade edilmiş bir vizyon:

  • Kısa ve akılda kalıcıdır
  • İlham vericidir
  • Gelecek için çalışanlara rehberdir.
  • Hedeflenen amaçlara ulaşmak için nasıl bir hareket etmek gerektiği konusunda yol gösterir
  • Gelecekteki başarıları ve ideal olanı tanımlar
Misyon: Ne iş yapıyoruz? "varolma sebebi" "bir işletmeye yön vermek ve anlam kazandırmak amacıyla belirlenmiş ve o işletmeyi benzerlerinden ayıran görev ve ortak değerler"

  • İyi bir misyon ifadesi, organizasyonun amacını, müşterilerini, ürün ve hizmetlerini, pazarlarını, felsefesini ve temel teknolojileri tanımlar.
  • Müşterilere sunulan temel değerleri içermelidir.

 Misyon için cevaplanması gereken sorular:

  • NE yapmamız gerekiyor/bekleniyor?
  • Bunları KİM için yapıyoruz?
  • Hangi yöntem, yaklaşım ve değerler ile NASIL üretiyoruz?
  • Nasıl çalışıyoruz?
  • Bunları NEDEN yapıyoruz? Neden varız?




SSL ile TLS arasındaki fark

SSL ve TLS güvenlik katmanları sürekli birbirine karıştırılan iki farklı güvenli iletişim protokolüdür.

Burada kısaca ikisi arasındaki temel farkları anlatacağım.

SSL(Secure Sockets Layer) iletişiminde bağlantının en başından sonuna kadar tüm iletişim şifreli olarak gerçekleşir.

TLS(Transport Layer Security) iletişiminde ise bağlantı işlemi düz,şifresiz olarak kurulur. Sonrasında veri iletimi yapılacağı zaman güvenlik sertifikası anlaşması devreye girer ve  şifreli iletişim başlar.

TLS için düz bağlantı portu kullanıldığı için sunucu tarafında ayrı bir port gerekmektedir. HTTP için düz bağlantı portu 80 iken HTTPS için 443 portuna ihtiyaç vardır. SMTP bağlantısında düz bağlantı için 25, SMTP SSL bağlantısı için 465 portu gerekir. Aynı şekilde düz POP3 bağlantısı 110 portundan kuruluyorken POP3S için 995 portu kullanılır.

Görüldüğü gibi her bir servis için ayrı bir SSL portu gerekmektedir. Bu hem sistem yöneticisi hem de güvenlik yöneticisi için ek bir külfet demektir.

TLS'de ise bağlantı şifresiz erişim portundan devam eder. SSL'deki gibi ayrı bir port kullanma ihtiyacı yoktur. Bu kolaylıktan dolayı her geçen gün TLS kullanımı yaygınlaşmaktadır.


Bir sunucunun TLS desteği olduğu nasıl anlaşılır:

 SMTP:

Bir SMTP sunucusuna bağlantı kurulduğunda EHLO komutu verildiğinde gelen cevapta STARTTLS satırı varsa o SMTP Sunucusunun TLS desteği var demektir.

# telnet 192.168.1.10 25
 Trying 192.168.1.10...
Connected to 192.168.1.10.
Escape character is '^]'.
220 test.surgate.com ESMTP
ehlo
250-test.surgate.com
250-PIPELINING
250-SIZE 20971520
250-DATAZ
250-STARTTLS
250 8BITMIME



Telnet dışında openssl komutu ile de TLS bağlantı testi yapılabilir.

# openssl s_client -crlf -connect 192.168.1.10:25 -starttls smtp
.....
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: 4D835A7C98A3F49FFF904D1771DD8379737F50FF405A2F21BAD5C51FFBAA36E8
    Session-ID-ctx:
    Master-Key: 56C10B9775420CB547ED6FDD2593379040002F95460941D2F1139AEA1F09C0090C1827920006013793D744F55F5457B2
    Key-Arg   : None
    Start Time: 1363519266
    Timeout   : 300 (sec)
......
---
250 8BITMIME



POP3:

# openssl s_client -crlf -connect 192.168.1.10:110 -starttls pop3


IMAP:

Telnet ile sunucunun 143. portuna bağlanıp CAPABILTY komutu gönderilir.
Çıktıda STARTTLS var ise TLS desteği var demektir.

# telnet 192.168.1.10 143
 Trying 192.168.1.10...
Connected to 192.168.1.10.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] SurGATE Messaging Suite POP3/IMAP ready.
o CAPABILITY
* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN
o OK Pre-login capabilities listed, post-login capabilities have more.


OpenSSL testi:

# openssl s_client -crlf -connect 192.168.1.10:143 -starttls imap

IMAP ile ilgili örnek bir iletişim diyagramını http://www.vocal.com/wp-content/uploads/2012/05/secure_imap_fig1.gif adresinden inceleyebilirsiniz.











PostgreSQL veritabanı disk kullanım değerleri

PostgreSQL veritabanında hangi veritabanının veya tablonun ne kadar yer kapladığını aşağıdaki sorgularla bulabilirsiniz.

 
pg_database_size fonksiyonu ile veritabanının boyutunu integer olarak alırsınız. pg_size_pretty fonksiyonu ile de bu integer değerini daha okunabilir bir formata çevirirsiniz.


mail=> select pg_size_pretty(pg_database_size('mail'));
 pg_size_pretty
----------------
 313 MB
(1 row)


Tek bir tablonun boyunu ise pg_relation_size fonksiyonu ile bulabilirsiniz.

mail=> select pg_size_pretty(pg_relation_size('maillog_130315'));
 pg_size_pretty
----------------
 480 kB
(1 row)



http://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE adresindeki diğer fonksiyonları da kullanarak tablespace ve kolon bazında disk kullanım değerlerini görebilirsiniz.


http://wiki.postgresql.org/wiki/Disk_Usage adresindeki belirtilen aşağıdaki sorguyu çalıştırarak en fazla yer kaplayan 20 veritabanını kullanım sırasına göre listeleyebilirsiniz.



mail> SELECT d.datname AS Name,  pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
        ELSE 'No Access'
    END AS Size
FROM pg_catalog.pg_database d
    ORDER BY
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(d.datname)
        ELSE NULL
    END DESC -- nulls first
    LIMIT 20;
 
  name    |  owner   |  size   
-----------+----------+---------
 mail      | surmail  | 313 MB
 webmail   | surmail  | 9581 kB
 clouddb   | postgres | 7641 kB
 template1 | postgres | 6369 kB
 postgres  | postgres | 6369 kB
 template0 | postgres | 6361 kB
(6 rows) 


Ayrıca \dt+ komutu ile de tabloların boyutlarını görebilirsiniz. Fakat burada tablo sıralaması tablo adına göre yapılmaktadır.


mail=> \dt+
                                List of relations
 Schema |            Name     | Type  |  Owner  |    Size    | Description
--------+--------------------------+-------+---------+------------+-------------
 public | auditlogs           
| table | mail | 103 MB     |
 public | clientlogs           | table | mail | 432 kB     |
 public | summary              | table | mail | 8192 bytes |
 public | summarydays          | table | mail | 400 kB     |  


"no space left" hatası ve inode kullanımı

Geçtiğimiz günlerde bir Linux sunucuda df -h çıktısına baktığımızda bir sürü boş yer olduğu halde
birşeyler yazmaya çalıştığımızda "no space left" hatası alıyorduk.

df -ih ile inode kullanım oranına baktığımızda tüm inode'ların kullanıldığını farkettik.

[root@surmail etc]# df -ih
Filesystem              Inodes    IUsed   IFree   IUse% Mounted on
/dev/mapper/vg_server    1.9M    1.9M       0      100%   /


df  -h çıktısında boş alanlar var ama tüm inode'ları kullandığımız için diske yazamıyoruz.
Dosya sistemi ext3 olduğu için ve ext3 dosya sisteminde inode değerleri disk bölümü formatlanırken belirlendiği için geriye tek çözüm gereksiz dosyaları silmekten geçiyor.

Öncelikli olarak logları silebilirsiniz. Bizim durumumuzda bir uygulamanın çok fazla geçici dosya oluşturduğunu farkettik. Bu geçici dosyaları silince bir hayli inode boşa çıktığı için sorunu çözmüş olduk.

df -h çıktısında bir sürü yer görüpte diske yazamıyorsanız kernel'e cin girdi vs gibi düşüncelere kapılmayın. Boşta inode var mı diye kontrol ediniz.

İnode hakkında detaylı bilgi almak isterseniz yıllar önce yazdığım makaleyi http://www.enderunix.org/docs/inode.html adresinden okuyabilirsiniz.

14 Mart 2013 Perşembe

Kitap Okumaları: Sıfır Merkez Liderlik

İlk cümlesini okuduğumda işte bu! dediğim bir kitap. Kitabı bu konulardaki tecrübelerine çok güvendiğim bir arkadaşım hediye etti.
Elimden geldikçe kitaptaki beğendiğim yerleri burada paylaşacağım.
Önce Künye:

Kitabın adı:  Sıfır Merkez Liderlik(İnsan Yönetimi), Yönetimde dokuz kişilik,dokuz benlik
Yazar:Fahri Karakaş
Yayınevi: Hayat
Yayın yılı: 2009
ISBN:9786055878245
Yazarın sitesi: http://www.fahrikarakas.com/


Kitap hakkında yazarın kendi tanıtımı: http://blog.milliyet.com.tr/yeni-kitabim-cikti--sifir-merkez-liderlik/Blog/?BlogNo=218065


Yazar, diğer gelişim kitaplarından farklı olarak yurtdışındaki yöntemleri aynen aktarmak,ihraç etmek yerine, Anadolu kültürü ile harmanlayarak daha bir "biz" odaklı yaklaşım sergilemiş.

Gelelim beni etkileyen o ilk cümleye: İş hayatında başarının anahtarı: Kendini tanımak"

Devam edelim: "Özel yaşamınızda ve iş hayatınızda başarılı ve mutlu olmanın ön şartı nedir?
Gelişim için gereken ilk adımı atmaktır. İlk adım, kendinizi derinlemenize tanımanız ve kişiliğinizle ilgili farkındalığızı arttırmanızdır.

Kişiliğinizi tanımanız ve kendinizi anlamanız, yaşamdaki duruşunuzu ve yaşadığınız pek çok olayı aydınlatacaktır.

  • Benim hayata bakış açım nedir?
  • Dikkatimin farkında olmadan kaydığı alanlar ve konular nelerdir?
  • En çok önem verdiğim prensiplerim ve değerlerim nelerdir?
  • Kuvvetli olduğum yönlerim nelerdir?
  • Hangi yönlerimi geliştirmem gerekir?
  • Ne tür durumlarda ve nasıl kızgınlık gösteririm?
  • Diğer insanlar beni nasıl bir kişi olarak görüyorlar?
  • Ben kendimi nasıl bir kişi olarak algılıyorum?
"

Bu alandaki bir kitap için olması gereken en doğru giriş bu olsa gerek. Kendim de yıllarca bu tezi savudum. İnsanın kendini geliştirmesi için öncelikle zayıf ve güçlü yönlerini bilmesi lazım.
Yani bir nevi kişisel SWOT analizinin yapılması şart!. Düşünsenize bir kimse hasta ama hasta olduğunun farkında değil? Hasta olmadığına inanan kişi doktora gitme ihtiyacı hisseder mi?
Aynı şekilde kendi eksik yönlerinin farkında olmayan kişininde kendini geliştirmesi imkansızdır.
Bunun daha da kötüsü kişinin hasta olduğunu bilmediği gibi çok ama çok sağlıklı olduğunu düşündüğü durumdur. Böyle bir kimse bırakın kendini iyileştirmeyi, kendindeki virüsü başkalarına ilaç diye dağıtacaktır.

Buradaki yazanları Peter prensibi ile harmanladığımda ortaya çıkan durum şudur:

Bizim sektöre(bilişim) gelince bir çok kimse kendi kişiliğini ve eksiklerini bilmediği için kabiliyetlerinin çok üstündeki yönetici pozisyonları hedeflemektedir. Fakat bu pozisyonlar için gerekli teknik ve karakteristik özellikleri taşımadığı için yönetim tarafından terfi edilmemektedir. O pozisyona bir şekilde gelse bile yöneticilik,liderlik kabiliyetleri olmadığı için ekibine kan kusturabilmektedir.
Ekip alt tarafta dağılmış, üzgün, yıkık durumda iken bizim sevgili yöneticimizin bunlardan hiç haberi bile olmamaktadır. Sonunda olan olur. Ekip bir bir işten ayrılır veya ekibin performansı sıfıra yakın bir seviyede seyir eder.

Olması gereken, yukarıda belirtildiği gibi kendini tanımaktan geçiyor. Kişilerin kendi kendine sorması gereken bazı sorular?

  • Bende yöneticilik vasıfları var mı? : Bu soruyu önce kendinize sorun. Sonra çevrenizde sözüne güvendiğiniz kişi ve kurumlara sorun: Sizce bende yöneticilik vasfı var mıdır?
  • Yoksa endişe etmeyin. En azından  olmadığını farkettiniz.
  • Yöneticilik vasıfları yoksa bu konularda kendimi geliştirme isteğim var mı?: Aslında en can alıcı soru da budur. Evet eksiğim farkına vardım. Ama bu eksiği tamamlamak için yeterli azim,istek ve irade var mı bende?
  • Yukarıdaki sorunun cevabı hayır ise, hiç kendinizi ve başkasını üzmeyin. Bulunduğunuz pozisyonda kalıp bir "guru" olmaya çalışın.
  • Azim ve istek varsa bir sonraki adımda eyleme nasıl geçeceğim?
  • Eyleme geçtim bir çok kere denedim ama yine yönetici vasıfları kazanamadım? O zaman Peter prensibinin dediği gibi bulunduğun yerde kal, mutlu ol!



Not: Kitap okumaları ve yorumlarımın devamı gelecek. Şimdilik bu kadar.


İsmail Yenigül
14 Mart 2013


9 Mart 2013 Cumartesi

"geliyor/arıyor/bilgi veriyor olacağım" cümleleri hakkında

Maalesef e-posta yazışmalarında ".. olacağım" ile biten cümlelerin her geçen gün daha da arttığını görüyorum.

Bu ifade İngilizce'deki "will be doing" kalıbının dilimize özentisiz,motomot bir tercümesidir.
Türkçe'ye kesinlikle ve kesinlikle uymamaktadır. Zaten biraz dikkatli bir şekilde bu ifadeyi inceleyecek olursanız hafiften bir kulak tırmalama ve gereksiz bir uzatma olduğunu sizler de göreceksiniz.

Bu kalıbı genelde satış ekibinde bulunan kişiler kullanıyor. Şirketlerimizdeki ekip arkadaşlarımı bu kalıbı kullanmamaları için sürekli uyarıyorum.

Aslında bizim ekip bu kalıbı pek kullanmıyordu. Ama nereden bu virüsü kaptılarsa son günlerde çok fazla kullanmaya başladılar. Bu vesileyle hem kendilerini tekrar uyarmak hem de diğer kişilerin dikkatini çekmek istedim.

"Size bu konuda bilgi veriyor olacağım" ifadesi bir kere çok kasıntı bir ifade diyebilirim. Yabancı filmlerdeki "hey bayım bakar mısınız" yavanlığında birşey. Bunun yerine sözü uzatmadan "Size bu konuda bilgi vereceğim", "Sizi bu konuda bilgilendireceğim", "Sizi bu konudan haberdar edeceğim" gibi zaten yıllardan beri kullandığımız güzelim cümleleri kullanabiliriz.


Saygılarımla
İsmail Yenigül

6 Mart 2013 Çarşamba

PostgreSQL'de IP kayıtları için inet veri tipi

Eğer PostgreSQL kullanıyorsanız ve yazılımınızda çok fazla IP operasyonları varsa PostgreSQL'in sağladığı inet veya cidr veri tipini kullanmanızı şiddetle tavsiye ederim.

Bu sayede:

  • IP/ağ doğrulaması yapmak için ek bir kod yazmanıza gerek yok.
  • Bir IP adresinin veritabanındaki kayıtlı bir ağ bloguna ait olup olmadığını veritabanı seviyesinde kontrol edebilirsiniz.
  • IPv4, IPv6 tipleri için tek bir kayıt türü tutabilirsiniz.

Örnek:

 db=# CREATE TABLE testip (ip inet );
 db=# INSERT INTO testip VALUES('10.0.0.0/24');
 db=# INSERT INTO testip VALUES('10.0.1.0/24');
 db=# INSERT INTO testip VALUES('10.0.0.5');

 db=# INSERT INTO testip VALUES('10.0.0.555');  #Bozuk IP
ERROR:  invalid input syntax for type inet: "10.0.0.555"
LINE 1: INSERT INTO testip VALUES('10.0.0.555');
 db=# INSERT INTO testip VALUES('10.0.0.25/33');
#Bozuk Netmask
ERROR:  invalid input syntax for type inet: "10.0.0.25/33"
LINE 1: INSERT INTO testip VALUES('10.0.0.25/33');


 db=# SELECT * from testip where ip >> '10.0.0.5';
     ip     
-------------
 10.0.0.0/24
(1 row)

db=# SELECT * from testip where ip >>= '10.0.0.5';

     ip     
-------------
 10.0.0.0/24
 10.0.0.5
(2 rows)



 cidr ve inet arasındaki fark: inet, ağ maskesinin sağındaki sıfır olmayan bitleri kabul ediyor.

"The essential difference between inet and cidr data types is that inet accepts values with nonzero bits to the right of the netmask, whereas cidr does not."

Kaynaklar:

http://www.postgresql.org/docs/9.2/static/datatype-net-types.html
http://www.postgresql.org/docs/9.2/static/functions-net.html