2020

Hello hello ­čĹő,

First of all, I’m happy to share that my family and I are healthy even if It’s been a tough year for humanity. I hope everyone gets to feeling better soon!

Whenever I remembered something and thought I did it this year, it was last year. It was weird.

I spent my all-time at home for eight months (like everyone does) but let’s try to make a list:

I

  • have moved house
  • have worked from home
  • switched to Emacs (I’ve never looked back, this is the best decision I’ve made this year)
  • have started to spend more hours working on system administration (I feel like a full stack developer more than ever) 
  • have made six contributions to BuddyPress (BuddyPress team added my name to the noteworthy contributors’ list ­čÄë)
  • have played football manager for more than 100 hours like last year (this game is my most favorite one)

2019

I

  • have joined nefisyemektarifleri.com as a software developer
  • developed 5 WordPress plugins
  • have made my first contribution to WordPress Core
  • published my first plugin on Plugins Directory (It was a challenge plugin for a job interview so It is not a big deal but I’ve learned the process of publishing plugins. Btw I got the job ­čÖé )
  • completed 2 Laravel and 2 front end projects
  • bought a ThinkPad and started using Arch Linux with i3 window manager (to be honest I miss retina display)
  • moved my blog to DO
  • started using ProtonMail
  • have played football manager more than 100 hours

My Vim Configuration

IÔÇÖve just used Vim when I write code for about 6 months and I am still using it. In this post, IÔÇÖm gonna write about my favorite Vim configs and plugins.

IÔÇÖm using Vundle for plugin management. Vundle helps me to make easy plugin installation and update.

Abbreviations

When I write code in Vim I sometimes write the wrong command for close the file. For example, I write ÔÇťWqÔÇŁ instead of ÔÇťwqÔÇŁ. IÔÇÖve discovered abbreviations for this situation.. Here are my abbreviations:

cnoreabbrev W! w!
cnoreabbrev Q! q!
cnoreabbrev Qall! qall!
cnoreabbrev Wq wq
cnoreabbrev Wa wa
cnoreabbrev wQ wq
cnoreabbrev WQ wq
cnoreabbrev W w
cnoreabbrev Q q
cnoreabbrev Qall qall

Relative Line Numbers

One of my favorite features at Vim is ÔÇťrelative line numbersÔÇŁ.

Relative line numbers help us to edit our file quickly. For example, if we want to move up or down 5 lines from the current line, we just need use ÔÇť10jÔÇŁ or ÔÇť10kÔÇŁ.

set number
set relativenumber

Shortcuts

To create shortcut you can find a great tutorial in vim.wikia. Here are my favorite shortcuts:

"" Split
noremap <Leader>h :<C-u>split<CR>
noremap <Leader>v :<C-u>vsplit<CR>

"" Tabs
nnoremap <Tab> gt
nnoremap <S-Tab> gT

My Favorite Plugins

IÔÇÖm using many plugins. These plugins provide a better vim for me. I generally write php, html, css, basic javascript and ruby.

Here are plugins IÔÇÖm using for these languages:

  • stanangeloff/php.vim
  • jelera/vim-javascript-syntax
  • hail2u/vim-css3-syntax
  • tpope/vim-rails
  • tpope/vim-rake
  • thoughtbot/vim-rspec
  • ecomba/vim-ruby-refactoring

Other plugins:

  • scrooloose/nerdtree
  • ctrlpvim/ctrlp.vim
  • airblade/vim-gitgutter
  • vim-airline/vim-airline
  • grep.vim
  • tomasr/molokai

I tried to write about my favorite the vim configurations. I guess the article has been short but I wanted to write basic configurations. I hope there is no wrong information. Maybe IÔÇÖll add some new information in the near future.

You can find my .vimrc file on GitHub.

Visual Composer Eleman─▒ Olu┼čturmak

WordPress geli┼čtirme yaparken genellikle t├╝m yap─▒y─▒ (sayfa ┼čablonlar─▒, tasar─▒m aktar─▒m─▒ vb.) kendim kurmay─▒ seviyorum ve yap─▒yordum ancak son d├Ânemde dahil oldu─čum tak─▒m ve i┼čler genellikle Visual Composer eklentisi ile y├╝r├╝t├╝l├╝yor. Eklentiyi pek sevmedim ancak ├Âzellikle son kullan─▒c─▒ i├žin olduk├ža g├╝zel faydalar─▒ oldu─ču s├Âylenebilir.

Bu yaz─▒ baz─▒ ├Âzel istekler i├žin nas─▒l kendi eleman─▒m─▒z─▒ olu┼čturabiliriz sorusuna basit bir giri┼č olacak.

Yazd─▒─č─▒m─▒z elemanlar─▒ derli toplu tutmak i├žin alt bir dizin kullanmak olduk├ža faydal─▒ olacakt─▒r. Ben genellikle ÔÇťvc-elementsÔÇŁ isminde bir dizin olu┼čturuyorum ve elemanlar─▒m─▒z─▒n her biri i├žin ayr─▒ php s─▒n─▒flar─▒ olu┼čturuyorum. S─▒n─▒f─▒m─▒z─▒ olu┼čturmadan ├Ânce yapmam─▒z gereken bir ┼čey var; eklentinin ÔÇťvc_before_initÔÇŁ action─▒n─▒ hook ederek eleman─▒m─▒z─▒n s─▒n─▒f─▒n─▒ ├ža─č─▒rmal─▒y─▒z. Bu i┼člemi functions.php dosyam─▒zda ┼ču ┼čekilde yapabiliriz:

function vc_before_init_actions() {
  require_once( get_template_directory() . '/vc-elements/ilk-vc-elemanim.php' );    
}
add_action( 'vc_before_init', 'vc_before_init_actions' );

┼×imdi vc-elements dizini alt─▒nda s─▒n─▒f─▒m─▒z─▒ olu┼čturabiliriz:

class HelloWorld extends WPBakeryShortCode {
  function __construct() {
    add_action( 'init', array(  $this, 'vc_hello_world_mapping' ) );
    add_shortcode( 'vc_hello_world', array( $this, 'vc_hello_world_html' ) );
  }

  public function vc_hello_world_mapping() {
    vc_map(
      array(
        'name' => __( 'Hello World Element', 'theme' ),
        'base' => 'vc_hello_world',
      )
    );
  }

  public function vc_hello_world_html( ) {
    return "Hello World";        
  }
}

new HelloWorld();

S─▒n─▒f─▒m─▒zdaki kodlardan bahsetmek gerekirse;

  • construct alt─▒nda init actionÔÇÖ─▒n─▒ vc_hello_world_mapping methodu ile hook edip, eklentiÔÇÖnin bir fonksiyonu olan vc_map ile temel eleman─▒m─▒z─▒ olu┼čturuyoruz.
  • Yine construct alt─▒ndaki ikinci sat─▒rda ise VCÔÇÖnin kullanaca─č─▒ shortcode tan─▒mlamas─▒n─▒ yap─▒yoruz, vc elemanlar─▒m─▒z temelde bu shortcodeÔÇÖu kullan─▒yor olacak.
  • ─░lk sat─▒rda belirtti─čim gibi vc_hello_world_mapping i├žerisinde vc_map kullanarak temel eleman─▒ olu┼čturuyoruz, parametre olarak g├Ânderdi─čimiz arrayÔÇÖin i├žerisindeki base de─čerinde shortcodeÔÇÖumuzu belirtiyoruz. ├çok daha detayl─▒ parametreler alan bir eleman olu┼čturmak isterseniz bu sayfay─▒ inceleyebilirsiniz.
  • Son olarak vc_hello_world_html methodunda ise ekrana basacak de─čerleri d├Ând├╝r├╝yoruz.

En basit anlamda bir visual composer elemani olu┼čturmak bu ┼čekilde, ├žok daha detayl─▒ geli┼čtirmeler yapmak i├žin eklentinin kendi wikisinden yararlanmak en do─črusu olacakt─▒r.

How to change redmine admin password?

Today, when I try to run my plugin tests, I’ve needed the answer for this question and I did some research. Here is the answer:

# start console
rails c

# if you want to start with another env, you can use this command:
RAILS_ENV=test rails c
# find your user by login name
user = User.where(login: 'admin').first
# set new password like this example
user.password = '123456789'
user.password_confirmation = '123456789'
# and save the user in last step with this command
user.save!

Keyboard Layout Configuration on Debian

If you want to change any keyboard settings on Debian, you have to install keyboard-configuration package. You can use this command for package installation:

sudo apt-get install keyboard-configuration

Keyboard settings stored in /etc/default/keyboard file. You can edit this file for changing any keyboard settings.

To change the keyboard layout, find the XKBLAYOUT line and edit the value.

After editing, you can restarting keyboard-setup service or OS to apply new keyboard layout.

├ľzg├╝r Yaz─▒l─▒m Liselerde

├ľzg├╝r Yaz─▒l─▒m Liselerde projesi, bir zorunlulu─ču keyif alabilece─čim, yeni deneyimler ya┼čayabilece─čim ve ├ľzg├╝r Yaz─▒l─▒m felsefesinin do─čru bir ┼čekilde yay─▒lmas─▒na katk─▒ sa─člayabilece─čim bir projeye d├Ân├╝┼čt├╝rmemle ba┼člad─▒. Projedeki amac─▒m bir d├Ânem boyunca gidebildi─čim kadar liseye (├Âncelikli olarak bilgisayar b├Âl├╝m├╝ olan liseler) giderek ├Â─črenci arkada┼člara ├Âzg├╝r yaz─▒l─▒m nedir?, ├Âzel m├╝lk yaz─▒l─▒m nedir? neden ├Âzg├╝r yaz─▒l─▒m kullanmal─▒y─▒z? gibi sorularla felsefeyi tan─▒tmakt─▒.

─░lk olarak mezun oldu─čum lise olan G├╝ng├Âren Anadolu Teknik lisesi’ne gitmeye karar verdim. ─░kinci sunumda da beni yaln─▒z b─▒rakmayacak olan ─░stanbulhs’den Halil ve Emin ile birlikte ilk sunumu burada yapt─▒k. Genel olarak verimli ge├žen bir sunumdu. Gerek ├Âzg├╝r yaz─▒l─▒m gerekse yaz─▒l─▒m geli┼čtirme konusunda arkada┼člarla g├╝zel muhabbetler ger├žekle┼čtirdi─čimizi hat─▒rl─▒yorum. ├ľzellikle assembly ile yaz─▒l─▒m geli┼čtirsek diye bir soru y├Ânelten arkada┼č─▒ unutam─▒yorum. Sunum s─▒ras─▒nda bahsetti─čimiz a├ž─▒k kaynak ve ├Âzg├╝r yaz─▒l─▒m aras─▒ndaki fark konusu, arkada┼člar─▒n a├ž─▒k kaynak i┼čletim sistemleri diye g├Ârd├╝kleri derse kar┼č─▒ ├ž─▒kmalar─▒na yol a├žt─▒─č─▒n─▒ ├Â─čretmenlerinin biraz ├╝stlerine gitti─čine ┼čahit olduk.

Tabii ki ilgilenmeyen ve kendi halinde tak─▒lan bir s├╝r├╝ arkada┼č vard─▒ ama bizim yola ├ž─▒k─▒┼č amac─▒m─▒z ilgi duyabilecek merakl─▒ bir iki arkada┼ča ula┼čabilmekti. Bu hedefe de t├╝m sunumlar boyunca ula┼čt─▒─č─▒m─▒z─▒ d├╝┼č├╝n├╝yorum.

Sunumdan birka├ž g├╝n sonra arkada┼člardan mail gelmesi ve ├Âzg├╝r yaz─▒l─▒m g├╝nlerine kat─▒lmak istemeleri bir kez daha onlara ula┼čabildi─čimizin g├Âstergesiydi ve beni olduk├ža mutlu etmi┼čti.

─░kinci sunumda da ATA┼×EH─░R Dr.Nurettin Erk-Perihan Erk lisesindeydik. Genel olarak ilk sunumla benzer sonu├žlar ald─▒─č─▒m─▒z bir etkinlik oldu. GNU/Linux kullanan bir arkada┼č vard─▒ san─▒r─▒m ├Âte yandan bu okuldan akl─▒mda kalan en ├Ânemli k─▒s─▒m bir ├Â─čretmenin ├Âzg├╝r yaz─▒l─▒m ile olan alakas─▒yd─▒. Zaman─▒nda okulda Pardus ile ilgili dersler verdi─čini ve bir ├Âzg├╝r yaz─▒l─▒m kul├╝b├╝ kurdu─čunu anlatm─▒┼č ve son zamanlarda ilgisinin azald─▒─č─▒ndan bahsetmi┼čti ke┼čke lisedeyken benimde b├Âyle bir ├Â─čretmenim olsayd─▒.

├ť├ž├╝nc├╝ sunumda tek ba┼č─▒ma Kartal End├╝stri Meslek Lisesindeydim. Di─čer sunumlara oranla ├žok daha az bir ├Â─črenci arkada┼ča hitap edebildim ama yine de o ilgi oran─▒n─▒ yakalamay─▒ ba┼čard─▒─č─▒m─▒ d├╝┼č├╝n├╝yorum zaten yukar─▒da bir yerlerde bahsetti─čim gibi bir ├Â─črenci arkada┼ča bile ula┼čm─▒┼č olmak benim i├žin yeterli bir sonu├žtu bir de okullarda genel olarak s─▒nav haftalar─▒ oldu─ču i├žin bu zor takvimde bana vakit ay─▒rd─▒klar─▒ i├žin ├žok te┼čekk├╝r ederim.

Ba┼člang─▒├žta yola ├ž─▒kt─▒─č─▒m hedefleri ger├žekle┼čtirdi─čim i├žin ├žok mutluyum, sunum konusunda ki┼čisel olarak deneyim kazanmak ve okullarda ilgili arkada┼člarla kontak kurmak u─čra┼člar─▒m─▒z─▒n bo┼ča ├ž─▒kmad─▒─č─▒n─▒ g├Ârmek ├žok g├╝zeldi. Daha ├žok okula giderek daha ├žok arkada┼ča ula┼čmay─▒ g├Ân├╝l isterdi ama okulun en yo─čun olan son d├Âneminde elden bu kadar─▒ geldi.

Ba┼čta iki sunumda benimle olan Halil ve Emin olmak ├╝zere destek veren ilgi g├Âsteren herkese ├žok te┼čekk├╝rler umar─▒m bu tarz etkinlikler okullarda daha fazla olur ├Âzg├╝r yaz─▒l─▒m do─čru bir ┼čekilde t├╝m herkese yay─▒l─▒r.

Sunum dosyas─▒na ┼ču linkten ula┼čabilirsiniz => https://github.com/adiloztaser/Sunumlar/tree/master/Liselerde-Ozgur-Yazilim

i3wm Maceram | Kurulum ve Kulland─▒klar─▒m

─░stanbul hackerspace‘te kat─▒ld─▒─č─▒m GNU/Linux e─čitimi sonunda, uzun zamand─▒r GNU/Linux kullanmama ra─čmen geli┼čtirme yapt─▒─č─▒m zamanlar d─▒┼č─▒ndaki bilgisayar kullan─▒m─▒mda ├žok fazla terminali ve dolay─▒s─▒yla komutlar─▒ kullanmad─▒─č─▒m─▒ fark ettim.

Xfce masa├╝st├╝ ortam─▒n─▒ severek kullansamda komutlarla biraz daha ha┼č─▒r ne┼čir olmak i├žin s─▒f─▒r bir Debian ├╝zerinde i3wm kurarak maceraya at─▒ld─▒m.

Kurulum yaparken ba─čl─▒ paketler konusunda baya s─▒k─▒nt─▒ ya┼čad─▒─č─▒m─▒ hat─▒rl─▒yorum ama tabii bu i┼čin g├╝zel noktas─▒n─▒nda o s─▒k─▒nt─▒larla bo─ču┼čmak oldu─čunu eklemem gerek.

echo 'deb http://build.i3wm.org/debian/sid sid main' &gt;
 /etc/apt/sources.list.d/i3-autobuild.list
apt-get update
apt-get --allow-unauthenticated install i3-autobuild-keyring
apt-get update
apt-get install i3

Direk kendi d├Âk├╝man─▒nda yazan─▒ kopyalad─▒m. Yukar─▒daki komutlar ile i3-wm kurulumunu ger├žekle┼čtirebilirsiniz.

Ancak sadece i3-wm kurmak yetmiyor i3’├╝n yan─▒nda herhangi bir display manager (g├Âr├╝nt├╝/ekran y├Âneticisi) kurman─▒z gerekli. Ben LightDM kullan─▒yorum, hakk─▒nda daha detayl─▒ bilgiye bu linkten ula┼čabilirsiniz. Debian da─č─▒t─▒m─▒ ├╝zerinde LightDM kurulumuda ┼ču ┼čekilde:

aptitude install lightdm

E─čer s─▒f─▒rdan bir kurulum ger├žekle┼čtiriyorsan─▒z LightDM servisi otomatik ├žal─▒┼čacakt─▒r. Ancak ba┼čka bir g├Âr├╝nt├╝/ekran y├Âneticisi kullan─▒yor ve LightDM ye ge├žmek istiyorsan─▒z a┼ča─č─▒daki komutlar ile onun servisini durdurup LightDM servisini ba┼člatmal─▒s─▒n─▒z.

Bu arada farkl─▒ y├Âneticiler ile kurulum yapmad─▒─č─▒m i├žin sadece lightdm i├žin yaz─▒yorum. Di─čer y├Âneticilerde de ├žok farkl─▒ i┼člemler oldu─čunu zannetmiyorum.

A┼ča─č─▒daki ilk sat─▒rdaki komut aktif olan servisi durdurur, ikinci sat─▒rdaki komut ise lightdm servisini ba┼člat─▒r.

systemctl mask g├Âr├╝nt├╝/ekran y├Âneticisi.service
systemctl enable lightdm.service

LightDM servisinin ├žal─▒┼č─▒p ├žal─▒┼čmad─▒─č─▒ndan emin olmak i├žin a┼ča─č─▒daki komutu ├žal─▒┼čt─▒r─▒p ├ž─▒kt─▒s─▒n─▒ kontrol edebilirsiniz.

systemctl | grep lightdm

├ç─▒kt─▒s─▒ ┼ču olmal─▒:

lightdm.service     loaded active running   Light Display Manager

LightDM‘in ├žal─▒┼čt─▒─č─▒ndan emin oldu─čumuza g├Âre a┼ča─č─▒daki komut ile ~/.xinirc i├žine exec i3 yazmam─▒z gerekli.

echo "exec i3" &gt; ~/.xinitrc

Son olarak /etc/lightdm/lightdm.conf dosyas─▒nda user-session sat─▒r─▒n─▒ bulup user-session=i3┼čeklinde de─či┼čtirmemiz gerekmekte.

Kurulum bu ┼čekilde. i3-wm ├╝zerinde bir ├žok ┼čekilde ├Âzelle┼čtirme yapmak m├╝mk├╝n bunun i├žin daha detayl─▒ bilgiyi resmi sitesinde bulabilirsiniz. Ben ┼čimdi i3-wm ile birlikte bilgisayar kullan─▒m─▒m─▒ s├╝rekli ray─▒nda tutan birka├ž programdan bahsedece─čim.

Feh: Basit bir resim g├Âr├╝nt├╝leme program─▒. Hem resim g├Âr├╝nt├╝lemek hemde arkaplan belirlemek i├žin bu program─▒ kullan─▒yorum. i3wm’i ├Âzelle┼čtirdi─čimiz config dosyam─▒z /home/adil/.i3 bu yolda bulunmakta. Arkaplan atamak i├žin bu dizindeki config dosyas─▒n─▒ a├ž─▒yoruz ve ┼ču sat─▒r─▒ ekliyoruz.

exec --no-startup-id feh --bg-fill resim-yolu

┼×u komut ilede program─▒n kurulumunu yapabilirsiniz:

apt-get install feh

Nm-applet:  A─č y├Ânetimi yapmak i├žin kulland─▒─č─▒m program.

apt-get install network-manager-gnome

PulseAudio: Ses ayarlar─▒n─▒ yapmak i├žin kulland─▒─č─▒m program. Config dosyas─▒nda komutlar─▒n─▒ ├žal─▒┼čt─▒rmak i├žin k─▒sayol tu┼člar─▒ at─▒yorum. ├ľnce kuruluma bakal─▒m ┼ču komut ile kurulum yap─▒labilir:

apt-get install pulseaudio

Config dosyama ekledi─čim a┼ča─č─▒daki sat─▒rlar sayesinde $mod+F11 yapt─▒─č─▒mda sistem sesi -10% de─či┼čmekte, $mod+F12 yapt─▒─č─▒mda +10% artmakta ve $mod+F10 yapt─▒─č─▒mda ise sistem sesi kapat─▒lmakta.

bindsym $mod+F11 exec pactl set-sink-volume 1 -- -10%
bindsym $mod+F12 exec pactl set-sink-volume 1 -- +10%
bindsym $mod+F10 exec pactl set-sink-mute 1 -- toggle

Xfce4 Power Manager:  G├╝├ž t├╝ketimi konusunda kulland─▒─č─▒m bir uygulama ├Ântan─▒ml─▒ gelen ayarlar─▒yla kullan─▒yorum. Bilgisayar─▒m a├ž─▒ld─▒─č─▒nda arkaplanda ├žal─▒┼čmaya ba┼čl─▒yor. Kurulum i├žin ┼ču komut kullan─▒labilir:

apt-get install xfce4-power-manager

Config dosyama ekledi─čim ┼ču sat─▒r ilede bilgisayar─▒m a├ž─▒ld─▒─č─▒nda arkaplanda ├žal─▒┼čmas─▒n─▒ sa─čl─▒yorum.

exec ÔÇôno-startup-id sleep 3 &amp;&amp; xfce4-power-manager

Tilda:  ├ľntan─▒ml─▒ gelen terminal yerine tilda kullan─▒yorum. Kurulum i├žin ┼ču komut i┼č g├Âr├╝r:

apt-get install tilda

├ľntan─▒ml─▒ hale getirmek i├žinde config dosyas─▒nda # start a terminal sat─▒r─▒n─▒ bulup alt─▒ndaki sat─▒r─▒ ┼ču ┼čekilde de─či┼čtirmemiz yeterli. Sadece tilda i├žin de─čil di─čer terminal programlar─▒n─▒da bu de─či┼čikli─či yaparak ├Ântan─▒ml─▒ hale getirebilirsiniz. (Zaten anla┼č─▒l─▒yordur ama ekliyim dedim.)

bindsym $mod+Return exec tilda

┼×imdilik yazacaklar─▒m bunlarla s─▒n─▒rl─▒. 6 g├╝n sonra tam 1 ayd─▒r i3wm kullan─▒yor olaca─č─▒m bu d├Ânemde a├ž─▒k├žas─▒ komutlarla i├ž i├že bir ┼čekilde ├žal─▒┼čt─▒m diyemiyorum. Olduk├ža k─▒sa gelen bu zamanda tam anlam─▒yla istedi─čimi elde edememi┼čim g├╝nl├╝k bilgisayar kullan─▒m─▒ndaki i┼člemler d─▒┼č─▒nda pek yeni komut kullanmad─▒m. San─▒r─▒m biraz daha derinlere girmek i├žin bir t─▒k daha efor sarf etmem gerekli.

i3wm D├Âk├╝man: http://i3wm.org/docs/