Yazılım ihraç ederken, hayali ihracatçı sorgulaması

Wednesday, March 21, 2012 10:35 AM
Kategoriler Bilişim

1989-2004 yılları arasında Netaş’ın AR-GE Direktörlüğü’nü yürüten Ali Akurgal’ın ilginç bir anısını, bugün gelinen noktaya ışık tutması açısından önemli bulduk ve sizinle paylaşmak istedik:

Siz, yazılımın birimi nedir bilir misiniz?

Metre.
Evet metre.
Neden metredir bilir misiniz?

Anlatayım:
1992 yılında, yâni topu topu 20 yıl önce, Netaş’ta ilk yazılım ihracatını gerçekleştirdik. Hazırlanan bir yazılım paketini; tuşa bastık, o zaman internet falan yok, çatıdaki çanak marifeti ile, vallahi de billahi de müthiş bir hız olan 128kb/s ile, İngiltere’ye uydu üzerinden yolladık. Faturayı da pullu posta ile yolladık. 2M$ bankaya geldi, kasaya koyduk.

Aradan 3-4 ay geçti, vergi memurları geldiler. Dediler ki, “siz bir fatura yollamışsınız, 2M$”. “Evet” dedik. “Bu para ödenmiş” dediler. “Evet” dedik. “Ama mal çıkışı yok, bu hayali ihracat” dediler!

Bunun üzerine vergi memurlarını ArGe’ye aldık, bir bilgisayarın başına oturttuk. “Şu ‘enter’ tuşuna basar mısınız” dedik. Biri bastı. Sonra “ne oldu” diye sordu. “300k$’lık ihracat yaptınız, bunun da faturasını yollayacağız, o da ödenecek” dedik. Adam suça ortak olmuş olduğu için çok kötü oldu. Sonra yazılım nasıl yazılır, uydu bağlantısı nedir, bu ne kadar para eder bunları gezdirip gösterip anlattık. Adamlar “çok iyi anladık ama mal çıkışı olması lâzım, mevzuat böyle” dediler.

Bunun üzerine dedik ki: “biz bu yazılımı banda kaydedelim ( o zaman CD yok, hattâ kaset bile yok, ½” makaralı bant kullanılıyor) onu yollayalım”. Adamlar bir çözüm bulmuş olmanın sevinci ile “tamam dediler, kaydedin yollayın”. İhraç ettiğimiz yazılımın kaydı iki makara etti. Bunlar paketlendi ve gümrük komisyoncusuna verildi. Komisyoncu, bunları gümrüğe götürdü ve ihracat işlemine başladı. Gümrük memuru, işlemi yapmış yapmış ve bir noktada sormuş: “TIRlar nerede?”. Komisyoncu da “TIR MIR yok hepsi bu iki zarf” demiş, masanın üzerindeki teyp bantlarını göstermiş. Gümrük memuru “bu iki zarf 2M$ edemez, ben bu işlemi yapamam” demiş, bırakmış.

Mahkemeye gidildi, bilirkişi heyeti kuruldu, bizim o iki makaradaki yazılımın 2M$ edip etmeyeceğini (nasıl baktılarsa?) inceledi. Neyse ki, 2M$ eder dediler de “hayali ihracat”tan kurtulduk. Bu sefer, aynı komisyoncu, aynı gümrük memuruna aynı iki makarayı “2M$ eder mahkeme kararı” ile götürüp işlemi yeniden başlattı. Ancak, gene işlem sırasında, ihraç malının birim fiyatı, miktarı ve toplam fiyatının girilmesi gerekiyor. Mevzuat öyle. Ne yapsınlar, iş daha uzamasın diye bakmışlar zarfta teyp bandı var, bir makarada kaç metre bant vardır diye kestirmişler, makarası 1.000 metreden 2.000 metre yazılım ihraç etmiş olmuşuz.

Yaaa, yazılımın birimi metre. İşte böyle.


Alıntı

Etiketler Etiket Yok

Volatile Anahtar Sözcüğü

Tuesday, March 01, 2011 11:56 AM

Kelime anlamı olarak bir değişkenin geçici, uçucu değere sahip olmasını ifade eder.

Volatile tip tanımlayıcısı (Volatile Type Quantifier) basitçe bir değişken tanımının başında bulunup, bu değişkenin, program dışında bir etki altında bulunabileceğini ifade eder.

Örneğin geliştirdiğimiz bir programda, farklı işlem (process) veya donanımsal etkiler sonucunda değeri değişen bir değişken (variable) kullanıyorsak, bu değişkeni volatile olarak tanımlamamız gerekir. Aksi halde derleyici (compiler) bu değişkeni optimize ederek görevini yerine getiremez bir hale sokabilir.

Bu durumun çok klasik örneklerini IPC (inter process communication, işlemler arası iletişim) konularında görebiliriz.

Klasik bir bariyer kullanılacağını ve işlemin bu bariyere belirli bir amaç için takılacağını düşünelim.

C dilinde böyle bir örneği aşağıdaki şekilde kodlayabiliriz:

int bar = 0;
while(bar == 0);
Yukarıdaki iki satırda görüldüğü üzere "bar" isminde bir değişken tanımlanmış ve bu değişkenin, değeri 0 olduğu sürece sonsuz döngüye girilmiştir. Elbette bu aşamada kod sonsuz döngüye girecek ve ilerlemeyecektir.

Yukarıdaki bu bariyeri kırmak için farklı bir işlem tarafından "bar" değişkeninin değeri değiştirilmek istenirse, bu durumda değişkene müdahale edilememesi söz konusu olabilir. Kullanılan derleyicinin optimize etme seviyesine bağlı olarak, belki de derleyici bu değişken değerini hiç tutmadan ve işletim sistemi üzerinde işlemciye bile uğramadan programı bekletme şekline geçirmiş olabilir.

Derleyicinin bu seviyede bir optimizasyon yapması sonucu değişkene erişmek ve dolayısıyla değişkenin değerini değiştirip, yukarıdaki bariyeri kırmak mümkün olmaz. Bunu engellemek için değişken tanımında volatile kelimesi kullanılır.

volatile int bar= 0;
while(bar==0);
Yeni kodumuzun tek farkı, derleyicinin bu kodda bulunan "bar" değişkenini optimize etmeyecek olmasıdır. Bu sayede kod gerçekten verimsiz bir şekilde çalışacak ancak değişkenin bütün beklentileri karşılaması sağlanacaktır.

Yukarıdaki bu durum, C, C++ dilleri için geçerli ve kullanışlıdır.

JAVA ve C# dilleri için durum biraz farklıdır. Bu dillerde yukarıda anlatılan problemin çözümü için hem volatile hem de synchronized tip tanımlayıcıları (type qunatifiers) bulunur.

Bu dilleri kullanan kişilerin bu iki tip tanımlayıcısı arasındaki farkı bilmesi gerekir.

Synchronized olarak tanımlanmış bir değişken yukarıda anlatılan sorunu çözer ancak JAVA veya C# dillerinin nesne yönelimli programlama özelliğinden dolayı, bu değişkenin tanımlı olduğu sınıftan (class), birden fazla nesne tanımlanması mümkündür.

Örneğin lif (thread) özelliği taşıyan bir java sınıfından tanımlanan bütün nesneler (objects), performans kaygılarından dolayı kendi değişken kopyalarını tutarlar. Dolayısıyla her nesnede kendi değişken bilgisi durur.

Volatile olarak tanımlanan değişkenin farkı ise burada ortaya çıkar. Synchronized tanımlı bir değişkenden farklı olarak, volatile değişken sadece tek bir kopya tutar. Bu kopyaya ana kopya ismi de verilebilir. Tasarıma göre değişmekle birlikte, birden çok kopyanın, tek kopya üzerinden güncellenmesi ve hepsinin aynı olması da aslında tek kopya tutulması olarak düşünülebilir.

Etiketler Volatile

Yazılım geliştirmeye değişik bir bakış...

Saturday, October 16, 2010 12:54 AM

Programcılıkta sabahlamanın verdiği huzur ve tatmin çok meşhur. Programcılar sabaha kadar çalışma konusunda herkesi şaşırtan derecede istekli ve beceriklidir. Bu gece çalışması boyunca beyin bir "akış" yakalayarak saatlerin su gibi geçtiği bir çalışma ortamı oluşur. Bu çalışma sırasında beyin en derin konsantrasyon düzeylerine erişir ve genellikle zor programlar bu kesintisiz, onlarca saat süren çalışmalarda ortaya çıkar. Beyin bu stilde çalışırken kişilerin mutlu oldukları, mutluluk düzeylerinin arttığı bilimsel çalışmalarla gözlemlenmiştir. Bu çalışmalar eski Chicago Üniversitesi Psikoloji Bölüm Başkanı Mihaly Csikszentmihalyi tarafından yapılmıştır. Çalışmalarda çeşitli disiplinlerden yüzlerce kişinin günlük uğraşları incelenmiş ve bu sırada "mutluluk" düzeyleri gözlemlenmiştir. Bu çalışmaların programcılar tarafındaki bulguları ise ilginçtir. Her ne kadar programcılık bir bilim dalı (Computer Science), bir mühendislik (Software Engineering) olarak düşünülse de programcıların beyninin sanatçıların çalışma stiline sahip olduğu ortaya çıkmıştır. Programcılık sırasında beyin bir "akış" moduna geçmekte, etraftan ilişkisini kesmekte ve bir probleme günlerce konstantre olabilmektedir.

Devamı...

Etiketler Etiket Yok

James Gosling'ten istifa

Monday, April 26, 2010 2:48 PM

Java'nın babası olarak görülen James Gosling, Sun'ın Oracle tarafından satın alınmasından sonraraki günlerde, şirketten ayrıldığını açıkladı. Oracle firmasını izleyeceği yolu hepimiz merak ediyoruz. Java kullananlar için inşallah daha güzel projeleri vardır.

 

James Gosling Blog

Etiketler Etiket Yok

Vista ,Windows 7 ve Windows Server 2008 için "GodMode"

Tuesday, January 05, 2010 4:37 PM

Oyun oynayanlar hile yapmanın ne kadar farklı bir duygu olduğunu bilirler(hainlik :)). Windows 7 ,Vista ve Windows Server 2008′de böyle bir tanrı modu mevcut. Tüm sistem ayarlarına tek bir likle ulaşmanın keyfini yaşıyorunuz....

Şimdi masaüstüne gelin ve yeni bir klasöroluşturun ve klasör ismine GodMode.{ED7BA470-8E54-465E-825C-99712043E01C} yazın. Klasörün adı ve "icon"u değişiyor. Artık tüm sistem ayarlarına tek bir linkten ulaşabilirsiniz....

Etiketler Windows 7 Vista GodMode