SQL Join Şeması

By admin April 7th, 2012, under hayat

Möthiş faydalı bu grafiği paylaşmak lazım:

 

Juniper VPN ve sorunları

By admin February 21st, 2012, under bilgisayar / internet

Piyasada en bilinen VPN olarak adından söz ettiren Juniper saolsun beraberinde türlü türlü problemlerde barındırıyor. En güzeli macosx üzerinden bağlanıldığında (leopard ve snow leopard) bazen(?) işletim sisteminizin kalıcı olarak çalışamayacak kadar yavaşlamasına sebep oluyor. O kadar uğraşmama rağmen bu sorunu düzeltemedim ve işletim sistemini yeniden kurmak zorunda kaldım. Siz siz olun macosx üzerinden bağlanmayın.

Başka bir sıkıntı da, Linux ile ilgili. Şifrenizi girdiniz, akabinde java uygulaması başlıyor ve hemen sonlanıyor ise sorun sisteminizde xterm yüklü olmamasından kaynaklanıyor. Belki lazım olur diye paylaşayım dedim.

Mysql rolling record appender procedure

By admin January 24th, 2012, under veritabanı sistemleri

Bir tablo üzerinde bir alana bağlı kalarak son birkaç kaydı tutmam gerekti, ben de bir prosedür yazdım. Bu prosedür önce yeni kaydı yapıyor, ardından son kaydı bularak (örnekte 3 kayıda göre çalışıyor) ondan eski kayıtları siliyorum. Bütün bu işlemleri de transaction içerisinde yaparak daha da sağlıklı çalışmasını bekliyorum.

DELIMITER $$
CREATE DEFINER=`dbuser`@`%` PROCEDURE `update_visits`(_member_id int, _last_visit datetime)
BEGIN
declare _max_date date;
start transaction;
insert into VISITS (member_id, last_visit) value (_member_id, _last_visit);
select last_visit into _max_date from VISITS where member_id = _member_id order by last_visit desc limit 2, 1;
delete from VISITS where member_id = _member_id and last_visit < _max_date;
commit;
END

Ubuntu full screen flash for dual views

By admin December 23rd, 2011, under bilgisayar / internet

Ubuntu’da çift ekran çalışırken bir ekranda tam ekran flash video izleyip diğer ekranda çalışamıyorsunuz. Öteki ekrana tıkladığınız anda pencere normal haline dönüyor. Buna engel olmak için /etc/adobe/mms.cfg dosyası içerisinde (yoksa yaratıyoruz) aşağıdaki satırları yazıp kaydediyoruz. Restart sonrasında çalışmaya başlıyor.

OverrideGPUValidation=true
EnableLinuxHWVideoDecode=0

Düzeltme: sanırım bu yöntem de bir işe yaramıyor :(

Ebay ql.io projesini yayınladı

By admin December 13th, 2011, under yazılım geliştirme

Çok fazla açık kaynaklı projesi bulunmayan Ebay (https://www.ebayopensource.org/) ql.io projesi ile teknik anlamda beni etkileyen bir projeye imza atmış. ql.io nedir derseniz özetle istemci tarafından tek bir istek ile sunucu tarafında birden çok web servis isteğini birleştirilip dönebilme özelliği sunan bir yazılım. Arkaplanda nodejs (http://nodejs.org/) kullanıyor.

Daha kolay anlamak için örnek yapabiliriz. Web console (http://ql.io/console) açtıktan sonra rest servislerinizi bir veritabanı tablosu gibi tanıtıyoruz. Örnek olarak


-- A table to find products
create table eBay.FindProducts
on select get from "http://open.api.ebay.com/shopping?callname=FindProducts&appid={^apikey}&responseencoding=JSON&version=725&QueryKeywords={^QueryKeywords}&MaxEntries={max}&ProductSort=Popularity&AvailableItemsOnly=true&siteid={siteid}"
using defaults max = "5", apikey = "{config.eBay.apikey}", sideid = 0
resultset 'Product';

-- A table to get product details
create table eBay.ProductDetails
on select get from "http://open.api.ebay.com/shopping?callname=FindProducts&appid={^apikey}&responseencoding=JSON&version=725&siteid={siteid}&ProductID.type={^ProductType}&ProductID.Value={^ProductID}"
using defaults apikey = "{config.eBay.apikey}", sideid = 0
resultset 'Product';

-- A table to get product reviews
create table eBay.ProductReviews
on select get from "http://open.api.ebay.com/shopping?callname=FindReviewsAndGuides&ProductID.Value={#^ProductID}&ProductID.type={^ProductType}&appid={^apikey}&responseencoding=JSON&version=745&siteid={siteid}"
using defaults apikey = "{config.eBay.apikey}", sideid = 0;

Run ettiğimiz zaman bu servisler tablo olarak oluşuyor. (show tables diyerek görebilirsiniz). Daha sonra örnek bir istek yapıyoruz:

prodid = select ProductID[0].Value from eBay.FindProducts where
QueryKeywords = 'macbook pro';
details = select * from eBay.ProductDetails where
ProductID in ('{prodid}') and ProductType = 'Reference';
reviews = select * from eBay.ProductReviews where
ProductID in ('{prodid}') and ProductType = 'Reference';

return select d.ProductID[0].Value as id, d.Title as title,
d.ReviewCount as reviewCount, r.ReviewDetails.AverageRating as rating
from details as d, reviews as r
where d.ProductID[0].Value = r.ProductID.Value;

Çalıştırdığınız zaman arka planda servisler birbirini beklemeden çağırılıyor ve sonuç birleştirilerek size dönüyor.

Bence mutlaka incelenmesi gereken çok başarılı bir proje.

Detaylı bilgi:
http://ql.io/
http://www.ebaytechblog.com/2011/11/30/announcing-ql-io/