Word deneyimi fazla olmayanların, yada hep ara sıra kullandığı için Office'in ıncığını adam gibi öğrenmeye hep üşenenlerin genel sorunudur; Word'de sayfa numaralarının spesifik bir sayfadan başlaması. Bu yazımda bunu Word 2003 için anlatacağım. Kişisel tavsiyem LaTeX kullanmanız yönünde, esneklik açısından.
Neyse, direkt konuya girelim. Bunun için öncelikle numaralandırmanın başlamasını istediğiniz sayfayı ayrı bir bölüm içine almanız gerekiyor. Word'de bir dökümanı birden çok bölüme ayırabiliyorsunuz. Böylece aslında iki farklı Word dökümanınız tek dosyada birleşmiş gibi birşey oluyor, gibi birşey yani. Yeni bölüm oluşturmak için o sayfanın en üst satırının başına gelin ve Ekle>Kesme diyin. Çıkan menüden sonraki sayfayı seçin. Yeni bir bölümünüz olmuş olmalı.
Yeni bölüm ekledikten sonra yapmanız gereken şey ise sadece bu bölüme has bir numaralandırma yapmak. Bunun için önce bu bölümün dipnot (yada üste koyacaksanız üstnot) kısmını önceki bölümlerden bağsız hale getirmeniz gerekiyor. Bunu yapmak için yine bölümün ilk sayfasında dipnot kısmına iki kere tıklayın ve dipnot alanını açın. Alanın üstünde belirecek ufak menüde "önceki kısma bağla" gibi birşey yazan seçeneği devredışı bırakın. Böylece önceki bölümlerden bağımsız bir dipnot kısmınız oldu. Bundan sonra yapmamız gereken şey sayfa numaralarını eklemek. Bunun için üst menüden sayfa numarası ekle diyoruz, gelen menüde gelişmiş ayarlar kısmında "önceki bölümden başla" kısmını değil de ötekini seçiyoruz. Tamam deyince sadece o bölüme ait bir numaralandırma eklemesi lazım.
Not: Bu yazıyı linux'ta Word önümde açık olmadan yazdım. O yüzden bazı menü ve buton isimleri tamı tamına tutmayabilir.
Oradan buradan kafama esen, ilgimi çeken teknik içerikli yazılar. Bazen teknik içeriği de olmayan bilgisayarla ilgili anılar.
22 Mart 2011 Salı
11 Mart 2011 Cuma
Ubuntu'da shift + numkey kullanma
Büyük ekranlı laptoplarda genel uygulamadır, numlock kapalı ise numpaddeki tuşlar home,pgdown gibi işlevler edinir. Laptopta bu işlevde başka tuş da olmadığından bendeniz gibi işini klavyeden halletmeyi sevenler numlock'u genellikle kapalı tutar.
Buraya kadar tamam, ubuntu bir sorun çıkarmıyor. Ancak bir satırı tümden seçmek istediğinizde windows'tan alışık olduğunuz shift + home gibi kombinasyonları yapmanıza ubuntu izin vermiyor, ayarlayıncaya kadar tabii.
Lafı fazla uzatmadan bunun nasıl ayarlandığına geçiyorum:
Tercihler>Klavye>Düzenler>Seçenekler>Çeşitli Uyumluluk Seçenekleri>Shift with numeric keypad keys works as in MS Windows.
ve laptop'ta shift + home'umuza kavuştuk.
Buraya kadar tamam, ubuntu bir sorun çıkarmıyor. Ancak bir satırı tümden seçmek istediğinizde windows'tan alışık olduğunuz shift + home gibi kombinasyonları yapmanıza ubuntu izin vermiyor, ayarlayıncaya kadar tabii.
Lafı fazla uzatmadan bunun nasıl ayarlandığına geçiyorum:
Tercihler>Klavye>Düzenler>Seçenekler>Çeşitli Uyumluluk Seçenekleri>Shift with numeric keypad keys works as in MS Windows.
ve laptop'ta shift + home'umuza kavuştuk.
5 Eylül 2010 Pazar
Ev bilgisayarında SVN Server oluşturma
SVN gerçekten çok güzel bir araç. İster bir takım halinde, ister tek başınıza yazılım geliştiriyor olun projenizin versiyon hesabını SVN ile tutmanız gerçekten yararınıza.
Amatör ve tek geliştiricili projeler için en iyi modellerden birisi de geliştirme makinasına bir SVN server kurup uzaktaki bilgisayardan ev bilgisayarına bağlanarak ana versiyonları indirmek. Bu sayede geliştirme yapılan bilgisayarda daha hızlı işlem yapılacak ve her revizyon için internete bağlanma gereği duyulmayacak. Özellikle shared hosting modelinde olan web projeleri için bu model çok pratik ve hızlı.
Bu yazıda Windows'ta nasıl SVN sunucusu oluşturabileceğimizi anlatacağım. Adım adım gitmeyi tercih ediyorum.
1- Öncelikle Subversion'ın Windows için makine kodunu indirmemiz gerekli. İndirip kurduktan sonra subversion bin klasörünün Windows path'ine eklendiğinden emin olun.
2- Bilgisayarımızda bir SVN reposu olması gerekli. Bunun için
komutunu verin. Repo yolunda bir repository oluşturulduğundan emin olun.
3- Bu adımda repomuza erişimi ayarlamamız gerekiyor. Bunun için repo yolunun altında conf/svnserve.conf dosyasını açın ve
satırlarına ulaşın (yorum ise baştaki #'ı silin). 3 satırın başında da gereksiz boşluk olmamasına dikkat edin.
4- Kullanıcı belirleme zamanı. Aynı klasörün içindeki passwd dosyasını açıp
tarzında kullanıcılar ekleyebilirsiniz. Yine satırbaşlarında gereksiz boşluk olmamasına dikkat edin.
5- SVN repomuzu dışarıdan erişim için ayarlı hale getirdik. Şimdi bilgisayarımıza düşecek isteği değerlendirecek programı (svnserve.exe) açmamız gerek. Bunu her açılışta çalışan bir windows hizmeti olarak yapmayı tercih ediyorum.
komutu ile windows hizmetimizi oluşturuyoruz. Komutta %% arasındaki değişkenleri kendi kurulumunuza göre değiştirmeniz gerekiyor. "Subversion" hizmetimiz açılışta otomatik olarak açılacak şekilde ayarlansa da şu anda çalışmıyor. O yüzden
komutu ile hizmeti başlatıyoruz.
6- SVN sunucumuz neredeyse hazır. Son adım olarak port ayarlarını yapmak kaldı. svn:// protokolü 3690 portunu kullanıyor. Sırasıyla bilgisayarınızın, anti-virüsünüzün ve ağınızdaki yönlendiricilerin(router) güvenlik duvarı ayarlarını yapıp 3690 portuna izin verildiğinden emin olun.
6 adımda svn sunucumuz hazır. İsterseniz kendi pcnizden localhost, yada dışarıdan ip nonuzu yazarak sunucuya bağlanabilirsiniz.
Örneğin aşağıdaki komutla daha önceden oluşturulmuş repo içindeki projem adlı klasörü uzaktan checkout edebilirsiniz:
svn checkout svn://%IP_NONUZ%/projem
Amatör ve tek geliştiricili projeler için en iyi modellerden birisi de geliştirme makinasına bir SVN server kurup uzaktaki bilgisayardan ev bilgisayarına bağlanarak ana versiyonları indirmek. Bu sayede geliştirme yapılan bilgisayarda daha hızlı işlem yapılacak ve her revizyon için internete bağlanma gereği duyulmayacak. Özellikle shared hosting modelinde olan web projeleri için bu model çok pratik ve hızlı.
Bu yazıda Windows'ta nasıl SVN sunucusu oluşturabileceğimizi anlatacağım. Adım adım gitmeyi tercih ediyorum.
1- Öncelikle Subversion'ın Windows için makine kodunu indirmemiz gerekli. İndirip kurduktan sonra subversion bin klasörünün Windows path'ine eklendiğinden emin olun.
2- Bilgisayarımızda bir SVN reposu olması gerekli. Bunun için
svnadmin create "%REPO-YOLU%"
komutunu verin. Repo yolunda bir repository oluşturulduğundan emin olun.
3- Bu adımda repomuza erişimi ayarlamamız gerekiyor. Bunun için repo yolunun altında conf/svnserve.conf dosyasını açın ve
anon-access = none
auth-access = write
password-db = passwd
satırlarına ulaşın (yorum ise baştaki #'ı silin). 3 satırın başında da gereksiz boşluk olmamasına dikkat edin.
4- Kullanıcı belirleme zamanı. Aynı klasörün içindeki passwd dosyasını açıp
harry = harryssecret
sally = sallyssecret
tarzında kullanıcılar ekleyebilirsiniz. Yine satırbaşlarında gereksiz boşluk olmamasına dikkat edin.
5- SVN repomuzu dışarıdan erişim için ayarlı hale getirdik. Şimdi bilgisayarımıza düşecek isteği değerlendirecek programı (svnserve.exe) açmamız gerek. Bunu her açılışta çalışan bir windows hizmeti olarak yapmayı tercih ediyorum.
sc create svnserver binpath= "%SVN_BIN_KLASORU%\svnserve.exe --service -r %REPO_YOLU%"
displayname= "Subversion" depend= Tcpip start= auto
komutu ile windows hizmetimizi oluşturuyoruz. Komutta %% arasındaki değişkenleri kendi kurulumunuza göre değiştirmeniz gerekiyor. "Subversion" hizmetimiz açılışta otomatik olarak açılacak şekilde ayarlansa da şu anda çalışmıyor. O yüzden
net start svnserver
komutu ile hizmeti başlatıyoruz.
6- SVN sunucumuz neredeyse hazır. Son adım olarak port ayarlarını yapmak kaldı. svn:// protokolü 3690 portunu kullanıyor. Sırasıyla bilgisayarınızın, anti-virüsünüzün ve ağınızdaki yönlendiricilerin(router) güvenlik duvarı ayarlarını yapıp 3690 portuna izin verildiğinden emin olun.
6 adımda svn sunucumuz hazır. İsterseniz kendi pcnizden localhost, yada dışarıdan ip nonuzu yazarak sunucuya bağlanabilirsiniz.
Örneğin aşağıdaki komutla daha önceden oluşturulmuş repo içindeki projem adlı klasörü uzaktan checkout edebilirsiniz:
svn checkout svn://%IP_NONUZ%/projem
1 Eylül 2010 Çarşamba
Timeout error in Mysql connection via Doctrine and Symfony
If you have used a local mysql server and decided to port to an external one, you might have a problem that symfony can not connect to the external db. It can't even get a response from the server.
If you experience that kind of issue, the thing might be that you forgot to include "host=" in your dsn definition.
replace
dsn: 'mysql:your-server-url;dbname=your-dbname'
with
dsn: 'mysql:host=your-server-url;dbname=your-dbname'
Notice the difference, which is 'host='. It is also forgotten on docs, not written neither on Practical Smyfony nor Definitive Guide. So you might also forget. It does not make a problem if you simply connect to a local mysql server.
If you experience that kind of issue, the thing might be that you forgot to include "host=" in your dsn definition.
replace
dsn: 'mysql:your-server-url;dbname=your-dbname'
with
dsn: 'mysql:host=your-server-url;dbname=your-dbname'
Notice the difference, which is 'host='. It is also forgotten on docs, not written neither on Practical Smyfony nor Definitive Guide. So you might also forget. It does not make a problem if you simply connect to a local mysql server.
404 not found error in production mode in Symfony
As a developer using Symfony hosted on an Apache server, I experienced an issue with production mode of Symfony.
Normally, production mode is reached via appending index.php to the end of base url. But thanks to mod_rewrite module of apache, index.php can be omitted. And links in production mode does not have the corresponding index.php part. That is good for user experience, but there is a problem that when trying to reach them, Apache server gives 404 error.
The problem is that apache mod_rewrite module is not loaded by default. Installed tough, but not loaded. So you need to tell Apache to load it on start. You can do this by uncommenting the line starting with "loadModule rewrite..." in http.conf file. The file resides in conf directory of Apache folder. After making changes, restart the server and that's it, the problem is solved.
Normally, production mode is reached via appending index.php to the end of base url. But thanks to mod_rewrite module of apache, index.php can be omitted. And links in production mode does not have the corresponding index.php part. That is good for user experience, but there is a problem that when trying to reach them, Apache server gives 404 error.
The problem is that apache mod_rewrite module is not loaded by default. Installed tough, but not loaded. So you need to tell Apache to load it on start. You can do this by uncommenting the line starting with "loadModule rewrite..." in http.conf file. The file resides in conf directory of Apache folder. After making changes, restart the server and that's it, the problem is solved.
19 Ağustos 2010 Perşembe
Timeout in Php MySQL connection
Have you ever got a timeout while trying to connect to a local mysql server from php code? Have you teared your nails trying to figure out cause and solution?
I unfortunately spent 3 hours trying to solve the issue.
Solution is again simple and absurd. The workaround is whether you hardcode the connection or use a framework such as Symfony, the same. If you write server url as "localhost" on some conditions the local server timeouts. The issue does not seem very well documented. Nevertheless, the solution is to make server "127.0.0.1" instead of "localhost".
Happy connections, healthy nails!
I unfortunately spent 3 hours trying to solve the issue.
Solution is again simple and absurd. The workaround is whether you hardcode the connection or use a framework such as Symfony, the same. If you write server url as "localhost" on some conditions the local server timeouts. The issue does not seem very well documented. Nevertheless, the solution is to make server "127.0.0.1" instead of "localhost".
Happy connections, healthy nails!
4 Temmuz 2010 Pazar
android'de tab değişiminde içeriğin sıfırlanması
Son zamanlarda bir Android projesi üzerine çalışıyorum. Projeyi bir tab üzerinden yürütmeye karar verdim. Bunu yaparken yine meşum bir dikkatsizlik hatası ile boğuştum. Şöyle ki; tabHost'a tab eklerken bir spec içinde tabın id'sini, indicator'unu ve content'ini veriyoruz. Ben herşeyi düzgün yapıp id'leri aynı yazmışım. Sonuç, her tab değiştirişimde yeni bir içerik oluşturulup eski içeriğin üstüne yazılıyor. 5-6 saatlik uğraşı, internette büyük bir araştırma, stackoverflow.com'daki bütün soru/cevapların taranması; hiçbiri kâr etmiyor. En sonunda başta yapmam gerekeni yapıp dikkatsizlik hatası olup olmadığını derinden kontrol ediyorum. Yaptığımı bulunca yaşadığım duygunun tarifi yok. Büyük bir rahatlamayla karışık ufak bir kendine kızma duygusu. Olsun, tecrübe yolunda bir hata bin doğrudan iyidir diyip yoluma devam ediyorum.
kod böyleyken:
spec = tabHost.newTabSpec("tag")
.setIndicator("Ürün",res.getDrawable(R.drawable.product))
.setContent(new Intent(this, UrunTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("tag")
.setIndicator("Araba",res.getDrawable(R.drawable.car))
.setContent(new Intent(this, ArabaTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("tag")
.setIndicator("Geçmiş",res.getDrawable(R.drawable.history))
.setContent(new Intent(this, GecmisTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("tag")
.setIndicator("Hakkında",res.getDrawable(R.drawable.about))
.setContent(new Intent(this, HakkindaTab.class));
tabHost.addTab(spec);
böyle oluyor:
spec = tabHost.newTabSpec("UrunTab")
.setIndicator("Ürün",res.getDrawable(R.drawable.product))
.setContent(new Intent(this, UrunTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("ArabaTab")
.setIndicator("Araba",res.getDrawable(R.drawable.car))
.setContent(new Intent(this, ArabaTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("GecmisTab")
.setIndicator("Geçmiş",res.getDrawable(R.drawable.history))
.setContent(new Intent(this, GecmisTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("HakkindaTab")
.setIndicator("Hakkında",res.getDrawable(R.drawable.about))
.setContent(new Intent(this, HakkindaTab.class));
tabHost.addTab(spec);
ve basit sorunumuz düzeliyor.
Hisse; bir sorun çıktığında önce kendimiz kaynaklı hataları kontrol etmek gerekli. Bu hatalar kod yazarken çoğunlukla dikkatsizlik hatası olarak karşımıza çıkıyor. Soruna basit bir çözüm bulamıyorsak ondan sonra karmaşık düşünmeye başlamalı ve araştırmaya koyulmalıyız. Tecrübe ile sabittir.
kod böyleyken:
spec = tabHost.newTabSpec("tag")
.setIndicator("Ürün",res.getDrawable(R.drawable.product))
.setContent(new Intent(this, UrunTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("tag")
.setIndicator("Araba",res.getDrawable(R.drawable.car))
.setContent(new Intent(this, ArabaTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("tag")
.setIndicator("Geçmiş",res.getDrawable(R.drawable.history))
.setContent(new Intent(this, GecmisTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("tag")
.setIndicator("Hakkında",res.getDrawable(R.drawable.about))
.setContent(new Intent(this, HakkindaTab.class));
tabHost.addTab(spec);
böyle oluyor:
spec = tabHost.newTabSpec("UrunTab")
.setIndicator("Ürün",res.getDrawable(R.drawable.product))
.setContent(new Intent(this, UrunTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("ArabaTab")
.setIndicator("Araba",res.getDrawable(R.drawable.car))
.setContent(new Intent(this, ArabaTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("GecmisTab")
.setIndicator("Geçmiş",res.getDrawable(R.drawable.history))
.setContent(new Intent(this, GecmisTab.class));
tabHost.addTab(spec);
//Do the same for other tabs
spec = tabHost.newTabSpec("HakkindaTab")
.setIndicator("Hakkında",res.getDrawable(R.drawable.about))
.setContent(new Intent(this, HakkindaTab.class));
tabHost.addTab(spec);
ve basit sorunumuz düzeliyor.
Hisse; bir sorun çıktığında önce kendimiz kaynaklı hataları kontrol etmek gerekli. Bu hatalar kod yazarken çoğunlukla dikkatsizlik hatası olarak karşımıza çıkıyor. Soruna basit bir çözüm bulamıyorsak ondan sonra karmaşık düşünmeye başlamalı ve araştırmaya koyulmalıyız. Tecrübe ile sabittir.
Kaydol:
Kayıtlar (Atom)