$ ssg++ ▮

"sosyal medya analistinin başucu programı." --henüz söylenmedi
"reserved" --@2
"yaşasın bağzı proğramlar!" --anonim
"abi seviyorsanız gidin belli edin bence." --geliştiricisi

ana sayfa ▮     indir ▮     blog ▮     kindle için ▮     site haritası ▮    

ssg++ ana sayfa

Table of Contents

ssg++ nedir?

ssg++, ekşi sözlük için alternatif arayüzler sunan bir projedir. ekşi sözlük için web arayüzü, komut satırı arayüzü ve programlama arayüzü sağlar. Her ne kadar ekşi sözlük'ü kendi arayüzüyle severek kullanıyor olsak da bu arayüz her ihtiyaca cevap veremiyor. ssg++ sağladığı arayüzlerle pek çok zor işi tek satırlık bir komut çalıştırmak kadar kolay hale getiriyor.

ssg++ üç seviyede kullanılabilir:

  • Başlangıç seviye kullanıcılar için web arayüzü: Web arayüzü ssg++'nın işlevselliğinin bir internet tarayıcısı ile kullanılmasını sağlar.
  • Orta seviye kullanıcılar için komut satırı arayüzü: Komut satırı arayüzü girdi madenciliği ile çözümlemeler yapmayı sağlar.
    • Halihazırda tanımlanmış iş hatlarını komut satırında kullanabilirsiniz.
    • ssg++'nın esnek yapısı sayesinde mevcut bileşenleri değişik şekillerde bağlayarak yeni iş hatları oluşturup yeni işlevler tanımlayabilirsiniz.
  • İleri seviye kullanıcılar (geliştiriciler) için programlama arayüzü:
    • İstediğiniz işi yapan bir bileşen mevcut değilse eklenti bileşenler tanımlayabilirsiniz.
    • ssg++'nın sağladığı tüm işlevleri basit bir API ile kendi programınızda kullanabilirsiniz. Bunun için geliştirici lisansı edinmeniz gerekiyor.

Web arayüzü

nabız

dünün en beğenilenleri

bkz'ları (anket) ve ajanda

Komut satırı arayüzü

ssg++ bileşen tabanlı tasarım prensipleri üzerine kuruludur. Veri işlemeye dönük uygulamalar için bileşen tanımlayı ve kendisiyle gelen dille bileşen dizilimleri yaratmayı sağlayan sacre çerçevesi kullanılarak oluşturulmuştur. Esas olarak ssg++ ekşi sözlük'e özel tanımlanmış bileşenlere ve iş hattı dediğimiz bileşen dizilimlerine dayanır. Daha fazla bilgi için (bkz: ssg++ bileşenleri) (bkz: iş hattı oluşturma)

ssg++ çok sayıda halihazırda tanımlanmış iş hattı içerir. Bunları kısaltılmış olarak kullanabilmek için iş hattı kısayolları tanımlanmıştır. Tüm tanımlı iş hatlarının detayları için (bkz: iş hattı kısayolları)

ssg++ komutları iş hattı kısayolu şeklinde tanımlanarak genişletilebilir. (bkz: yeni iş hattı kısayolu tanımlama)

ssg++ komutları

  • yardım

    komutların kullanımıyla ilgili yardım sağlar.

  • yardım iş hattı kısayolu

    verilen iş hattı kısayolu hakkında bilgi verir. (bkz: iş hattı kısayolları)

  • yardım bileşen adı

    verilen bileşen hakkında bilgi verir. (bkz: ssg++ bileşenleri)

  • yürüt iş hattı

    verilen iş hattını çalıştırır. (bkz: iş hattı oluşturma)

  • iş hattı kısayolu

    girilen iş hattı kısayolunu çalıştırır. (bkz: yeni iş hattı kısayolu tanımlama)

  • mesaj

    giriş yapmış kullanıcının mesajı olup olmadığı kontrol edilir.

  • -l komut

    Verilen komutu ekşi sözlük'e giriş yaptıktan sonra çalıştırır.

Kulanım örnekleri

  • Basit kullanım örnekleri için (bkz: ssg++ kullanım örnekleri)
  • ssg++ kullanılarak yapılmış daha geniş kapsamlı çalışmalar için (bkz: ssg++ blogu).
  • Tek satırın yetmediği ya da başka programlarla bir arada kullanılmasının gerektiği durumlar için oluşturulmuş betikler için (bkz: ssg++ betikleri).

gündem

şükela

maç skoru

Programlama arayüzü

Eklenti tanımlamak

Yapmak istediğiniz şey için iş hattı tanımlamak yeterli gelmedi ise iş hatlarında kullanmak üzere kendi bileşenlerinizi eklenti olarak tanımlayabilirsiniz (bkz: ssg++ için eklenti bileşen tanımlamak).

ssg++ API

Kendi uygulamanızda kullanmak için ssg++ iş hatlarının yapabildiği her şeye bir API ile ulaşmanız mümkün. İş hattının batak elemanını apisink olarak değiştirip List<Token> SozlukApi.runPipeline(String ishatti) metodunu çağırmanız yeterli. Örnek olarak badi başlıklarını yazdırmak için kullanılacak indeksknk [tip=badi] ! metinbtk iş hattında metinbtk bileşeni yerine apisink kullanarak başlıkları içinde Baslik nesneleri olan bir listeye alabiliriz:

List<Token> badilerden = SozlukApi.runPipeline("indeksknk [tip=badi] ! apisink");

ssg++ API ile ilgili daha fazla ayrıntı için (bkz: ssg++ API kullanımı)

ÖNEMLİ NOT: Geliştirici olarak kullanmak için geliştirici lisansı edinmeniz gerekiyor.

Kurulum

Lisans metnini okuyup kabul ettikten sonra ssg++ programını indirmek ve ücretsiz bir lisans edinmek için lisans istek formunu doldurmanız yeterli.

ssg++'nın çalıştırılabilmesi için sisteminizde JRE 8 veya daha üst bir sürümü kurulu olmalıdır. Bir komut uçbiriminde java -version komutunu çalıştırarak bunu kontrol edebilirsiniz.

Edindiğiniz sıkıştırılmış dosyayı istediğiniz bir klasöre (örn. ~/Downloads/ssg++-1.0) açın. Bu klasöre SSG++_DIR diyelim.

Web arayüzü

Komut uçbiriminde cd SSG++_DIR komutuyla ssgpp-web-1.0-SNAPSHOT.jar dosyasını içeren klasöre girin. ssg++'yı web arayüzü ile kullanmak için:

java -jar ssgpp-web-1.0-SNAPSHOT.jar

komutunu kullanarak ssg++ web sunucusunu çalıştırın (Ctrl-c ile kapatabilirsiniz).

Linux kullanıcıları ~/.bashrc dosyasında PATH değişkenini aşağıdaki bölümde anlatıldığı gibi düzenlemişlerse, sunucuyu başlatmak için

ssgppd start

komutunu kullanabilirler (kapatmak içinse ssgppd stop).

Sunucuyu başlattıktan sonra tarayıcınızda http://localhost:8081/index.html adresini açın.

Komut satırı arayüzü

Komut uçbiriminde cd SSG++_DIR komutuyla ssgpp-cli-1.0-SNAPSHOT.jar dosyasını içeren klasöre girin. İstenilen bir komutu çalıştırmak için şunu girin:

java -jar ssgpp-cli-1.0-SNAPSHOT.jar komut

Linux altında ~/.bashrc dosyasını aşağıdaki şekilde düzenleyerek bin klasörü altındaki betikler yalnızca isimleriyle kullanılır hale getirilebilir:

export PATH=$PATH:SSG++_DIR/bin

Bu durumda komut satırı arayüzü için sadece ssg++ yazmanız yeterli.

ssg++ komut

Yapılandırma

Komut satırı ve web arayüzünün çalışmasıyla ilgili bazı ayarlar kullanıcının ev dizinindeki .ssgpp klasöründe (örn. Linux altında ~/.ssgpp/conf/) tutulur. Burdaki app.properties dosyası program ilk kez çalıştırıldığında otomatik oluşturulur. İsterseniz oluşturulmuş dosyayı düzenleyerek isterseniz aşağıdaki şablonu kullanarak kendi yapılandırma dosyanızı oluşturabilirsiniz. Aşağıdaki örnekte "#" ile başlayan satırlar açıklama (comment) satırlarıdır, dikkate alınmaz. Baştaki dört değerin doğru girildiğinden emin olun. Diğerleri varsayılan değerlerinde kalabilir.

# ekşi sözlük'e giriş yaparken kullandığınız e-mail adresi (eğer tanımladıysanız, kullanıcı adı)
EksiSozluk-KullaniciAdi=...
# Önemli not: Şifreniz şifrelenmemiş olarak tutulur. (şifreniz ters taksim işareti içeriyorsa onu ikileyerek yazın (örn. a\bc yerine a\\bc))
EksiSozluk-Sifresi=...
# Ekşi Sözlük hesabınızda belirlediğiniz ayarlar > tercihler > gösterim > sayfa başı entry sayısı
SayfaBasiGirdiSayisi=10
# Ekşi Sözlük hesabınızda belirlediğiniz ayarlar > tercihler > gösterim > sayfa başı başlık sayısı
SayfaBasiBaslikSayisi=50
# Web arayüzünde bağlantıları verilen resimler gömülü olarak gösterilsin mi? evet:1, hayır:0
ResimleriGoster=1
# Otomatik olarak yeni mesaj kontrolü yapılsın mı? Evet için 1, hayır için 0. 
# Mesaj kontrolu mesaj yeşilini söndürür. 
# Mesaj kontrol aralığı NabizAraligi+5'tir. Öntanımlı değeri 15 dk'dır.
# Değer 1 olarak verilirse UyarmaProgrami'nın da aşağıda verilmesi gerekir.
MesajKontrolu=1
# Bir uyarı mesajı argümanı ile çalıştırılabilen bir komut satırı programı. 
# Linux Gnome için notify-send kullanılabilir. 
# Tek bir mesaj argümanı alarak çalışabilen bir program olmalı. (boş bırakabilirsiniz)
UyarmaProgrami=
# nabız işlevi etkinlestirilsin mi? Evet icin 1, hayir icin 0.
# nabız aralığı süresince en çok girdi yazılmış başlıkları getirir.
# Web arayüzündeki yakın takip özelliği için nabız ölçümü etkin olmalıdır.
NabizOlcumu=1
# Nabiz olcme periyodu (dakika cinsinden). 10'dan kucuk olamaz.
NabizAraligi=10
# Eger NabizOlcumu=1 ise ve UyarmaProgrami da verilmisse, 
# bir başlığa son NabizAraligi süresince girilen 
# girdi sayısı NabizEsigi * NabizAraligi değerini aşarsa uyarı verilir.
# Doğal sayı değerleri alabilir.
# Örn. 2 için 10 dk'da 20'den fazla girdi yazilmasi durumunda uyarir.
# NabizEsigi'ni 1000 gibi buyuk bir deger yaparak bu uyarilari kapatabilirsiniz.
NabizEsigi=2
# Bir girdinin başucu sayılabilmesi için sahip olması gereken karakter sayısı
BasucuBoyutu=1000
# zaman diliminiz
ZamanDilimi=Europe/Istanbul
# Eklenti bileşenlerin konumu (boş bırakabilirsiniz.)
EklentiDizini=

Bunun dışında Linux kullanıcıları bin klasöründeki bazı betikleri kullanabilmek için ssgpp_conf.sh dosyası içinde bazı düzenlemeler yapmalıdır. Ayrıntılı bilgi dosya içinde bulunabilir.

Web arayüzündeki yakın takip özelliği için ~/.ssgpp/conf/yakin_takip.txt dosyası oluşturmanız gerekiyor. yakın takip düğmesi günün başlıklarını bu dosyada belirlenen anahtar kelime listesine göre filtreler. örn. ilan, duyuru, kampanya gibi anahtar kelimelerle günün sizin ilgilerinize daha yakın olan başlıklarını takip edebilirsiniz.

beşiktaş
bilgisayar
bilim
duyuru
film
ilan
istanbul
kampanya
kita
linux
türkiye
üniversite
veritabanı

Değişim günlüğü

Sürümlere ait özellikler ve değişimler için (bkz: değişim günlüğü)

Destek olun

Onur Derin <oderin at users.sourceforge.net> adresine yazarak

  • fikir, görüş ve önerilerinizi,
  • hata bildirimlerinizi,
  • kendi yazdığınız eklentileri,
  • kendi oluşturduğunuz iş hatlarını,
  • kod düzeltmelerinizi gönderebilirsiniz.

Lisans

ssg++ ticari olmayan kişisel kullanım için ücretsiz bir uygulamadır ve kullanımı şu lisansa tabidir. Özetle,

  • Sadece lisansta adı geçen kişi tarafından aynı anda tek bir bilgisayara kurularak kullanılabilir.
  • Programın kaynak kodu ya da çalıştırılabilir dosyaları satılamaz ya da dağıtılamaz.
  • Sadece ticari olmayan kişisel amaçlar için kullanılabilir. Şirket ya da organizasyon içinde kullanılması için ayrı tipte bir lisans gerekir. Bunun için oderin at users.sourceforge.net adresine "ssg++ ticari lisans isteği" konulu bir e-posta gönderebilirsiniz.
  • Kaynak kodu değiştirilemez ve program başka bir program ile bağlantılı olarak kullanılamaz. Bunun için ayrı bir lisans gerekir. oderin at users.sourceforge.net adresine "ssg++ gelistirici lisansi isteği" konulu bir e-posta gönderebilirsiniz.
  • Program kullanılarak elde edilen her türlü çıktı, herhangi bir yerde kullanılıyorsa, program adına (ssg++) ve programın internet adresine (http://ssgpp.github.io) uygun şekilde atıfta bulunulmalıdır.
  • Programın bazı parçaları başka bir takım lisanslara tabidir: commons, xalan-j, opennlp ve jcommander için Apache License Version 2.0, jfreechart için GNU LGPL v2.1, sacre için BSD lisansı.

Yasal Uyarı

ssg++'nın Ekşi Teknoloji ve Bilişim Ltd. Şti. ile bir bağlantısı yoktur. ekşi sözlük, Ekşi Teknoloji ve Bilişim Ltd. Şti.’nin tescilli bir markasıdır. Uygulama üzerinden erişilebilen ekşi sözlük içeriği, ve bu içeriğe dair tüm haklar Ekşi Teknoloji ve Bilişim Ltd. Şti.’ne aittir.