Monday, January 05, 2015

Windows ile Linux kıyaslaması: 7 puanla herkes şampiyon

Çok uzun süredir hem Linux hem de Windows kullanmış biri olarak, kullandığım bilgisayarlarda Windows mu Linux mu yüklenmeli sorusuna cevap aradım. Uzun bir karşılaştırma yapmadan önce cevabı vereyim:
 - Pil ömründe Windows ve Internet Explorer ayrıca Office çok tartışmaya yer bırakmayacak şekilde başarılı
 - Office için para verip Office 365 aldım, ne teknik servis desteğinden memnunum ve LibreOffice veya WPS kadar bile stabil değil. Defalarca dosya açarken sorun oldu kapandı vs.
- Libreoffice'e aman dikkat, bug geliştirme vs derken bence profesyonel işler için süper iyi değil. Başıma gelen bir olayda, kafa geçer gibi forumlarda "bir bug vardı, çözülmedi ilerde çözülür" tarzı geyikler de çekilir değil. Sorunum şuydu: Libreoffice de yazdığım makalenin resimlerini docx sakladım diye resimler dosyanın içine kaydedilmemiş.
- Libreoffice'in başarılı olduğu yerler var, ama Libreoffice communitesi kendi standart vslerin peşinde, microsoft uyumluluk hak getire
- Çinliler WPS office (http://wps-community.org/download.html) diye birşey geliştirmiş, Linux için her derdime deva oldu. Bir tek -şimdilik,2014- Excel'de grafikleme yapamıyordu. Görüntü bile aynı, tavsiye ederim
- Linux kominitesinde açık kodcular, kapalı kodcular vs gibi bir sürü siber-ideoloji mevcut. Ben Debian'da, Ubuntu'da, Suse'de kurdum. FreeBSD'de... Debian çok hızlı açılıyor ama biraz profesyonellik istiyor. Yeni başlayanlar için biraz zor ama sağlam, stabil, temiz, fakat pil ömrünü perişan ediyor. (TLP felen filan herşeyi kurdum, sistem idle'ken fan ölümüne çalışıyor, ne mantık anlamadım, oturup window manager ayarlarını değiştir iş üstüne iş)
- Ubuntu güvenilir rota, ama yüklerken dikkat edin LTS olanlarını mesela 14.04'ü yükleyin, zırt pırt üst sürüme yükseltmeden güncelleyin. 14.10 LTS değil.(long term support, uzun süreli destek)
- Linux'de video sürücüler hep problem, yani kurursun çalışır, güç modunu ayarlamak bir iş, şanslıysan kendi halleder. O yüzden ekran güzel gösteriyorsa öyle config dosyaları ile çok oynama
- Pil ömründe Chrome bilgisayarın haşatını çıkarıyor, Firefox efendi, Internet Explorer tasarruflu. Chrome'da konfor ve hızlılıkta yüksek ama sistemdeki kaynakları yiyip bitiriyor. Windows 8.1 + Explorer = En enerji verimli (nokta)
- Pil ömrü için çok fazla tab açmayın, Flash mlash da çok kullanmayın. Windows'da kendi media playerini kullanırsanız, pil ömrü de gayet güzel
- Şarja bağlı iseniz, Linux + WPS Office, bence harika, yalnız bazı ayarlara dikkat etmezseniz, bilgisayarı uyutursanız öpseniz de uyanmıyor. Özellikle bazı Windows managerlerda
- Dokunmatik açısından Ubuntu çok iyi, fakat Windows 8.1 azcık daha iyi. Ubuntu'nun kendi görüntü yöneticisi (Unity) güzel, fakat uyutup kaldırınca kilit ekranın klavye çıkmıyordu bende.
- Performans olarak, Linux hep aynı hızda, 3 yıl da geçse eğer çok karıştırmadıysanız, güzel çalışıyor. Yalnız herşeyi bir cache'a alma merakından neyi çalıştırırsanız ilkinde biraz yavaş olabiliyor.
- Windows performansı ise tam bir obez performansı, alınca süper hızlı, kullandıkça 6 ayda yavaşlıyor
- Virüs konusunda kimsenin güvencesi yok, Linux'de yazmak daha zor belki ama yok değil, rootkit'ler felen teknoloji gelişkin
- Windows kullananlar için Linux kullanmak, yeni bir dil öğrenmek gibi, o yüzden bilgisayarı silip Linux yüklemeyin. Ben hanıma yaptım,bilgisayardan soğudu.
- Windows'ta daima Virtualbox.org 'dan indireceğiniz bir VirtualBox programı ile sanal makine'de kurun ve çalıştırın. Ubuntu ile başlayın, Debian'a sonra geçin, sonra da FreeBSD felen yaparsınız.
- Bilgisayarınıza Linux kurmaya karar verdiğinizde, eski sistemi silmeyin, dahi gibi gözüken klavyeden prangaları olan tiplere inanmayın. Daima silmeden kurdurun. Bu GParted ile mümkün.
- Bilgisayarınızda RAM-2GB'dan az ise Linux'te Lubuntu vs kurabilirsiniz.
- Linux'e Office 2007 yüklemek mümkün, Wine diye bir Windows Emulatorü var(Aslında açık halinde emülatör değil diyor ama neyse). Her türlü Windows programını kurmaya çalışabilirsiniz. (bilgiler burada: https://www.winehq.org/)
- Wine'a Office 2007'yi kurduktan sonra ne güncelleme eklesek çalışamaz hale geldi, mesela PDF dönüştürücüyü bir kurduk "Save as" yapınca Office infilak ediyordu.
- Linux'de pil ömrünü LibreOffice uzatıyor gibi geldi, WPS çok pil çekiyor, bir de açar açmaz bir web tab'ı var, hemen internete bağlanıyor
- Linux öğrenilmeli ama üretkenliğinizi hızla düşürüyorsa, Windows'ta kalmalı... Linux'le gece gündüz forumlarda sorunlarınıza cevap aramak zorunda kalabilirsiniz.


Linux kullanacaksanız: Ubuntu + WPS Community (Office)
Windows için : Internet Explorer + Microsoft Office

Uzun Pil Ömrü için:
Windows+Internet Explorer
Ubuntu + Firefox + LibreOffice (veya Wine'a kurulu Microsoft Office)


Monday, December 22, 2014

Python'da Doğrusal bir kestirim çizgisi çizmek

Problem: Elimizde bazı sayılar var ve bu sayılara doğrusal bir trend/kestirim çizgisi çekmek istiyoruz?

Çözüm:
Önce Kaynaklar:

Farklı çizimler için: http://stackoverflow.com/questions/8409095/matplotlib-set-markers-for-individual-points-on-a-line
Doğrusal kestirim / lineer regresyon için : http://stackoverflow.com/questions/10048571/python-finding-a-trend-in-a-set-of-numbers

Önce yukarıdaki ikinci kaynaktan bir regresyon kodu aldık, sonra bir çizgi hesaplattık. Dikkat edilmesi gereken nokta, x ekseni hep 1,2,3.... vs diye başlıyor. Bu da range(##) komutu ile sağlanıyor.
import matplotlib.pyplot as plt

def linreg(X, Y):
"""
return a,b in solution to y = ax + b such that root mean square distance between trend line and original points is minimized
"""
N = len(X)
Sx = Sy = Sxx = Syy = Sxy = 0.0
for x, y in zip(X, Y):
Sx = Sx + x
Sy = Sy + y
Sxx = Sxx + x*x
Syy = Syy + y*y
Sxy = Sxy + x*y
det = Sxx * N - Sx * Sx
return (Sxy * N - Sy * Sx)/det, (Sxx * Sy - Sx * Sxy)/det

x = [12, 34, 29, 38, 34, 51, 29, 34, 47, 34, 55, 94, 68, 81]
a,b = linreg(range(len(x)),x) #your x,y are switched from standard notation
print a,b
extrapolatedtrendline=[a*index + b for index in range(20)] #replace 20 with desired trend leng

#combine two arrays
total=x+extrapolatedtrendline
plt.plot(range(len(x)),x,'ro--')
plt.plot(range(len(extrapolatedtrendline)),extrapolatedtrendline)

plt.ylabel("sayılar")
plt.show()




Saturday, April 12, 2014

Linux'de Tek Bir Programın, İstenildiği Zaman İnternet Bağlantısını Engellemek

Bazen bir uygulamanın internet erişimini engellemek isteriz, bunun için tüm interneti kaldırmak yerine o uygulamanın internet erişimini sınırlamakta fayda vardır. Dahası, o uygulamayı sadece istediğimiz zaman “internet erişimi engelli” olarak çalıştırmak isteyebiliriz. Konuyla ilgili bir çok forumda değişik anlatımlar var. Ben biraz daha basitleştirmeye çalışacağım.

Kısaca yapacağımız:
- “no-internet” diye bir grup oluşturup, programları sg komutu ile bu “no-internet” grubu ayarlarına göre çalıştıracağız. 
- ama “no-internet” grubunun da internet bağlantısını iptables ile koparacağız 
- ayrıca kendi kullanıcı adımızı da “no-internet” grubuna ekleyeceğiz ki, programları “no-internet” grubu ile çalıştırdığımızda bize şifre sormasın


Adım 1 – Bir “no-internet” grubu oluşturup kendi kullanıcı adımızı (Benim durumumda “baris”'i) bu gruba ekliyoruz.

sudo groupadd no-internet
sudo usermod -a -G no-internet baris

Şimdi logout olup çıkmanız gerekiyor ki, değişiklikler etkili olsun, ya da Adım 5'i bekleyin.


Adım 2 – Önce “Ana Kodu”muzu (“script”) yazacağız. Kodun ismi “ni” olacak. Komut satırında:

sudo nano /usr/bin/ni

yazıyoruz. Nano bir text editörü, açılan text editöründe

#!/bin/bash
sg no-internet “$1”

yazıyoruz. Ctrl-X ile save edip çıkıyoruz. Yukarıdaki komut ile ni 'den sonra gelecek ilk komutu ($1) no-internet grubu kimlik bilgileri ile çalıştıracağımızı belirtiyoruz.

Adım 3 - Şimdi de “ni” programını çalıştırılabilir (executable) bir hale getirelim:

sudo chmod +x /usr/bin/ni


Dikkat aşağıdakilerden bir tanesini uygulayın, ikisini de uygulamanız zarar vermez ama sonra ne yaptığınızı bir yere yazın. Ben (4.2)'yi tavsiye ediyorum.

Adım 4.1- Şimdi de “no-internet” grubumuz için kuralları oluşturalım:

sudo nano /etc/network/if-pre-up.d/iptables_no-internet_rule

Bu dosyanın içine :

#!/bin/bash
iptables -A OUTPUT -m owner –gid-owner no-internet -j DROP

yazıp save edip çıkıyoruz. Ardından bu dosyayı da çalıştırılabilir-executable yapıyoruz.

sudo chmod +x /etc/network/if-pre-up.d/iptables_no-internet_rule

Adım 4.2- ben yukarıdaki işlemin işlemediğini gördüm. Kullandığım distrodan dolayı herhalde

sudo nano /etc/network/if-up.d/iptables_no-internet_rule

Bu dosyanın için de

#!/bin/bash
iptables -I OUTPUT 1 -m owner –gid-owner no-internet -j DROP

yazıp save edip çıkıyoruz. Ardından bu dosyayı da çalıştırılabilir-executable yapıyoruz.

sudo chmod +x /etc/network/if-up.d/iptables_no-internet_rule


Adım 5 – Komutu çalıştırın

ni firefox
ni “komut 1 komut2”
ni komut


Referanslar: http://ubuntuforums.org/showthread.php?t=1188099



Sunday, March 16, 2014

Linux'de alt dizindeki tüm dosyaları kopyalamak/move

Komutu ile alt dizinlerdeki tüm jpg'leri, mevcut dizine kopyalamak mümkün, çok çok DİKKATLİ olun. Sadece kopyalamak için mv 'yi cp ile değiştirin

find ./ -name '*.jpg' -exec mv '{}' ./ \;

Monday, February 10, 2014

LEGO EV3 - Yürüyen daha doğrusu emekleyen robot

LEGO EV3'te uzun zamandır yürüyen bir robot yapıp yapmama kısmını düşünürken, bir iki denememi de paylaşayım...
Önce iki motorlu yürüyen bir robot yapmaya niyetlendim, hareketleri ev halkını çok güldürdü. İki motorlu yürüyen robotta temel problemler:
- Senkronizasyon sorunu çok önemli
- ikincisi de kablolardan dolayı EV3 kontrol ünitesini yukarı koymanız gerek

İki tane yürüyen robot denemesini burada paylaşıyorum... Birincisi çift motorlu, diğeri tek motorlu.

Çift Motorlu Robot

Tabii adaptörden dolayı, gücü düşük tutmak zorundaydım. O yüzden robot yavaş hareket ediyor gözükebilir. Bunları bir de pil ile deneyeceğim daha sonra... Senkronizasyon sorunlarına dikkat


Tek Motorlu Yürüyen Robot

Bir yandan da en basit yürüyen robotu yapmaya çalışma fikri uyandı. Masa kaygan olduğundan yürümekte zorluklar olduğu için ayaklara pabuç vari bazı dişliler taktım. Tabii ki tek motorlu olduğundan EV3 ünitesini üstüne yerleştiremedim.

Tek motorlu yürüyen robotun videosu da aşağıdadır. Çift motorludan daha iyi çalışıyormuş gibi gözüküyor.

LEGO EV3 - Giriş

LEGO EV3 daha çok oyuncak diye bilinse de, robot prototipleme konusunda piyasadaki "bant-makas-vida-çelik aksam" çıkmazından çok daha fazla opsiyon tanıyor.

EV3'ün iki modeli var, biri ev (HOME) biri de eğitim (EDUCATION)
Eğitim modelini tavsiye ederim ama bende ev tipi modeli var.

EV3'ün en önemli bir kaç sorunu:
- Kabloların kalın ve çok da esnek olmaması
- 6 kalem pil ile çalışması
- Labview kullanmanın kolay ama illa windows veya Virtualbox istemesi (Lejos'da var gerçi)

Önce 6 kalem pil alma fikri canımı çok sıktı. Bir de daha sonra öğrendiğim kadarı ile, 2-3 motoru eş zamanlı kullanmak çok fazla güç çekiyor, yani 500 mAh-9V'luk bir adaptör ancak motor gücünün %8'ini felen verebiliyor. Zorlanınca da EV3 kendini kapatıyor.

Adaptör :

Önce adaptör'den başlayalım - 6 pil alana kadar bir adaptör ile başlamak en iyisi geldi. Adaptörü nasıl bağlayacağınızı bilmiyorsanız, hiç bulaşmayın EV3'e zarar verebilirsiniz. Sakın ama sakın voltmetresiz bu işi yapmayın. Bu konuda hiçbir sorumluluk kabul etmiyorum.
















Ardından ilk robotu yapmak için uğraşmak 1 saat civarında tamam oldu. Fakat aşağıdaki şekilden görüldüğü üzere
http://www.legomindstormsev3.com/robotarm/
Adresindeki robotu yapmak yerine kendim doğaçlama birşeyler deneyeyim dedim. Doğaçlama biraz daha EV3 sistemi ile ilgili fikir veriyor. En önemlisi, büyük servoların ağırlığından dolayı dengeli bir robot kol yapmanız gerek.

Robot kol:

Robot kol için büyük ve ağır servoları daha aşağı tarafta, mümkünse dirsek altı noktalarda, orta servoyu da el hareketi için kullanmak gerekiyor. Aşağıdaki yaptığım yanlışlardan biri görülmekte, ağır servoları üst tarafa yerleştirince, denge problemleri ortaya çıkıyor.



















bir iki gün için 3-4 robot denemesi yapmak mantıklı.
Bir de unutmamak gereken bir nokta var
Motorlar A-B-C-D, sensörler 1-2-3-4'e bağlanmalı






Friday, February 07, 2014

Network appleti gidince

Mate Desktop'ta en sağ üstte network bağlantılarını gösteren icon kaybolursa
nm-applet
yazmak yeterli.

Thursday, February 06, 2014

LEGO EV3'ü Linux'te kullanma

Linux'te LEGO EV3 kullanmak gerçekten zormuş.
lsusb
veya 
dmesg | grep LEGO
dememe rağmen bir türlü device'i mount edemedim.
En sonunda virtualbox ile windows'dan labview'a mahkum oldum.
Fakat virtualbox'da önce Extension'ı yüklemeniz lazım o da
www.virtualbox.org 'da Downloads da var
VirtualBox 4.x.x Oracle VM VirtualBox Extension Pack
tüm sistemler için aynı.
Fakat extension kurmama rağmen LEGOyu veya USB'yi görmedi. Bir forumda gördüğüm aşağıdaki komutu yazdım. Virtualbox'da mevcut kullanıcının bir diski eklemesi için kendi kullanıcı ismini vboxusers grubuna eklemesi gerekiyormuş.
      sudo usermod -a -G vboxusers $USER
ardından bir çıkıp gireceksiniz (log-off ardından log in)
artık virtualbox USB'leri görecektir. 

Ses gidince

Linuxte ses gidince önce
pulseaudio -k && sudo alsa force-reload
deneyip de bir türlü sesi açamayınca en sonunda
pulseaudio --start
yaparak sesi tekrar almayı başardım

Sunday, June 16, 2013

Raspberry Pi and Arduino (Gertboard) serial communication

A serial communication between Raspberry pi and Gertboard's ATMEGA328p chip
Remember both system work at 3.3 V.
NEVER CONNECT RASPBERRY PI and ARDUINO DIRECTLY.
But if you have Gertboard, Atmega328p on Gertboard is working on 3.3V
There are two codes, one for Arduino, the other for Raspberry Pi

Also remember the Jumpers

  • J7 - 3.3V jumper should be inserted
  • Jumper - between MCTX-GP15
  • Jumper - between MCRX-GP14



-----------------------This is the code for Arduino-----------------------------------------

char incomingByte=0;
char inData[20];
int x=0;
 void setup() {
  // initialize serial:
  Serial.begin(9600);
}
 void loop() {
    Serial.print("hello print");
    x=0;
    while (Serial.available()>0){
      incomingByte=Serial.read();
      inData[x]=incomingByte;
      inData[x+1]='\0';
      x++;
    }
    Serial.println(inData);
    delay(1000);
}
-----------------------------------------------------------------------------------------------------

And there is the code for Raspberry Pi based on Python
-----------------------This is the code for Raspberry Pi-----------------------------------------


from time import gmtime, strftime
import time
import serial
import struct
ser = serial.Serial(‘/dev/ttyAMA0‘, 9600)

while 1:
        ser.write(“testing”)
        temp=strftime(“%Y-%m-%d %H:%M:%S”, gmtime())+'\t'+ser.readline()
        print(temp)
        time.sleep(1)
-----------------------------------------------------------------------------------------------------



Sunday, February 24, 2013

Nautilus desktop problem in Openbox

If you are using Openbox and if time to time nautilus blocks your menus; you should just type this in the terminal:

gsettings set org.gnome.desktop.background show-desktop-icons false
do not run with "sudo" since you want to change the settings for the current user



Wednesday, January 02, 2013

Ubuntu-Wine Office 2003 and 2007 together

From now on, I will post my experiences on Ubuntu, so I can find my solutions to problems later on...
My first post is on having Office 2003 and Office 2007 on Ubuntu with Wine 1.5.

Every time I open Word 2003 after 2007 or vice versa, it tries to reinstall certain files. It was annoying...
Here is a good solution that worked for me:

From terminal write
regedit

The opening window is the classic regedit we have on windows
In the Regedit window select:
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Options

Then from the menu:
Edit>New> DWORD value
add NoReReg with value 1
So my line looks like
NoReReg        REG_DWORD     0x00000001 (1)
Do the same for
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Options


Tuesday, March 08, 2011

My web page - www.barissanli.com

Recently I connected all my social web links with each other.
You can see my projects at www.barissanli.com

Friday, January 28, 2011

Back to civilian life

Hopefully, same office, same contact details, back to civilian life as of 19.01.2011....

Wednesday, November 17, 2010