Pebble ile Libreoffice Impress Uzaktan Kontrolü


    Libreoffice üzerinde sunumlarınızı yaparken slaytı değiştirmek için yeniden bilgisayarın başına mı gitmeniz gerekiyor? Ya da bu işi uzaktan yapmak için elinizde kocaman bir telefon mu taşımak zorunda kalıyorsunuz? Durun! Artık slaytlarınızı Pebble ile değiştirebilirsiniz... Nasıl mı? :D

    1) Pebble'ınızın telefonunuzla olan bağlantısını kesin.

    2) Pebble'ı bilgisayarınızın bluetoothu ile eşleştirin. Pebble sürekli dışarıya görünür halde olmadığından bu eşleşmeyi yapmak için biraz hızlı olmanız gerekecek. Pebble'ın dışarıya görünür hale gelmesi için  Settings-->Bluetooth ayarına girdiğinizde yukarıda "Now Discoverable" yazısı çıkacaktır. O anda bu eşleşmeyi yapmak gerekiyor. Bir defada olmayabilir. Bu kısım bi miktar sıkıntılı ancak bunu sadece bir kez yapmanız yeterli. Siz elle bu eşleşmeyi bitirmediğiniz sürece bir daha böyle bir işlemeye ihtiyaç olmayacaktır.

    3) pebble-remote uygulamasın indirin. Sıkıştırılmış bir şekilde indirebilirsiniz ya da şu komutu kullanarak uygulamayı klonlayabilirsiniz.

        $ git clone  https://github.com/COMU/pebble-remote

    4) Bağımlılıkları kuruyoruz.

        $ sudo apt-get install python-dev libopenobex1-dev python-tk python-lightblue python-pexpect xdotool python-bluez

     5) lightblue-0.4 uygulamasını indirip kuruyoruz:

        $ git clone https://github.com/pebble/lightblue-0.4/
          $ cd lightblue-0.4
          $ sudo python setup.py install

    6) Bir terminal aracılığıyla pebble-remote dizini içine geçin:
     
        $cd /path/to/pebble-remote

    7) Burada çalıştırmak için gerekli komutu yazarken bazı parametrelere ihtiyacınız olacak.

Birinci parametre pebble id Bu bilgiyi iki şekilde öğrenebilirsiniz. Birincisi Pebble üzerinde Settings-->About-->BT Address

İkincisi bilgisayarınızda bluetooth ayarlarında eşleşmiş cihazlara girip Pebble cihazına tıkladığınızda sağ tarafta adres bilgisi olacaktır.

Adres 6 oktetten oluşan 11:22:33:AA:BB:CC gibi bir bilgidir. Bu bilgiyi bir kenara not edelim.

İhtiyacımız olan ikinci parametre, yapmak istediğiniz sunumun bilgisayardaki tam yolu.
Örneğin: /home/gulsah/sunum1.odp

Artık  şu komutu çalışırabiliriz(Kendi pebble id niz ve sunumunuzun tam yolu ile):

./p.py --pebble_id 11:22:33:AA:BB:CC --lightblue remote libreoffice /home/gulsah /sunum1.odp

    Bu komutu çalıştırdıktan sonra pebble ile bağlantıda bir sorun yaşarsanız bir defa bu komutu çalıştırırken yine pebble'ın ikinci adımda tarif ettiğim gibi görünür olması gerekebilir.

    Sunum önünüze tam ekran açılacaktır. Pebble içindeki müzik uygulamasını açıp üst ve alt düğmelerini kullanarak slaytlarınızı Pebble ile değiştirebilirsiniz. :)

 


24 Aralık 2014

Posted In: Gezegen, linux, pebble, python, remote, smartwatch

Begining to Read Memory Management Codes

My Linux Kernel internship started two weeks ago and will take 3 months. My mentor is Rik Van Riel. My project aim to fix transparent huge page swapping issues, if system needs to swap huge pages, it has to split the pages to small sized ones but then the system can not reconstitute the huge pages.

Rik asked me some questions about huge page and swapping and I've replied them. Before the reply the questions I've looked for following data structures and definitions.

Firstly I've started to examine struct page and mm_struct in mm_types.h. The kernel holds all information in mm_struct, it includes vm_area_struct *mmap which involves list of memory areas.  vm_areas_struct is an object to show memory areas. Also, the kernel threads don't use mm_struct so if you see if (!mm) {...} it means this is  kernel thread.

Likely & Unlikely Functions: Theese are for branch prediction so used for compiler optimization. They supply to guess which instruction will run and do read ahead.
http://kernelnewbies.org/FAQ/LikelyUnlikely
http://stackoverflow.com/questions/109710/likely-unlikely-macros-in-the-linux-kernel

Numa & Uma Systems: I've understood the two keywords looking the picture :).










Hot &  Cold Page: If a page in cpu cache, it is hot page however cold page is vice versa.

struct scan_control: It is used for page scaning, holds following variables:
unsigned long nr_scanned: How many inactive pages were scanned.
int may_writepage: It determines whether the kernel can write backing store.
swap_cluster_max: It is restriction for a lru list.

struct zone: The kernel divides memory to nodes, and the nodes include zone lists. Every zone area include pages. You can look for struct zone.

struct list_head: Doubly linked list, to build & manage lists.

Page Flags: http://lxr.free-electrons.com/source/include/linux/page-flags.h

High Memory: Linux Kernel seperate high rate of memory for user space so high memory means user space.
http://unix.stackexchange.com/questions/4929/what-are-high-memory-and-low-memory-on-linux

Page Vector: Provides operations on page list instead of individual pages.

Slot: Swap area is divided to slots. Size of each slot equals to page frame.

up_read/write, down_read/write functions: They are for spinlock issues and includes assembly instructions.

BUG_ON* functions: Checks given condition and returns system halt or nothing.
http://lxr.free-electrons.com/source/include/linux/mmdebug.h#L18

Swap Cache: Some pages after swapped out, if the page is not changed, it has an entry on swap cache and system can read data on memory withouth get the page to back memory.
http://www.linux-tutorial.info/modules.php?name=MContent&pageid=314

Transparent Huge Page vs. Huge Page: Transparent huge page supplies a layer for huge page. http://goo.gl/qGksYX

Note-1: Swap space used by user space tools (mkswap)

Note-2: x86 systems don't use pte level for THP (transparent huge page), it can direct access data on pmd.

Following questions which are asked to me by my mentor. I've explained just important points for my project and their function traces because there are a lot of functions, sometimes they can be very complex :).

Below call chains for Linux Kernel - 3.18

1) from do_page_fault(), sometimes the VM uses transparent huge pages
   (2MB size on x86) for anonymous memory. What functions does the
   code go through between do_page_fault() and the function that
   installs 2MB pages in the process page tables?
When I examined functions, I saw a lot of spinlock functions and Rik said, they for ensure that multiple concurrent instances of the page fault code do not manipulate the page table simultaneously.

do_page_fault()
  __do_page_fault() /* checks the fault is belong to bad area or good area */
    handle_mm_fault()
      __handle_mm_fault()
        __do_huge_pmd_anonymous_page()
       
         
pgtable_trans_huge_withdraw takes a page table page from the process's
reserve of page table pages, so the 2MB page (mapped at pmd level) can
be mapped as 4kB page entries (at the pte level).


2) When are 2MB pages used?

If PAE is enabled, then use 2mb pages. I've looked for it following links:
http://en.wikipedia.org/wiki/Physical_Address_Extension https://www.cs.rutgers.edu/~pxk/416/notes/09a-paging.html
http://en.wikipedia.org/wiki/Page_Size_Extension
http://en.wikipedia.org/wiki/Page_%28computer_memory%29#Huge_pages

3) What does the VM do when a 2MB page cannot be allocated?
   (still in memory.c and huge_memory.c)
In  do_huge_pmd_anonymous_page(), if it can not allocate 2MB page;
it returns, out of memory or fall back. It also calls count_vm_event()
with THP_FAULT_FALLBACK argument. At line: 824, it tries to set
huge zero page, if it can't do that, calls put_huge_zero_page(),
which calls atomic_dec_and_test(). 

At line: 839: If it couldn't install huge page, it calls
put_page(). I've thought;in put_page, it checks whether
the page compound or not, but the page will be compound
always, because the page comes from alloc_hugepage_vma().


4) When the system runs low on memory and wants to swap something
   out, it will split up a huge page before assigning it space in
   a swap area. Find the code in vmscan.c, swapfile.c and huge_memory.c
   that does that. What does the function trace look like from
   try_to_free_pages to the function that splits the huge pages?
try_to_free_pages()
  throttle_direct_reclaim(gfp_mask, zonelist, nodemask)
    do_try_to_free_pages(zonelist, &sc)
      delayacct_freepages_start()
      global_reclaim()
      do while { vmpressure_prio()
      shrink_zones() /* if a zone reclaimable it returns true */}


I've seperated shrink_zones() to below:

shrink_zones()
  nodes_clear(shrink.nodes_to_scan)
  loop:
  populated_zone() {return (!!zone->present_pages);}
  zone_reclaimable_pages(zone) -> get_nr_swap_pages()
  node_set()
  zone_reclaimable()
  shrink_zone()
     shrink_lruvec()
       shrink_list()
          shrink_active_list()
          shrink_inactive_list()
             shrink_page_list()
               add_to_swap()
                 split_huge_page_to_list()
                    __split_huge_page()
                       __split_huge_page_map()


try_to_free_pages(): If memory is not sufficent, it checks pages and removes least used one.
shrink_zones(): It is runned by kswapd with specified time interval and used for remove rarely used
pages. It also balances inactive and active lists using shrink_active_list().
shrink_active_list(): Provides to transfer pages between active_list and inactive_list and detect least used active lists and also implements page selection.
shrink_inactive_list(): Removes lists from inactive_list and send the lists to shrink_page_list().

In general, shrink_* functions run per zone.

5) in huge_memory.c look at collapse_huge_page and the functions
   that call it - under what conditions does the kernel gather up
   512 4kB pages and collapse them into one 2MB page?
collapse_huge_page()
                khugepaged_alloc_page() /* allocate new page */
                __collapse_huge_page_isolate(vma, address, pte); /* this one is new function for me */
                if (isolate_lru_page(page)) { ... }
                if (pte_young(pteval) || PageReferenced(page) ||
                        mmu_notifier_test_young(vma->vm_mm, address)) { ... }
                __collapse_huge_page_copy()

collapse_huge_page_isolate() removes pages from lru with isolate_lru_page().
I've thought: when collapsing pages, their lru's will change. So it isolates
pages.


Note-1: __collapse_huge_page_copy(): 
The 4kB pages could be anywhere in memory.
The 2MB page needs to be one contiguous page.
That means the contents of the 4kB pages need
to be copied over into the one 2MB page.
khugepaged_scan_pmd(), if page is young, it will call collapse_huge_page().
If the collapse function can correct vma, pmd and isolate pages, it collapses
pages.


6) under what conditions does the kernel decide not to collapse
   the 4kB pages in a 2MB area into a 2MB page?
There some conditions for it:
1) If can't alloc khuge page, it won't collapse.
2) I've looked to this condition in collapse_huge_page():
        if (unlikely(khugepaged_test_exit(mm))) {goto out;}
   if mm has no user, it goes to label out and doesn't collapse pages.
3) If it can't find vma and pmd
4) If it can't isolate pages


7)  look at what happens when shrink_page_list()
passes a 2MB transparent huge page to add_to_swap()
When it sent 2 MB page to add_to_swap function, it firstly checks whether page locked and up to date then calls get_swap_page(). If there is no swap page returns 0, If not it checks transHugePAge() then implements split_huge_page_to_list(). In split_huge_page_to_list it gets anonymous vma and does write-lock for it and checks PageCompound. With PageCompound it controls the is huge or not.  Then it checks PageSwapBacked. Then calls __split_huge_page() and the function wants the page shouldn't be tail and splits the page in __split_huge_page_splitting(). The function backs to add_to_swap and does swapcache_free() issues.

8) Can you explains what the page looks like after it has been split?
What happened to the 2MB page?  What do we have instead?
What happened with the PageCompound flag?
__split_huge_page(), it calls __split_huge_page_splitting() in the iteration. It counts number of mapped pmds before splitted it and increase mapcount.

In split_huge_page_map(), it takes page offset with address argument. Firstly, it checks pmd address validity. It
creates small entries in for loop with mk_pte(), set_pte_at(), pte_unmap (this one is just nop instruction for x86 systems). The for loop does one entry for page one, then page two, then page three etc. It changes address of entry adding pagesize (haddr += PAGE_SIZE) up to number of pmd.

I've asked, why pmd_populate()  is performed two times at lines: 1790, 1843?
Rik's answer: The first pmd_populate puts in place a special transparent huge page
PMD that says "this transparent hugepage is being split, do not mess
with it".


The second pmd_populate puts in place the page table page containing
the 4kB pages that map the 2MB area.


Note-1: In __split_huge_page() iterates vma from root of red black tree at line: 1864 but the function gets only one page and a page can match just one vma. So why it needs to iterate vma?

Rik replied my question: "The same page may be shared by multiple processes, if the
process that created the 2MB page originally called fork() afterwards."

Note-2: In  __split_huge_page_splitting(), it calls  pmdp_splitting_flush() what does it do also pmd_update and flush_tlb_range function? I think it should save pmd's content before splitting, it shouldn't lose it. Why it flushes pmd?
Rik's answer: if a small page is touched or dirtied afterwards, we want the MMU to set the accessed and/or dirty bit on the 4kB page entry.

Note-3: We can ignore PVOP_VCALL stuff - that is for Xen, which uses an alternate function for filling in page table info. 

9) Under what conditions can a region with 4kB pages be
turned into a 2MB transparent huge page?
I've traced following call chain:
do_page_fault()
        __do_page_fault()
                handle_mm_fault()
                        __handle_mm_fault() /* check conditions */
                                do_huge_pmd_anonymous_page() /* check conditions */
                                __do_huge_pmd_anonymous_page() /* check conditions */

In __handle_mm_fault(), "if (pmd_none(*pmd) && transparent_hugepage_enabled(vma)) { ... }" if the expression is correct, it can realize do_huge_pmd_anonymous_page(). I've seen this quote for pmd_none() "if page is not in RAM, returns true." But I think, if page is not used for any process, it includes zeros and should be in RAM.

In do_huge_pmd_anonymous_page(), "if (!(flags & FAULT_FLAG_WRITE) && transparent_hugepage_use_zero_page()) { ... }"
if it can correct the condition, it can start to create transparet huge page. I've looked for condition values.
flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; allow retry and killable flag values are defined with special values (0x08, 0x02)?
I think their values only for to check something. And transparent_hugepage_flags is 0UL, is it always have this value? I've looked for its value,
probably always have same value. The last condition creates huge zero page using  set_huge_zero_page() which calls pmd_mkhuge().


One more condition: __do_huge_pmd_anonymous_page(mm, vma, haddr, pmd, page), if it returns false, that means created transparent huge page at line: huge_memory.c#L808
If pmd_none() returns true, creates thp.


10) What code turns 4kB pages into a 2MB page?
pmd_mkhuge() installs 2 MB page. Actually, it does pmd_set_flags(pmd, _PAGE_PSE).
_PAGE_PSE uses _PAGE_BIT_PSE which means huge page.

11) Under what conditions can a region with 4kB pages not
be turned into a 2MB transparent huge page?
There are a lot conditions for this.
1) If the entire 2MB page inside vma, return fall back.
2) If it can't create anonymous vma, return out of memory.
3) If it can't create huge page vma, return fall back.
4) If it get true from __do_huge_pmd_anonymous_page(), return fall back.
5) in __do_huge_pmd_anonymous_page(), if page is not support huge page, the code create kernel panic, and halt.
   VM_BUG_ON_PAGE(!PageCompound(page), page);

6)  If it cannot allocate a huge page

24 Aralık 2014

Posted In: Gezegen, huge page, internship, kernel, linux, memory management, opw, swap, thp

İnternetle Özgür Yazılım Sembiotik Bir İlişki İçinde

BTHABER 1000. sayı söyleşisi 15 aralık 2014

http://www.bthaber.com/internetle-ozgur-yazilim-iliskisi
Sedef Özkan

BThaber-AkgulÜlkemizin bilişim otoritelerinden Mustafa Akgül ile bilişim tarihimizde; sözcüklerle kısa sürse de, bir o kadar uzun ve devam edecek yolculuğa çıktık.

Bilişim dünyasına girişinin internetle olduğunu söyleyen Mustafa Akgül, “İnterneti çok önemsiyorum; ‘İnternet Yaşamdır!’ diyorum, onun en az sanayi devrimi kadar önemli, insanlığı ‘Bilgi Toplumu’na taşıyan bir gelişme olduğunu düşünüyorum” şeklinde konuşmasına başladı. Çabasını; interneti Türkiye’ye tanıtmak, ülkenin gündemine taşımak, ülkenin ekonomik, sosyal ve demokratik anlamda gelişmesine yönelik önündeki engelleri kaldırmak olarak aktaran Akgül, “Bu amaçla, İnternet Konferansı’nı 19 kere, Akademik Bilişim Konferansı’nı 16 kere, İnternet Haftası’nı 17 kere arkadaşlarımla düzenledik, düzenlemeye devam ediyoruz. KamuNet Konferansı’nı sadece 1 kere yapabildik. Bunların yanında Linux ve özgür yazılımı Türkiye’ye tanıtmak, gelişmesine katkı vermek için uğraştım. İnternetle özgür yazılım sembiyotik bir ilişki içindeler. İnternet sayesinde birbirini tanımayan insanlar birlikte, tüm insanların ortak malı ürünleri geliştiriyor. Bunların yanında pek çok bilişim etkinliği içinde oldum” açıklamasını yaptı.

Bilim, Ar-Ge ve inovasyonu temel alan kapsamlı bir strateji ve planla ülkemiz kalkınabilir

“Bilişim ve internet bir yandan toplumun bütünleşmesi, bir hedef etrafında birleşmesi, katılımcı ve saydam, demokratik olmaya yardımcı olacak araçları, öte yandan tüm sektörleri değiştiren, geliştiren, tüm yaşamı etkileyen, kolaylaştıran, sinerjiler oluşturma potensiyeline sahiptir” diyen Akgül, bilim, Ar-Ge ve inovasyonu temel alan kapsamlı bir strateji ve planla ülkemizin kalkınabileceğinin altını çizdi ve şu detayları verdi: “AB seviyesine ulaşabiliriz. ‘İnternet ve Bilişim’ tüm toplum kesimleri, tüm sektörler için önemli. Herkesin kendi işini yaparken, internet ve bilişimi kullanması, iyi planlanır ve düzgün araçlar geliştirilirse, işini daha iyi yapmasına, yüksek katma değere neden olacaktır. Şu anda Türkiye’de iyi niyetle çabalayan, para harcayan ama düzgün ve kapsamlı bir stratejisi olmayan, katılımcı, saydam mekanizmaları olmayan, resmin tamamını göremeyen çelişkiler içinde bir görüntü var. Bir yandan Bill Gates, Steve Jobs, Mark Zuckerberg’ler yetiştirmeyi hedefleyen, öte yandan twitter, facebook ve youtube’un kökünü kazımak isteyen bir ülkeyiz. Microsoft’un bile Açık Kaynak dünyasına katılma çabasında olduğu bir zamanda, olayın farkında olmayan bir bilişim sektörü, basın ve üniversiteleri olan bir ülkeyiz. Herkesin bilişimin önemini söylediği ama bir curcunanın sürdüğü, bütünsel bir yapının olmadığı acı bir gerçek olarak karşımızda.”

Dünya, anaokulunda programlama kavramlarını öğretmeye çalışıyor

“Bilişimi ve bilişimle ülkeyi ne geliştirir?” sorusuna şöyle yanıt veren Akgül, açık kaynak ve özgür yazılıma da vurgu yaptı: “Bilişim için siyasal liderlik, sorumluluk alacak siyasal geleceği bilişime bağlı bir siyasal kadro, tüm paydaşları içeren, katılımcı, tüm çalışmaları koordine edecek bir yapılanma, kapsamlı bir strateji, açık ortamlarda periyodik gözden geçirilen Eylem Planı; bilişimi ve bilişimle ülkeyi geliştirir. Demokrasi, saydamlık, katılımcılık, ifade özgürlüğü, merak, girişim, bilişim sektörünün gelişmesi için önemlidir. Açık Kaynak ve özgür yazılımlar stratejinin bir parçası olmak zorunda. İnsan gücü, eğitimi de önemli bir parçası olmalı. Ülke olarak bilişim eğitimi ve bilişim kültürüne önem vermemiz gerekir. Kaliteli uzmanlar, doktoralı elamanlar yetiştirmeliyiz. Bizim, dağdaki çobandan, denizdeki balıkçıya, tarihçiden ziraatçiye, temel bilişim kavramlarını, bilişim ve internet tehdit ve olanaklarını, sınırlarını ve potensiyeli anlatacak mekanizmalar kurmamız gerekir.” Mustafa Akgül, “Dünya anaokulunda programalama kavramlarını öğretmeye çalışıyor” diyerek erken yaşta bilişim eğitimine dikkat çekerek şunları paylaştı: “Okullarda temel bilişim kültürünü, başta programalama, bilgi sistemi, veri tabanı, ağ, güvenlik, mahremiyet, etik ve estetik kavramlarını öğretmeniz lazım. Bilişimin önemini, karmaşıklığını, zorluğunu ve kırılganlığını okullarda anlatmamız gerekir. Her meslekten okullu, bir yelpazede bilişim kültürü almalı. Öğretmenler, hukukçular, kamu/siyaset bilimciler, idareciler, işletmeciler biraz daha öncelikli olmalı.” Yazılım stratejisine de değinen Akgül, “Doğru dürüst bir yazılım stratejimiz olmalı. Bunda Açık Kaynak ve özgür yazılımlar, gömülü sistemler önemli rol almalı. Stratejik sektörler belirlemeli, onlara daha fazla odaklanmalıyız. Bütün bunlar bir miktar öğrenme ister. Öğrenen, geri besleme yapacak, katılımcı yapılar kurmalıyız.”

Eşit bir dünya vatandaşı olduğunun farkında yaşamak…

Akgül, tecrübelerini paylaşırken yolu bilişimden geçenlere yani herkese şunları önerdi: “Başta merak, işin özünü anlamaya, öğrenmeye, deney yapmaya, eleştirisel bakmaya önem vermeli, özen göstermeliler. Yapıcı ve girişimci olmalılar. Sorumluluk almaktan, hata yapmaktan korkmasınlar. İnsanları kırmaktan kaçınsınlar, yumuşak bir dille uzlaşmacı olsunlar. İlkelerden taviz vermeden, diyalogla orta yol bulmanın yollarını arasınlar. Sanat ve kültürden, müzikten zevk almaya çalışsınlar. Doğa ve çevreye saygılı, yaşama saygılı bir tavır sergilesinler. Eşit bir dünya vatandaşı olduğunun farkında olarak yaşasınlar.”

İnterneti savunmaya, tanıtmaya, yaymaya devam edecegiz

Hedefleri hiç tükenmeyen Akgül, “Benim çalışmalarım birbirine bağlı olarak ‘İnternet ve Özgür Yazılım’ etrafında olmuştur. İnternet konusunda, yurt dışındaki internet özgürlüğünü savunan gruplarla birlikte çalışan isoc-tr yani İnternet Derneği’ni geniş bir kadroyla birlikte kuruyoruz. İnterneti savunmaya, tanıtmaya, yaymaya devam edecegiz. Yıllık kapssamlı internet raporları çıkartmak, interneti toplumun gündemine koymak, demokrasiyi geliştirici uygulamalara destek olmak gibi hayallerimiz var. 1998’de bir kere yapabildigimiz KamuNet Konferansı’nı günün koşullarında; kamunun saydamlaşmasına, etkin çalışmasına, yurttaşa hızlı hizmet ve demokrasiye katkı vermesine yönelik yılık konferanslar olarak yapmak istiyoruz. Özgür yazılım boyutunda; üniversitelerde özgür yazılım derslerinin ve kullanımının artması, yıllık raporların hazırlanması gibi çaba/proje/hayallerim var. Son yirmi yılı özetlemeye çalışan 2 sloganımız bulunuyor: ‘İnternet yaşamdır’ ve ‘Türkiye Bilişimle, Bilişim Özgür Yazılımla gelişir!’”

23 Aralık 2014

Posted In: bilgi toplumu, bilişim, bthaber 1000. sayısı, demokrasi, e-devlet, Genel, ifade özgürlüğü, internet, linux, lkd, Özgür yazılım, sosyal ağlar, temel bilişim eğitimi, yönetişim

İmzalamadığınız Commit Sizin Değildir

Git kullananlar bilirler, .gitconfig isimli dosyaya isim soyisim ve e-posta adresi yazılarak commit loglarına commit sahibinin bilgileri otomatik eklenir.

Ancak bu durumun bir olumsuz(?) yanı vardır. Başkaları sizin adınıza commit yapabilir.
Kendi .gitconfig dosyanıza Ali yazsanız Ali’nin adına Veli yazsanız Veli’nin adına commit yapabilirsiniz.

Ancak bir commit’in gerçekten o kişinin yaptığına emin olmak için commit’i imzalamakta fayda vardır.

Peki imzalamayı nasıl yapacağız?

Öncelikle sisteminizde imza var mı bakınız:

gpg --list-keys

(Eğer daha önce GPG ile ilgili işlem yapmamışsanız, bu komut gerekli dosyaları da oluşturacaktır.)

Şuna benzer bir sonuç döndürmeli:

pub   2048R/B489436C 2014-12-14
uid                  Adil Ilhan <no-reply@adililhan.com>

Eğer GPG anahtarınız yoksa boş sonuç dönecektir.

gpg --gen-key

komutu ile GPG anahtarınızı oluşturabilirsiniz. Bu komut size yol gösterecektir.

Ekstra olarak açıklama gereği duyduğum kısım passphrase kısmı. Buraya parola girerseniz oluşturacağınız anahtar bu parola olmadan çalışmayacaktır. Yani anahtarınız çalınsa bile ekstra olarak bir de buraya yazdığınız parolaya ihtiyaç duyulacaktr.

GPG anahtarı artık oluşmuş olmalı. Kontrol için:

gpg --list-keys

Git ortamınıza bu anahtarı tanımlamak gerek:

git config --global user.signingkey B489436C

B489436C bilgisini gpg –list-keys komutunun sonucundan aldım.

Artık commitleri -S parametresi ile imzalayabiliriz:

git commit -m "test" -S

İmzalanmış commitleri görme ve doğruluğunu teyit etme:

git log --show-signature

Bu komut, yerel (local) makinenizdeki GPG bilgisi ile commit log’unda yer alan GPG bilgisini eşleştirir.
Uyuşan loglara gpg: Good signature… yazılır. Uyuşmayan loglara Can’t check signature yazılır.

Örneğin sizin bilgisayarınızdan imzalanarak commitlenen bir commit başka bir bilgisayarda bakıldığında ve o bilgisayarda sizin GPG anahtarınız yoksa log sonuçlarına Can’t check signature bilgisi yazılır.

15 Aralık 2014

Posted In: Genel, Gezegen, git, GPG

Page Fault Handler

I've started to read something about memory issue. Firstly, I've looked for basic concepts for it. This link is pretty good for basic concepts.

MMU (Memory Management Unit) translates physical memory addresses to virtual addresses. It creates an interrupt when a page fault occured. When a process try to access an address and if the address is unknown for MMU then it creates page fault exception. In this case page fault exception handler examines current state of MMU and process.  do_page_fault(...) function is page fault handler for Linux. It is processor specific function, I've studied for x86 based systems.

do_page_fault() function gets two arguments which are error code and registers of the process. The error code specifies the page fault whether because of read operation or write operation.

Firstly the function saves address of line which is cause of the exception (control register two), then saves prev state of process.

Page fault handler needs to detect whether the page fault is good or bad. Good page fault means the process needs more memory. Bad page fault can occur for different cases, in general it causes of terminate the process by the handler.

Actually do_page_fault calls __do_page_fault(...) function and it is main area to handle the page fault.

In Linux based systems every process has a page directory and page table. We can understand which pages used by which process with the data structures. If process needs more memory, the handler gets a page from pglist_data which is a global list and adds the page to page table of process.

The function using mm_struct can detect whether the process has permission access for the address. It uses find_vma function for this operation. If process has to access then the address assigned to the process else the process is terminated and segmentation fault occured.

Processes are created as instance of task_struct which includes mm_structs and keeps info about processes.

You can see process resources under /proc/pid/*. If you want to see process vma, then type "cat /proc/pid/maps" on bash. To understand memory issues better, I've read the chapter, this book is very good for kernel newbies.

Also this two links are very helpful for me, they are for kernel 2.6x series but very good to understand big picture of the topic.

Other sources:
http://www.stillhq.com/pdfdb/000446/data.pdf
http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory/

8 Aralık 2014

Posted In: do_page_fault, Gezegen, kernel, linux, memory, mmu, page fault handler

İnternet Demokrasi ve Kalkınma için Yaşamsaldır

inet-t'14

inet-t’14

Bu yıl 19.sunu yaptığımız “Türkiye’de İnternet” Konferansı fikri Türkiye İnternetinin emekleme günlerinde 1995 baharında yurt dışının 64K, iç hatların 9.6 veya 19.2K olduğu günlerde, daha 2 Mbitlik omurga hayal edilirken, ortaya çıkan çalkantıyı azaltmak, paydaşları bir masa etrafında toplamak, ve ortak akıl oluşturmak amacıyla ortaya atılmıştı. İlk yıllar bürokrasinin merkezi Ankara, ile iş dünyasının merkezi İstanbul arasında gidip geldik, büyük ölçüde tüm paydaşları da buluşturduk.

Türkiye İnterneti çok büyüdü, büyük oyuncuları ve iş dünyasını bu konferansa pek çekemiyoruz. Ama, biz hala, bu konferansın, internetle ilgilenenlerin buluşma noktası, sorunların tartışıldığı bir platform, ortak aklın arandığı bir ortam olmasını arzuluyoruz. Bu konferansın, internet konusunda, topluma entelektüel liderlik etmesi arzumuzdan ve çabamızdan vazgeçmedik. Ana sorunların ülkenin gündemine taşınması, o sorunlar için alternatif çözüm arayışlarına ortam sağlama amacı hala geçerli.

İnterneti Nasıl Algılamalı ?

İnternet hepimiz için yaşamın ayrılmaz bir parçası haline gelmiştir; ve yaşamı sürekli olarak hiç beklemediğimiz sekilde değiştirtirebilmektedir. Bu konferansı düzenleyenler olarak, interneti, insanlığın yeni toplum biçimi olduğunu düşündüğümüz, Bilgi Toplumunu oluşturan araç ve kavramların temsilcisi olarak görüyoruz. Sanayi devrimi insanın kol gücünü çokladı, onun etkin kullanımını mümkün kıldı. İnternetin temsil ettiği devrim ise, insanın beyin gücünü çokluyor, onun ürünlerinin paylaşılmasını, yeniden üretilmesini kolaylaştırıyor. İnternet Bilgi Toplumunun taşıyıcısı, ön modeli, katalizörü konumunda. Yaşam gitikçe artan bir şekilde bilgi ve enformasyon üzerine dönüyor. Artı değer yaratmanın ana unsuru, bilgi, ar-ge, inovasyon, yani eğitimli insanların beyinsel ürünleri oluyor. İnternet bireyi özgürleştiriyor, güçlendiriyor. Kitlelere örgütlenme ortamları sunuyor, onları güçlendiriyor. Hiyararşik yapıları kırmaya başlıyor. Nasıl sanayi devrimi sancılı olduysa, Bilgi Toplumuna dönüşüm de uzun ve sancılı olacaktır. İnternet dünya üzerinde 3 milyar insanın katıldığı bir paylaşım, öğrenme, üretim ve eğlence ortamıdır. İnternet, sektörleri yeniden yapılandıran, meslekleri değiştiren, kamu yönetimi, demokrasi, hizmet ve ticareti yeniden tanımlayan devrimsel bir gelişmedir. Birbirlerini hiç görmeyen insanlar, insanlığın ortak mülkiyeti için ürünler geliştirmekte; özgür yazılım, açık erişim, açık ders malzemeleri, açık bilim, açık tıp, açık biyoloji gibi projeleri hayata geçirmektedirler.

Dünya Nerede, Türkiye Nereye Gidiyor ?

Internetin boyutları konusunda bir kaç rakam verirsek: 3 milyara yakın insan internet kullanıcısı. İnternete kayıtlı bilgisayar sayısı 1 milyarı aştı. 950M web var. 140M’sı uluslararası, toplam 276M kadar alan adları var. Blog ve video sayısının yüz milyonlar ölçüsünde olduğunu biliyoruz. Google artık sayfa sayısı vermiyor, ama 2008 de 1 trilyon URL’e ulaştığını açıklamıştı. Facebook milyarı aştı (1.350B), twitter 284-645M , Linkedin 260M, wordpress 75+600 M blog var, vine 40M, instagram 200M, Pinterest 70M. Türkiye’ye gelince 16-74 yaş grubunde kullanım %53, Erkekler %63.5, Kadınlar %44.1, bu orta doğu anadoluda %37.6, % 50.5 % 24.2 düşüyor . Düzenli kullananlar 44.9, 54.3. 35.5. Internete kayıtlı bilgisayar 7.2 milyon rapor edildi. TR altında 357 bin alan adı var. Yurt dışında da 1.3M civarında var . Kabaca değerlendirirsek; dünya ortalamasını yakaladık ama, Avrupa ortalamasını yakalayamadık.

Uluslarası indekslere durum, parçalı bulutlu; coğunlukla bulutlu. ITU indeksilerinde durum: ICT gelişmede 68/166, beceride 48/166 , internet kullanımında 77/166, erişimde 61/166. Fiyat sepetinde ise 67/166. Dünya geniş bant indeksinde 70/173. Dünya ekonomik formu indeksinde uzunca bir dönem geriledik; indeksi değiştirdiler, 70’lerden 52’ye sıçradık, 45 ve bu sene 51/148. Yine Dünya Ekonomik Forununda Rekabet indeksinde bir sıçrama yaparak 59 dan 43’e sıçradık, 44/148. Ama, WIPO ve INSEAD’ın ürettiği Inovasyon indeksinde 54. Birleşmiş Milletlerin e-devlet indeksinde 71/192 ama e-katılımda 111/192 sıradayız. İnsani gelişme, demokrasi, basın ve ifade özgürlüğü, ve toplumsal cinsiyet indekslerinde çok kötüyüz; 69/192, 125/142, 154/179 . WWW vakfının sıralamasında 58/81 durumdayız: bu özgürlük, içerik ve yarar alt indekslerinde de aynı civarda.

Türkiye İnterneti gelişiyor. Mobilde ilginç uygulamalar var, en yeni cihazları alıyoruz. Finans sektörümüz internet işinde oldukça başarılı. Kamuda Maliye, Sağlık, Adalet sisteminde önemli projeler var. E-devlet hizmetleri sunumunda Avrupa ortalamasının üstündeyiz. Büyük özel sektör interneti oldukça iyi kullanıyor. Okullar için 8 milyarlık Fatih Projesi yürüyor görüntüsü veriyor. Çeşitli ar-ge teşvikleri var, teknokentler çoğalıyor. İnternet ve Bilişimle ilgili bakanlarımız var.

Türkiye Gemisi Rotasını Bilgi Toplumuna henüz döndüremedi!

Bütün bunlara rağmen, ülkede Bilişim, Bilgi Toplumu konularında bir dağınıklık söz konusu. Ülkemizde planlı, sistematik, kapsamlı ve tutarlı bir Bilgi Toplumuna yöneliş olduğunu söylemek mümkün değil. 2006-2010 kapsayan Bilgi Toplumu Stratejisi ve Eylem Planı vardı, yenisi için bu sefer katılımcı bir şekilde çalışıldı, siyasilerin onayını bekliyor. Türkiye gemisinin rotasını bilgi toplumuna döndürecek boyutta sahiplenme, yapılanma, program, ve çaba yok. Arada bir söylenen iyiniyetli, parlak sözler, başlayan bir çok proje bu gerçeği değiştirmiyor. En başta, yeterli kapsamda siyasal sahiplenme ve örgütlenme olduğunu söylemek zor. Vaktinin yarısını, 1/3′ünü buna ayıran bakan, müsteşar ve genel müdür düzeyinde kimse yok. Bilgi Toplumu çalışmalarını koordine edecek kapasitede bir yapılanma yok. Yapılanma olarak, Bilgi Toplumu Dairesi, Başbakanlık e-devlet grubu, Türksat, BTK, Sanayi Bakanlığı ve Ulaştırma Bakanlığı var. Bunun bir Parlamento ayağı yok. Sivil toplumu, özel sektörü, üniversiteyi ve basını işin içine çekecek, ortak aklı arayacak, saydam ve katılımcı, felsefe, kadro ve yapılar yok. Moda deyimiyle Multi stakeholder yapılar yok; bir başka deyişle Türkiye İnternetinde yeterli düzeyde yönetişim yok.

Yasaklar Kanayan Yara

Türkiye İnternetinin özgürlük boyutu ve yasaklar kanayan yarasıdır. . Ülkemiz 7 yıldır, 5651 nolu yasa yoluyla, tabir caizse, “İnternetle Savaşıyor”. Ülke olarak kanıksadık ama, 5651′in getirdiği yapı, demokratik hukuk devletinde kabul edilemez bir Hukuk Faciasıdır. I yBürükratik bir kadro 60 bin webi asaklamktadır, basitçe yargısız infaz sözkonusudur. Bu filtre uygulaması ile daha kötü bir hal aldı derken, devletin topyekün bir savaşı gizli kapaklı yürüttüğü izlenimini almaya başladık. Mevcut mevzuatı zorlayarak, yasa ve hukuk dışı bir şekilde, Youtube ve Twitter’ın kapatılması, Google DNS sunucuları için yapılan sahte sunucular, Türk Telekomun bütün iletişimi, https dahil izleme altyapısı kurma çabası, BTK’nın tüm trafiği izleme arzusu, insan hakları, hukuk devleti açılarından kaygı verici gelişmelerdir. Bunlar mevcut anayasal hakların ihlali nin ötesinde uluslarası hukukun, ve internet kurallarının/protokollerın çiğnenmesi anlamına gelmektedir. Bütün bunlar çocukları koruma bahanesiyle yapılıyor. Çocukların korunması konusunda bir anlaşmazlık yok. Sorun bunun nasıl yapılacağında. Hoşgörü, diyalog ve yönetişim içinde insan odaklı çözüm aramalıyız. Saydam ve katılımcı yapılarla, ifade özgürlüğü ekseninde sorunu çözmeliyiz.

Türkiyenin dünya İnternet literatüre girdiği iki nokta öne çıkıyor: biri YouTube/twitter engellemesiyle öne çıkan yasakçı bakış, diğeri ise Gezi olayları sırasındaki Sosyal Ağ kullanımıdır.

Bilgi Toplumu Strateji ve Eylem Planın temel hedefi, emek yoğun bir ekonomiyi ve kırsal ağırlıklı bir toplumu, bilgi yoğun bir ekonomi ve toplumsal yapıya dönüştürmek olmalıdır. Farklı disiplinlerden uzmanları barındıran, esnek, bağımsız, inisiyatif alabilen, yönetişimi temel alan bir yapı gerekir. Türkiye’yi Bilgi Toplumuna taşıyacak kadroları yetiştirmeye yönelik çalışan bir programımız ve politikalarımız yok, ve var olan kadroları kamuda tutacak insan kaynakları politikalarımız sorunlu. Serbestleşme mevzuat olarak tamam ama, pratikte ağır aksak ilerliyor; istatistikler fiili tekelin devam ettiğini gösteriyor. Bir başka deyişle bilişim ve internet sektöründe tam rekabetin olduğunu söylemek zor.

Dünya Çocuklara Programlama Öğretmeye Çalışıyor!

Ülkemizde Bilişim insan gücünde ciddi sorunlar var; en başta vizyon ve plan eksikliği öne çıkıyor. Okullarda bilişim eğitimini sorunlu. İlk 12 yılı düşünürsek, temel bilişim eğitimi seçmeli ve medya okuryazarlığı de seçmeli halde idi. Şimdi Bilişim Teknolojileri ve Yazılım Dersi kararı verildi. ACM lise fen kolunda bir öğrencinin 6 bilgisayar bilimi dersi almasını öneriyor; bu kültür derslerin ötesinde. Öğrencilerimize, bilgisayar/bilgi okur yazarılığı dışında, etik, güvenlik, estetik ve temel programlama, ağ, veritbanı ve bilişim sistemleri kavramlarını öğretmeliyiz Dünya çocuklara programlama öğretmeye çalışıyor. Tim Benners-Lee poltikacılara programalam öğretmek istiyor.

İnternetden ve Sosyal Ağlardan Korkmayın, onları ciddiye Alın!

Bütün dünyada devletler, interneti zapturapt altına almak istiyorlar, ama kitleler daha açık bir toplum istiyorlar; saydamlık, hesap verilebilirlik, yönetime katılma, ve refahtan pay istiyorlar. Bunu kamu yönetiminden istedikleri kadar, tüm kurumlardan istiyorlar. Wikileaks’i dünya yurttaşlarının gerçekleri öğrenme, saydamlık talebi penceresinden bakmak gerekir. Snowdeni de aynı yönde yapılmış önemli bir katkı olarak görmek gerekir.

İnternet, sosyal ağlarla, yeni medyayla, kitlesel projelerle, pek çok insanı tedirgin ediyor. İnternet yaşamın vazgeçilemez bir gerçeği oldu. Biz diyoruz ki, İnternet’den Korkmayalım! Onu öğrenelim! Olanaklarını ve olası risklerinin farkında olalım. İnterneti kendimizi geliştirmek, işimizi geliştirmek, daha iyi yapmak, daha iyi dünya vatandaşı olmak için kullanalım. Nasıl elektriği, telefonu kullanıyorsak, interneti de aynı ölçüde doğal kabul edelim. Kendimizi özgürleştirmek, yenilemek için kullanalım. Demokrasiyi geliştiren bir yurttaş olarak katkımızı göstermek için kullanalım, toplumsal katılım ve denetim için kullanalım.

Bu konferansta toplam 34 oturumda 8 Panel/Form, 13 seminer ve 10 bildiri ve 2 Çalıştay oturumu yapılacaktır. İnternetin, ticari, hukuksal, sosyal boyutlarını kapsayan 40 bildiri arasında İnternetin tüm boyutları hakkında bildiri bulmak mümkün. Eğitim seminerleri, hem bireysel kullanıcıya, hem kurumsal kulanıcıya, hem Yazılım Şirketlerine, yönelik, hem bilim adamına, hem programcıya hem de girişimceye yönelik olacaktır. Seminerlerin önemli kısmı Özgür yazılım etrafında olacaktır. Linux ve Özgür yazılımlar, İnternet üzerinde yayılmış 10 Milyon civarında gönüllünün ürettiği 1 Milyon civarında yazılımı kapsamaktadır. Özgür yazılım, bireyler, kurumlar ve ülkeler için tasarruf, istihdam, güvenlik ve rekabet açılarından önemlidir. Ülkemizin yazılım startejisin önemli bir parçası olmak gerekir. Özgür Yazılımın yansımaları olarak açık erişim, açık ders malzemeleri, açık bilim, açık kitap, açık biyoloji, creative commons, crowd sourcing, crowd funding, wikipedia gibi paylaşma ve katılım felsefeli projeler gelişmektedir.

Ülkemizdeki İnternet kullanıma yönelik, e-öğrenme, toplumsal yansımalar, e-tarım, e-ticaret konularında deneyim paylaşan bildirilerin yanında işin teknik boyutuna odaklanmış bildiriler de sunulacaktır. Bireysel/Siber güvenlik, Hukuk, Mobil, E-öğrenme, Sosyal Ağlar, Kent sistemleri, Bilgi Toplumu, Yönetişim, Demokrasi oturumları öne çıkmaktadır.

ISOC-TR Kuruluyor
İnternetin Uluslarası yönetiminde önemli bir rol oynayan ABD Merkezli İnternet Derneği (Internet Society) ile benzeri çalışmalar yapacak Ankara merkezli İnternet Derneği tanıtımını da bu konferansta yapılacaktır.
Konferansa katılmak, yeni şeyler öğrenmek, yeni dostluklar, yeni ağlar oluşturmanın yanında, Türkiye İnternetine sahip çıkmak, yasaklara karşı tavır almak, katılımcı, saydam ve demokratik bir toplum oluşturma çabasına katkı vermek, “bu çorbada benim de bir tutam tuzum var “ demek için önemli.

Biz, İnterneti çok önemsiyoruz. Bu konferansları da genelde interneti, özelde Türkiye internetini tartışacak, toplumun gündemine koyacak, ve ülkemizin gelişmesine katkı verecek bir platform, ortak akıl için bir ortam olarak tutmaya çalısıyoruz, çalışacağız. İnternet konferansını, ülkenin Bilgi Toplumu ve e-devlet çabalarının gözden geçirileceği, geri besleme yapılacağı bir dost ortamı yapmak istiyoruz.
Bu hedefe ulaşmada bugüne kadar istediğimiz başarıyı elde edemedik ama bu davet bizim!

Katkı veren herkese tekrar teşekkür eder, başarılar dilerim.

İnet-tr YK Adına
Mustafa Akgül
27 kasım 2014
[19. İnternet Konferansı açık konuşması ve Sunumu ]

6 Aralık 2014

Posted In: bilgi toplumu, demokrasi, eylem planı, Genel, ifade özgürlüğü, information society, internet, internet sansürü, lkd, Özgür yazılım, sosyal ağlar, temel bilişim eğitimi, yönetişim

Two-Factor Auth Destekli OpenVPN Server Kurulumu

IT altyapılarının güvenilirliğini ve bağlı olarak sürekliliğini sağlamak üzere uygulanması gereken süreç disiplinlerinde kritik data içeren mecralara erişimlerde sıkı güvenlik prosedürleri izlenmesi gerekiyor. Bu anlamda özellikle PCI-DSS ya da ISO 27001 standartlarına tabii olan ya da olmak isteyen firmaların, kendi networklerine “dışarıdan” erişim ihtiyacının bulunması durumunda implemente edecekleri VPN çözümlerinin, bahsi geçen güvenlik standartlarına uygun olması gerekiyor. Örnek olarak PCI-DSS uyumluluğu için kullanılan VPN çözümünde kimlik doğrulama işlemi en az iki aşamalı olarak gerçekleştirilmek durumunda. Bu zorunluluk PCS-DSS V3’de şu şekilde tarif edilmiş durumda:

Implement Strong Access Control Measures 8.3 – Incorporate two-factor authentication for remote network access originating from outside the network by personnel (including users and administrators) and all third parties, (including vendor access for support or maintenance). Note: Two-factor authentication requires that two of the three authentication methods (see Requirement 8.2 for descriptions of authentication methods) be used for authentication. 8.2 Authentication methods – Something you know, such as a password or passphrase – Something you have, such as a token device or smart card – Something you are, such as a biometric.

Bu tanıma göre, networkünüze uzaktan erişim sağlayacak her türlü bağlantı için yapılacak kimlik denetimlerinde madde 8.2’de belirtilen metodlardan en az ikisinin kullanılması gerekiyor. Günümüzde yaygın olarak kullanılan SSL VPN çözümlerinde PKI altyapısı kullanılarak, bir username üzerinden key ibraz etmek sureti ile kimlik denetimi gerçekleştirilip bağlantı kuruluyor. Ancak bu tek yönlü kimlik denetimi, anlaşıldığı üzere yeterli değil. Bu nedenle kullandığınız VPN çözümünün username/ password (ya da key) ibraz etmeye ek olarak token ya da bir biometric denetim mekanizmasını destekliyor olması gerekiyor. Biometric denetim mekanizmalarının oldukça sınırlayıcı ve maliyetli çözümler olduğunu düşünürsek, iki yönlü doğrulama için username + token mekanizmalarını birlikte kullanmak konunun pratik çözümü olacaktır. İşte bu konudan hareketle bu yazıda, bir SSL VPN implementastonu olan OpenVPN ve Google Authenticator kullanılarak two-factor authentication destekleyen bir VPN sunucusu kurulumundan bahsedeceğim. En nihayetinde halihazırda kullandığınız OpenVPN altyapınıza yazıda anlatıldığı şekli ile google authenticator entegrasyonu da yapabilirsiniz.


Devamini okuyun: Two-Factor Auth Destekli OpenVPN Server Kurulumu


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,

30 Kasım 2014

Posted In: *nix, Genel, installation, openvpn, security

Etiketler: ,

İnternet: Son Söz Söylenmedi

Günlerdir iPhone’un yeni modeli konuşuluyor. Gazeteler ve haber portalları reklam kokan haberlerden geçilmiyor. İnsanlar iPhone’un yeni modelini bir an önce satın alabilmek için türlü çılgınlıklar yapıyor. Cumhurbaşkanı Recep Tayyip Erdoğan da bu durumu eleştiriyor [1]:

İnsanlar o marka telefonu alabilmek için gece dahi saatlerce kuyrukta bekliyorlar. Bu marka her yıl model çıkardığı halde, modeller arasında çok büyük farklılıklar da yok ha, bunu da söyleyeyim. Tanınmışlık sayesinde bu uzun kuyrukları oluşturabiliyorlar. Burada bir çok arkadaşımız da bunu biliyor. Aslında satılan telefon değil, satılan o telefonun markası. ‘Bak yenisini aldım, bu.’

iPhone’un modelleri arasında fark olup olmadığını bilmiyorum. Fakat Erdoğan, satılanın telefon değil marka olduğunu söylerken haksız sayılmaz. Ne yazık ki Erdoğan’ın bu sözleri, bazılarınca alaya alındı. Hatta Erdoğan’ın iPhone eleştirisinden sonra iPhone’a yakınlık duymaya başlamış, ilk fırsatta iPhone almayı düşünen muhalifler de olabilir.

Viyana merkezli Uluslararası Basın Enstitüsü (IPI) ile New York merkezli Gazetecileri Koruma Komitesi’nin (CPJ) ortaklaşa oluşturduğu basın özgürlüğü heyeti ile yapılan toplantıda ise Erdoğan “Medyaya hakaret özgürlüğü asla verilmemeli. İnternete olan karşıtlığım her geçen gün daha da artıyor” dedi [2]. Erdoğan’ın bu sözlerinden sonra sosyal medya, doğal olarak, çalkalandı. Bunda çok da kızacak bir şey yoktu. Erdoğan, iktidar sahibi olarak kaygılarını son derece açık bir dille ifade etmişti. Geçtiğimiz günlerde Facebook, Twitter, Google ve Microsoft’un da katılımıyla gerçekleşen AB (Avrupa Birliği) toplantısının gündemi de internetteki fanatiklere karşı mücadeleydi. Son zamanlarda, sosyal medyanın kökten dinci örgütler için taraftar bulma mekanı haline gelmesi AB’yi kökten örgütlenmelere karşı harekete geçirmişti [3]. ABD’nin sosyal ağlardan bilgi talep ettiği ve kullanıcıların bu konuda haberdar edilmediği artık gizlenmiyor bile [4]. Dolayısıyla, internetten rahatsızlık sadece Erdoğan’a özgü bir durum değil. Tüm iktidarlar interneti bir şekilde (sansürle ve/veya gözetimle) kontrol etmeye çabalıyor. Bunu da teknolojik ve politik kapasiteleri doğrultusunda gerçekleştirebiliyorlar.

Ancak ben Erdoğan’ın yerinde olsaydım, internetten rahatsızlığımı düşünerek, iPhone’u pek eleştirmezdim. Çünkü iPhone ve benzerleri tam da Erdoğan’ın (ve diğer iktidar sahiplerinin) hayalindeki interneti oluşturacak potansiyele sahipler. Bu onların meselesi…

Bizim meselemize gelince…

Eğer interneti soldan tartışacaksak iki bakış açısından, teknolojik belirlenimcilikten ve teknolojinin tarafsızlığından, özenle uzak durmamız gerekiyor. Çünkü her iki bakış açısı da teknolojiyi durağan bir şey (thing) olarak değerlendirmekte.

Teknolojik belirlenimcilik, teknolojinin tek yönlü olarak (olumlu ya da olumsuz şekilde) toplumu dönüştürdüğünü savunur. Telefon bire bir (one to one), radyo ve televizyon birden çoğa (one to many), internet de çoktan çoğa (many to many) iletişime olanak verir. Açıkça ya da üstü kapalı olarak bilgisayar ağlarının teknik alt yapısının toplumsal ilişkileri belirleyeceği varsayılır. Fakat yeni toplumsal hareketlerin örgütlenip başkaldırmasını, şirketlerin yeni iş modelleriyle sömürüyü yoğunlaştırmasını ve hükümetlerin vatandaşlarını gözetlemesini sağlayan aynı teknik altyapıdır. Bu durumu dikkate almadan, bütünün belirli bir parçasına odaklanıp iyimser ya da kötümser yorumlar yapılabilir. İşgal Et! (Occupy!) hareketlerine bakarak sosyal medya yüceltilebilir; artan gözetim uygulamaları (dinlenen telefonlar, sokakları gözetleyen kapalı devre kameralar, büyük veri, derin paket inceleme vb) nedeniyle kara senaryolar yazılabilir.

Bazılarına göre ise teknoloji ne iyidir ne kötüdür; tarafsızdır. Herhangi bir teknoloji farklı amaçlar için kullanılabilir. Kısmen doğrudur; en azından kullanıcının iradesini dikkate almasıyla teknolojik belirlenimcilikten daha ileri bir noktadadır. Kullanıcıların kültürü ve teknolojiyi nasıl sahiplendikleri önemlidir. Çocukluğundan beri bilişim teknolojileri ile haşır neşir olan bir kuşak ile kırkından sonra internetle tanışan bir kuşağın bilişim teknolojilerini kullanımı farklı olacaktır. Ayrıca kullanıcıların birbirini tanıdığı veya benzer kültürlerden geldiği homojen bir topluluğun bilgisayar ağını sahiplenmesi heterojen toplulukların bilgisayar ağını sahiplenmesinden farklıdır. Yine kullanıcıdan yola çıkarak, gözetimi ve internetin ticarileşmesini hükümetlerin ve şirketlerin kötü kullanımıyla, ağdaki demokratik örgütlenmeleri yeni toplumsal hareketlerin iyi kullanımıyla açıklamak da mümkündür. Teknolojinin tarafsızlığından yola çıkarak, “zaten bugün kötü işlerde kullanılan büyük veri de devrimden sonra toplum yararına kullanılacaktır” da denilebilir.

Ama insan iradesi, yalnızca teknolojinin kullanımında değil tasarımında da yer alır. Teknoloji bir şey (thing) değil, farklı tarafların iradesiyle şekillenen süreçtir. Varsayılanın aksine herhangi bir teknolojinin toplumsal kabulünü sağlayan yalnızca verimlilik değildir. Feenberg (2012) bisiklet örneğini verir. Bugün bisikletlerdeki tekerleklerin eşit boyutlarda olmasını olağan karşılıyoruz. Oysa ilk başta ön tekerleği daha büyük olan bisikletler de bir seçenekti. Ön tekerleği büyük olan bisikletler hızlarıyla, iki tekerliği eşit olanlar ise daha dengeli olmaları ile öne çıkıyorlardı. İnsanlar tercihlerini hızdan yana değil dengeden yana kullandılar ve büyük tekerlekli bisikletler tarihin bir döneminde donup kalırken sonraki bisikletler kazanan modeli takip etti.

Yapılandırmacı (constructivist) yaklaşım bu durumu teknolojilerin yorumsal esnekliği ile açıklar. Yapılandırmacılara göre herhangi bir teknolojinin ne için kullanılacağı açık seçik belli olana dek tasarımı standartlaştırılamaz. İlk aşamalarda farklı tasarımlar yarışır; ama bu yarışın sonucunu belirleyen her zaman verimlilik olmaz. Yukarıdaki bisiklet örneğinde belirtildiği tasarımın ardında birbiriyle çekişen kaygılar olabilir. Bu tasarımlardan biri galip geldiğinde, teknolojinin tasarımı da o çizgide gelişir ve geliştirilen teknoloji farklı koşullar oluşana kadar kararlılığını sürdürür. Örneğin bugün küçük yaşlardan itibaren bir parçamız haline gelen telefonun ilk çıkış amacı devlet işlerinde kullanımdı. Kadınlar telefonu ailelerinin sosyal yaşamlarını düzenlemek için kullanmaya başladığında bu durum mühendislerin pek hoşuna gitmemişti. İlginç olarak telefon 1920 yılına kadar, şirketlerin abonelerine canlı yayın ulaştırdığı bir yayın (broadcast) teknolojisi olarak kullanıldı (age). Fakat bildiğimiz gibi telefon kişiler arası iletişimin aracı olarak kararlı hale geldi ve tasarımlar bu yönde gelişti. Ta ki bilişim teknolojileriyle akıllı hale gelip yeni bir kararsızlığa sürüklenene dek.

Radyo ve televizyonun ilk mucitlerinin kafasında da bugünkünden farklı amaçlar vardı. Radyonun ilk günlerinde eğitim ve kamu programcılığı hakimdi. Televizyon ise daha çok bir eğitim ya da gözetim aracı olarak düşünülüyordu. Ancak daha sonra her ikisi de hızla eğlence sektörünün hakimiyetine girdi ve sonraki gelişimleri de bu doğrultuda oldu. Diğer kullanım alanları da varlığını ikincil olarak sürdürdü. Ama asıl belirleyici olan eğlence sektörünün gereksinimleriydi (age).

Dolayısıyla, teknolojik belirlenimciliğin ya da teknolojinin tarafsızlığı görüşünün etkisinde olanlar teknolojinin olumsallığını, çıkışından kararlı hale gelene kadarki mücadeleyi gözardı ederek interneti olmuş bitmiş bir şey olarak tartışmaktadır. Bunun sonucunda, tarihin belirli bir dönemine ait olgular genelleştirilerek internetin toplum üzerindeki olumlu ya da olumsuz etkilerinden bahsedilebilmektedir. Bunun doğal sonucu olarak bazıları internette artan metalaşmayı ve gözetimi hissettikçe kötümserleşirken, bazıları da Gezi’deki sosyal medya kullanımından yola çıkarak interneti fetişleştirmektedir. Son yıllarda, şirketlerin artan hakimiyeti ile internetin de radyo ve televizyonla aynı kaderi paylaştığını düşünenler de vardır. Şirketlerin interneti kendi çıkarları doğrultusunda yeniden (!) tasarlamaya çabaladığı doğrudur. Fakat internetin kararlı hale gelip tasarımında sona gelindiğini söylemek için henüz erkendir (Feenberg ve Bakardjieva, 2004).

Teknolojinin gelişim sürecinde bilim insanlarının, mühendislerin, tasarımcıların, yöneticilerin, sermaye sahiplerinin ve kullanıcıların çıkar ve görüşleri çarpışır. Şirketler internetin mimarisine en baştan, ilk geliştirilme aşamasında müdahil olsalardı, kuşkusuz bugün başka bir internetimiz olacaktı. Bugünkü internet yerine kapitalizmin azami kar, rekabet, dışlayıcılık vb normlarını içeren bir internetimiz de olabilirdi. Neyse ki internetin ilk tasarımının arkasındaki aktörlerin temel kaygısı kalımlılıktı (survivability). Amerikan ordusu, merkeze yapılacak herhangi bir saldırının tüm iletişim ağını kesmesini istemiyordu. Bu yüzden, hiyerarşik olmayan ve ağın düğümleri arasında gereksiz (redundant) bağlantılar da içeren bir yapı hedeflendi. Bu tasarımsal tercih internetin sonraki gelişimine de yön verecek, onu sağlam ve değişen ihtiyaçlara yanıt verebilen esnek bir teknoloji yapacaktı. Şirketlerin internete ilgisi ise çok daha sonra oldu. Öyle olmasaydı, tasarımda, kalımlılık yerine kontrol daha ön planda olacak ve ağın düğümleri arasındaki gereksiz bağlantılardan tasarruf edebilmek için A ve B gibi iki düğüm arasında tek bir yol yeterli olacaktı.

Mühendislik perspektifinden ele alındığında ağın kullanım protokollerinin zarif ve verimli tasarımlara olanak verebilmesi için protokollerin oldukça basit tutulması gerekiyordu. Ayrıca ağın gelişimi ve büyümesi için mimarisi açık uçlu kurulmalıydı. Ağın merkezi yönetimi toplumsal bir karardı ve ne mutlu ki mühendislerin ağı ve kullanıcıları kontrol etmek gibi bir kaygısı yoktu (Feenberg, 2012).

İnternetin öncüleri kendilerini bugünkünden farklı, hiçbir kuralın olmadığı bir alanda bulmuşlardı. İnterneti beraberce inşa ettiler. Gönüllülük, işbirliği ve paylaşım bu inşa sürecinin temelini oluşturdu. Ağın açık uçlu mimarisi e-posta ve www (world wide web) gibi inovasyonların da önünü açtı. İnternetin önceli ARPANET’in henüz birkaç üniversiteyi bağladığı bir dönemde ortaya çıkan e-posta programı ilk başta (kadınların telefon kullanımı örneğinde olduğu gibi) gereksiz bir sosyallik olarak görüldü; ama kısa bir süre sonra e-postanın topluluk inşasındaki rolü fark edildi ve e-posta deneylerine izin verildi. Daha sonra Tim Berners-Lee, www’yi icat etti. Kapitalizmin internete henüz bulaşmadığı günlerde icat edilen her iki teknoloji de enformasyonun paylaşımını kolaylaştırdı ve internet topluluklarının oluşumunun önünü açtı. Her iki teknoloji, internet teknolojisinin açık mimarisinin üzerinde yükselerek kendi yapılarında da bu açıklığı devam ettirdiler. İnternetin bu evresinde teknolojiyi belirleyen hükümetler ve şirketler değil, ağdaki bilim insanlarının ve mühendislerin buluşları oldu.

Sonraki evrede, üniversitelerin ve araştırma laboratuvarlarının dışından sıradan insanların da internete müdahalesini gördük. Kullanıcılar, askeri araştırmacıların bilgi paylaşımı için geliştirilmiş bir teknolojiye yeni işlevler kazandırarak onun iletişim potansiyelini artırdılar. Kullanıcılar teknolojiyi tasarımcılarından farklı bir açıdan ele alıp internet teknolojisinin açık uçluluğundan faydalanarak onu yeniden yorumladılar. Ancak teknolojinin yeniden yorumlanması, teknoloji açık uçluluğunu koruduğu sürece gerçekleşebilirdi. Şirketlerin internete en olumsuz etkisi de metalaşmayı interneti ve internet teknolojilerini sınırlayarak gerçekleştirmeye girişmeleri oldu.

Şu an şirketlerin yoğun baskılarına rağmen şirketlerin bir zaferinden söz edemeyiz. Mücadele devam ediyor, şirketlerin interneti ticarileştirmeye yönelik hamlelerine internetin (ve tarihin) öznesi insanın yaratıcı hamlelerine şahit oluyoruz. İnternetin geleceğini üç farklı modelin mücadelesi belirleyecek (Feenberg, 2012).

Birinci model, enformasyon modelidir ve internette enformasyonun dağıtımını hedefler. İnternetin ilk günlerinden beri varlığını sürdüren bir modeldir. Kuşkusuz daha sonra da varlığını devam ettirecektir. Ama kişiler arası iletişim, enformasyon değişiminden daha çekici gelmektedir.

İkinci model, tüketim modeli olarak adlandırılır. İnterneti küresel bir alışveriş merkezine çevirmeyi hedefler. Kullanıcılar arası iletişime asgari düzeyde gereksinim duyulur. Ayrıca eğlence endüstrisi ve servis sağlayıcılar, interneti de televizyonlaştırmak için hem yasal hem de teknik alanda yoğun bir faaliyet göstermektedir.

Üçüncü model ise topluluk modelidir. İnternetin en başından beri amacı iletişimdir. E-postalar, tartışma listeleri, forumlar, bilgisayar konferansları kişiler arası iletişimin ilk örnekleridir. Ancak bu uygulamalar internetin ilk günlerinde, internetin ilk kullanıcıları (aynı zaman geliştiricileri) arasında bir topluluk bilinci oluşturabilmesine karşın internet heterojenleştikçe (bilim insanları ve bilgisayar meraklılarının dışında insanlar internete katıldıkça) yetersiz kaldı. Ama 2000li yıllarda çıkan, önceki iletişim uygulamalarındaki eğilimleri ileriye taşıyan sosyal medya ve web 2.0 uygulamaları, hem toplumun daha geniş kesimlerini topluluklara kattı hem de topluluk üyeleri arasındaki etkileşimi artırdı. Bu yeni toplulukların temelinde karşılıklılık yatıyordu; insanlar önceki topluluk deneyimlerinde tartışma listelerini ya da forumları sadece izlemekle yetinebiliyorlar ve kendilerini gizleyebiliyorlardı. Sosyal medya ise insanları okumanın yanında, yazmaya ve ağa kendinden bir şey katmaya yöneltti. Ağda ortaklaşa üretimlerde bulunmak ya da belirli bir amaç doğrultusunda harekete geçmek için bir araya gelen kullanıcılar kendilerine özerk iletişim alanları yarattılar. Böylece internetin iletişimi güçlendirecek ve çeşitlendirecek biçimde gelişmesini de sağladılar.

Ancak internetin bu yönde gelişimini devam ettirebilmesi için bazı koşulların devamı gereklidir. İnternet protokolleri tarafsızlığını devam ettirmelidir. Bir diğer deyişle, internet servis sağlayıcıları ve hükümetler internet üzerindeki iletişimin eşitliğine zarar vermemeli; ağ, kar getirmeyen ya da çoğunluğun görüşüne aykırı görüşlerin iletimine karşı tarafsız olmalıdır. Ayrıca teknik olarak da yenilikçi tasarımlara açık olmalıdır.

Aslında bizim sevdiğimiz internet de bu internettir. Dünyanın dört bir yanındaki İşgal Et! eylemlerinde, Wikipedia’da (ve VikiSosyalizm’de – http://www.wikisosyalizm.org), bağımsız haber sitelerinde gerçekleşen topluluk modelinin internetteki etkinliğinin bir sonucudur.

İnternette gelişen topluluk modeli, kapitalizmin rekabete, kar hırsına, dışlayıcılığa ve eşitsizliğe dayanan normları ile çelişmekte ve internetin geleceği için kapitalizmin dokusuna çok daha uygun olan tüketim modeli ile çatışmaktadır.

Kamusal ve özel çıkarların çatıştığı bu mücadele internet gibi çok katmanlıdır. Birinci katmanda www, yani içerik, yer almaktadır. Özgür yazılım ile özel mülk yazılım internetin geleceğine dair iki vizyonu temsil etmektedir. Özgür yazılım, kullanıcının teknolojiyi yaratıcı sahiplenmesine olanak vermekte, onun yaratıcı potansiyelini geliştirmektedir. Son zamanlarda birçok şirket, ürünlerini özellikle kapalı, sadece belirli bir amaç doğrultusunda kullanılmak üzere geliştirmekte, kullanıcının teknolojiyi yeniden yorumlamasının önüne geçmektedir. Dolayısıyla, özel mülk yazılıma karşı özgür yazılımı savunmak (ve kullanmak!) internetin gelecekte ne olacağına dair politik bir müdahaledir.

İkinci çatışma alanı ise daha alt katmanlarda, ağ tarafsızlığı alanındadır. Şirketler, filmlerin ve televizyon programlarının ağda önceliklendirilmesi için ABD’de yoğun bir kulis faaliyeti yürütmektedir. Eğer eğlence şirketlerinin ve internet servis sağlayıcılarının girişimleri başarılı olur ve ağ trafiği ticari faaliyetleri önceliklendirmeye başlarsa, internet tüketim modeline yönelecektir.

Kısacası, internette çetin bir mücadele söz konusudur. Ancak hangi model başarılı olursa olsun, diğer modeller de ortadan kalkmayacak ama internetin sonraki gelişiminde ikincil olacaktır. Tabi bu mücadeleyi sadece izlemek gibi bir lüksümüz yok. Solun internetle (ya da daha genel olarak bilişim teknolojileri ile) olan ilişkisini de 11. Tez’den başlayarak tartışmak gerek:

Filozoflar dünyayı yalnızca çeşitli biçimlerde yorumlamışlardır; oysa sorun onu değiştirmektir.

Sorun internetin dün ve bugün ne olduğu değil, onun yarın ne olabileceğidir. Belki herkes yazılım geliştiremez ama örgütlenerek teknolojinin tasarımına etkide bulunabilir. Gündem yaratarak, halkı teknolojinin gelişimine dair tartışmalara katarak, bu tartışmaları davalara ve boykotlara taşıyarak, yeni hukuksal düzenlemelere zorlayarak hükümetler ve şirketler, kamu yararını gözeten tasarımlar yapmaya zorlanabilir.

İnterneti özel mülk yazılımın kollarına atan, internetin açıklık ilkesini çiğneyen ve gözetimi artıran her girişim sorgulanmalıdır. Örneğin, torba torba yasalar çıkarken kişisel verilerin korunması hakkındaki yasal düzenlemenin akıbeti sorgulanabilir, toplumun daha geniş kesimlerine sorgulatılabilir. Pardus projesine ne olmuştur? Ankara Üniversitesi’nin Microsoft’la yaptığı anlaşmanın sonuçları ne olacaktır? [5]

Tüm bu konular ve sorunlar internetin geleceği konusunda ilgisiz sorularmış gibi görünebilir…

İnternet kısmen ya da tamamen sansürlenebilir ve toplulukların iletişimleri kısıtlanabilir. Fakat bu girişimlerin etkili olup olmayacağı internet kullanıcılarının yaratıcı etkinliklerine ve dolayısıyla bilişim teknolojilerinin buna ne kadar imkan verdiğine bağlıdır. Geçtiğimiz ay Hong Kong’daki gösterilerde kullanılan mesh ağlar bu duruma güzel bir örnektir [6].

İnternet, tasarımına içsel kalımlılık kaygısına rağmen doğal afetlere ya da hükümetlerin sansürüne karşı yeterince dayanıklı değildir. Çünkü kullanıcılar internete girmek için merkezi düğümlere gereksinim duyarlar. X adlı internet servis sağlayıcıya bağlanmadan internete çıkamazsınız; komşunuzla bile internet üzerinden haberleşemezsiniz. Mesh ağlarda ise iletişim merkezsiz bir ağ ile kurulur. Cihazlar kendilerini bant genişliğinin uygunluğuna ve yakınlığına göre ayarlayarak birbirleriyle haberleşebilir. Ağdaki cihazlar arasındaki iletişim dinamik bir rota üzerinde gerçekleşir. Dolayısıyla, ağdaki tüm cihazları ortadan kaldırmadıkça bir mesh ağı kapatmak mümkün değildir. Bu nedenle mesh ağlardan oluşan internet doğal ya da politik felaketlere karşı normal internetten daha sağlamdır.

Mesh ağlar, felaket senaryoları dışında özellikle fakir ve yetersiz hizmet alan bölgeler için de uygulanabilir. Maddi gücü yetersiz olanlar için ücretsiz bir iletişim ağı sağlayabilir. Mesh ağlar, aynı zamanda internetin ilk günlerindeki saf haline dönüştür. Mesh ağı, internetten görülemeyeceği için iletişimi gözetlemek için doğrudan ağa dahil olunması gerekir. Ayrıca merkezi bir otorite olmadığından kişilerin kimliklerini tespit son derece zordur (De Filippi, 2014).

Mısır’da, İran’da ve son olarak Hong Kong’da sansüre karşı topluluk içi iletişimi devam ettirebilmek için mesh ağlar kullanıldı. Fakat De Filippi mesh ağların öneminin yalnızca doğal felaketlerle ve sansürle sınırlı olmadığını düşünmektedir. Grup içi iletişim için merkezi noktalara ihtiyaç duymamasının yanında merkezi bir otorite de yoktur. Topluluk tarafından örgütlenip topluluğun ihtiyaçları doğrultusunda çalışır. Mesh ağlarla, birbirinden bağımsız, çok sayıda internetimiz olabilir [7].

Tabi teknik olarak henüz internet kadar güçlü ve yeterli değildir. Ama mesh ağların yaygınlaşmasının önünde tahmin edebileceğiniz gibi iki büyük engel vardır: hükümetler ve şirketler. Hükümetler kontrol edemeyecekleri, şirketler (internet servis sağlayıcılar ve telefon operatörleri) de abonelik üzerine kurulu iş modelleri geçersizleşeceği için mesh ağlara sıcak bakmamaktadır.

Ama en son Hong Kong’daki gösterilerde olduğu gibi kullanıcılar zor durumda kaldıklarına mesh ağlarına yöneliyorlar. Hong Kong’daki göstericiler, kendi aralarındaki iletişimi hem iPhone’da hem de Android’de çalışan FireChat uygulaması ile sağladılar. Fakat mesh ağlar deyince ilk akla gelen proje olan Serval Projesi [8] (http://www.servalproject.org/), iPhone yerine neden Android telefonları öncelikli olarak gördüğünü açıklarken iPhone’lar için yazılım geliştirirken yaşanan kısıtlılıklara dikkat çekmektedir [9]:

  • iOS’daki uygulama geliştirme lisansları kısıtlayıcıdır.
  • Uygulama dağıtma seçenekleri kısıtlıdır.
  • Apple kendi iş modelini ya da iş ortakların rahatsız eden girişimlere karşı düşmanca davranmaktadır.

Bu nedenle, hem iPhone’u hem de İnternet’i aynı anda eleştiremezsiniz. Nitekim iPhone’da FireChat kullanmak da diğer internet uygulamaları gibi merkezi bir otoritenin (Apple’ın) onayına bağlıdır. Acaba Amerikan çıkarlarına aykırı bir gösteride de iPhone kullanılabilecek midir? Mesh ağlarının sunduğu iletişim özgürlüğü Apple’ın inisiyatifindedir.

Tam tersini de, özgür yazılım ile özel mülk yazılım arasındaki çatışmada sessiz kalıp, internette sansüre ve ticarileşmeye hayır diyemezsiniz. Çünkü internetin geleceğini özgür yazılım ve özel mülk yazılım arasındaki bu irili ufaklı çatışmalar belirleyecek: Biz interneti bir iletişim alanı olarak görüp geliştirmek isteyeceğiz, firmalarda bizim bu girişimlerimizi engelleyip onu büyük bir alışveriş merkezine çevirmeye çalışacaklar.

İnternet için henüz son söz söylenmedi… Mücadeleye devam!

 

Kaynaklar

De Filippi, P. (2014). It’s Time to Take Mesh Networks Seriously (And Not Just for the Reasons You Think). Wired, February.

Feenberg, A., Bakardjieva, M. (2004). Consumers or citizens? The online community debate. na.

Feenberg, A. (2012). Introduction. In (Re) Inventing The Internet (s. 3-17). SensePublishers.

Notlar:

[1] http://www.yenisafak.com.tr/teknoloji/erdogandan-iphone-6-elestirisi-688641, son erişim 18/10/2014

[2] http://www.hurriyet.com.tr/dunya/27323343.asp, son erişim 18/10/2014

[3] http://www.bbc.com/news/technology-29505103, son erişim 18/10/2014

[4] http://www.ntvmsnbc.com/id/25542836/, son erişim 18/10/2014

[5] http://btdunyasi.net/70-bin-ogrenci-microsoft-office-365i-bedava-kullanacak/, son erişim 18/10/2014

[6]http://www.npr.org/blogs/alltechconsidered/2014/09/29/352476454/how-hong-kong-protesters-are-connecting-without-cell-or-wi-fi-networks, son erişim 18/10/2014

[7]http://www.wired.com/2014/01/its-time-to-take-mesh-networks-seriously-and-not-just-for-the-reasons-you-think/, son erişim 18/10/2014

[8]http://en.wikipedia.org/wiki/Serval_project, son erişim 18/10/2014

[9]http://developer.servalproject.org/dokuwiki/doku.php?id=content:tech:serval_mesh_for_iphone, son erişim 18/10/2014

27 Kasım 2014

Posted In: Erişim Hakkı, Fikri Mülkiyet, Genel, Gözetim, internet, mesh, Özgür yazılım, sansür, sosyal ağlar

Linux Kernel Internship

Last month I've applied Gnome Outreach Program for Women and sent patches for Linux Kernel. I've applied it because wanted to learn low level things. I also really like computer design and architecture topics. Actually, I have not enough knowledge about them but like to learn them.

Linux Kernel Community accepted to me as an intern. I'll study on Khugepaged swap readahead project. Working with Linux Kernel team will be great experience for me. They really want to help kernel newbies :).

Actually, studying on Linux Kernel needs a lot reading. Just for writing a few code lines needs to read one chapter from one book, a few blog posts about topic and ask something to developers :).

Nowadays, I've started to read about memory management issues like TLB, Huge Pages, Page Fault from one operating system book and also examine do_page_fault() function.

26 Kasım 2014

Posted In: Gezegen, Gnome, internship, kernel, linux, opw

Google Hiring Process

This story started 4 months ago. I've got an email from a Google recruiter. She wanted to do a phone conversation with me. I was very happy to hear this and accepted the conversation immediately.

First phone conversation was initial phone interview, she asked me basic questions about data structures, bitwise operations, linux commands etc. But I think the questions were not basic :p I passed initial phone interview and preferred Site Reliability System Engineer position for myself. I took first round telephone interview with an Google engineer and used Google Doc for coding questions.

Before the first round to prepare myself I was studying algorithms, data structures, network, linux commands, troubleshooting. Following links were really helpful for me:

Geeks For GeeksGlassadorCareerupCracking Code InterviewsSystem DesignDevops Interview Questions.

I passed first round, the engineer said to me you did great most of this interview! I was really happy to hear this and couldn't believe what I heard :) The whole process was very excited, funny and nice for me.

We moved the process for second phone interview. Again I studied for same things and used Google Doc for coding questions. My second interview has only one question, when I replied the question, interviewer generated new questions which was derived from same question. Second round interview was not very good but my recruiter called me and said you passed it, we would like to invite you for onsite interview at one Google office, Google will pay your all expenses. I preferred Dublin office of Google which is headquarters for the Europe offices.

I prepared to practising English myself, and whole summer went English speaking courses, because in my country have no other chance to practising English unfortunately :(

Actually, my English is not very good and when talked with employees of Google I feel really excited so I couldn't talk much so many times :) however during the onsite interviews I discussed a lot on questions because it is my job, but for usual questions how are you?, are you excited?, do you have question? etc. this kind of questions I could talk less :) Engineers of Google are very understanding people to my English. Also in Google Dublin office, people coming from 65 different countries and there are 45 different languages.

Onsite interview have 5 different steps. For SRE (Site Reliability Engineer) position, I've got following steps and each step has 45 minutes with 5 different interviewers. Onsite interview is last round for Google hiring process.

1) ​​Non Abstract Large System Design
2) Troubleshooting / Problem Solving
3) ​Practical Coding - ​Ruby​
4) ​Design/Coding
5) Unix/ Linux ​Systems​

Onsite interview questions were not expected things for me :(. I read a lot of blog posts, they say the questions are very expected, but I think some of them really expected things however most of them were not. I also solved a lot of onsite interview questions before mine.

I couldn't pass the onsite interview however this was really great experience for me. The whole process was very exciting, every steps made me very happy and excited :).  I also met a few Google engineers and my recruiters. They are really helpful and friendly people.

Dublin is not big city so there is no a lot of people, it is not crowded. It was very rainy on my interview day. I stayed two nights in Dublin. After my interview I had time to discover the city. There is river which called as River Liffey in Dublin. It is like a map to find your road :p You can follow along the river so can find your hotel very quickly :).

I'm very happy to met with Google engineers. This was very good experience for me. I'm only 22 years old I can retry it, thanks a lot to Google.

22 Kasım 2014

Posted In: Gezegen, google, hiring process, interview

WP Twitter Auto Publish Powered By : XYZScripts.com