February 24, 2018

HP OMEN 15-CE007NT İle Linux’un Kan Uyuşmazlığına Çözüm: Debian

Yaklaşık bir ay önce, HP OMEN ailesinden bilgisayar aldım.Kodu 15-CE007NT.Bir oyuncu bilgisayarı.Hoş, ben oyun için almadım.Güçlü  ve hızlı bir bilgisayar istiyordum, fiyatını da cebime uygun bulunca, hiç düşünmedim.

Alırken, yaşayabileceğim sorunları biliyordum.Çünkü, bu tarz oyuncu bilgisayarları ile Linux’un arası genellikle iyi olmuyor.(Burada, sıkıntı Linux’ta değil, donanım ve bilgisayara üreticilerinde; bunu da hemen belirteyim!)Bilgisayarı aldıktan sonra sürüyle dağıtım denedim.Kimisi hiç açılmadı, kimisi kurulduktan sonra dondu veya başka hatalar verdi, vs. vs.Elhasıl, hiçbir dağıtımı doğru düzgün çalıştırmayı tam olarak başaramadım.Bunun baş nedenlerinden birisi, bu sınıftaki Skylake işlemcilerin halihazırda Linux ile tam olarak uyuşamaması.E, benim bilgisayarımda da i5-7300HQ işlemci mevcut.

Genellikle ACPI hatası alıyorum.Onu da acpi=off, nomodeset gibi parametrelerle aşabiliyorum ama, bu sefer de başka hatalara sebebiyet veriyor ve randıman alınamıyor sonuç olarak.Bilgisayarda çift ekran kartı var ve bunlardan biri olan Nvidia GTX 1050 ile hiç uğraşmadım bile.Sonuçta benim amacım oyun oynamak değil.Bu bağlamda dahili Intel HD Graphics 630 bana yetiyor.

Neyse ki Debian bu bilgisayarda sorunsuz olarak kuruldu ve sıkıntısız da çalışıyor… du!Ta ki, kullanmakta olduğum kararsız depo 4.15 çekirdeğine geçene kadar.Bilseydim böyle olacağını, çekirdek sürümünü kilitler, hiç güncellemezdim.Lakin, bir kere güncellemiş bulundum.Yukarıda bahsettiğim parametrelerle sisteme girebildim ama, verdiği ekstra hatalar katlanılır gibi değildi.Bunun en çok sıkıntı yaratanı da, kapat komutu işlevsel değildi ve bilgisayarı her defasında düğmesinden kapatmam gerekiyordu.Bir süre idare etmeye çalıştım, dayanamadım bir yerde.Sürüm düşürmek te işime gelmedi; başka sorunlara yol açmasından endişe ettim.

Nihayetinde yeniden kurulumla test deposuna döndüm.Şu an için sıkıntı yok.Sağolasın Debian!Bu arada da yeni yeni çekirdek sürümleriyle birlikte Skylake işlemcilerin Linux ile barışmasını bekliyorum.

Sonuç olarak naçizane bir tavsiyeyle yazımı bağlayayım…Bu tarz bir bilgisayar alacaksanız, bunun gibi sorunlarla karşılaşabilme olasılığınızın oldukça yüksek olduğunu aklınızın bir köşesinde bulundurun.Benim gibi, böyle sorunlarla uğraşmaktan zevk alıyorsanız, ne alâ!Hiç durmayın hemen alın.

Buna değer!

February 20, 2018

PNMixer İle Openbox’ta Klavyedeki Multimedya Tuşlarını Kullanma

Openbox kullanırken en fazla canımı sıkan şey, klavye üzerindeki multimedya tuş kombinasyonlarını kullanamamak.Denediğim bir çok yöntem ya hiç çalışmadı,  ya da randıman vermedi.Bu sorunun çözümünü en son PNMixer ile buldum.PNMixer ile yapılacak küçük ve basit bi ayarlama ile sorun çözülüyor ve klavye üzerinden ses kısma, artırma ve azaltma rahatlıkla yapılabiliyor.

Öncelikle PNMixer paketini kurulumunu yapıyoruz.

# apt install pnmixer

Daha sonra autostart dosyamıza girdi ekleyerek PNMixer‘i başlangıçta çalıştırarak tint2 paneldeki systray‘e eklenmesini sağlıyoruz.

pnmixer &

Artık klavyemizdeki multimedya kombinasyolarını PNMixer üzerinden ayarlayabiliriz.Bunun içim systray‘deki PNMixer simgesine sağ tıklıyoruz ve Preferences seçiyoruz.Üstteki menüden HotKeys‘e tıklıyoruz.Enable HotKeys seçerek aktif hale getiriyoruz.So aşamada, Mute/Unmute, Volume Up:, Volume Down: seçeneklerine çift tıklayarak kullanmak istediğimiz multimedya tuş kombinasyonunu giriyoruz.

En son, Apply tıklayarak yaptığımız değişiklikleri onaylıyoruz.Hepsi bu kadar.Artık Openbox’ta da klavyemizdeki multimedya tuş kombinasyonlarını kullanabilmenin keyfine varabiliriz.

 

February 19, 2018

A Total War Saga: Thrones of Britannia Linux’e Gelecek

Geçtiğimiz hafta Rise of the Tomb Raider haberinden sonra A Total War Saga: Thrones of Britannia’nın da Linux’e geleceği Feral Interactive tarafından duyuruldu. Feral Interactive, oyunun Windows için çıkış tarihi olan 19 Nisan 2018’den kısa bir süre sonra Linux ve macOS için çıkarmayı planlıyor. A Total War Saga: Thrones of Britannia’nın geliştiricisi Creative Assembly ve Windows için

February 18, 2018

Raspberry Pi web server Howto – pestmeester.nl

RaspberryPi seviyoruz. Hemen her alanda kullanıyoruz.
Webserver olarak kullanmak istediğimizde türlü türlü Howtolar okuyup yapılandırıyoruz. Geçen günlerde rastladığım derli toplu bir Howto sitesine rastladım. oldukça güzel bir anlatımla yapılandırmalar anlatılmış. Tavsiye ederim.

https://www.pestmeester.nl/

Faydalı olması dileğiyle.

Raspberry Pi web server Howto – pestmeester.nl yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

Gnome Masaüstünde Uygulamaları Başlangıçta Çalıştırmak

Gnome-Shell ile uygulamaları başlangıçta çalıştırmak, Gnome Tweak Tool başlangıç uygulamalarıyla elbette mümkün.Ancak, başlangıçta çalıştırmak istediğiniz uygulamaları eklemek istediğnizde, ekleme kısmında görebilmeniz gerekiyor.Aksi taktirde, başka bir yol izlemeniz gerekiyor.

İşte tam da bu noktada, oluşturduğum conky’yi başlangıçta çalıştırmam gerekiyordu.Bunun en kolay yolu da /home/kullanıcı/.config dizin yolundaki veya /etc/xdg dizin yolundaki autostart klasöründe bir .desktop dosyası oluşturmak.İçeriğini basitçe aşağıdaki gibi oluşturuyoruz.

[Desktop Entry]
Type=Application
Exec=/usr/bin/conky
Hidden=false
X-GNOME-Autostart-enabled=true
Name=conky
Comment=conky

Dosyamızı conky.desktop ismiyle kaydediyoruz.Hepsi bu kadar.Artık conky başlangıçta aktif olacak.

 

February 17, 2018

Python GUI examples (Tkinter Tutorial)

In this tutorial, we will learn how to develop graphical user interfaces by writing some Python GUI examples using Tkinter package. Tkinter package is shipped with Python as a standard package, so we don’t need to install anything to use it. Tkinter package is a very powerful package. If you already have installed Python, you may use IDLE which is the integrated IDE that is shipped with Python, this IDE is written using Tkinter. Sounds Cool!! We will use Python 3.6, so if you are using Python 2.x, it’s strongly recommended to switch to Python 3.x unless you know the language changes so you can adjust the code to run without errors. I assume that you a little background about Python basics to help you understand what we are doing. We will start by creating a window then we will learn how to add widgets such as buttons, combo boxes, etc, then we will play with their properties, so let’s get started.

Create your first GUI application

First, we will import Tkinter package and create a window and set its title:

from tkinter import *

window = Tk()

window.title("Welcome to LikeGeeks app")

window.mainloop()

The result will be like this:

Awesome!! Our application just works.

The last line which calls mainloop function, this function calls the endless loop of the window, so the window will wait for any user interaction till we close it.

If you forget to call the mainloop function, nothing will appear to the user.

Create a label widget

To add a label to our previous example, we will create a label using the label class like this:

lbl = Label(window, text="Hello")

Then we will set its position on the form using the grid function and give it the location like this:

lbl.grid(column=0, row=0)

So the complete code will be like this:

from tkinter import *

window = Tk()

window.title("Welcome to LikeGeeks app")

lbl = Label(window, text="Hello")

lbl.grid(column=0, row=0)

window.mainloop()

And this is the result:

Without calling the grid function for the label, it won’t show up.

Set label font size

You can set the label font so you can make it bigger and maybe bold. You can also change the font style.

To do so, you can pass the font parameter like this:

lbl = Label(window, text="Hello", font=("Arial Bold", 50))

Note that the font parameter can be passed to any widget to change its font not labels only.

Great, but the window is so small, we can even see the title, what about setting the window size?

Setting window size

We can set the default window size using geometry function like this:

window.geometry('350x200')

The above line sets the window width to 350 pixels and the height to 200 pixels.

Let’s try adding more GUI widgets like buttons and see how to handle button click event.

Adding a button widget

Let’s start by adding the button to the window, the button is created and added to the window the same as the label:

btn = Button(window, text="Click Me")

btn.grid(column=1, row=0)

So our window will be like this:

from tkinter import *

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

lbl = Label(window, text="Hello")

lbl.grid(column=0, row=0)

btn = Button(window, text="Click Me")

btn.grid(column=1, row=0)

window.mainloop()

The result looks like this:

Note that we place the button on the second column of the window which is 1. If you forget and place the button on the same column which is 0, it will show the button only, since the button will be on the top of the label.

Change button foreground and background colors

You can change foreground for a button or any other widget using fg property.

Also, you can change the background color for any widget using bg property.

btn = Button(window, text="Click Me", bg="orange", fg="red")

Now, if you tried to click on the button, nothing happens because the click event of the button isn’t written yet.
Handle button click event

First, we will write the function that we need to execute when the button is clicked:

def clicked():

lbl.configure(text="Button was clicked !!")

Then we will wire it with the button by specifying the function like this:

btn = Button(window, text=“Click Me”, command=clicked)

Note that, we typed clicked only not clicked() with parentheses.

Now the full code will be like this:

from tkinter import *

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

lbl = Label(window, text="Hello")

lbl.grid(column=0, row=0)

def clicked():

lbl.configure(text="Button was clicked !!")

btn = Button(window, text="Click Me", command=clicked)

btn.grid(column=1, row=0)

window.mainloop()

And when we click the button, the result as expected:

Cool!!

Get input using Entry class (Tkinter textbox)

In the previous Python GUI examples, we saw how to add simple widgets, now let’s try getting the user input using Tkinter Entry class (Tkinter textbox).

You can create a textbox using Tkinter Entry class like this:

txt = Entry(window,width=10)

Then you can add it to the window using grid function as usual

So our window will be like this:

from tkinter import *

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

lbl = Label(window, text="Hello")

lbl.grid(column=0, row=0)

txt = Entry(window,width=10)

txt.grid(column=1, row=0)

def clicked():

lbl.configure(text="Button was clicked !!")

btn = Button(window, text="Click Me", command=clicked)

btn.grid(column=2, row=0)

window.mainloop()

And the result will be like this:

Now, if you click the button, it will show the same old message, what about showing the entered text on the Entry widget?

First, you can get entry text using get function. So we can write this code to our clicked function like this:

def clicked():

res = "Welcome to " + txt.get()

lbl.configure(text= res)

If you click the button and there is a text on the entry widget, it will show “Welcome to” concatenated with the entered text.

And this is the complete code:

from tkinter import *

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

lbl = Label(window, text="Hello")

lbl.grid(column=0, row=0)

txt = Entry(window,width=10)

txt.grid(column=1, row=0)

def clicked():

res = "Welcome to " + txt.get()

lbl.configure(text= res)

btn = Button(window, text="Click Me", command=clicked)

btn.grid(column=2, row=0)

window.mainloop()

Run the above code and check the result:

Awesome!!

Every time we run the code, we need to click on the entry widget to set focus to write the text, what about setting the focus automatically?

Set focus to entry widget

That’s super easy, all we need to do is to call focus function like this:

txt.focus()

And when you run your code, you will notice that the entry widget has the focus so you can write your text right away.

Disable entry widget

To disable entry widget, you can set the state property to disabled:

txt = Entry(window,width=10, state='disabled')

Now, you won’t be able to enter any text.

Add a combobox widget

To add a combobox widget, you can use the Combobox class from ttk library like this:

from tkinter.ttk import *

combo = Combobox(window)

Then you can add your values to the combobox.

from tkinter import *

from tkinter.ttk import *

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

combo = Combobox(window)

combo['values']= (1, 2, 3, 4, 5, "Text")

combo.current(1) #set the selected item

combo.grid(column=0, row=0)

window.mainloop()

As you can see, we add the combobox items using the values tuble.

To set the selected item, you can pass the index of the desired item to the current function.

To get the select item, you can use the get function like this:

combo.get()

Add a Checkbutton widget (Tkinter checkbox)

To create a checkbutton widget, you can use Checkbutton class like this:

chk = Checkbutton(window, text='Choose')

Also, you can set the checked state by passing the check value to the Checkbutton like this:

from tkinter import *

from tkinter.ttk import *

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

chk_state = BooleanVar()

chk_state.set(True) #set check state

chk = Checkbutton(window, text='Choose', var=chk_state)

chk.grid(column=0, row=0)

window.mainloop()

Check the result:

Set check state of a Checkbutton

Here we create a variable of type BooleanVar which is not a standard Python variable, it’s a Tkinter variable, and then we pass it to the Checkbutton class to set the check state as the highlighted line in the above example.

You can set the Boolean value to false to make it unchecked.

Also, you can use IntVar instead of BooleanVar and set the value to 0 or 1.

chk_state = IntVar()

chk_state.set(0) #uncheck

chk_state.set(1) #check

These examples give the same result as the BooleanVar.

Add radio buttons widgets

To add radio buttons, simply you can use RadioButton class like this:

rad1 = Radiobutton(window,text='First', value=1)

Note that you should set the value for every radio button with a different value, otherwise, they won’t work.

from tkinter import *

from tkinter.ttk import *

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

rad1 = Radiobutton(window,text='First', value=1)

rad2 = Radiobutton(window,text='Second', value=2)

rad3 = Radiobutton(window,text='Third', value=3)

rad1.grid(column=0, row=0)

rad2.grid(column=1, row=0)

rad3.grid(column=2, row=0)

window.mainloop()

The result of the above code looks like this:

Also, you can set the command of any of these radio buttons to a specific function, so if the user clicks on any one of them, it runs the function code.

This is an example:

rad1 = Radiobutton(window,text='First', value=1, command=clicked)

def clicked():

# Do what you need

Pretty simple!!

Get radio button value (selected radio button)

To get the currently selected radio button or the radio button value, you can pass the variable parameter to the radio buttons and later you can get its value.

from tkinter import *

from tkinter.ttk import *

window = Tk()

window.title("Welcome to LikeGeeks app")

selected = IntVar()

rad1 = Radiobutton(window,text='First', value=1, variable=selected)

rad2 = Radiobutton(window,text='Second', value=2, variable=selected)

rad3 = Radiobutton(window,text='Third', value=3, variable=selected)

def clicked():

print(selected.get())

btn = Button(window, text="Click Me", command=clicked)

rad1.grid(column=0, row=0)

rad2.grid(column=1, row=0)

rad3.grid(column=2, row=0)

btn.grid(column=3, row=0)

window.mainloop()

Every time you select a radio button, the value of the variable will be changed to the value of the selected radio button.

Add a ScrolledText widget (Tkinter textarea)

To add a ScrolledText widget, you can use the ScrolledText class like this:

from tkinter import scrolledtext

txt = scrolledtext.ScrolledText(window,width=40,height=10)

Here we specify the width and the height of the ScrolledText widget, otherwise, it will fill the entire window.

from tkinter import *

from tkinter import scrolledtext

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

txt = scrolledtext.ScrolledText(window,width=40,height=10)

txt.grid(column=0,row=0)

window.mainloop()

The result as you can see:

Set scrolledtext content

To set scrolledtext content, you can use the insert method like this:

txt.insert(INSERT,'You text goes here')

Delete/Clear scrolledtext content

To clear the contents of a scrolledtext widget, you can use delete method like this:

txt.delete(1.0,END)

Great!!

Create a MessageBox

To show a message box using Tkinter, you can use messagebox library like this:

from tkinter import messagebox

messagebox.showinfo('Message title','Message content')

Pretty easy!!

Let’s show a message box when the user clicks a button.

from tkinter import *

from tkinter import messagebox

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

def clicked():

messagebox.showinfo('Message title', 'Message content')

btn = Button(window,text='Click here', command=clicked)

btn.grid(column=0,row=0)

window.mainloop()

When you click the button, an info messagebox will appear.

Show warning and error messages

You can show a warning message or error message the same way. The only thing that needs to be changed is the message function

messagebox.showwarning('Message title', 'Message content') #shows warning message

messagebox.showerror('Message title', 'Message content') #shows error message

Show askquestion dialogs

To show a yes no message box to the user, you can use one of the following messagebox functions:

from tkinter import messagebox

res = messagebox.askquestion('Message title','Message content')

res = messagebox.askyesno('Message title','Message content')

res = messagebox.askyesnocancel('Message title','Message content')

res = messagebox.askokcancel('Message title','Message content')

res = messagebox.askretrycancel('Message title','Message content')

You can choose the appropriate message style according to your needs. Just replace the showinfo function line from the previous line and run it.

Also, you can check what button was clicked using the result variable

If you click OK or yes or retry, it will return True value, but if you choose no or cancel, it will return False.

The only function that returns one of three values is askyesnocancel function, it returns True or False or None.

Add a SpinBox (numbers widget)

To create a Spinbox widget, you can use Spinbox class like this:

spin = Spinbox(window, from_=0, to=100)

Here we create a Spinbox widget and we pass the from_ and to parameters to specify the numbers range for the Spinbox.

Also, you can specify the width of the widget using the width parameter:

spin = Spinbox(window, from_=0, to=100, width=5)

Check the complete example:

from tkinter import *

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

spin = Spinbox(window, from_=0, to=100, width=5)

spin.grid(column=0,row=0)

window.mainloop()

You can specify the numbers for the Spinbox instead of using the whole range like this:

spin = Spinbox(window, values=(3, 8, 11), width=5)

Here the Spinbox widget only shows these 3 numbers only 3, 8 and 11.

Set default value for Spinbox

To set the Spinbox default value, you can pass the value to the textvariable parameter like this:

var =IntVar()

var.set(36)

spin = Spinbox(window, from_=0, to=100, width=5, textvariable=var)

Now, if you run the program, it will show 36 as a default value for the Spinbox.

Add a Progressbar widget

To create a progress bar, you can use the progressbar class like this:

from tkinter.ttk import Progressbar

bar = Progressbar(window, length=200)

You can set the progress bar value like this:

bar['value'] = 70

You can set this value based on any process you want like downloading a file or completing a task.

Change Progressbar color

Changing Progressbar color is a bit tricky, but super easy.

First, we will create a style and set the background color and finally set the created style to the Progressbar.

Check the following example:

from tkinter import *

from tkinter.ttk import Progressbar

from tkinter import ttk

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('350x200')

style = ttk.Style()

style.theme_use('default')

style.configure("black.Horizontal.TProgressbar", background='black')

bar = Progressbar(window, length=200, style='black.Horizontal.TProgressbar')

bar['value'] = 70

bar.grid(column=0, row=0)

window.mainloop()

And the result will be like this:

Add a filedialog (file & directory chooser)

To create a file dialog (file chooser), you can use the filedialog class like this:

from tkinter import filedialog

file = filedialog.askopenfilename()

After you choose a file and click open, the file variable will hold that file path.

Also, you can ask for multiple files like this:

files = filedialog.askopenfilenames()

Specify file types (filter file extensions)

You can specify the file types for a file dialog using filetypes parameter, just specify the extensions in tubles.

file = filedialog.askopenfilename(filetypes = (("Text files","*.txt"),("all files","*.*")))

You can ask for a directory using askdirectory method:

dir = filedialog.askdirectory()

You can specify the initial directory for the file dialog by specifying the initialdir like this:

from os import path

file = filedialog.askopenfilename(initialdir= path.dirname(__file__))

Easy!!

Add a Menu bar

To add a menu bar, you can use menu class like this:
“crayon-5a6ed64ac76ec001310365″ class=”crayon-syntax crayon-theme-xcode crayon-font-monaco crayon-os-pc print-yes notranslate” data-settings=” minimize scroll-mouseover”

from tkinter import Menu

menu = Menu(window)

menu.add_command(label='File')

window.config(menu=menu)

First, we create a menu, then we add our first label, and finally, we assign the menu to our window.

You can add menu items under any menu by using add_cascade() function like this:

menu.add_cascade(label='File', menu=new_item)

So our code will be like this:

from tkinter import *

from tkinter import Menu

window = Tk()

window.title("Welcome to LikeGeeks app")

menu = Menu(window)

new_item = Menu(menu)

new_item.add_command(label='New')

menu.add_cascade(label='File', menu=new_item)

window.config(menu=menu)

window.mainloop()

Using this way, you can add many menu items as you want.

from tkinter import *

from tkinter import Menu

window = Tk()

window.title("Welcome to LikeGeeks app")

menu = Menu(window)

new_item = Menu(menu)

new_item.add_command(label='New')

new_item.add_separator()

new_item.add_command(label='Edit')

menu.add_cascade(label='File', menu=new_item)

window.config(menu=menu)

window.mainloop()

Here we add another menu item called Edit with a menu separator.

You may notice a dashed line at the beginning, well, if you click that line, it will show the menu items in a small separate window.

You can disable this feature by disabling the tearoff feature like this:

new_item = Menu(menu, tearoff=0)

Just replace the new_item in the above example with this one and it won’t show the dashed line anymore.

I don’t need to remind you that you can type any code that works when the user clicks on any menu item by specifying the command property.

new_item.add_command(label='New', command=clicked)

Add a Notebook widget (tab control)

To create a tab control, there are 3 steps to do so.

  • First, we create a tab control using Notebook class
  • Create a tab using Frame class.
  • Add that tab to the tab control.
  • Pack the tab control so it becomes visible in the window.

from tkinter import *

from tkinter import ttk

window = Tk()

window.title("Welcome to LikeGeeks app")

tab_control = ttk.Notebook(window)

tab1 = ttk.Frame(tab_control)

tab_control.add(tab1, text='First')

tab_control.pack(expand=1, fill='both')

window.mainloop()

You can add many tabs as you want the same way.

Add widgets to Notebooks

After creating tabs, you can put widgets inside these tabs by assigning the parent property to the desired tab.

from tkinter import *

from tkinter import ttk

window = Tk()

window.title("Welcome to LikeGeeks app")

tab_control = ttk.Notebook(window)

tab1 = ttk.Frame(tab_control)

tab2 = ttk.Frame(tab_control)

tab_control.add(tab1, text='First')

tab_control.add(tab2, text='Second')

lbl1 = Label(tab1, text= 'label1')

lbl1.grid(column=0, row=0)

lbl2 = Label(tab2, text= 'label2')

lbl2.grid(column=0, row=0)

tab_control.pack(expand=1, fill='both')

window.mainloop()

Add spacing for widgets (padding)

You can add padding for your controls to make it looks well organized using padx and pady properties.

Just pass padx and pady to any widget and give them a value.

lbl1 = Label(tab1, text= 'label1', padx=5, pady=5)

Just that simple!!

In this tutorial, we saw many Python GUI examples using Tkinter library and we saw how easy it’s to develop graphical interfaces using it.

This tutorial covers main aspects of Python GUI development not all of them. There is no tutorial or a book can cover everything.

I hope you find these examples useful. Keep coming back.

Thank you.

likegeeks.com

February 14, 2018

Rise of the Tomb Raider Linux’e Geliyor

9 Şubat 2016’da çıkan Rise of the Tomb Raider oyunu Linux’e gelecek. Oyunun Xbox One ve Xbox 360 sürümleri 2015’te çıkmıştı. MacOS ve Linux için gecikmesine rağmen oyunun bütün DLC’leriyle birlikte bundle olarak gelecek olması Tomb Raider sevenleri sevindirecektir. Feral Interactive, oyunun çıkış tarihiyle ilgili henüz bir bilgi paylaşmadı. Fakat Feral’in söylediğine göre Rise of the

February 10, 2018

Debian’da, Paket Kurulumunda Var Olan Bir Dosya Üzerine Yazmaya Çalışma Sorununun Çözümü

Debian’ı minimal olarak kurdum.Masaüstü kuruluımuna geçmeden de kararsız depolarına güncellemek/yükseltmek istedim. Güncelleme/yükseltme aşağıdaki hatayla birlikte tamamlandı:

Devam etmek istiyor musunuz? [E/h] e
Paketler önyapılandırılıyor ...
(Veritabanı okunuyor ... 189279 dosya veya dizin kurulu durumda.)
Paket açılacak: .../man-db_2.8.0-2_amd64.deb ...
Paket açılıyor: man-db (2.8.0-2) ...
dpkg: /var/cache/apt/archives/man-db_2.8.0-2_amd64.deb arşivi işlenirken sorun yaşandı (--unpack):
manpages-tr 1.0.5.1-2 paketinde de bulunan '/usr/share/man/tr/man1/apropos.1.gz' dosyasının üzerine yazılmaya çalışılıyor
İşleme sırasında hatalarla karşılaşıldı:
/var/cache/apt/archives/man-db_2.8.0-2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Çıktılara göre sorun, man-db paketindeki bir dosyayı, manpages-tr paketindki apropos.1.gz dosyasının üzerine yazmaya çalışmasından kaynaklanıyordu.Esasen bu bir sıkıntı da teşkil etmiyordu.Kurduğum her paket, bu hata raporuyla birlikte kuruluyordu ilk başlarda.Her paket kurulumundan sonra bu hatayı almanın kısa süreli bir can sıkıntısı yaratmasından başka bir yan etkisi  de görünmüyordu.Ancaaak…

Dün baktım ki, güncellemeler birikmiş.Uygulamak istediğimde benden, önce sistemimdeki bozuk paketi düzeltmemi istedi.İstedi istemesine de, düzeltme adına ne yaptıysam, kabul etmedi.Canım sıkkın bir şekilde çözüm düşünürken, yazmak istediği paketi zorla yazdırma seçeneğini denedim:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/man-db_2.8.0-2_amd64.deb

Ve sonuç:

kesim@debian:~$ sudo dpkg -i --force-overwrite /var/cache/apt/archives/man-db_2.8.0-2_amd64.deb
(Veritabanı okunuyor ... 189279 dosya veya dizin kurulu durumda.)
Paket açılacak: .../man-db_2.8.0-2_amd64.deb ...
Paket açılıyor: man-db (2.8.0-2) ...
dpkg: uyarı: --force seçeneği kullanımda olduğu için sorunlar gözardı ediliyor:
dpkg: uyarı: manpages-tr 1.0.5.1-2 paketinde de bulunan '/usr/share/man/tr/man1/apropos.1.gz' dosyasının üzerine yazılmaya çalışılıyor
dpkg: uyarı: --force seçeneği kullanımda olduğu için sorunlar gözardı ediliyor:
dpkg: uyarı: manpages-tr 1.0.5.1-2 paketinde de bulunan '/usr/share/man/tr/man1/man.1.gz' dosyasının üzerine yazılmaya çalışılıyor
dpkg: uyarı: --force seçeneği kullanımda olduğu için sorunlar gözardı ediliyor:
dpkg: uyarı: manpages-tr 1.0.5.1-2 paketinde de bulunan '/usr/share/man/tr/man1/manpath.1.gz' dosyasının üzerine yazılmaya çalışılıyor
Ayarlanıyor: man-db (2.8.0-2) ...
Building database of manual pages ...
Tetikleyiciler işleniyor: mime-support (3.60) ...
kesim@debian:~$

Böylece hata çözülmüş, sorun da ortadan kalkmış oldu.Şimdilik sıkıntı görünmüyor.

 

 

 

February 07, 2018

Resim ve Fotoğraflardan Film Yapıcı Program: ffDiaporama

Denediğim dağıtımların ekran görüntülerinden videolar oluşturmak istedim.Bunun için Windows Movie Maker tarzı bir program ararken, ffDiaporama ile tanıştım.İstediğim basit, müzikli veya müziksiz  videolar oluşturmaktı ki, ffDiaporama bunu bana sağladığı gibi, daha fazlasını da sunmayı başardı.

O zaman kendisinden birazcık bahsetmeye de hak kazandı!

ffDiaporama ile sabit veya hareketli başlıklar, sabit veya hareketli resimler veya fotoğraflar/videolar, filmler, müzikler … yapmak, çok ta fazla uzmanlık gerektirmiyor.Sadece biraz ilgi ve merak, sonra da bıkmadan kurcalama, bütün bu işler için yeterli oluyor.

ffDiaporama basit ve kullanışlı bir arayüz sunuyor.Her şey olabildiğince yerli yerinde, kafa karıştırmıyor.Ancak bu sadelik ve basitlik, programın sunduklarında eksiklik yaratmıyor.Basit ve işlevsel, bana göre ana tema bu.Bunun dışında beklentiyi çok yüksek tutmamak gerekiyor.Elbette böyle bir durumda daha komplike, farklı alternatifler mevcut.

ffDiaporama’nın sunduğu seçeneklerden bazılarını sıralayacak olursak…

1. Resimlerin ve fotoğrafların yeniden çerçevelenmesi.

 2. Video klip kesme.

3.  Resimlere, fotoğraflara, dizilere ve animasyonlara metin/not ekleme.

4. Görüntülere ve resimleree grafik filtreler uygulama (siyah beyaza dönüşüm, toz giderme, renklerin eşitlenmesi, vb.)

5. Resimler veya fotoğraflardan yakınlaştırma, döndürme veya Ken Burns efekti yardımıyla animasyonlar oluşturma.

6. Görüntülerin ve videoların düzeltilmesi (parlaklık, kontrast, gama, renkler, vb.

7. Geçiş türünün tanımlanması, sekans sırası ile sekanslar arasındaki geçişler.

8. Kişiselleştirilebilir efektlerle bir arka plan sesinin (wav, mp3 veya ogg) eklenmesi.

9. Videolar oluşturma.

10. QVGA (320 × 240) ‘dan Full HD (1920 × 1080)’ye video formatları.

11. Görüntü geometrisi (en-boy oranı): 4: 3, 16: 9 veya 2.35: 1 (sinema)

12.Desteklediği formatlar: avi, mpg, mp4, webm, mkv, mjpeg, flv, ogv

ffDiaporama, Debian depolarında mevcut.Ayrıca geliştirme sürümü için burası, kararlı sürüm için de burası  bir çok dağıtım için paketlere ulaşım sağlamaktadır.ffDiaporama, Windows’a da destek veriyor.

Ayrıca ffDiaporama’nın, gerektiğinde yardım alınabilecek bir de forumu mevcut ki, bunun da ayırt edici bir özellik olduğu kanaatindeyim.


February 06, 2018

Kali Linux 2018.1 duyuruldu

Eski adı (Ubuntu tabanlı) BackTrack Linux olan adli analiz ve penetrasyon testleri için geniş bir güvenlik araçları koleksiyonu ile gelen Debian Testing tabanlı bir dağıtım olan Kali Linux’un 2018.1 sürümünü duyuruldu. Sürüm, yeni güvenlik ve penetrasyon araçları ile paket güncellemeleri içeriyor. 4.14.12 Linux çekirdeği üzerine yapılandırılan sistemde, ayrıca pek çok güncellenmiş paket yer alıyor. Meltdown ve Spectre yamalarını içeren 4.15 Linux çekirdeğini kullanıma sunacak olan sürüm, yeni çekirdekle birlikte AMD güvenli bellek şifreleme desteği kazanmakla kalmıyor, bu aynı zamanda, sistemin 4 PB fiziksel belleği ve 128 PB sanal belleği destekleyeceği anlamına geliyor. Debian’dan alınan güncellemeler dışında tüm paketleri güncellenen sürüme ilişkin olarak değişiklikler sayfasının incelenebileceği belirtiliyor. Kullanıcıların source.list girişlerini düzenlemek suretiyle sistemlerini yeni sürüme yükseltebilecekleri söyleniyor. Kali Linux 2018.1 hakkında ayrıntılı bilgi edinmek için sürüm duyurusunu inceleyebilirsiniz.

Kali Linux 2018.1 edinmek için aşağıdaki linkten yararlanabilirsiniz.

January 31, 2018

LibreOffice 6.0 Sürümü Çıktı

Dünya genelinde 25 milyondan fazla insanın kullandığı ofis paketinin LibreOffice 6.0 sürümü yayınlandı. Bu sürümde eskiye göre ofis dosya formatlarıyla olan uyumluluk arttırıldı ve bazı yeni özellikler eklendi. LibreOffice 6.0 sürümü Microsoft Ofis dökümanlarıyla olan uyumluluğu daha iyi hale geldi. AbiWord ve QuarkExpress dosyalarını açabilir ve EPUB e-kitap olarak dışarı

January 23, 2018

Boot-Repair İle Debian Grub Ekranına Windows 10’u Ekleme

Yeni aldığım bilgisayarıma, Windows 10’un yanına Debian kurmak istedim.Sistemde UEFI mevcuttu, bozmadım.Kurulum sorunsuz gerçekleşti.Ancak, kurulumdan sonra Debian, Windows 10’u Grub’una eklemedi.Sorun değil aslında, BIOS açılış seçeneklerinden Windows’un açılış yöneticisini seçerek sisteme girmek mümkün ama, pratik değil.

Esasen, Windows’a tamamen elveda diyerek sorunu kökten halletmek te mümkün ancak, Linux kullanmayan, bırakın Linux kullanmayı, bilgisayarı Windows olarak bilen yakın çevrem ve arkadaşlarımın yardım isteklerini/danışmalarını reddetmeyi vicdanıma yediremediğim için, bunu yapamıyorum.Bu durumların dışında da Windows bilgisayarımda sadece bir aksesuar olarak duruyor!

Gelelim tekrar mevzumuza.Soruna çözüm ararken, Debian Wiki’deki çözümlerin dahi bende işe yaramadığını gördüm.Derken, bir zamanlar kurup kullandığım Boot-Repair geldi aklıma.Ubuntu için PPA deposu mevcut.Gördüm ki Debian için DEB paketleri de mevcut.Hemen indirdim ve manuel olarak kurulumu yaptım.

boot-repair, boot-sav, glade2script, glade2script-gtk2 paketleri kurulum için yeterli.Gdebi ile kurulum yaparsanız, paketler bağımlılık sırası gözetiyor.

Kurulumda sorun çıkmadı.Programı çalıştırdığımda, sıkıntısız çalıştığını gördüm.Geriye, programın adım adım sunduğu adımları/yönergeleri uygulamak kaldı.

Yönergeleri uygularken, terminalde girilmesi istenilen komutların 3. satırında i386‘yı amd64 ile değiştirmem gerekti.Bunun da kuruduğum sistemin mimarisi sebebiyle olduğunu belirteyim.Gerisi hatasız gerçekleşti ve Windows 10, Debian’ın grub ekranında yerini aldı.

January 21, 2018

Virtualbox’ta Dağıtımları Tam Ekran Olarak Kullanmak

Benim gibi sürekli dağıtım deneme gibi bir hobiniz/merakınız varsa, bunun en güvenilir yolu, denemelerinizi  Virtualbox üzerinde yapmaktır.İster Linux üzerinde olsun, isterse Windows, Virtualbox’u tam ekran kullanmak istediğinizde Virtualbox Misafir Eklentileri’ni kurmanız gerekebilir.Bazı istisnai dağıtımlarda bu sorun yaşanmamakla birlikte, her dağıtım Virtualbox üzerinde tam ekran olarak açılmayabilir.

Bu yazımda Vitualbox üzerinde tam ekran olarak açılmayan dağıtımlarınasıl tam ekran olarak açabileceğimizi ele alacağım.

İlk önce gerekli ama eksik olan kernel headers, gcc ve make paketlerini kuruyoruz.Bu işi dağıtımımızın paket yöneticisi aracılığıyla kolaylıkla yapabiliriz.

Paketlerimizi kurduktan sonra,  Virtualbox Misafir Eklentileri’ni kurmamız gerekiyor.Virtualbox üst menüden Aygıtlar’a gidiyoruz ve Misafir Eklentileri CD Kalıbını Yerleştir‘i tıklıyoruz.Ardından kullandığımız dosya yöneticimizi açıyoruz.Sol menüde bir yerlerde kalıbımızın görünüyor olması gerekir.Tıklayınca dosya yöneticimizde açılacaktır.

Misafir Eklentileri CD kalıbı’nın açıldığı pencerede  birtakım dosyalar göreceğiz.Açılan pencerenin içerisinde bir Uçbirim açıyoruz ve yönetici hakkını elde ediyoruz.Ardından kurulumu gerçekleştiriyoruz.

# sh VBoxLinuxAdditions.run

Kurulum hatasız tamamlandığında, sisteminizi yeniden başlatıp, Virtualbox üst menüden Görünüm -> Tam Ekran Kipi‘ni seçerek dağıtımınızı tam ekran olarak kullanabiliriz.

January 18, 2018

Openbox Sağ Tık Menüsüne Menü Başlığı Ekleme

Openbox sağ tık menüsü, zevke göre, istenildiği gibi özelleştirilebilir.Bu menüyü görsel olarak güzelleştiren şeylerden biri de, güzel bir font seçilerek eklenecek olan menü başlığıdır.Öyleyse, Openbox sağ tık menümüze menümüze menü başlığı ekleyelim.

Bunun için ~/.config/openbox dizininde(eğer oraya kopyaladıysak) veya /etc/xdg/openbox dizininde bulunan menu.xml dosyamızı bir metin editörü yardımıyla açıyoruz.

menu.xml dosyamızdaki;

<menu id="root-menu" label="Openbox 3">

Satırını buluyoruz.Bu satırının altına;

<separator label="Openbox"/>

Satırını ekliyoruz.Eklediğimiz satırdaki “Openbox” yazısını istediğimiz gibi değiştirebiliriz.Bunları yaptıktan sonra dosyamızı kaydedip çıkıyoruz.Sonucu görmek için oturumu yenilemek veya oturumu yeniden başlatmak gerekebilir.

Menü başlığımızın yazı stilini değiştirmek için de ObConf‘u açıp, soldaki Görünüm menüsünden, “Menü başlığı” altından istediğimiz yazı stilini seçmemiz yeterli olacaktır.

Ubuntu16/CentOS7/RedHat7 Customize The docker0 Bridge ile Kurulum

Şimdiki makalemiz özelleştirilmiş network ile Docker kurulumunu ele alacağız. Öncesinde neden böyle bişey ihtiyaç duyabileceğimizi bahsedeyim, hemde başımdan geçen durumu da anlatmış olurum. Bildiğiniz gibi Docker kurulumda docker0 bridge‘inin default ip range‘i olarak 172.17.0.1/16‘yı vererek kurulum gerçekleştirmektedir. Bu durumda sizin bağlantı sağladığınız lokal ağ tercihini hali hazırda 172 li subnet ise kurulum aşamasında Docker Run...

Continue Reading

January 17, 2018

Necdet Yücel: Özgür yazılım ile açık kaynağın ne farkı var?

Özgür Yazılım hareketi 1983’de başlayan ve kullanıcıların yazılımları çalıştırma, anlama, değiştirme ve değiştirdikleri halini dağıtma özgürlüklerini savunan bir harekettir. Açık Kaynak ise neredeyse aynı ilkeleri farklı ifadelerle savunan ve 1998’de ortaya çıkan, özgür yazılım topluluğunun içinden çıkan bir oluşumdur. Özgür Yazılım hareketinin başlatıcısı Stallman açık kaynağı bir yazılım geliştirme metodolojisi, özgür yazılımı ise bir sosyal hareket olarak görmektedir. Stallman uzun yıllardır neden kendisini bir açık kaynak savunucusu olarak kabul etmediğini yazılarıyla ve konuşmalarıyla anlatıyor olsa da çok fazla anlaşıldığı söylenemez. Bu yazıda ikisi arasında bir fark var mı ve biz hangi ifadeyi kullanmalıyız konularını tartışmak istiyorum.

Lisans

Bir yazılımla ne yapabileceğinizi belirleyen şey onun özgür yazılım veya açık kaynak olması değil o yazılımın kullandığı lisanstır. Temel kavramları aynı bile olsa her özgür yazılım lisansı aynı kullanım şartlarını sunmaz. Watcom ı gibi neredeyse kimsenin kullanmadığı lisansları bir tarafa bırakırsak bütün açık kaynak yazılım lisanslarının aynı zamanda özgür yazılım lisansı olarak kabul edildiğini görürüz. Konuya lisanslar açısından bakınca özgür yazılımlar ile açık kaynak yazılımlar arasında bir fark yoktur [3].

Yanlış anlamalar

Türkçe konuşan insanlar olarak “free software” ifadesinde yaşanan “bedava” mı “özgür” mü karışıklığını yaşamıyor olmamıza rağmen “open source” yazılım denildiğinde sadece kaynak kodu açık olan yazılımın anlaşılması gibi sorunla, İngilizce konuşanlar gibi, karşı karşıya kalıyoruz. Özgür yazılım denildiğinde arkasında yazılımın ve kullanıcıların özgürlüklerini önemseyen, onun için mücadele eden bir felsefe olduğunu anlamak kolay olmasına rağmen maalesef onun hakkında da kafa karışıklığı az değil. Genel Kamu Lisansı (GPL) en bilinen özgür yazılım lisanslarının başında geliyor olmasına rağmen tek özgür yazılım lisansı değil. GPL özgür yazılımın dört şartına ek olarak Copyleft kavramını da kullanmaktadır. Özgür yazılımın şartları yazılımı sizin nasıl haklarla edineceğinizi belirlerken Copyleft onu nasıl dağıtmanız gerektiğini söyler. Yani Copyleft özelliğine sahip bir lisansla lisanslanmış bir yazılımı yine aynı şartlarla dağıtmanız gerekir [1]. Bütün özgür yazılım lisanslarının böyle bir zorunluluğu olmamasına rağmen maalesef genel kanı bu yönde ülkemizde.

Açık kaynak ise ülkemizde en az anlaşılan kavramlardan biri. Bunda adının yaptığı çağrışımın etkisi de büyük elbette. Hem kullanıcılar, hem de önemli miktarda geliştirici bir yazılımın kaynak kodunu görebildiğinde onu açık kaynak sanmak gibi bir kavramsal hataya düşüyor [2]. Github benzeri bir kod barındırma ortamına yazılımının kaynak kodlarını koyan bir yazılımcı onun hemen açık kaynak olduğu yanılgısına kapılıyor.

Açık kaynak yanlış anlaşılmaya çok müsait olduğundan açık kaynak ifadesini her kullandığımızda onun kaynağı açık olan yazılım anlamına gelmediğini ve mevcut 10 şartını anlatmak oldukça zor bir iştir. Bunu yapmadığımızda hem özgür yazılım hem de açık kaynak hareketlerinin uğraştıkları konuları önemsememiş oluruz. Özgür yazılım dediğimizde birilerinin kafasını karıştırma riski oldukça düşüktür. Günümüzde gittikçe artan bir hızla özel mülk yazılımların da kaynak kodlarının açıldığını hesaba katarak, insanları yanlış yönlendirmemek için açık kaynak yerine özgür yazılım ifadesini kullanmak daha doğru bir hareket olacaktır.

Düşmanımız açık kaynak değil özel mülk yazılımdır

Özgür yazılım taraftarları olarak sıklıkla açık kaynak ifadesini özgür yazılım olarak düzeltiyoruz. Bunu kafa karışıklığına neden olmamak için yaptığımız halde, istemeden de olsa, sanki açık kaynağın kötü bir şey olduğu algısını da yaratabiliyoruz. Halbuki durum böyle değil. Özgür yazılım ve açık kaynak hareketleri kullanıcıların özgürlüklerini savunan hareketlerdir. Biz özgür yazılım savunucuları açık kaynağı düşman olarak görmeyiz. Hem özgür yazılımın hem de açık kaynak yazılımın insanlık için kötü olarak kabul ettiği yazılımlar özgür olmayan (özel mülk) yazılımlardır.

We in the free software movement don’t think of the open source camp as an enemy; the enemy is proprietary (nonfree) software.

[1] http://www.nyucel.com/2017/05/genel-kamu-lisansnn-gpl-onemli-fark.html
[2] http://www.nyucel.com/2017/05/ack-kaynak-sadece-kaynak-koda-erisim.html
[3] http://www.nyucel.com/2017/05/ozgur-yazlm-m-ack-kaynak-m-1.html

Necdet Yücel  28 Mayıs 2017

gezegen.linux.org.tr

İzlem Gözükeleş: Dijitalleşme ve Kullanıcıların Mülksüzleştirilmesi

Eylül ayının üçüncü cumartesi günü yazılım özgürlüğü günü  olarak kutlanıyor. Etkinliğin amacı özgür yazılım ve yararları hakkındaki farkındalığı artırmak ve özgür yazılım kullanımını yaygınlaştırmak. Yazılımdaki özgürlüğü, hem özgür yazılım hareketinin içinden hem de dışından birçok insanın yaptığı gibi GNU/Linux işletim sistemine indirgememek gerekiyor. Yıllar önce bilgisayar denilince akla ilk gelen sadece ev kullanıcılarının kişisel bilgisayarlarıydı. Kişisel bilgisayarları, dizüstü bilgisayarlar, akıllı telefonlar ve tabletler izledi. Bu süreçte, kullanıcıların bilgisayarla yaratıcı etkileşimi, bir diğer deyişle bilgisayarı, üreticinin öngörmediği veya öngöremediği biçimlerde kullanma olanağı zayıfladı. Günümüzde ise gündelik hayatta kullandığımız nesnelerin bilgisayarlaşmasına şahit oluyoruz.

Artık “arabanız tekerlekli bir bilgisayardır; uçak kanatları olan bir bilgisayardır; saatiniz, çocuğunuzun oyuncağı, hatta kalp piliniz özünde bir bilgisayardır” (Perzanowski ve Schultz, 2016). Nesnelerin interneti bağlamında gündeme gelen akıllı cihazlar yine birer bilgisayardır. Bu nedenle bilgisayarlardaki yazılımın özgürlüğü, 27 Eylül 1983’te Richard Stallman’ın GNU (GNU is Not Unix) projesini duyurarak özgür yazılımın fitilini ateşlediği dönemden daha vazgeçilmezdir. Kişisel bilgisayarlarda kullandığımız yazılımların özgürlüğünü düşünmek GNU/Linux, LibreOffice, Mozilla gibi yazılımların başarısı dikkate alındığında artık daha anlaşılırdır. Buna karşın, araba, kalp pili, giyilebilir teknoloji ve mobil cihazlar gibi günümüz bilgisayarlarındaki yazılımların kaynak koduna sahip olunabileceğine, nasıl çalıştığının öğrenilebileceğine ve kodda değişiklikler yapılabileceğine ihtimal vermeyiz. Hatta çoğu insan bu cihazların içinde yazılım bulunduğunu bile unutmuştur. Ama aynı teslimiyet 27 Eylül 1983 için de geçerlidir ve o zaman da özgür bir işletim sisteminin olabileceğine pek ihtimal verilmemektedir.

Bilişim teknolojilerini tartışırken çoğu zaman özgür yazılımdan yardım almak zorunda kalıyorum. Bunun temel nedeni, özgür yazılımın sunduğu alternatifler, açılımlar ve çelişkileriyle birlikte bilişim teknolojilerini ekonomi politik bir yaklaşımla tartışmayı daha anlaşılır ve somut kılması. Örneğin, nesnelerin interneti ve dördüncü endüstri devrimi gibi moda ifadelerin ve bulut bilişim gibi masalların peşine takılmadan önce bu teknolojilerin içinde geliştiği toplumsal ilişkileri, kimin kazanıp kimin kaybettiğini, bu sürece nasıl müdahale edilebileceğini tartışmak gerekir ve bu tartışmada, mülkiyet ilişkileri kritik bir rol oynar. Özgür yazılımcılar, son derece basit ama temel sorularla bu tartışmaya katılmaktadır: Kullandığınız bilgisayarların sahibi miyiz? Değilsek bunu nasıl başarabiliriz? Bu sorulardan sonra, o moda teknolojilerin cilası dökülmeye başlar.

Ayrıca Geray’ın (2016) belirttiği gibi ekonomi politik yaklaşım, neo-klasik iktisatta olduğu gibi toplumsal değer yargılarını dışarıda bırakmaz: “Eşitlik, hakkaniyet, adalet, toplumun/kamunun genel çıkarı gibi değer yargıları çözümlemelere katılır” (age). Fikri mülkiyet haklarına, özellikle de patentlere yöneltilen en büyük eleştirilerden biri araştırmaların kamudan alınan vergilerle finanse edilmesi ama araştırmaların meyvelerinin şirketler tarafından toplanmasıdır. Avrupalı özgür yazılım kuruluşları sürekli bunun gibi adaletsizlikleri sorgulamaktadır. Eylül ayında başlattıkları “kamunu parası, kamunun kodu” (https://publiccode.eu/) adlı kampanyada da sorgulanan yine çok basit ama sürekli görmezden gelinen bir konudur: İnsanların vergileriyle geliştirilen yazılımlar neden özgür yazılım olarak kamuyla paylaşılmaz? Aynı yazılıma tekrar tekrar para ödeyen bir hükümet kamunun çıkarı yerine şirketlerin çıkarını düşünmüyor mudur?

Eleştirel olmayan bir bakış açısı gözetimi ve sansürü de teknolojik gelişmelerin kaçınılmaz sonucu olarak değerlendirir. Özgür yazılım için bunlar yeni teknolojilerin bir özelliği değil kusurudur ve hiç de kaçınılmaz değildir; özel hayatın gizliliği ve ifade özgürlüğü savunulması gereken değerlerdir. Özgür yazılım, yazılım dünyasının dışına taşmış ve Wikipedia gibi projelere ilham vermiş, neoliberalizmin piyasa toplumu dışında başka bir alternatifin olduğunu göstermiştir.

Ancak tam da bu noktada durmak gerekiyor. Özgür yazılım, kapitalizmde sadece (ve son derece ufak) bir çatlaktır. Şimdi sesleri daha az çıksa da ikibinli yılların başında müştereklerden ve ortaklaşa çalışmanın potansiyelinden, bilişim teknolojilerinin toplumsal ilişkilerde yarattığı değişimden etkilenen birçok insan kapitalizmin aşıldığını iddia edecek kadar ileri gitmiştir. Fakat özgür yazılım, başka alanlardaki benzer girişimler gibi, her zaman tehlike altındadır:

Oluşturulan her müşterek, zamanla iki gücün saldırılarına maruz kalacaktır. Birincisi, müşterekleri hiçe sayarak kendi gelirlerini maksimize etmek için açık arayan bireylerin ve şirketlerin kurnazlığı. İkincisiyse, hükümetlerin ekonomik darboğaz zamanlarında (veya piyasa ideolojisinin güdümünde) müşterekleri besleyen kaynakları kurutma, müştereklerinin etkilerini azaltarak kamuoyu desteğini baltalama eğilimi.

Özgür yazılım hareketi, başta FSF (Free Software Foundation) ve FSFE (Free Software Foundation Europe) olmak üzere, patent, DRM (Digital Restrictions Management – Sayısal Kısıtlamalar Yönetimi), bulut bilişim vb kampanyalarından da görülebileceği gibi tehlikenin farkındadır. Bin yılın başında müştereklerden, eşitlik ve özgürlükten bahsedip, sözüm ona enformasyon toplumunu selamlarken günümüzde dijitalleşmeyle gelişen mülksüzleştirmeyle karşı karşıyayız. Özgür yazılım hareketinin yıllardır sorduğu soruları şimdi daha yüksek sesle sormanın zamanı: Bilgisayarlarımızın gerçekten sahibi miyiz? Bilgisayarlarımızın gerçek sahibi olabilmemiz için ne yapmamız gerekiyor?

Bu yazıda, tüketiciler ve satın aldıkları (ya da satın aldıklarını sandıkları!) ürünler arasındaki ilişkinin nasıl değiştiğini göreceğiz. Yazının devamında, sahip olunan nesneye göre değişen farklı mülkiyet biçimleri yer alıyor. Daha sonraki bölümde dijitalleşmeyle beraber kitap, film ve müzik endüstrisindeki yaşanan değişimleri ve bu değişimleri olanaklı kılan biri hukuksal diğer teknik iki aracı, lisansları ve DRM’yi aktarıyorum. Son olarak, aynı araçlarla günümüz bilgisayarlarında uygulanan mülksüzleştirme örneklerini göreceğiz.

Gayrimenkul Mülkiyeti, Bireysel Mülkiyet ve Fikri Mülkiyet

Dijitalleşmeyle beraber fikri mülkiyet haklarının kapsamında toplumun aleyhine, şirketlerin lehine bir genişleme vardır. Ama bu genişleme aynı zamanda kullanıcıların mülksüzleştirilmesiyle beraber gelişmektedir. Bunun örneklerine geçmeden önce mülkiyetin ne olduğunu ve dijitalleşmeyle beraber nasıl bir değişim yaşandığını tartışmak gerekiyor.

Önce mülkiyetin ne olmadığıyla başlayalım. Mülkiyet insanla nesne/kaynak arasındaki bir ilişki değildir. “A, x’e sahiptir” ifadesi mülkiyet ilişkisini tanımlamak için yetersiz kalacaktır. Mülkiyet toplumsal bir ilişkidir. Çünkü A, B’ye karşı x’e sahiptir ve A x’ten yararlanmakla kalmaz kendisi dışındakilerin x ile olan ilişkisini de kontrol eder. Bir diğer deyişle mülkiyet asıl olarak A ve B arasında bir ilişkidir. Fakat bu ilişkinin gerçekleşebilmesi için A ve B’nin x üzerindeki ilişkisi hukuksal olarak tanınmalıdır. B, A’nın izin vermediği biçimde x’e eriştiğinde bunun bir yaptırımının olması gerekir. Bunun yanında, x’e sahip olan A’nın mutlak güç sahibi olduğu yanılgısına düşülmemelidir. A, keyfi biçimde hareket edemez; B’nin de hakları vardır. Ancak her iki tarafın hakları da mutlak değildir. Haklar ve denge, sosyoekonomik koşullar ve teknolojik yeniliklerle yeniden şekillenir.

A ve B arasındaki mülkiyet ilişkisi x’in ne olduğuyla ilişkili olarak farklı biçimlerde karşımıza çıkabilir. Perzanowski ve Schultz (2016), x’in durumuna göre mülkiyeti dörde ayırır: Gayrimenkul mülkiyeti, bireysel mülkiyet, fikri mülkiyet, maddi olmayan şeylerin mülkiyeti [1].

Mülkiyet denilince ilk akla gelen gayrimenkul mülkiyetidir. Gayrimenkul, fiziksel bir alanla tanımlanır. Deprem, toprak kayması veya nehir yatağının değişmesi gibi durumlar olmadığı sürece sabittir, bıraktığınız yerde kalır. x’in gayrimenkul olduğu durumlarda A’nın B’ye göre ilişkisi çeşitli biçimler alabilir. Gayrimenkul sahibi, toprağı kullanma, diğerlerini dışlama, satma, bağışlama veya ondan kâr elde etme hakkına sahiptir. A, x’e sadece ömrü boyunca sahip olabilir (miras bırakamaz) veya devre mülkte olduğu gibi x’i yılın belirli zamanlarında kullanabilir. Bu haklar açık uçludur ve tartışmaya açıktır. Örneğin belediyenin kat sınırlaması olabilir, dairenin işyeri olarak kullanımı yasaklanmış olabilir, arazi sahibi arazisini süpermarket yapmamak kaydıyla kullandırmak isteyebilir veya bir üniversite arazisindeki ağaçların zarar görmemesi şartıyla arazisinden yol geçmesine izin verebilir. Gayrimenkulün hem daha pahalı hem de kullanımı hakkındaki sınırlamaların açık uçlu olması nedeniyle herhangi bir satın almadan önce oldukça ayrıntılı bir araştırma yapılması gerekir. Normal vatandaşlar az sayıda gayrimenkul aldıklarından daha ince eleyip sık dokurlar.

Bireysel mülkiyette ise haklar daha nettir. A, x’e sahipse bununla ne yapacağı ve B’ye karşı hakları daha nettir. B, A’dan Mavi kazak satın aldığında A, B’ye “bunu turuncu pantolonun üstüne giyemezsin” diyemez. Bireysel mülkiyete konu nesneler gayrimenkule göre çok daha ucuzdur ve satın alma sonrası oluşan hakların sınırları daha belirlidir. Bir kitap, buzdolabı, kazak vb satın alan kişi bunu kendisi kullanabilir, satabilir, kiralayabilir, ödünç verebilir veya hediye edebilir. Satış sonrasında A’nın x üzerindeki hakları sona erdiğinden x’i satın alan kişi A’nın yerine geçer. Bireysel mülkiyet, gündelik hayatta o kadar sık deneyimlediğimiz bir ilişkidir ki okuyucu yukarıdaki örnekleri gereksiz olarak değerlendirecektir; başka türlüsünü düşünmek zaten mümkün değildir. Ama sorun da zaten bu açık seçik olan hakların kaybediliyor olmasıdır.

Fikri mülkiyette x, gayrimenkul ve bireysel mülkiyette olduğu gibi maddi bir varlığa sahip olmaması nedeniyle farklıdır. Gayrimenkul ve bireysel mülkiyette x maddi varlığa sahip olduğundan nesnenin ve kaynağın kullanımında kıt kaynak sorunu vardır. Gayrimenkul ve bireysel mülkiyet ilişkileri bu kıt nesne ve kaynakların kullanımını düzenler. Fikir ürünleri için kendiliğinden bir kıtlık söz konusu değildir. Fikri ürünlerinin kullanımı onları azaltmaz, tam tersine artırabilir de. Fikirlerin de bir kullanım değeri vardır; bunların artması ve yayılması arzulanır. Buna karşın, fikir ürünlerini üretenlerin bu çalışmalarının karşılığını alamazlarsa üretmeyecekleri (ya da üretemeyecekleri) savunularak asıl kıtlığın fikir ürünlerinde değil bunun üretimi için gerekli emek gücünde olduğu belirtilir. Fikir ürünlerinin bir diğer farklılığı da bir kere ifşa edildikten sonra kontrol edilmelerinin zorluğudur. Bir araziyi çitleyebilir, özel ve değerli eşyalarınızı kasaya koyabilirsiniz. Ama fikir ürünleri için böyle bir durum söz konusu değildir. Patent, telif, marka yasaları bu korumayı gerçekleştirmek için vardır. Bireysel mülkiyette A, x’i sattığında satın alan kişi A’nın yerine geçer. Fikri mülkiyette ise durum farklıdır. Bir film DVD’si satın aldığınızı varsayalım. Bu sizi filmin sahibi yapmaz; sadece filmin kaydedildiği DVD’nin sahibisinizdir. Normal şartlarda (kopyalama hakkına sahip şirket size bu yetkiyi vermemişse) bu filmi kopyalayıp dağıtamazsınız veya bir oda dolusu izleyiciye gösterim yapamazsınız. Hatta fikri mülkiyetin en saf halinde DVD’yi satın alan kişi bunu başkasına satamaz, kişisel kullanım için yedekleyemez, bir arkadaşına hediye edemez vs. Fakat fikri mülkiyet hakları, A’nın x üzerinde satış öncesinde ve sonrasında tüm haklara sahip olduğu bir ilişki değildir. A’dan x’i satın alan kişi A’nın yerine geçemese de x’i satın alan (B’) ile satın almayan (B) arasında bir fark vardır. A, x’te yayma hakkına sahiptir. Yayma hakkı, “bir eserin aslını veya çoğaltılmış nüshalarını, kiralamak, ödünç vermek, satışa çıkarmak veya diğer yollarla dağıtmak hakkı”dır. Yasa, x’in DVD’sini satın alan B’nin yeniden satış hakkı için şunları söylemektedir:”kiralama ve kamuya ödünç verme yetkisi eser sahibinde kalmak kaydıyla, belirli nüshaların hak sahibinin yayma hakkını kullanması sonucu mülkiyeti devredilerek ülke sınırları içinde ilk satışı veya dağıtımı yapıldıktan sonra bunların yeniden satışı eser sahibine tanınan yayma hakkını ihlal etmez” (Aksu, 2016). Bu durum, “tükenme ilkesi” olarak adlandırılır. Yasa, tükenme ilkesini tanıdığı için satın aldığımız DVD veya kitap bireysel mülkiyete göre değerlendirilebilir.

Kısacası, bir fikir ve sanat ürünündeki telif hakkı ile onun kopyasının mülkiyeti hakkında bir ayrım vardır. İnternet öncesi dönemde de radyo ve televizyon yayınları da telif haklarını etkilemiştir ama yine de asıl gelir kaynağı fiziksel kopyalar olmuştur. Reklam ve kablo aboneliği bile kopyaların önemini azaltmamıştır. “Tükenme ilkesi” ikinci el pazarını ortaya çıkarmış, ikinci el ürünler birinci el ürünlere rakip olmuş ve bu da tüketicinin lehine olmuştur. Tükenme ilkesi, kopyalama hakkına sahip şirketler için satacakları kopya sayısını azalttığı için istenmeyen bir durumdur. Dijitalleşme ile beraber eski kopya biçimlerinin yavaş yavaş ortadan kalkması yeni bir döneme kapı aralamıştır. Dijitalleşmeyle mülkiyet ilişkilerinde yaşanan dönüşüme geçmeden önce kopyalama hakkına sahip şirketlerin tükenme ilkesine düşmanlıklarının tarihte ilginç örneklerinin olduğunu belirtmek isterim. Günümüzde bazı okullar ve kurumlar, kütüphane kullanımını teşvik etmek için kütüphaneden en çok yararlananların isimlerini duyururlar. Vaktini kütüphanede geçirenlere saygı duyarız. Fakat kopyalama hakkı sahibi şirketlerin en büyük düşmanlarından biri kütüphaneler ve buralardan yararlananlardır. İnsanların yeni kitap almak yerine kütüphaneden kitap ödünç almalarını kendi işlerinin baltalanması olarak değerlendirirler. Bunun en çarpıcı örneklerinden biri 1931’de bir grup yayıncının “kitap ödünç verme” sorununu çözmesi için halkla ilişkilerin öncülerinden olan Edward Bernay’i tutmasıdır. Bernay, kitap ödünç alanları aşağılayan bir lakap bulma kampanyası düzenler. Yarışmayı booksneak kazanır (Önerilen diğer lakaplar book weevil, greader, libracide, booklooter, bookbum, culture vulture, bookbummer, bookaneer, biblioacquisiac ve book buzzard.)

iTunes Music Store, Bulut Bilişim ve Dijital Abonelik

Son 15 yılda içeriğe erişim biçimimizde önemli değişiklikler yaşanmıştır. İkibinli yıllara kadar kitap, müzik ve filmler elimizde tuttuğumuz, kitaplığımızda sakladığımız ve birbirimize hediye ettiğimiz fiziksel nesnelerdir ve tüketiciler, tükenme ilkesinin tanıdığı hakla hareket etmektedir. Bu bağlamda, 2003 yılında Apple’ın iTunes Music Store’ı ve yeni iş modelini duyurması bu hakka

önemli bir darbedir. İnternetten müzik eserlerini ücretsiz indirmenin oldukça yaygın olduğu bir dönemde Steve Jobs, insanların hala müzik eserleri için ödeme yapmaya gönüllü oldukları, ama birkaç hit parça için tüm albümü satın almak istemedikleri tespitini yapmaktadır. Jobs’a göre sorun insanların korsan müziğe kaymasını engelleyebilecek bir alternatifin olmamasıdır. Jobs, Müzik şirketleri ve internet kullanıcılarını ‘adil’ bir iş modelinde bir araya getirir. Jobs’a göre herkes kazanacaktır (https://tr.0wikipedia.org/wiki/İTunes_Store):

Müzik çalan insanların % 80’inin bunu istemediğine inanıyoruz, sadece yasal bir alternatif yok. Bu yüzden, ‘buna yasal bir alternatif yaratalım’ dedik. Herkes kazanır. Müzik şirketleri kazanır. Sanatçılar kazanır. Apple kazanır. Kullanıcı kazanır, çünkü daha iyi bir hizmet alır ve bir hırsız olmak zorunda değildir.

iTunes Music Store’a yalnızca Apple cihazlarından erişilebilmekte ve şarkılar başlangıçta DRM (Sayısal Kısıtlamalar Yönetimi) ile korunmaktadır. Kullanıcılar albümün tamamını satın almadan (çoğunlukla 99 sente) tek bir müzik eserini satın alabilmektedir. Apple’ın yeni iş modeli, kendi beklentilerinin de ötesinde büyük ilgi toplar. Jobs’ın öngörüsü doğru çıkmış ve insanlar korsan müziktense dinlediği eser için para ödemeyi tercih etmiştir. Apple’ın öncülüğünü yaptığı bu iş modeli hızla yaygınlaşır. Ancak diğer yandan bireysel mülkiyet için bir dönüm noktasıdır. Artık elinizde arkadaşınıza ödünç verebileceğiniz bir DVD yoktur. Ayrıca tüketiciler DRM’li müziklerini ancak ve ancak bir Apple bilgisayarı kullandıkları sürece çalabileceklerdir. O an için ufak bir ayrıntıdır. Apple kullanıcıları bu ayrıcalıklarının keyfini sürerken DRM ile telif haklarının içerdiği bir hak ortadan kalkmaktadır (Perzanowski ve Schultz, 2016).

Dijital ürünlerde tükenme ilkesi nasıl uygulanacaktır? Fiziksel bir ürünü arkadaşınıza ödünç verdiğinizde sizde bir kopyası bulunmaz. Ama bir müzik dosyasını arkadaşınıza farklı yollarla (taşınabilir bellek, e-posta, Dropbox’a koymak vb yollarla) dosyayı kopyalayarak iletebilirsiniz. Ama her hâlükârda dosyanın telif haklarındaki tükenme ilkesine aykırı hareket etmiş olursunuz. Telif yasaları bu yeni duruma ayak uyduramadan bulut bilişimle [2] ikinci bir dönüşüm yaşanır. 160 GB diske sahip bir iPod alıp tüm müzik koleksiyonunuzu buraya aktarmanız mümkündür. Fakat bir süre sonra iPod yerini akıllı telefon, tablet ve çok amaçlı diğer mobil cihazlara bırakır. Bu cihazlarda üreticiler, yer, ağırlık ve pil ömründen tasarruf edebilmek için yüksek saklama kapasiteli ve ucuz diskler yerine daha düşük saklama kapasiteli ve yüksek fiyatlı disklere yönelmişlerdir. Bulut bilişim, depolama kapasitesi sorununu giderek yaygınlaşan yüksek hızlı mobil veri ağlardan yararlanarak çözecektir. Artık tüm dijital dosyalarımızı bulutta saklayabileceğimiz ve cihazlarımız arasında senkronize edebileceğimiz söylenmektedir (age).

iTunes Music Store’dan satın alınan bir dosya tüketicinin bilgisayarında saklanmaktadır. Elde bir kaset veya DVD yoktur, ama (kimi zaman DRM’li de olsa) bir dosya bilgisayarınızda tutulmaktadır. Bulut iş modelleri ise bunu bir adım daha öteye götürebilmenin yolunu açmıştır. Bilgisayarınızda dosya saklamanın şart olmadığı, bir film izleyeceğiniz veya müzik dinleyeceğiniz zaman buluta erişerek bunu yapabileceğiniz anlatılmaktadır. Bilgisayarınıza indirmeden kullanmayı tercih ettiğinizde dijital dosyaya gerçekten sahip olma şansınız da ortadan kalkmaktadır. Bulut sağlayıcısı şirket, çeşitli gerekçelerle dijital dosyaya erişimizi engelleyebilir veya dosyayı silebilir. Nitekim Apple Medya Hizmetleri Hüküm ve Koşulları’nda bu hak açıkça belirtilmektedir (https://www.apple.com/legal/internet-services/itunes/tr/terms.html):

“Apple size bildirimde bulunarak ya da bulunmaksızın ve dilediği zamanda Hizmetleri (ya da bunların herhangi bir parçasını ya da İçeriğini) değiştirme, geçici olarak durdurma ya da sona erdirme hakkını saklı tutar ve Apple söz konusu haklarını gerçekleştirdiğinde size ya da üçüncü taraflara karşı sorumlu olmayacaktır.” Amazon Kindle kullanıcılarının da deneyimlediği gibi sanal kitap rafınızda duran bir kitap aniden silinebilir. Bunun dışında teknik sorunlar nedeniyle dosyalara erişim olanağınızın geçici veya kalıcı olarak ortadan kalktığı durumlar da olabilmektedir. Eskiden bir kitap yıllarca saklanıp kuşaktan kuşağa aktarılabilirken şimdi kitabın raf ömrü en iyi ihtimalle şirketin ömrü kadardır. Perzanowski ve Schultz (2016), Amazon ve Apple’sız bir dünya hayal edemeyenlere Lehman Brothers, Enron ve Woolworth’ın akıbetini hatırlatmaktadır.

Telif hakları ve tükenme hakkı açısından değerlendirdiğimizde yine belirsiz bir durum vardır. Buluttaki dosyaların tekrar satışı veya ödünç verilmesi belirsizdir. Bazı durumlarda dosya bulut üzerinden kullanılabilmekte bazen de dosyanın bir kopyasının bilgisayara indirilmesi gerekmektedir. Perzanowski ve Schultz’a (2016) göre bulut farklı biçimlerde yorumlanabilir. Birincisi bulutu evinizdeki bir film makarası gibi değerlendirebilirsiniz. Salonunuzda, televizyonun sizin, ama film makarasının film şirketinin olduğu bir düzenek vardır. Filmi izlemek veya bir şarkıyı dinlemek için bir ödeme yaparsınız, ama filme sahip olamazsınız. İkincisi bulut, raflarında kitapların olduğu bir kütüphanedir ve siz kitaplardan birini ödünç alırsınız. Üçüncüsü bulut, bankada kiralık bir kasa gibidir. Şu anda yanınızda olmasa da kasanın içindekiler sizindir ve istediğiniz zaman kasadan evinize getirebilirsiniz. Her üç durum da telif hakları açısından yeni soru(n)lar yaratmaktadır. Fakat ilk iki durum abonelik üzerine kurulu yeni bir iş modeli olarak karşımıza çıkacak ve kullanıcının mülksüzleştirilmesinde üçüncü aşamaya gelinecektir.

Bulutta sakladığınız dosyaların gerçekten sahibi olamazsınız. Bazı durumlarda bu dosyaları bilgisayarınıza da kaydedebilirsiniz. Şirketler indirilen dosyaları, kullanıcı cihazlarını kontrol edebildikleri taktirde DRM ile denetleyebilmektedir. Ama bulutun asıl önemi tüketicilere akıtmalı servisleri (streaming service) tanıtarak, onları abonelik sistemlerine hazırlamak olmuştur.

Klasik abonelikte bir dergiye 2017 yılı için abone olduğunuzda 2018 yılında aboneliğinizi yenilemeseniz de 2017 yılına ait sayılar elinizdedir ve kimse bu hakkınızı elinizden alamaz. Akıtmalı abonelik servislerinde ise aboneliğinizi yenilemediğinizde haklarınızı kaybedersiniz. Buna rağmen, tüketicilere sunduğu avantajlar nedeniyle bu dezavantajlar atlanmaktadır. Abonelik servisleri satın almayla karşılaştırıldığında daha makul bir ücret talep etmekte ve çok sayıda içerik arasından seçim yapabilme olanağı sunmaktadır. Şirketler için oldukça kârlı bir iş modelidir. Farklı müşterilere farklı fiyatlandırma yapabilmektedirler. Yeni iş modelinin önceki dönemlerden en büyük farkı da şirketlerin servisi kullananlar hakkında çok ayrıntılı bilgiye sahip olmalarıdır. Bu da şirketlerin daha hedefli reklamlar yapabilmelerini sağlamaktadır. Akıtmalı servisin kopyalanması ve çoğaltılması olanaksız olmasa da daha zordur. Servis aboneliği kitap ve DVD almayla kıyaslandığında çok daha ucuz görünmektedir. Ama elde satılabilecek bir kopyanın bulunamaması birinci el satışlara rakip olabilecek ikinci el piyasasını da yok etmektedir.

Mülkiyet ilişkilerindeki bu değişim iki önemli araçla gerçekleştirilmiştir: Lisanslar ve DRM.

Okunmayan ve Anlaşılamayan Lisanslar

Perzanowski ve Schultz (2016) lisansların nasıl bir dünya yarattığını göstermek amacıyla almak istediğimiz 100 dolarlık bir şapkanın üzerinde aşağıdaki uyarıyı gördüğümüzde ne yapacağımızı hayal etmemizi ister:

BU ŞAPKA LİSANSLANMIŞ, SATILMAMIŞTIR. ÜZERİNDEKİ ÜCRETİ ÖDEDİĞİNİZDE BU ŞAPKAYI İSTEDİĞİNİZ SIKLIKTA GİYME HAKKINA SAHİPSİNİZ. ŞAPKAYI SÜRESİZ OLARAK ELİNİZDE BULUNDURABİLİRSİNİZ ANCAK ÜRETİCİNİN AÇIK İZNİ OLMAKSIZIN ONU YENİDEN SATMA, ÖDÜNÇ VERME VEYA BAŞKA BİR ŞEKİLDE AKTARMA HAKKINA SAHİP DEĞİLSİNİZ.

Bu mesajı nasıl yorumlayabiliriz? Birincisi, şapka sahibi, şapkaya 100 dolar vermemize rağmen onun sahibi olmadığımızı vurgulamak istemiş olabilir. Onu sadece elimizde bulundurma ve kullanma hakkına sahibiz. İkinci yorum, mülkiyet yasalarının bize tanıdığı hakla onu satabileceğimiz ama bu satışın üreticiye ispatlanabilir bir zararı olduğunda üreticinin zararını karşılamak zorunda olduğumuzdur. Üçüncüsü, uyarının yasal bir belge niteliğine sahip olmadığıdır. Amaç sadece bazı alıcıların gözünü korkutarak şapkayı ödünç vermelerini veya satmalarını engellemektir. Ama yasal olarak hiçbir zorlayıcılığı yoktur.

Bu yorumlardan herhangi biri doğru olabilir. Satış görevlisinden daha ayrıntılı bir açıklama isteyebilir veya böyle alengirli bir alışverişe hiç girmek istemeyebiliriz. Lisans, kişi ve kuruluşlara normal şartlarda sahip olunmayan bir hakkı verir. Örneğin sürücü lisansı, bize trafik araçlarını kullanma hakkı verir. Ama dijital ürünleri kullanırken “Kabul Ediyorum” deyip geçtiğimiz birçok lisans tüketiciye bir hak tanımlamaz, yasalarca verilmiş bir hakkı keyfi olarak sınırlar. Örneğin, özgür yazılım projelerinde kullanılan GPL’de (General Public License – Genel Kamu Lisansı), yazılım sahibi bazı şartlar öne sürerek telif haklarının kendisine tanıdığı hakları kullanıcıya verdiğini belirtir. Özel mülkiyetli yazılımlarda ise lisans, telif haklarının tanımladığı bazı hakların geri alınması için vardır.

Lisanslar çoğunlukla okunmaz; 99 sentlik bir şarkı için iTunes’un Macbeth’ten uzun kullanım şartlarını okumak pek akıllıca değildir. PayPal’inki ise Hamlet’ten de fazladır. Bu lisansların uzunlukları bir yana anlaşılmaları da zordur. Çünkü şirketin yasal haklarını tanımlayan lisanslar sıradan insanların anlaması için yazılmış basit metinler değildir. Çoğu zaman karşımıza uzunca ve anlaşılmaz bir metin çıkar; ya lisansı kabul edip yolumuza devam ederiz ya da reddedip işlemden vazgeçeriz. Başka seçeneğimiz yoktur. Lisansların uzunluğu ve karmaşıklığı dikkate alındığında bunu okuyup anlamanın da bir maliyeti olacağından kabul ettiğimizi belirtip geçeriz. Casus yazılımlara karşı yazılım üreten PC Pitstop adlı şirket EULA’sındaki (End User License Agreement – Son Kullanıcı Lisans Sözleşmesi) bir cümlenin farkına varan ve kendisine e-postayla bunu bildirecek ilk kullanıcıya 1000 dolarlık bir ödül vereceğini yazar. Beklenen e-posta ancak dört ay sonra, yazılım 3000’den fazla indirildikten sonra gelir!

Lisanslamanın öncüsü IBM’dir. Telif hakkı ve patentlerin henüz zayıf olduğu bir dönemde bu yolu tercih etmesi anlaşılır bir durumdur. Fakat lisanslama yazılımı belirsizlik ve ihlallere karşı korumaktan çok yazılımın sonraki kullanımlarını kontrol edebilmek ve rekabeti azaltmak için kullanılmaktadır. Kitap, film ve müzik endüstrisi de yıllardır bunu arzulamış ama başarılı olamamıştır. Şimdi şirketler dijital kitapların ödünç verilme sayısını kısıtlayarak kütüphanelerden adeta intikam almaktadır. Örneğin bu sınır yirmiyse yirminci ödünç verme işleminden sonra kütüphanenin aynı kitaba tekrar ödeme yapması gerekmektedir. Böylece kütüphanelerin, bilgi birikimini gelecek kuşaklara aktarabilme misyonu da yok edilmektedir. Artık herhangi bir kitap sansür veya ekonomik gerekçelerle kütüphanelerden silinebilir, o kitap hiç yayınlanmamış gibi davranılabilir. Daha da kötüsü bu tip lisanslar dijital kitap, film ve müzikle sınırlı değildir; son yıllarda evlerde kullanılan cihazlarda, tüketici elektroniğinde, tarım makinelerinde, kısaca bilgisayar içeren ya da bilgisayarlaşan her alanda karşımıza çıkmaktadır.

Perzanowski ve Schultz (2016) lisansların taraflar arasında yapılan bir sözleşme veya mülkiyet ilişkileri çerçevesinde değerlendirilebileceğini belirtmektedir. Mahkemeler, hemen onaylayıp geçtiğimiz lisansları sözleşme olarak değerlendirmeye meyillidir. Fakat insanlar neyi imzaladıklarını bilebildiklerinde sözleşmenin bir anlamı vardır. Lisanslar, iki tarafın özgür iradesiyle imzalanan sözleşmeler değildir. Kopyalama hakkı sahibinin dayattığı kısıtlamalardır. Lisansları, mülkiyet ilişkileri çerçevesinde değerlendirdiğimizde, lisansların GPL’de olduğu gibi önceden tanımlanmış mülkiyet haklarına dayanması gerektiği ortaya çıkar. Geçerli bir lisansın ortaya konabilmesi için kimin neye sahip olduğuna önceden karar verilmesi gerekir.

Kopyalama hakkı sahibi, ürünü kendine saklayabilir, kiralayabilir veya satabilir. Eğer bir servis, abonelik olarak ilan edilmişse yapacak bir şey yoktur. Fakat reklamlar çoğu zaman aboneliği bir satış gibi göstermekte, kimin neye sahip olduğu belirsiz bırakılmakta, lisanstaki satır aralarında alıcının haklarını kısıtlamaktadır. Yapılan araştırmalar alıcının dijital bir ürünü gerçekten satın almadığını fark ettiğinde başka türlü davranmaya eğilimli olduğunu göstermektedir (age).

DRM (Sayısal Kısıtlamalar Yönetimi)

DRM, dijital içeriğin satış sonrasında da kullanımını kısıtlamayı ya da kontrol etmeyi hedefleyen teknolojilerin genel adıdır. Garip bir güvenlik aracıdır. Evinizdeki kilit, değerli eşyalarınızı dışarıdakilerden korur. DRM ise içeridekilere karşı bir korumadır. Çünkü kullandığınız şeyin gerçekten sizin olmadığı iddiasını taşır.

Dijitalleşme öncesinde ortaya çıkan VCR (videocassette recorder – video kaydedici) teknolojisi tüketiciyi güçlendiren, kopyalama hakkı sahibi şirketlerin tüketici üzerindeki baskısını zayıflatan bir gelişmedir. Bu nedenle Universal, Sony’yi korsan kullanıma yol açmakla suçlamıştır. Sony ise geliştirdiği teknolojinin korsanlık için kullanılabileceği gibi meşru amaçlar için de kullanılabileceğini savunur. Mahkeme, Sony’nin savunmasını haklı bulur ve stüdyoların VCR teknolojisini kontrol altına alma talebini geri çevirir. Bu karar, yalnız Sony için değil, tüketiciler için de önemlidir. Çünkü VCR’de yapılmak istenen tüketicilerin evlerinde gözetlenmesidir.

Hollywood, VCR olayından dersini almıştır. DVD teknolojisinin geliştirilmesine en başından müdahil olur ve CSS koduyla izinsiz kopyalamanın önüne geçmeyi dener. Cihazlarımızın izinsiz film oynatımlara karşı kontrol altına alınması için büyük çaba gösterir. Ama her DRM, er ya da geç, kırılmaya mahkumdur. DRM’li bir sistemi kırmak zordur; bunu ancak en ileri düzeydeki kullanıcılar başarabilecektir. Ama bir hacker DRM’nin açıklarını keşfettiğinde bu bilgi hızla yayılmaktadır ve kırma işlemini kolaylaştıran araçlar teknik bilgisi daha az olan kullanıcılara da ulaşmaktadır. Bu nedenle DRM tek başına yeterli olmayacak, hem hackerların hem de onların açtığı gedikten ilerleyen diğer tüketicilerin durdurulabilmesi için yasalarla kontrol altına alınmaları, tersine mühendisliğin yasadışı ilan edilmesi gerekecektir.

DRM tüketicilerin güvenliğini de tehlikeye atmaktadır. VCR tartışmasında iyi adam olan Sony, bu sefer kötü adamdır. CD’lerinin kopyalanmasını engellemek için kullanıcıların bilgisayarına, onların haberi olmadan bir rootkit yazılımı kurmayı dener. Sony, rootkit yazılımıyla kullanıcıların CD kopyalamasını engelleyebileceğini düşünmektedir. İzinsiz kurduğu rootkit, başında $sys$ ile başlayan her dosya ve süreci bilgisayar kullanıcılarından gizlemektedir. Sony kendi mülkiyet hakkını korumak için açtığı arka kapıyla büyük bir güvenlik açığına neden olur; herhangi bir saldırganın aynı açığı kullanmasının önünde bir engel yoktur. Bu fark edildiğinde ise yaptığını “insanlar rootkit’in ne olduğunu bile bilmiyor, neden buna takılsınlar ki?” diyerek örtbas etmek ister. Fakat tepkiler dinmeyince CD’lerini geri çağırmak zorunda kalmıştır. Sony, DRM’ye başvuran birçok şirketin yaptığı gibi, insanlardan kendi mülkiyet haklarına saygı göstermesini isterken izinsiz olarak onların bilgisayarına girmiş, güvenliklerini tehlikeye atmış ve mahremiyetlerine zarar vermiştir (age).

Lisanslar, DRM ve Gündelik Hayati [3]

Edison’un İki Davası

ABD’de fikri mülkiyet haklarının gelişimi üzerine bir film çekilse filmin baş kötülerinden biri sanırım Thomas Edison olurdu. Edison defalarca yasal boşluklardan yararlanmaya çalışarak her fırsatta rakiplerini saf dışı bırakmak istemiştir. Bazen bunda başarılı olmuş bazen de mahkemeler Edison’un hırslarına geçit vermemiştir. Edison’un en ilginç ve öğretici davalarından ikisi tükenme ilkesi üzerinedir. Doğru akımı destekleyen Edison ile Nikola Tesla’nın alternatif akımına yatırım yapan milyoner George Westinghouse arasında bir mücadele vardır. Edison, alternatif akımın tehlikelerini öne çıkararak doğru akımı teşvik etmek istemektedir. Alternatif akımın elektrikli sandalyede kullanılacağını öğrenmesi ile alternatif akımın tehlikesini anlatmak için eşsiz bir fırsat yakalamıştır: Alternatif akım, öldüren teknoloji!

Westinghouse, patentlerinin elektrikli sandalyede kullanılmasına izin vermez. Fakat Edison’un adamları, alternatif akımın kullanıldığı dinamoların satışından sonra patent sahibinin hakkının tükendiğini, satın alınan bireysel mülkiyetindeki dinamoların kullanımına karışamayacağını savunur ve tarihteki ilk üç elektrikli sandalye Westinghouse’un patentleriyle yapılır. Böylece Edison alternatif akımın insanları öldürdüğünü söylemeye devam eder.

Edison ikinci macerasında ise tükenme ilkesinin karşısında yer almaktadır. Edison’un film projektörü yaygın olarak kullanılmaktadır. Projektör piyasasının doymasından sonra Edison patenti yine kendisine ait olan film makaralarının satışının daha kazançlı olacağını fark eder. Projektöre, kendi film makaraları dışında bir makara kullanamayacağını yazar. Edison’un film makaralarındaki patenti biter bitmez tüketiciler kendi makaralarını yapar. Edison bunun üzerine projektördeki uyarıyı göstererek sadece kendisinin uygun gördüğü (kendi) makaraların kullanılabileceğini iddia eder. Mahkeme, yine tükenme ilkesine göre Edison’un itirazını reddeder ve tarihe de bir not düşer: Patent yasasının amacı bilimin ve yararlı zanaatin ilerlemesini desteklemektedir; patent sahiplerine özel servet sağlamak değil.

Fikri Mülkiyet, Bireysel Mülkiyete Karşı

Şirketler hiçbir zaman pes etmezler. Ama mahkemeler, Edison’dan sonra da uzunca bir süre bireysel mülkiyet lehine benzer kararlar vermeye devam ederler. Özellikle elektronik şirketleri DRM’i her fırsatta kullanmaya çalışmaktadır. Temel stratejileri, Edison’un film makarasındakiyle aynıdır: Bir ürünü sattıktan sonra, tüketicilerin onunla ilgili olabilecek parçalar için de kendilerine gelmelerini sağlamak.

Bu stratejiye başvuran şirketlerden biri de garaj kapısı açacağı üreten Chamberlain’dir. Uzaktan kumandasını kaybeden veya birden fazla arabası olan tüketiciler ek uzaktan kumandayı Chamberlain’den satın almak zorundadır. Skylink ise asıl üretici firmalardan çok daha ucuza yedek uzaktan kumanda satan bir şirkettir. Chamberlain, uzaktan kumandalarının yalnızca kendisinden satın alınmasını sağlamak için, kapı açılmadan önce kumandanın kapıya bir kod göndermesini sağlayan bir DRM tasarlar. Skylink bu kodu çözerek, Chamberlain için uzaktan kumanda üretmeye devam eder. 2002 yılında Chamberlain, fikri mülkiyet hakkının ihlal edildiği gerekçesiyle mahkemeye gider. Mahkeme, tüketicinin Chamberlain’den bir garaj kapısı açacağı satın aldığını ve bunun tüm kullanım haklarına sahip olduğununu belirterek Chamberlain’in başvurusunu reddeder.

Yazıcı kullanıcılarının en büyük sorunlarından biri kartuş bittiğinde doldurulan kartuşların çok pahalı olması ve doldurulduğunda tam verim alınamamasıdır. Kartuş satışı, yazıcı satıcıları için önemli bir gelir kaynağıdır. SCC (Static Control Components, Inc) adlı şirket, Lexmark’a uygun, daha ucuz kartuşlar ürettiğinde Lexmark, DRM’e başvurarak yazıcılarının Lexmark dışındaki kartuşlarla çalışmasını engeller. Lexmark, Edison’un bir zamanlar projektör üzerindeki bir uyarıyla yapmak istediğini teknik olarak gerçekleştirmiştir. Buna karşı SCC, ters mühendislikle DRM’i atlatmayı başarır ve Lexmark yazıcılarla uyumlu kartuşlar satmaya devam eder. DRM’sinin kırılması üzerine Lexmark mahkemeye gider. Mahkeme 2004 yılındaki kararında davayı fikri mülkiyet değil bireysel mülkiyet kapsamında değerlendirir ve “bir Lexmark yazıcı alan tüketici içindeki yazılımla beraber yazıcının kullanım hakkına sahiptir” der.

Bizim Olmayan Nesnelerin İnterneti

Mahkemelerin bireysel mülkiyetten yana olan bu kararlarına rağmen tüketicinin satış sonrasında kısıtlanmasında büyük artış vardır. Dijital kitap, müzik ve filmdeki lisans ve DRM stratejisi, günümüzün bilgisayarlaşan nesnelerine uyarlandığında daha büyük bir tehlike ortaya çıkmaktadır. Etrafımızı bizim olmayan nesnelerin interneti ile sarılmaktadır. Son birkaç yıldaki örnekler önemli dersler içermektedir.

Revolv adlı dağıtım kutusu (hub) çeşitli uygulama ve ev otomasyon sistemlerini kontrol etmek amacıyla geliştirilmiş bir cihazdır. Bir internet bağlantısıyla, evin güvenlik sistemleri, garaj kapıları ve eğlence sistemlerini kontrol edilebilmektedir. Cihazlar 300 dolara, güncellemeler ve yeni özellikler için ömür boyu abonelik vaadiyle satılmaktadır. Revolv Hub’ı üreten şirket 2014 yılında Google’ın nesnelerin interneti şirketi, Nest tarafından satın alınır. Nest, 2016 yılının nisan ayında Revolv’u artık desteklemeyeceğini ve yazılımla çalışan uzaktan kumandalarını çalışamaz hale getireceklerini duyurur. 15 Mayıs’taki yazılım güncellemesiyle Revolv uygulaması artık açılmamakta ve dağıtım kutusu çalışmamaktadır (http://www.businessinsider.com/revolv-smart-home-hubs-lifetime-subscription-bricked-nest-google-alphabet-internet-of-things-2016-4). Şirketler iflas edebilir veya belirli bir sektörden çekilebilir. Bunun satın aldığınız ürünü etkilememesi gerekir. Ama dijital nesnelerde yazılıma sahip olunmadığında satın aldıklarınız da şirketle beraber batıp gider. Lisanslar iki taraflı sözleşmeler olsaydı Google böyle bir karar veremeyecekti. Perzanowski ve Schultz (2016) ileride Google’dan araba satın alırken tekrar düşünmemizi öneriyor!

Ama Google’a da haksızlık etmemek gerekir, bu stratejisinde yalnız değildir. Meşhur traktör üreticisi John Deere’ın yeni traktörleri, motorun çalışmasından kol dayama yerine kadar traktörün çeşitli fonksiyonlarını kontrol edebilen en az sekiz yazılım ve donanım bileşeni içermektedir. Geçmişte, traktörlerin tamamen mekanik olduğu zamanlarda çiftçiler ihtiyaç halinde bakım, parça değiştirme ve tamir işlerini kısmen veya tamamen kendileri de yapabilmekteydi. Şimdi ise traktörleriyle aralarında bir yazılım katmanı vardır ve daha önce kendilerinin veya yakınlarındaki tamircilerin yaptığı işlemler için John Deere’nin yetkilendirildiği servislere gitmeleri gerekmektedir. Yüksek soğutma suyu sıcaklığından düzgün çalışmayan frene veya basit bir koltuk arızasına kadar Deere’e başvurmak ve yüksek paralar ödemek zorunda bırakılırlar. Çiftçiler bunun üzerine Telif Hakları Bürosu’na başvurarak kendi traktörlerini onarma, iyileştirme ve değiştirme hakkı talep ederler. John Deere, sorun ne kadar basit olursa olsun çiftçilerin dijital kaputu açmaya haklarının olmadığını, lisans sözleşmesi gereği sadece traktöre fiziksel olarak sahibi olduklarını ama yazılıma herhangi bir biçimde müdahale etme haklarının olmadığı yanıtını verir. John Deere böylece hem traktörlerinin fiyatını efektif olarak yükseltmiş olmakta hem de tamir sektörüne yaşama alanı vermemektedir (https://modernfarmer.com/2016/07/right-to-repair/). Perzanowski ve Schultz (2016), benzer sorunun nesnelerin internetine de içsel olduğunu belirtmektedir. Birçok durumda nesneleri dijitalleştiren yazılım ve nesneyi satın aldığımızda bu yazılıma da sahip olup olmadığımız sıklıkla ihmal edilen bir konudur.

Ferrari, Ford, General Motors ve Mercedes-Benz gibi ünlü otomobil üreticileri de John Deere’le aynı çizgidedir. Aracın sahipliğiyle yazılımın sahipliğinin karıştırılmaması gerektiği, şirketin yazılımın tek sahibi olduğu öne sürmektedirler. Ayrıca lisanslarında otomobildeki yazılımlara (uzaktan erişim de dahil) her türlü müdahale hakkına sahip oldukları da belirtilmektedir. Aracınızdaki yazılımlar güncellenebilir veya araçtaki dijital veri rızanıza gerek kalmadan silinebilir. Daha da kötüsü aracınız hiçbir mekanik arızası olmadığı halde çalışmayabilir. Kızını doktora yetiştirmeye çalışan Mary Bolender’in başına geldiği gibi araba taksitini üç gün geciktirdiğinizde aracınızın çalışması, ona en ihtiyaç duyduğunuz anda içindeki yazılımla engellenecektir (https://dealbook.nytimes.com/2014/09/24/miss-a-payment-good-luck-moving-that-car).

Bu örneklerden de görülebileceği gibi nesnelerin internetinde çalışan yazılıma sahip olmadığımızda çoğu insanın korktuğu yapay zekalı robotların saldırısından daha tehlikeli bir durumla karşı karşıya kalırız. Etrafımız bizim olmayan nesnelerle sarıldığında şirketler ilişkilerimizin kontrolünü de ele geçirmektedir. Nesnelerin internetini anlatmak için sık sık başvurulan akıllı buzdolabımız geleceğimize sahip çıkamazsak ne yiyeceğimiz konusunda da belirleyici olacak. Bu gücün, bizi daha sağlıklı beslenmeye yöneltmek amacıyla kullanılmayacağını tahmin etmek güç olmasa gerek…

Alternatif?

Dana Lewis ve kocasının yaptıkları, kullanıcılar ellerindeki nesnelerin gerçekten sahibi olduğunda neler yapılabileceğini göstermektedir. Lewis, Seattle’da glikoz monitörüne bağlı yaşayan bir şeker hastasıdır. Elinde taşıdığı kablosuz cihaz Lewis’in kan şekeri çok düştüğünde ya da yükseldiğinde uyarmaktadır. Lewis, uyarı sesini duyamadığından eşiyle beraber programı değiştirerek daha yüksek sesle uyarı vermesini ve sonrasında da bu bilginin diğer mobil cihazlara ulaştırılmasını sağlarlar. Bundan sonra Lewis’in insulin rejimine yoğunlaşırlar. Normal şartlarda hastalar insulin düzeylerini elle düzenlemektedir. Ellerindeki verileri analiz ederek geliştirdikleri algoritmayla insulin düzeyinin ayarlanmasını otomatize etmeyi başarırlar. Ayrıca Lewis’in 30, 60 ve hatta 90 dakika sonraki insulin ihtiyacı tahmin edilebilmektedir. Hatta şimdilerde bu süreci tamamen otomatize etmek için yapay bir pankreas geliştirmeyi de düşünmekteler. Kullanıcılar nesnelerin gerçekten sahibi olduklarında yapabileceklerinin sınırı yoktur: nesneleri istedikleri gibi değiştirebilir, ihtiyaçlarına uyarlayabilir ve yenilikçi çözümler geliştirebilirler.

Sonuç

Son yıllarda ücretlerdeki düşüş ve işsizlik insanları farklı seçeneklere yöneltiyor. Perzanowski ve Schultz’un (2016) belirttiği gibi insanlar alım güçleri düştüğü için Uber gibi alternatifler cazip geliyor. Netflix ve Spotify için de durumun pek farklı olmadığını söylüyor. Dolayısıyla, “müzik eserlerine sahip olmak her zaman iyidir, abonelik her zaman kötüdür” diyerek kestirip atamayız. Ama tüketicilerin, yaptıkları işlemler hakkında bilgilendirilmesi, kabul ettiği sözleşmenin (reklamlarda Buy! yazmasına rağmen) bir abonelik sözleşmesi olduğunu bilmesi lazım. Ayrıca, insanların birbirleriyle paylaşabileceği bireysel mülkiyetinin olmaması kültürel yapıda önemli değişimlere neden olabilir.

En önemlisi de “dijital bir nesne satın aldığınızda, neyi satın olmuş oluyoruz?” sorusunun net olarak yanıtlanması gerekiyor. Lambalarımız, termostatımız, fırınımız, kahve makinemiz, buzdolabımız elimizden uçup gidiyor. Bizim olmayan nesnelerin internetinde ve dijitalleşen nesnelerde şirketlerin temel tezi nesneyi sattıkları, ama yazılımı satmadıkları.

O zaman yazılımı ve onun ürettiği veriyi de talep etmek gerekiyor…

Notlar:

[1] İlk üçü arasındaki ayrım dijitalleşmeyle yaşanan değişimin anlaşılabilmesi için önemlidir. Dördüncüsü, güvenlik, taksi plakası ve hükümet tarafından tanınan bir işi yapabilme lisanslarında olduğu gibi fiziksel bir varlığı olmayan, ama fikri mülkiyet kapsamına alınamayacak alanları kapsamaktadır.

[2] Bulut bilişim, TSE’nin tanımına göre “işlemci gücü ve depolama alanı gibi bilişim kaynaklarının ihtiyaç duyulan anda, ihtiyaç duyulduğu kadar kullanılması esasına dayanan, uygulamalar ile altyapının birbirinden bağımsız olduğu ve veriye izin verilen her yerden kontrollü erişimin mümkün olduğu, gerektiğinde kapasitenin hızlı bir şekilde arttırılıp azaltılabildiği, kaynakların kullanımının kolaylıkla kontrol altında tutulabildiği ve raporlanabildiği bir bilişim türüdür.”

[3] Buradaki örnekler, Perzanowski ve Schultz’dan (2016) alınmıştır.

Kaynaklar

Aksu, M. (2016). İnternet Üzeri̇nden Yayılan Eserlerde Tükenme İlkesi̇? (Di̇ji̇tal Tükenme İlkesi̇?). Ticaret ve Fikri Mülkiyet Hukuku Dergisi, 2(1).

Geray, H. İletişim, İktisat ve Kamusal Düzenleme Üzerine, İletişim Ağlarının Ekonomisi, Der: Başaran F. ve Geray H., Ankara: Ütopya, 2016.

Morris, D. (2014). Sağlık Hizmetlerinde Topyekun Reform Nasıl Kazanılır?, J. Walljasper, Müştereklerimiz: Paylaştığımız Herşey, Metis Yayınları

Perzanowski, A. ve Schultz, J. (2016). The end of ownership: Personal property in the digital economy. MIT Press.

İzlem Gözükeleş  23 Kasım 2017

gezegen.linux.org.tr

January 14, 2018

Ohne Dich

Bu biraz yaklaşım meselesi, biraz da tecrübelerin sonucu aslında. Ben şu an şu dakika bi şeye girişsem genelde o iş yolunda gitmez:) Zamanla çözerim, yoluna sokarım ama çabaladıkça batanlardanım aslına bakılırsa. Biraz durmam lazım. Bataklığın kurumasını bekleyip sonra çıkmalıyım, acele edince iyice kontrolü kaybediyorum. Sonunda yorgun ve usanmış bir halde kenara bırakıyorum her şeyi.

Bi kaç haftadır işlerim deli yoğun, güzelim Arduino’m ile takılamıyorduk. Sabah tertemis bir gün olsun dedim gayet basit, ilkel bir proje olan ortam sıcaklığı ölçme projesinin devresini kurdum. Kodu da satır satır anlatabilirim, zaten 16 satır toplamı. Fakat ancak..

Monitor bi sayı gösteriyor ki, imkansız. Tabi ben coder değilim ama Linux kullanıcısı olarak duruma aşinayım. Dedim kesin bir yerler atlanmış, bi sıfır eksik, bi değer kayıp. Bu sanırım 20. denemem falandır Arduino ile. Verilen kodların çoğunda hata vardı, bir kısmını deneye deneye düzelttim. Bir kısmı için ortalıkta kod aradım. Ama bu sefer kod %100 doğru, her yerden doğruladım. Üstelik tamamen anlamışım. Devre zaten basit. Acaba sensörde kutup hatası mı yaptım diyorum. Bi de tersini denedim. Tamam değer değişti ama hala makul değil. Kablolar kısa olsun denildi, değiştirdim. Denedim, denedim, denedim.

Yabancı bir anlatıma dikkatle baktım, bi de o şekil yazdım kodu, aynı. Akla gelmez ama sondaki bir youtube yorumu ile anladım durumu.

“sensoru cıkardım gene sıcaklık olctu”

Benden önce bir paket de iş yerimdeki bi arkadaş almıştı. Sensörleri evirdik çevirdik, şu heralde bu, bu heralde şu. Şimdi bu sensörler mini mini yaratıklar. Birbirine çok benzeyenleri var üstelik. Ve ben ayrıntı görmekte delice zorlanan bir insanım çünkü hep bütüne yönelik bir bakışım var. Tabi başka bi benzer sensör ile deneyince de değerler okudum, yanlış değerler:)

Neyse evim 21° C.

Sonrası 4’lük ekran ve pille istediğim yere taşınabilir olması tabi. Chai Tea Latte sonrası deneyeceğim onu, şimdilik arrivederci!

 

Openbox’a Panel Ekleme

Openbox’u kurup da giriş yaptığınızda, ortada bir sağ tık menüden başka hiçbir şey bulamazsınız.Bu noktada kullanıcı ne yapacağını bilmediği için, çok sıkıntılı bir durumla başbaşa kalabilir.İşte bu nedenle Openbox yazı dizimin bu durağında Openbox’a nasıl panel ekleyebileceğimize değineceğim.

Openbox’ta kullanılabilecek birçok panel uygulaması mevcut.Openbox’a en çok yakışan ve en çok kullanılan panel uygulaması ise tint2‘dir.tint2, yüksek derecede kişiselleştirilebilir, hafif bir panel/görev yöneticisidir.Her dağıtımın depolarında bulmak mümkündür.tint2‘yi kurduktan sonra autostart dosyasına aşağıdaki gibi kaydetmek, başlangıçta çalışması için yeterlidir:

tint2 &

tint2 düzenleme dosyası /home/kullanıcı_adı/tint2/tint2rc dizin yolunda bulunur.Düzenlenmiş dosyaları ise internette birçok sitede bulmak mümkündür.(deviantart.com, box-look.org …)

January 13, 2018

Linux’te Spectre & Meltdown CPU Kontrolü Nasıl Yapılır?

Intel, AMD ve ARM işlemcilerde, “Meltdown” ve “Spectre” adlı güvenlik açıklarının olduğu tespit edildi. Bu güvenlik açıkları sadece bilgisayarları değil, aynı zamanda akıllı telefon ve tablet gibi cihazları da etkiliyor. Linux’te bu açıkları kontrol etmek için aşağıdaki basit scriptten yararlanacağız. Spectre & Meltdown CPU Kontrolü Nasıl Yapılır? Spectre & Meltdown Checker isimli scripti

January 12, 2018

warning: remote host identification has changed

Ssh protokolü ile uzaktaki bir makinanıza bağlanmaya çalıştığınızda “warning: remote host identification has changed” uyarısını alıyorsanız muhtemelen ayını ip ile başka bir kurulum gerçekleştirmiş olabilirsiniz. Bu durumda ssh in çalışma prensibi doğrultusunda daha önceden ilgili ip için atanan public key numarası doğal olarak değiştiğinden ve sizin(yani ilgili kullanıcının) /.ssh/known_hosts dosyasında bulunan eski identification eşleşmediğinden bu...

Continue Reading

January 11, 2018

Openbox Sağ Tık Menüye ‘Kapat’ Menüsü Ekleme

Openbox kullanıyorsanız, menüde bir kapat seçeneğine ihtiyacınız vardır.Bunun elbette çeşitli yolları var.Ben bu yazımda, severek kullandığım küçük bir betikten söz edeceğim.

Başlayalım…

Öncelikle, gxmessage paketini sistemimize kuruyoruz.

#apt-get install gxmessage

Ardından, metin editörümüzle ve yönetici haklarıyla /etc/sudoers dosyamızı açıyoruz.

#leafpad /etc/sudoers

Dosyanın en altına,

kullanıcı ALL=NOPASSWD: ALL

Satırını yapıştırıyoruz ve kaydedip çıkıyoruz.(kullanıcı yerine kendi kullanıcı adımızı yazıyoruz.)

Bu işlemlerden sonra sıra geldi betik dosyamızı oluşturmaya.Metin editörümüzü açıyoruz ve içine aşağıdakileri yapıştırıyoruz.

#!/bin/bash

gxmessage "Bilgisayarınızı kapatmak istediğinizden emin misiniz?" -center -title "Take action" -font "Sans bold 10" -default "Cancel" -buttons "_Vazgeç":1,"_Oturumu Kapat":2,"_Yeniden Başlat":3,"_Kapat":4 >/dev/null

case $? in
1)
echo "Exit";;
2)
killall openbox;;
3)
sudo shutdown -r now;;
4)
sudo shutdown -h now;;
esac

Oluşan dosyamızı kapat ismiyle isimlendirerek (ya da nasıl istersek) kaydediyoruz.Kaydettikten sonra dosyamızın üzerine sağ tıklayıp, Özellikler ->İzinler yolunu takip ederek Erişim konrolü‘nü Herkes olarak ayarlıyoruz. kapat dosyamızı istediğimiz bir yere konumlandırıyoruz.Ben bunun için ev dizinimde oluşturduğum Scripts klasörünü tercih ediyorum.Ayrıca istersek betik dosyamızdaki yazı fontunu da değiştirebiliriz.

Şimdi sıra geldi sağ tık menümüze Kapat seçeneğini eklemeye.Bunun için de Obmenu‘yü açıyoruz ve yukarıdan New Item kutucuğuna tıklıyoruz.Gerekli yerleri dolduruyoruz.

Label: Kapat
Execute: ~/Scripts/kapat

Kaydedip çıkıyoruz.En son sağ tık menüde oluşturduğumuz Kapat menüsüne tıklayarak sonucu görüyoruz.

January 07, 2018

Hard Drive Encryption

Hard drive encryption is a process of converting your readable data into something unreadable to protect it. With hard drive encryption, you will prevent unauthorized access to your data. There are two types of hard drive encryption: 1- Software-based encryption, 2- Hardware-based encryption. In this post, we will talk about the software-based solutions. Most implementations of hard drive encryption encrypt the whole disk except the bootable part like the Master Boot Record (MBR) or GPT. Some hardware-based encryption programs encrypt the whole disk including the booting part.

Benefits of Full Disk Encryption

Compared to single file or folder encryption, full disk encryption has many advantages:

  • Encrypting everything including the Temp files and runtime generated files which may contain sensitive data.
  • There is no chance for the user to forget files to encrypt. This is important because the user may forget to encrypt some sensitive files.
  • Instant data destruction, the user can simply destroy the encryption keys so the encrypted data becomes useless. However, if this is your concern, destroying the physical media is preferred.

Full Disk Encryption is Not 100% Safe

Most of the full disk encryption programs are vulnerable to many attacks like:

Cold boot attack: when the attacker has a physical access to the computer, he can retrieve the encryption keys from the system after rebooting the system using a cold reboot technique and the data remains in the RAM for minutes after shutting down the system.

If your password that is used for decryption is not strong enough, the attacker may brute force your password and find your password easily.

Also, the disk encryption programs are vulnerable to acoustic cryptanalysis which is the sound emitted by the computer keyboard and internal computer pieces.

Another risky issue which is data tampering, so if the attacker tampers your encrypted data, your data would be decrypted to useless random data.

Implementations

There are many free and commercial hard drive encryption implementations available for you to use, we will discuss the best of them.

  • BitLocker
  • CipherShed
  • DriveCrypt
  • Check Point Full Disk Encryption
  • McAfee Drive Encryption
  • VeraCrypt

BitLocker

If you are using windows 10 pro, you can use BitLocker by enabling it from Start > PC Settings > System > About > BitLocker Settings then you can turn on BitLocker on the partition you want.

Anyway, if you try to turn BitLocker on for the operating system partition, you will see an error says that the administrator MUST allow BitLocker without TPM (Trusted Platform Module).

Most modern PCs contain this TPM chip, or if you are building your PC, you can put a TPM chip and integrate it on your PC.

This is because the encryption keys are stored on that chip. It decrypts your data automatically once you enter your Windows password.

If somebody tries to remove your drive from the computer to decrypt it, he can’t, since the decryption keys are on the TPM chip.

TPM is a hardware-based encryption which is more powerful and protected against Cold boot attack and brute force attacks

However, you can bypass this requirement and use BitLocker without TPM.

Use BitLocker without TPM

Click Start > Run and type gpedit.msc and hit enter.

Go to Computer Configuration -> Administrative Templates -> Windows Components -> BitLocker Drive Encryption -> Operating System Drives

Open the “Requires additional authentication at startup” and Enable it and make sure that BitLocker without TPM is enabled as shown and click OK.

Now it will work.

CipherShed

CipherShed is a free open source encryption program. It’s a continuation of Truecrypt program which is discontinued now.

CipherShed works on Windows, Linux, and Mac OS X. and the encryption goes on the fly.

You can use CipherShed to encrypt individual files or entire drives. After you encrypt the drive, you can mount that drive through CipherShed.

Notice that there are no packages for Linux and OS X, but you can compile the source code and make your package.

For Windows users, you can download it from here

So for the people who missed Truecrypt, you should try this one.

DriveCrypt

DriveCrypt is paid program. It uses 1344-Bit string encryption.

It uses the same technologies as used by FBI and CIA.

There is a special feature called Steganographic where you hide your sensitive files into music files.

You can have many users with different privileges.

You can try DriveCrypt for free for 30 days from here

Check Point Full Disk Encryption

Check Point Full Disk Encryption encrypts all of your files, data, temp files, system files, and even erased files for maximum security.

Check point full disk encryption is certified for FIPS 140-2.

Logical partitions are encrypted sector by sector. Any attempt to copy single files are blocked even if the drive is attached to another system.

Your system will boot with a multi-factor authentication to ensure maximum security. This feature is called pre-boot authentication.

There is a central panel for administration for managing policies, users, and options.

You can try a free trial from here.

McAfee Drive Encryption

McAfee drive encryption forces strong access control with pre-boot authentication.

It offers strong encryption.

Supports multiple device environments, including solid-state drives.

You can download it from here.

VeraCrypt

VeraCrypt is another free open source disk encryption program that is based on Truecrypt.

It can open Truecrypt encrypted drives, and also you can convert Truecrypt drives to VeraCrypt format.

It works on multiple platforms like Windows, Linux, and Mac OSX.

You can choose between many encryption algorithms to encrypt your drives.

One of the cool features for Raspberry Pi users, there is a VeraCrypt for Raspberry Pi.

You can download it from here

There is a lot of hard drive encryption programs available on the web, we choose the best and the most used programs.

likegeeks.com

ip adresi bulma servisimiz açılmıştır.

Zaman zaman gerekli olduğunda başvurduğum ip adresi tespit siteleri var.

Bir tane de bizden olsun istedim.

Bu servisi esasen yakın zamanda yazmayı düşündüğüm Bind9 Dinamik Güncelleme makalesi için ön hazırlık yapmak amacıyla oluşturdum.

Hayırlı olsun. 🙂

Adres: http://ip.truvalinux.org.tr/

 

 

 

 

 

ip adresi bulma servisimiz açılmıştır. yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

Debian’da Uçbirimden(Terminal) Kablosuz Ağa Bağlanma

Zaman zaman çeşitli durumlarda; özellikle de Debian minimal kurulum yaparken; kablosuz ağlara terminalden bağlanma gereği duyuyorum.Şimdi birkaç adımda bunu nasıl yapabileceğimizi görelim.

Baştan belirteyim ki aşağıdaki işlemler Debian üzerinde denenmiş ve uygulanmıştır.

1-Kablosuz arayüzünü bulma ve aktif etme:

iwconfig

ip link set wlan0 up

(wlan0 yerine wlp2s0 veya wlp3s0 vb. gibi de olabilir)

2-Çevredeki kablosuz bağlantı noktalarını bulma:

iwlist scan

3- /etc/network/interfaces dosyasını düzenleme.Bunun için ben nano kullanıyorum.(Bu işlemler kurulu bir sistemde yapılıyorsa, bir metin editörü de kullanılabilir.)

nano /etc/network/interfaces

Dosyayı aşağıdaki şekilde düzenliyoruz:

auto wlan0

iface wlan0 inet dhcp

wpa-ssid xxx

wpa-psk xxx

( xxx yerine kendi ağımıza ait olan bilgileri yazıyoruz.)

Düzenlemeyi bitirdikten sonra, Ctrl+x kombinasyonuyla kaydediyoruz.

4- Aktif etme, bağlanma:

dhclient wlan0

(Bu komuttan sonra bazen yeniden başlatma gerekebiliyor.)

Hepsi bu kadar.Artık internete bağlanabiliriz.

January 04, 2018

Nasıl: Openbox’ta “autostart” Dosyası Oluşturma

Openbox kurduk.Ama henüz simsiyah bir ekrandayız.Yapılandırma için bir yerden başlamak gerekiyor.Öncelikle bize bir panel, panelde gerekli uygulamalar lazım.Bu uygulamarın da başlangıçta çalışması gerekiyor.İşte autostart dosyası, sistemin başlangıcında çalıştırılması istenen uygulamaların girdisinin yapıldığı dosyadır.

autostart dosyası /etc/xdg/openbox  dizin yoluna bulunur.Ancak  /home/kullanıcı/.config/openbox dizin yolunda openbox klasöründe bulundurmak, daha pratik kullanım ve kolay ulaşım imkanı verir.

/home/kullanıcı/.config/openbox dizin yolunda autostart dosyamızı oluşturduk(dosya isminin küçük harfle başladığına dikkat edelim). Şimdi autostart dosyasına, sistem açıldığında bize lazım olacak en gerekli şeyleri açıklamalarıyla beraber ekleyelim.Bunun için dosyaya başlangıçta çalışmasını istediğimiz uygulamaları aşağıdaki şekilde girerek kaydetmek yeterlidir.

tint2 & #panel

nm-applet & #ağ yöneticisi

volumeicon & #ses yöneticisi

nitrogen --restore & #eğer masaüstü arka planını değiştirmek için nitrogen kullanıyorsak, seçtiğimiz arka planın her yeniden başlatmada kaybolmamasını sağlar

Bütün bu işlemlerden sonra, artık sistemimiz açıldığında, başlangıçta çalışmasını istediğimiz uygulamalar masaüstünde bizi bekliyor olacaktır.

January 03, 2018

Linux Mint 19’un Kod Adı Belli Oldu

Linux Mint 19.x serisinin isminin "Tara" olduğu belirtildi. Tara, İrlanda’da popüler bir isim ve Linux Mint’in blogunda söylediklerine göre aynı zamanda çok sevdikleri birinin de ismi. Linux Mint 19 "Tara" Ne Zaman Çıkacak? Linux Mint 19, tahmini olarak Mayıs/Haziran 2018 gibi çıkacak. Linux Mint 19.x sürümleri Ubuntu 18.04 LTS tabanlı olacak ve 2023’e kadar desteklenecek. Linux Mint 19.

January 02, 2018

systemd-analyze blame Komutunu Keşfedelim – Redhat7, CentOS7, Ubuntu16

Bu makalemde çok hoş bir şekilde deneyimsellediğim bir durum ve komuttan bahsedeceğim. Bir komut nedir.? Diyebilirsiniz. Fakat sistem yöneticileri için özellikle de Linux Admin’leri için bir komut bile yeri geldi mi can kurtarıcı bir duruma dönüşebilir. Uzun süredir bakmadığınız yada başkası tarafından kurulup çalışan, sonradan yönetimi devraldığınız bir sunucuda yaşayabileceğiniz bir durum olabilir. Bende böyle...

Continue Reading

January 01, 2018

NFS(Network File System) nedir.? NFS Server ve Kullanıcı Yapılandırması

Sun Microsystems tarafından geliştirilen Unix/Linux dosya paylaşım servisi olup, Linux sistemler arasında dosya paylaşamını sağlayan ve stabil çalışan bir teknolojidir. Tabi ki açık kaynak kodludur deyip bu kadar teorik bilgide noktalasak yeter herhalde. Hemen yapılandırma ve kullanımına girmeliyiz. Ortamda Sunucu ve İstemci modeli ile çalışacağız. Yani Hem Server tarafında yapmamız gerekenler var hemde bunu Client...

Continue Reading

Pencere Yöneticisinden Masaüstü Ortamına: Openbox’u Dönüştüren Uygulamalar/Araçlar

Buradaki yazımda Openbox’u tanımıştı.Bu yazımda ise, Openbox’u bir kara kutudan alıp bir masaüstü ortamına çeviren uygulamalardan/araçlardan bahsetmek istiyorum.Hemen bir not ekleyeyim yeri gelmişken: Benim burada sözünü edeceğim uygulamalar/araçlar, tamamen benim tercih ettiklerimdir.Bunlardan başka, var olan çok fazla sayıda farklı uygulamalar/araçlarla da aynı/benzer işler yapılabilir.

Aşağıda bahsedilen uygulamalar/araçların bir kısmı Openbox’un kendisine ait iken, bir kısım uygulamalar/araçlar ise LXDE, XFCE, GNOME gibi masüstü yöneticilerine aittir ve Openbox ile sorunsuz çalışmaktadır.

openbox-menu: Sağ tık menümüze bir uygulamalar menüsü ekleyen bir pipe-menu’dür.

PCManFM: Daha çok LXDE ve Openbox ile tercih edilen gayet hafif, kolay ve işlevsel bir dosya yöneticisidir.

lxterminal: LXDE’ye ait bir uçbirim uygulamasıdır.

Leafpad: Kolaylığı ve sadeliği ile gönlümü çalmayı başaran bir metin editörüdür.

ObMenu: Openbox menü düzenleme aracıdır.

ObConf: Openbox yapılandırma aracıdır.Tema, yazı tipi ayarları vb. yapılabilir.

lxapperance: LXDE görünüm özelleştirme aracıdır. Gtk teması ayarları, simge ayarları gibi birçok ayar  yapılabilir.

tint2conf: Openbox ile  kullanımda tercih edilen tint2 panel düzenleme aracıdır.Bu araca rağmen benim tercihim tint2 dosyasını elle düzenlemekten yanadır.

Nitrogen: Masaüstü resmi değiştirme/düzenleme aracıdır.

xarchiver: Gayet hafif ve basit bir arşiv yöneticisidir.

ePDFViewer: Sade, hafif ve hızlı bir PDF görüntüleme aracıdır.

gnome-screenshot: GNOME masaüstü yöneticisine ait ekran görüntüsü alıcısıdır.Diğerlerine nazaran biraz daha fazla işlevsel olduğu için tercih etme sebebimdir.Elbette Scrot ta ekran görüntüsü almada uçbirim sevenler için idealdir.

ARandR: Projeksijon vb. ekranlara bağlanmayı sağlayan birekran yerleşimi düzenleyicisidir.

Volumeicon: Ses ayarlarını yapmayı sağlayan bir ses yönetisidir.

nm-applet: Ağ bağlantılarını düzenleyen bir ağ yöneticisidir.Bir diğer seçenek olarak Wicd de tercih edilebilir.

xfce-power-manager: XFCE masaüstü ortamına ait güç yöneticisidir.

Mirage: Hafif ve hızlı bir resim görüntüleyicidir.

Feeds