Saturday, March 21, 2009

Pretty Printing Wikipedia Articles

PrinceXML allows for converting HTML or XHTML documents into publishable PDF documents. You can also use it to print Wikipedia articles to nice looking PDF's via the instruction here on Opera CTO howcome's page.

Auto Numbering Headers in Google Docs

Google Docs allows generation of table of contents, but doesn't by default number the headers. This inability can be overcome via some CSS magic.

Simply put these into the CSS file, opened from Edit menu's Edit CSS item. This will autonumber header 2,3 and 4. (H2, H3, H4)


body {
counter-reset: chapter;
}

h2 {
counter-reset: section;
counter-increment: chapter;
}
h3 {
counter-increment: section;
counter-reset: part;
}
h4 {
font-weight: bold;
counter-increment: part;
}
H2:before {
content: counter(chapter) "." " ";
}
H3:before {
content: counter(chapter) "." counter(section) " ";
}
H4:before {
content: counter(chapter) "." counter(section) "." counter(part) " ";
}

Saturday, March 14, 2009

MATLAB'da Anonim Fonksiyonlar

Az bilinen MATLAB özelliklerinden biri anonim fonksiyonlar.

Normalde betikler (script) içinde ve komut satırında fonksiyon tanımlaması yapılamaz. Bu kısıtlamanın üstesinden gelmek için anonim fonksiyonlar kullanılabilir.

Anonim fonksiyonlar sayesinde tek ifadeli fonksiyonlar oluşturabilirsiniz.

Anonim fonksiyon taslağı şu şekildedir:

fonksiyon adı = @ (giriş parametreleri) ifade; Örneğin: myfun = @(x) log(x) + x; myfun(3) Böyle bir fonksiyonu, giriş parametresi olarak fonksiyon handle'i alan fplot, quad gibi fonksiyonlarda kullanmak mümkün. Örneğin: a = 1; b = 2; c = 3; myfun = @(x) a*x.^2 + b*x + c; fplot(myfun, [-10 10]) Anonim fonksiyonlar içerisinde, üst kapsamda (betik içerisinde daha yukarıda) tanımlanmış değerleri kullanabiliriz; ancak bu değerler fonksiyon tanımlandıktan sonra değiştirilirse fonksiyona etki etmezler. Fonksiyonun yeni değerleri kullanabilmesi için bir kez daha tanımlanması gerekmektedir.

Wednesday, March 11, 2009

Some MATLAB Tricks

These are some MATLAB tricks I will be compiling over time.

  1. Use get(0,'ScreenSize') to get screen size, and use figure('OuterPosition',[left bottom width height]) to set figure size and location.
  2. Use dynamic fields name in structs instead of eval commands. Ex: Instead of eval(['a.', 'first', '=', i]); use str = 'first'; a(str) = i;
  3. Use cells to create multi-line titles. Ex: plot(1:10), title({'First Line','Second'}) 
  4. Use uitable to visualize some matrices. Ex: a = uitable, set(a,’data’, magic(3))
  5. Use isequal to compare arrays for equality.
  6. Use hold all to hold subsequent plots and automatically switch line color and marker styles.
  7. To set marker every N lines, draw three plots. h = plot(NaN,NaN,'b-*',x,y,'b-',x2,y2,'*'); legend(h(1),'signal');
  8. Close all figures including GUI's with close all hidden . Note that if the HandleVisibility of a GUI is set to off or callback, it cannot be closed by close all only, the extra parameter 'hidden' is needed in this case.

Also, see the MATLAB questions at StackOverFlow.

Tuesday, March 10, 2009

Some Nice MATLAB FileExchange Files

  1. print_pdf : Save figures to high quality pdfs with cropped borders and embedded fonts. 
  2. textbp : Automatically locates text annotation to minimize figure obscuration
  3. hline and vline : Draw vertical and horizontal lines
  4. easygui : Create GUIs easily
  5. newfcn : Create new function template 
  6. any2csv : Convert struct to csv files
  7. anymate : Make animations in MATLAB easily
I discovered these via the MATLAB File Exchange Pick of the Week blog.

Monday, March 02, 2009

GeceGece - Turk Indie Pop Grubu




http://www.myspace.com/gecegece

http://www.last.fm/music/gecegece

http://sozluk.sourtimes.org/show.asp?t=gecegece

Sibel Emek Ortaç: lead vocals
Gökçe Bayrakçeken Tüzel: acoustic guitars , backing vocals
Alper Sarioglu: electric guitars
Özgür Sari: keyboards, backing vocals
Murat Tüzel: bass guitar
Onur Ertem: drums

Simulating Sample Spaced Rayleigh

A nice and informative article about simple channel simulation in Matlab: http://dspdotcomm.blogspot.com/2008/11/simulating-sample-spaced-rayleigh.html


Sunday, March 01, 2009

Markdown ve ReStructuredText: Hafif Siklet Isaretleme Dilleri (Lightweight Markup Languages)

Dökümentasyon ya da basit belgeler oluştururken HTML ya da XML gibi bir işaretleme dili kullanmak zor gelebilir. WYSWYG türü Word benzeri programlarda belge hazırlamak da bazı konularda özgürlüğünüzü kısıtlar.

Bu gibi durumlarda İngilizce lightweight markup language olarak tabir edilen hafif sıklet işaretleme dillerini kullanmak uygun bir çözüm. Bu belgelerde metnin nasil gorunecegiyle ilgili kucuk isaretler kullanilmakta ve bu sekilde duz metin de olsa okunakli bir gorunum elde edilmekte. Daha sonra bu metinler bazi parserlardan gecirilip diger formatlara aktarilabilmekte.

Ben önceden reStructured Text kullanıyordum. Bugün markdown adı verilen (markup vs markdown ;) bir işaretleme diliyle karşılaştim. İkisi birbirine oldukça benziyor; genel kanı, LaTeX ya da PDF gibi formatlara dönüştürme hedefiniz yoksa ve inline (kaynak kod içi) dökümentasyon hazırlamıyorsanız, yani sadece HTML çıktısıyla ilgileniyorsanız markdown'in daha kolay bir çözüm olduğu yönünde. 

Ayrica rst'nin kullanımı emacs'te oldukça kolay olmakla beraber markdown daha metin editör bağımsız bir ortam sunuyor gibi.

Markdown'da belge hazirlama

Baslik ve altbasliklar

Bunlar baslik ya da altbaslik metninin basindaki # isaretlerinin sayisiyla belirleniyor. Ornegin en ust baslik (h1) icin, # Ana Baslik yazmaniz yeterli. Bir alt baslik (h2) da bu durumda ## Alt baslik olarak yaziliyor.

Kalin ve italik yazilar

Italik yazilacak metinlerin soluna ve sagina * isareti koymak gerek. Kalin olmasi icin ise sola ve saga ** koymak gerek. Ornegin, *bu metin italik*, ** bu metin kalin olacak**.

Listeler

Liste olusturmak icin her ogeyi alt alta yazip satir basina -, * gibi isaretleri koymak gerekiyor. Icice liste olusturmak icin de iki satir iceriden yeni bir isaretle baslamak gerek. Ornegin:

- elma
  * golden
  * starking
  *grannysmith
- armut
- muz

Link (baglanti) verme

Satirici ve referans olarak ikiye ayriliyor. Ayni linki birden fazla kullanacaksaniz referans turunu tercih edebilirsiniz.

Satirici link vermek icin Bu [ornek link](http://example.com/) kullanin. Referans linki vermek icin ise su kalibi kullanin. Ornek:

[gorunmesini istediginiz metin][referans adi]

Daha sonra, asagida bir yerde referanslarin hangi URL'e isaret ettigini gostermek icin,

[referans adi] http://www.cnn.com kismini ekleyin.

Kod bloklari

Kod bloklari icin basa ve sonra ` isareti koyun.

Daha fazla bilgi icin: Markdown Basics'e goz atin. Markdown'i aninda HTML'e donusturen bir online editor icin: http://attacklab.net/showdown/

Diger Kaynaklar

  1. http://en.wikipedia.org/wiki/Lightweight_markup_language

  2. Bir karsilastirma - http://stackoverflow.com/questions/34276/markdown-versus-restructuredtext

  3. Markdown'la ilgili kaynaklar:
  4. http://en.wikipedia.org/wiki/Markdown
  5. Online markdown derleyici: http://daringfireball.net/projects/markdown/dingus

  6. reStructuredText ile ilgili kaynaklar:
  7. http://docutils.sourceforge.net/rst.html