Kitaplar hakkında

Kitaplığımda, son umut rafında duruyor “suçlu hafıza”. Düşünmekten sıkıldıkça, bıktıkça, tabula rasa’ya hayatta ulaşmaya çabalayıp, aradıkça ve bulamadıkça elimi attığım kitaplardan. Belki son olmasını, belki ilk olmasını umarak, nereden baktığıma bağlı…

kimsenin haketmediği bir yüz vardı çehremde
kendimi bilmezden geldim; sûretimi payladım!
Kalacaktım kaç zaman kaldıysa gene nedensiz
Çağrıldım!….

Cenk Koyuncu, üzerine büyük şeyler söylemeye mezun hissetmediğim bir adam, zaten ihtiyacı da yok hakkında laflar uçurulmasına. Tabii insan merak ediyor bir sürü, “keşke”‘nin, bir sürü “acaba”‘nın olası sonuçlarını.

……Kaybolan izler
yatak, oda, kahrolası bir ceza kalır
paylaştıklarınla… Her ev biraz da
gömmek içindir sende çoğalanları!
Geçmiş uzatmalı Sevgilim, sevdiğim:
Göç denemesiyim, göçmen müsveddesiyim!

Tabii insan bir noktada okumayı bırakmak zorunda kalıyor, yoksa…

kaybolmuşum… Ben yolu bilmeyenlerdenim!

Biliyordun değil mi, bu kitabın bana yapacaklarını? “Tam sana göre” diye elime tutuştururken. Üç gün sonra bir yıl olacak…

This is not what it seems to be…

How to switch a Django form in admin environment depending on Model’s instant status

To switch a Django form in admin environment, depending on Model’s status or any arbitrary environmental criteria, you need to override get_form() method of ModelAdmin. The requirement behind switching form can vary from application to application. Most simple scenario can be that you need one form for adding new instances and another for editing existing instances of the same Model. Easiest way in an overridden get_form method is to check if ModelAdmin is being called for a new object, or an existing one. It is also naturally possible to check attributes in case of an existing Model, or to check any external value, condition in either cases. As a very bare bone sample please see following code.

#coding: UTF-8
from django.contrib import admin
from django import forms

from .models import Person

class PersonForm(forms.ModelForm):
    class Meta:
        model=Person
        fields=['first_name','last_name','password',]
        widgets= {
                'password': forms.PasswordInput(),
            }
    def clean(self):
        password=self.cleaned_data.get('password')
        fname=self.cleaned_data.get('first_name')
        lname=self.cleaned_data.get('last_name')
#
# ..........................................
#
        return self.cleaned_data

class PersonAdmin(admin.ModelAdmin):
#    form=PersonForm
    c_fields=(
            ('first_name','last_name',),
            )
    a_fields=(
            ('first_name','last_name',),
			('password',),
            )
    readonly_fields=('account',)
    def add_view(self, request, form_url='', extra_context=None):
        self.fields=self.a_fields
        return admin.ModelAdmin.add_view(self, request, form_url=form_url, extra_context=extra_context)
    def change_view(self, request, object_id, form_url='', extra_context=None):
        self.fields=self.c_fields
        return admin.ModelAdmin.change_view(self, request, object_id, form_url=form_url, extra_context=extra_context)
    def get_form(self, request, obj=None, **kwargs):
        if obj is None:
            return PersonForm
        else:
            return super(PersonAdmin, self).get_form(request, obj, **kwargs)

admin.site.register(Person,PersonAdmin)

There is one important issue that needs to be noted. It is common practice to use forms statically by declaring a form=PersonForm value in ModelAdmin, as the remarked line shows. Also it is common practice to leave Meta value for field list fields=[] empty in forms called this way. However when you override get_form(), you also override handler for that empty value, which is crucial for form’s operation. So you need either simply to declare your values explicitly in the form itself fields=['first_name','last_name','password',] as this or develop your own get_form() further to put those values there. First option is simpler IMHO.

Otomatik tercüme sistemleri hakkında

Twitter’in tercümesi Google’dan iyi. Bu sabah Twitter’in çok kaliteli bir şekilde otomatik tercüme yaptığını farkettim. Örnek olarak dün attığım bir tweet:

Üffff, son iki üç saatir aradığım hatanın yancı sebeplerinden biri, view tarafından “error_message” gönderip template’de “error_massage” beklemem çıktı. Üfffffff, error_massage ne ya!!!!

Twitter tarafından aşağıdaki şekilde tercüme edilirken:

ÜFFFF, one of the reasons for the error I’ve been looking for for the last two or three hours, is that view sent “Error_message” and waited for “error_massage” in the template. UFFFFFFF, error_massage what!!!!

Google tercümesi ise böyle:

Üffff, the last two or three hours, one of the reasons I’m looking for the error of error, view “error_message” by sending the template “error_massage” was waiting for output. Üfffffff, error_massage what or !!!!

En basit seviyede bakarsak, Twitter’ın tercümesi anlaşılıyor, Google ise umutsuz.

Twitter Microsoft’un tercüme hizmetini kullanıyor, Google ise malum kendi yazılımıyla çalışıyor. Bugüne kadar bazı Türkçe yazışmaları okumak zorunda kalan İngilizce bilen İtalyan iş ortaklarım tercüme için Google kullanıyorlardı, onlara MS servislerini denemelerini önereceğim, bakalım beğenecekler mi?

Microsoft’un Google’a eşdeğer servisleri https://www.bing.com/translator adresinde ve https://translator.microsoft.com adresinde de bir hesap açarak kullanılabilecek canlı chat tarzı bir tercüme hizmeti var. Gördüğüm kadarıyla şahsi kullanım ücretsiz. Beni biliyorsunuz, MS ürünü tavsiye ettiğim durumlar istisnadır. Ama bu konuda çok başarılı olmuşlar sanırım.

İlle Google diyenler tabii https://translate.google.com adresine giderek şanslarını deneyebilirler.

Gelecekten (2021) bir mesaj: Bugün yazıları elden geçirirken bunu görünce aklıma takıldı, kontrol ettim. Öncelikle Twitter artık Google tercümesi kullanıyor. Öte yandan yukarıdaki metinleri yeniden denediğimde Google’ın tercümesinin eskiden çok çok daha iyi ve Bing’den de daha anlaşılır hale geldiğini gördüm.

İyi ve güzel şeyler

Hayatta güzel ve iyi şeyler de oluyor. Eminim aile kuran, çocuk yetiştiren, iş kuran, okumaya devam eden, düne, bugüne değil de yarına bakan insanlar bunu sadece alışkanlıkla yapmıyorlar. Eminim sandığın dibinden çıkan bir umut kuşu var bir yerlerde.

Bizim çocukluğumuzda ortam o kadar kötüydü ki, bugünün ortamında geçmişin hayal meyal hatırlanan kabusları gibi geliyor. Ne kimin kimi öldüreceği belli, ne seçilen politikacıların hükümet edip edemeyecekleri. Evdeki margarin tenekesi boşaldığında yenisinin bakkalda olup olmayacağı belli değil. Margarin olsa, yemek yapacak LPG bayide belki var belki yok.

Benim yaş grubumda ve daha yaşlı olanların ortamdaki mevcut değişimlere bakışımızın gençlerden daha olumsuz olmasının sebeplerinden biri bu. Mevcut durum iyidir, kötüdür, umut vardır, yokturdan öteye, bir şekilde kurtulduğumuz geçmişin berbat günlerine dönme korkusu yaşıyoruz bence.

İlginç şekilde o kötü günlerden bir sürü güzel hatıramız da var. Bunu açıkçası ailelerimizin fedakarlıkları ve iyilikleri dışında bir gerekçe ile açıklayamıyorum. Bugünlerde aile olma cesaretini ya da aptallığını (ne açıdan bakarsanız artık) gösteren kişilere saygı duyuyorum.

Bedel ödemek

Bugünlerde konuşmalarımızın sağına soluna çok sık “bedel ödemek” kavramı girip çıkıyor. Bu kavramla ilgili olarak, hayatımda üç aşamadan geçtiğimi fark ettim.

Küçükken “para vermeden” nasıl bir bedelin ödenmesinden söz edildiğini anlamazdım. Büyümeye başladığımda para karşılığı olmasa bile her tür sıkıntının “bedel” adı altında iyi ya da kötü ama bir şekilde kabullenilmesine yönelik olarak etiketlendiğini anlamaya başladım. Daha da büyüdüğümde -bugünlerde diyelim- parasal bedelden bağımsız olarak sıkıntıları kabullenme, kabullendirme konusunda toplumsal odağın aslında maddi değerlerde kaldığını anladım. Sanırım en acıklısı bu son nokta.

Şunu düşünüyorum: “Parasal” kavramını “bedel” kavramından ayırmak aslında doğru bir hareket. Sonuçta üzerine rakam konamayacak, en azından parasal bir rakam konamayacak bedeller var, bunları göz ardı etmek doğru hareket tarzı değil.

Fakat içinde yaşadığımız para ya da maddi kıymetler odaklı bir dünya yapısı var. Adı kapitalizm de olsa başka bir şey de bu sistemlerde odak “maddi kıymetler”. Sistem aslında iyi niyetli bir yaklaşım olan, bedelin paradan kavramsal olarak ayrıştırılmasını esir alıyor. Böylece temelde maddi sonuçları olan maddi problemlere “fedakarlık”, “bedel”, “diyet” ya da adına ne derseniz, ek maddi olmayan sonuçlar bağlanıyor. Parasal sıkıntının arttığı toplumda, etik değerler zayıflıyor, dayanışma zayıflıyor.

İnsanların birbirlerine verdikleri kıymeti, gösterdikleri saygıyı gelir, yapılan iş, çalışılan şirket gibi temelde maddi sonuçları olan kriterlerle ölçtükleri bir ortamda yaşıyoruz. Dolayısıyla herkesin üniversite mezunu, prestijli okul ve bölüm diplomalı, özette bugün ve gelecekte yüksek gelir, sağlam ekonomik pozisyon garantili olması kriterleriyle, insani kalite kavramı ve kriterleri paralelleşiyor.

. TR MOL