İçindekiler

Infoview Portaline Giriş	2
Yeni  Folder ve Category Yaratma	5
Web Intelligence Dokumanı Yaratma ve Universe Kavramı	6
Sorgu Üzerinde Değişiklik Yapma	13
Rapora Yeni Bir sayfa ekleme	15
Dokumana Boş Hücre (Başlık) Ekleme	17
Dokumanı Kaydetme	18
Raporu Görüntüleme Ve Güncelleme (Refresh)	20
Raporu Excel, PDF, CSV Formatına Dönüştürerek Kaydetme	21
Advanced Kaydetme Seçeneği	23
Raporu Purge (Verisini Boşaltma) İşlemi İle Kaydetme	24
Veriyi Sorgulama Esnasında Filtreleme	26
Predefined Condition	27
Operatorler Yardımıyla Sorguyu Filtreleme	29
Prompt Fonksiyonu İle Parametrik Kısıtlama	32
Userresponse Fonksiyonu İle Prompt Değerini Görüntüleme	36
Prompt Ayarları ve Optional Prompt	37
Complex Filter	39
Matches Pattern Operatoru:	41
SubQuery Yöntemi İle Kısıtlama	42
Raporu Değişik Formatlarda Görüntüleyerek Analiz Etme	43
Section Oluşturma	44
Break Oluşturma	52
Crosstab Oluşturma	57
Horizontal Table	60
Grafik Oluşturma :	61
Grafik Eksenlerinde Yerdeğişikliği Yapma	64
Alerter Fonksiyonu İle Koşullu Biçimlendirme	68
Ranking Fonksiyonu İle Top N Bottom N kayıtların Tespit Edilmesi	75
Değişken Yaratma	78
If Fonksiyonu İle Koşullu Formül Oluşturma	82
Calculation Context	84
Birden Fazla Sorgu Oluşturma Birleştirme (Merge Diemensions)	90

Infoview Portaline Giriş

Infoview Portali Business Objects XI versiyonlarına ilişkin modülleri web üzerinden kullanmamızı, dokuman yaratmayı , yarattığımız dokumanları diğer kullanıcılarla paylaşabilmemizi ve bu dokumanları belli periyotlarda schedule edebilmemizi sağlayan bir portaldir.

Bu portale her uygulamada olduğu gibi bir kullanıcı adı ve şifreyle giriş yapılması gerekmektedir. Kullanıcı kendisine verilen hak ve yetkiler doğrultusunda bu portali kullanabilir.

InfoView Portaline giriş yaptığımız ekranın sol tarafında yer alan Navigate alanında kullacıya ait veya paylaşıma açılmış dokumanların yer aldığı klasör listesini görebiliriz.

Document List seçeneğine tıklayarak ilerleyelim.

My Favorites 		Kullanıcının kişisel klasördür. Bu klasörde yer alan raporları sadece ilgili kullanıcı görür.

Inbox			Kullanıcıya Infoview portali aracılığı ile gönderilmiş (Send) raporların yer aldığı klasördür. Inbox’a rapor kaydedilemez.

Public Folder		Aynı grupta yer alan kullanıcıların raporları birbiriyle paylaşmak amacıyla kullandığı klasördür. Şayet raporu Public Folder altındaki herhangi bir klasöre kaydedersek, bu rapora o klasörü görmeye yetkili tüm kullanıcılar erişebilir.

Folder seçeneğinin hemen yanında yer alan Category seçeneği ise, raporların mantıksal olarak tasnif edilmesini sağlayan bir yapıdır.

Category ler sayesinde raporları belli mantıksal gruplar altında aramamız mümkündür. Örneğin;

Personel Categories altında Acil ve Gizli kategorilerini yarattığımızı düşünelim. Herhangibir raporu kaydederken öncelikle hangi folder’da yer alacağını daha sonra isteğe bağlı olarak bu kategorilerden bir yada daha fazlası altında yer almasını sağlayabiliriz. Bu konuya rapor kaydetme başlığı altında değineceğiz.

Kategoriler raporların fiziksel olarak kaydedildiği alanlar değildir. Kategoriyi kullanımdaki amaç raporları mantıksal olarak tasnif etmektir. Ayrıca bir rapor birden fazla kategoride yer alabilir. Böylece aradığımız bir raporu kategoriler yardımıyla bulmamız mümkün olacaktır.

Yeni  Folder ve Category Yaratma

My Favorites yada Public Folder altında yei bir folder yaratmak için öncelikle ilgili ana folder seçilip sağ tıklanarak gelen menüde New > Folder seçeneği ile

Yarattığımız Folder’a isim vererek Ok düğmesi ile işlemi tamamlayabiliriz.

	Yeni bir category yaratırken de;  Category listesinde yer alan herhangi bir category seçilip sağ tıklanarak  New > Category menüsü nü kullanabiliriz.

Web Intelligence Dokumanı Yaratma ve Universe Kavramı

Yeni bir rapor yaratmadan önce, son kullanıcıların rapor oluştururken kullandığı Universe kavramından bahsetmek gerekmektedir.

Universe, Tablo, SQL, Join,  gibi veritabanında kullanılan karmaşık ve teknik bilgi gerektiren kavramların, son kullanıcı tarafından kolay anlaşılabilen iş objelerine çevrilmesini sağlayan grafiksel arayüzdür.

Amaç; teknik bilgisi olmayan son kullanıcının, gereksinim duyduğu bilgilere kolay ulaşmasını sağlayacak bir tasarım geliştirmektir. Universe tasarımı Designer programı ile oluşturulur ve çoğunlukla IT departmanında çalışan kişiler tarafından gerçekleştirilmektedir

Şimdi InfoView panelinde yer alan New düğmesine tıklayarak Web Intelligence seçeneği ile yeni bir rapor oluşturmaya başlayabiliriz.

Karşımıza çıkan liste raporu yaratırken kullanacağımız universe listesi olacaktır. E-fashion universe’ünü seçerek devam edelim.

Universe içerisinde yer alan objelere değinmek gerekirse;

Diemension (Mavi objeler)		Raporda baz olarak kullandığımız alanlardır. Örneğin Müşteri, Şehir, Yıl, Tarih, Ürün Kodu  vs…

Detail (Yeşil üçgen objeler)		Tek başına anlam ifade etmeyen bağlı olduğu diemension ile kullanıldığı zaman anlam kazanan objelerdir Örneğin ; Telefon, Adres vs..

Measure (Turuncu Objeler)		Üzerinde sayısal hesaplamalar yapılabilen tüm sayısal alanlardır.  Örneğin ; Gelir , Gider, Masraf, Bakiye, Sipariş Adedi vs..

E-Fashion universe’ü tekstil sektöründe yer alan bir mağazalar zincirine ilişkin verileri içeren  demo  universe’dür.

Bu universe içerisinde yer alan , Year (Yıl),Quarter (Dönem) ve Sales Revenue (Satış Geliri) objelerini sorgu panelinde yer alan Result Objects alanına sürükleyelim.

Raporda görmek istediğimiz tüm kolonları Result Objects alanına sürükleyerek yada çift tıklayarak yerleştirebiliriz.

Bu ekranda yer alan SQL düğmesi sayesinde bu sorgu için arka planda çalışan kodu görüntüleyebiliriz.

Şayet universe kavramı olmasaydı, rapor alan son kullanıcıların belirtilen kodu yazmaları gerekecekti. Bu işlem teknik altyapısı olmayan kullanıcılar için zorlayıcı bir durum olmaktadır.

Oluşturduğumuz sorgunun sonucunu görmek amacıyla ekranın sağ üst köşesinde yer alan Run düğmesine tıklamamız yeterli olacaktır.

Böylece sorgu sonucuna ait veriler ilgili veri kaynağından çekilerek tabloda görüntülenmiş olacaktır.

Bu tabloda E-Fashion mağazalar zincirine ait yıllık ve dönemsel gelir toplamları yer almaktadır.

Gelir kolonundaki rakamların her yılın dört çeyreği için kırılım yaptığını görebiliriz.

Şayet her yıla ait toplam gelir değerini görüntülemek istiyorsak Quarter(Dönem) kolonunu çıkarmak yeterli olacaktır.

Web dokumanı üzerinde basit mouse hareketleri sayesinde kolon çıkarma kolon ekleme ve kolonlar arası yerdeğiştirme işlemi yapılabilinir.

Öncelikle Quarter kolonunu mose ile Data penceresine sürükleyelim.

Quarter kolonunu tablodan çıkartıldığı anda gelir değerinin yıllık bazda toplandığına dikkat edelim.

Şimdi Data penceresine sürüklediğimiz Quarter alanını tekrar tabloya eklemeye çalışalım.

Tabloya kolon eklerken dikey mavi bir şeritin belirdiğini görebiliriz. Bu şeriti referans alarak kolonu istediğimiz aralığa yerleştirebiliriz.

Son olarak ; bir kolonun diğeriyle yer değiştirmesi isteniyorsa, kolonlardan birisi diğerinin üzerine sürüklenerek bu işlem gerçekleştirilebilir.

Varolan tabloyu en dış çizgisinden seçip sürükleyerek istediğimiz yerde konumlandırabiliriz.

Aynı zamanda en dış çizgisinden seçilen bu tabloyu klavyeden Delete düğmesiyle tamamen silebiliriz.

Bu işlem sonucunda tabloyu yeniden oluşturmamız mümkün.  Data penceresinde yer alan objeleri klavyeden CTRL düğmesiyle çoklu seçerek rapor sayfasına sürükleyip tabloyu yeniden oluşturabiliriz.

CTRL düğmesi ile çoklu seçim yöntemini, yıllık bazda gelir toplamı ve dönemsel bazda gelir toplamını gösteren diğer tabloları yaratırken de kullanabiliriz.

Görüldüğü gibi, gelir objesi hangi diemension ile kullanılıyorsa o bazda hesaplanıyor.

Sorgu Üzerinde Değişiklik Yapma

Yıllık ve dönemsel bazda gelir değerlerini gösteren örneğimize, bu satış gelirlerinin hangi eyaletlere ait olduğunu belirten yeni bir obje daha ekleyelim.

Öncelikle sorguyu yeniden düzenlemek üzere Edit Query düğmesiyle universe e geri dönelim.

Sorgulama ekranında E-Fashion universe ünden oluşturduğumuz sorgunun ilk hali yer almaktadır. State objesini de Result Objects alanına sürükleyerek sorguyu yeniden çalıştırabiliriz.

Rapor çalıştırıldıktan sonra Data penceresine eklenen State objesini herhangibir tabloya ekleyerek yada CTRL düğmesi yardımıyla yeni bir tablo yaratarak rapor sayfasında görüntüleyebiliriz.

Yıl ve dönemsel bazda kırılım yapan tabloya Eyalet alanı eklenerek (kolon ekleme), gelir değerinin herbir eyaletin yıllık ve dönemsel değerelerini gösterecek şekilde hesaplanmasını sağlamış olduk.

Öte yandan her eyaletin sadece yıllık gelir toplamını ayrı bir tabloda görmek istiyorsak, CTRL düğmesi ile State, Year ve Sales Revenue objeleri belirtilen sırayla seçerek rapor sayfasında boş bir alana sürüklememiz yeterli olacaktır.

	CTRL ile seçim sırası aynı zamanda tablonun yerleşim sırasını belirler.

Rapora Yeni Bir sayfa ekleme

Web Intelligence dokumanlarında her tablonun aynı sayfada görüntülenmesi zaman zaman analizi zorlaştırabilir. Bu nedenle dokumana yeni sayfalar ekleyerek her tabloda farklı formatlamalar ve analizler gerçekleştirebiliriz.

Web dokumanına yeni bir sayfa eklemek için sayfa tabı üzerinde sağ tıklayıp Insert Report dememiz yeterli olacaktır.

Açılan boş sayfa üzerinde, Data penceresinde yer alan objeleri CTRL tuşu ile kullanarak yeni tablolar yaratabiliriz.

Rapor sayfalarına isim vermek için sayfa tabı üzerinde sağ tıklayarak Rename Report’u seçelim.

Dokumana Boş Hücre (Başlık) Ekleme

Raporların düzenlenmesi esnasında gerek başlık yada açıklama eklemek, gerekse bir formülasyon sonucunu görüntülemek amacıyla boş bir hücreye ihtiyacımız olabilir.

Templates ana başlığı altında yer alan Free Standing Cell menüsünden Blank Cell seçeneği, mouse ile sürüklenerek sayfada uygun bir yere konulabilir.

Eklenen boş hücreyi çift tıklayarak başlık ifadesini  yazıp Enter düğmesiyle bu işlemi tamamlayabiliriz.

Formatting araç çubuğunda yer alan menüler sayesinde eklenen hücreyi istenilen şekilde formatlamak mümkündür.

Dokumanı Kaydetme

Web Inteligence dokumanları Save işlemi sonucunda BO Application Server yani BO’nun kurulu olduğu  server’a kayıt edilirler.

Bu nedenle raporu local makinada kaydetmek amacıyla Excel, PDF ya da CSV formatına dönüştürmek mümkündür.

Öncelikle oluşturduğumuz raporu standart web formatında kaydetmeye çalışalım. Araç çubuğunda yer alan   Save düğmesine tıklayarak açılan pencerede,

Bu dokumanın  server üzerinde hangi folder’da yer alacağını belirleyip, name kısmında dokumana isim verilerek kaydetme işlem tamamlanır.

Bu örnekte My Favorites klasörü seçilerek kaydetme işlemi gerçekleştirilmiştir.

My Favorites klasörü altına kaydedilen  raporlar sadece raporu yaratan kişi tarafından görüntülenir.

Şayet raporun kullanıcının bulunduğu departmandaki diğer kişiler tarafından görüntülenmesi isteniyor ise Public klasörü altında yer alan ortak klasörlere kaydedilmesi gerekmektedir. Bu durumda rapor diğer kullanıcılar için paylaşıma açılmış olacaktır.

Raporu Görüntüleme Ve Güncelleme (Refresh)

Infoview portalı üzerinde Document List linkine tıklayarak raporun kayıtlı olduğu klasör seçilip tüm dokumanlar listelenebilir.

My Favorites altında yer alan dokumanlar listelenmiştir.

Görüntülenecek raporun üzerinde çift tıklayarak yada mouse’u sağ tıkladığımızda gelen menülerden View’ı seçerek raporu görüntüleme modunda açabiliriz.

Görüntülenmek üzere açılan

Görüntüleme modunda açılan raporun sağ üst köşesinde yer alan Refresh düğmesi ile raporun güncellenmesini, yani sorgumuzun yeniden çalışarak veri kaynağına ulaşıp en güncel veriyi getirmesini sağlayabiliriz.

	Kullanıcının bu dokumanı güncelleme yetkisi yoksa bu işlemi gerçekleştiremez.

Aynı menüde yer alan Edit düğmesi bu dokuman üzerinde değişiklik yapmamızı sağlar.

	Kullanıcının bu dokuman uzerinde değişiklik yapma yetkisi yoksa bu işlemi gerçekleştiremez.

Raporu Excel, PDF, CSV Formatına Dönüştürerek Kaydetme

Web Intelligence raporlarının server üzerinde kayıt edilmesinden dolayı, raporun local makinada saklanması amacıyla Excel, PDF yada CSV formatına dönüştürülmesi gerekmektedir.

Bu işlem gerek raporun kaydetme aşamasında gerekse raporun görüntüleme modunda açtığımız ekranda yapılabilir.

Öncelikle kaydedilmemiş bir rapor için bu işlemi gerçekleştirelim . Save düğmesinin yanında yer alan oka basarak,

   Save to my computer as seçeneğinden istediğimiz formatı seçip raporu local’de sakalayabiliriz.

	Bu işlem CSV formatını içermez. Sadece Excel ya da PDF formatını içerir.

Şimdi  aynı işlemi raporu görüntüleme modunda açtığımız ekranda gerçekleştirelim.

Document menüsü altında yer alan Save to My Computer As seçeneği ile rapor istenen formatta (Excel , CSV, PDF) local’de saklanabilir.

	CSV formatında kaydetme seçeneğinin sadece View modunda geldiğine dikkat edilmelidir.
	CSV formatı sadece sorgu sonucu gelen ham datayı  içerir. Rapora sonradan eklenen değişkenleri, grafikleri vs… CSV’ye aktarmamız mümkün değildir.

Advanced Kaydetme Seçeneği

Kaydetme penceresinde yer alan Advanced düğmesine tıklayarak,

Bu raporun Infoview portalı üzerinde search edilirken daha kolay bulunmasını sağlayan keyword leri girebilir ve rapor hakkında açıklamalar yazabiliriz.

Öte yandan herhangi bir raporun açılırken otomatik refresh olmasını sağlamak için bu pencerede yer alan Refresh On Open seçeneğini işaretlememiz gerekmektedir.

Raporu Purge (Verisini Boşaltma) İşlemi İle Kaydetme

Kaydedilen tüm raporların Server üzerinde birikmesi, zamanla Server üzerinde olumsuz etkiler yaratarak performans sıkıntısına neden olabilmektedir. Bu nedenle, Web Intelligence raporlarını içindeki tüm yapıyı muhafaza edecek şekilde( tablolar, grafikler, hesaplamalar, fonksiyonlar vs...) sadece verisini boşaltarak kaydetmemiz mümkündür. Böylece rapor Server üzerinde çok daha az yer kaplayacak ve server üzerinde performans sıkıntısı doğmayacaktır.

Oluşturduğumuz herhangi bir raporu kaydetmeden önce sağ üst köşede yer alan Purge butonuna tıklayarak bu işlemi gerçekleştirelim.

Bu işlem sonunda rapordaki tüm datalar silinecek fakat raporun yapısı, oluşturduğumuz tüm formüller, grafiklere ait yapı korunacaktır.

Şimdi bu raporu Purge edilmiş şekilde kaydedebiliriz.

Purge edilerek kaydedilmiş bu rapor görüntüleme modunda açıldığında herhangi bir veri içermeyecektir.

Bu raporda yer alan veriyi tekrar görüntülemek için raporu güncellememiz (Refresh) yeterli olacaktır.

Böylece raporda yer alan en güncel veriyi görüntülemiş oluruz.

	Purge edilmiş bir raporu Refresh ettikten sonra kaydedersek, raporu verisiyle kaydetmiş olacağımız için  Purge işleminin bir anlamı kalmayacaktır. Refresh işleminden sonra raporu kaydetmeden kapatabiliriz.
	Purge işlemi sonrasında raporu kaydederken Refresh On Open özelliğinin aktif hale getirilmesi raporu görüntüleyen kullanıcı için daha anlamlı olacaktır. Böylece kullanıcı boş bir rapor sayfasıyla karşılaşmayacaktır.

Veriyi Sorgulama Esnasında Filtreleme

Web Intelligence raporlarında verinin sorgulama esnasında kısıtlanmasının 2 önemli nedeni bulunmaktadır.

	Rapora daha az sayıda kayıt gelmesini sağlayarak performansı arttırmak
	Sadece istenen krtiterlere uygun datayı görüntüleyerek veri kirliliğinden kurtulmak.

Bu iki önemli neden doğrultusunda raporumuzu çeşitli operatorler yardımıyla kısıtlayarak çalıştırmamız mümkündür.

Şimdi değineceğimiz konu başlıkları bu operatorlerin neler olduğu ve hangi ihtiyaçlar doğrultusunda kullanılması gerektiğini belirten örnekleri içermektedir.

Predefined Condition

Desiner’lar tarafından tasarlanan universe’lerde diemension, detail ve measure objelerin yanısıra, sarı huni şeklinde hazır filtreler de  yer almaktadır. Bu filtreler rapor tasarlayan son kullanıcıların herhangi bir operator kullanmadan kolayca kısıtlama yapmasını sağlar.

Kullanıcılar kısıtlama yaparken öncelikle universe içerisinde bu hazır filtrelerin tanımlı olup olmadığını kontrol ederek başlamalıdır.

	Şayet istediğimiz kriterlere uygun bir hazır filtre yoksa bu kısıtlamayı operatorler yardımıyla kendimiz de oluşturabiliriz.

Şimdi bu konuya ilişkin bir örneği inceleyelim.

Island Resorts Marketing universe’ünü ele alalım. Bu universe’de 30 yaş ve altı tatil yapan Amerikan konukların kimler olduğunu ve ne kadar gelir kazandırdığını gösteren bir rapor tasarlayalım.

Raporda görmek istediğimiz kolonları her zaman olduğu gibi Result Objects alanına , bu örnekteki 30 yaş altı Amerkan konukları kısıtlayan hazır filtreyi ise Query Filters alanına sürükleyerek raporu çalıştıralım.

Şayet bu filtrelerin ne anlama geldiğini yada hangi kriterler doğrultusunda kısıtlama yaptığını bilmiyorsak mouse ile üzerine geldiğimizde çıkan etiketten faydalanabilriz. Bu açıklamalar Designer’lar tarafından girilmektedir.

Raporu çalıştırdığımızda 30 yaş ve altı Amerikalı müşterilerin geldiğini görebiliriz.

Bu universe’de hazır filtre olmamış olsaydı aynı filtreyi operatorler yardımıyla da yapabilirdik.

Bir sonraki uygulamada bu konuya ilişkin bilgileri ele alacağız.

Operatorler Yardımıyla Sorguyu Filtreleme

E-Fashion universe’ünü kullanarak 2004 yılı 5-9 ay aralığına ait gelir değerlerini görüntülemeye çalışalım.

Mağaza ismi ve Gelir bilgisi Result Objects alanına Yıl ve Ay objelerini Ouery Filters alanına sürükleyerek devam edelim.

Equal to 	:Belirtilen değere eşit (Tek bir değer).
Not Equal To:	 Belirtilen değere eşit olmayan değerler
Greater Than:	 Belirtilen değerden büyük
Greater than or Equal to:	 Belirtilen değerden büyük ya da eşit
Less Than:	 Belirtilen değerden küçük
Less than or Equal to:	 Belirtilen değerden küçük ya da eşit
Between:	 Belirtilen aralıktaki değerlere eşit olanlar
Not Between:	 Belirtilen aralıkta olmayanlar
In List:	 Belirten değerlere(çoklu seçim) eşit olanlar
Not In List:	 Belirtilen değerlerin dışında olanlar
Is null:	 Boş olanlar
Is not null:	Boş olmayanlar
Matches Pattern:	İçinde belirtilen karakterin geçtiği değerler
Diffrent From Pattern:	İçinde belirtilen karakter olmayan değerler
Both	Kesişim sorgu
Except:	Fark sorgu

Yılın 2004’e eşit olmasını sağlamak için operator listesinden Equal To seçilmelidir. Hangi yıla ait veriyi görmek istiyorsak listeden seçim yapmak üzere Values From List seçeneği işarretlenir.

Yıl objesini 2004 kayıtlarını görecek şekilde kısıtladık. Şimdi ay objesini filters alanına sürükleyelim.

Ay objesi için bir aralık belirleyeceğimizden dolayı Between operatoru seçilmelidir.

Başlangıç ayı  ve bitiş ayı değerlerini gerek elle gerekse listeden seçerek girebiliriz.

Bu kriterler doğrultusunda raporu çalıştırdığımız zaman  elde ettiğimiz sonucun bir kısmı aşağıda yer almaktadır.

Prompt Fonksiyonu İle Parametrik Kısıtlama

Bir önceki uygulamamızda 2004 yılı 5-9 ay aralığına ilişkin bilgileri içeren bir rapor oluşturmuştuk.

Bu raporu ilerleyen zamanlarda örneğin 2005 yılında Refresh ettiğimiz takdirde rapor verisinde herhangibir değişiklik olmayacaktır. Bunun nedeni bu raporun her seferinde 2004 5-9 ay aralığına bakarak kısıtlama yapmasıdır. Dolayısı ile bu durum 2 ayrı sorunu beraberinde getirmektedir.

	Her yıl yada her ay aralığı için ayrı raporlar  yaratarak  iş yükünü arttıracağız.
	Ayrı rapor oluşturmak server üzerinde rapor çoğalmasına neden olacaktır. Buda server’ın performansı ile ilgili sıkıntıya yol açacağı için istenilen bir durum değildir.

Bu sorunları ortadan kaldırmak amacıyla Prompt özelliğini kullanabiliriz.

Bir önceki uygulamayı  Prompt fonksiyonu ile oluştrumaya çalışalım. Bu uygulamada Yıl değeri için listeden sabit bir seçim yapmak yerine bu değeri kullanıcının girmesini sağlayan Prompt seçeneğini işaretliyoruz.

Kullanıcı, raporu her refresh ettiğinde hangi yılı kısıtlamak istediğini Prompt penceresinden seçebilir.Kullanıcıya yönelik mesajı elle değiştirmek mümkündür.

Aynı işlemi ay aralığı için yapmak gerekirse; hem başlangıç hem de bitiş ayını kullanıcının gireceği şekilde iki adet prompt uygulanmalıdır.

Bitiş ayı için de aynı işlemi tekrarlayalım.

Bu arada başlangıç ve bitiş ayı için kullanıcının karşısına çıkacak mesajı elle değiştirmemiz mümkündür

Bu işlemler doğrultusunda raporu çalıştırdığımızda Prompt ekranı üzerinde istediğimiz değerleri seçebiliriz.

Başlangıç ve bitiş aylarını da aynı şeklilde listeden seçip sağ tarafa aktaralım.

2005 yılı 2-6 ay aralığı seçilerek çalıştırılan raporun bir kısmı aşağıda yer almaktadır.

Aynı rapor refresh edildiğinde çıkan prompt ekranı üzerinde kısıtlama değerleri değiştirilerek farklı analizler yapılabilir.

Bu sayede tek bir rapor üzerinden farklı yıl ve ay aralıklarına ilişkin verileri görmemiz mümkün olacaktır.

Şimdi 2006 yılı 6-10 ay aralığına ait verileri görmek üzere refresh edip değerleri değiştirelim.

Userresponse Fonksiyonu İle Prompt Değerini Görüntüleme

Bir önceki uygulamamızda yıl ve ay aralığına ilişkin değerleri prompt fonksiyonu ile belirlemiştik.

Şimdi seçilen yıl değerini başlıkla görüntüleyelim. Prompt penceresinde girilen değeri  döndüren fonksiyon Userresonse dur.

Öncelikle raporda yer alan başlığı çift tıklayarak çıkan formül çubuğunda userresponse fonksiyonunu elle yazabiliriz.

=UserResponse("Yıl Seçiniz")

Bu formülü hücreye yazmak yerine CTRL + Enter kombinasyonu ile açılan formül editöründe de düzenlemek mümkündür.

Bu formülü kullanırken en çok dikkat edilmesi gereken nokta çift tırnak içerisinde yazılan mesajın prompt mesajı ile birebir aynı olması.

Bu formülü tamamladıktan sonra Enter düğmesiyle o an seçilen Yıl değerinin döndüğünü görebiliriz.

Bu formülün sonuna metinsel bir ifade eklemek mümkündür.

=UserResponse("Yıl Seçiniz")+"   yılına ait değerler"

Yılına kelimesinden önce çift tırnak içerisinde boşluk karakteri konularak değerlerin bitişik yazılması engellenebilir.

Prompt Ayarları ve Optional Prompt

Prompt fonksiyonu ile yapılan kısıtlamalarda her prompt’a ilişkin bir takım ayarlamar yapabiliriz.

Prompt mesajının girildiği kutucuğun hemen yanında yer alan   soru işarati düğmesine tıklayarak gelen ekranda

Prompt With List Of Values	Prompt için gerken değeri listeden seçmemizi sağlar. Bu opsiyon kaldırıldığında kullanıcı lşsteyi göremez.

Select Only From List	Prompt değerini listeden seçime zorlar. Kullanıcı elle giriş yapamaz

Keep Last Values	Refresh işlemi ile ekrana gelen Prompt ekranında en son seçili olan değerin tutlmasını sağlar. Kullanıcı gerekirse farklı bir değer de seçebilir.

Optional Prompt	Prompt ekranında kısıtlamaya ilişkin herhangi bir değer girilmediği takdirde (boş geçilirse) kısıtlama yokmuş gibi tüm değerleri görüntüleyebiliriz.

Set Default Values	Her refresh işleminde Prompt değerinin belli bir değerde seçili olmasını sağlar.

	Bu seçenek işaretli iken Keep Last Values seçeneğinin kaldırılması gerekmektedir.

Complex Filter

Query Filters alanında birden fazla filtre gerçekleştirdiğimiz durumlarda çoğu zaman And ve Or operatorlerini birarada kullanmamız gerekebilir. Üstelik bu operatorlerin kendi içerisinde gruplanması da söz konusu olabilir.

Örneğin Island Resorts Marketing Universe’ünü kullanarak,
Bahama Tatil Köyünde 2004 yılında konaklayan müşteriler ile
Hawaian Tatil Köyünde 2006 yılında konaklayan müşterileri görüntüleyen bir rapor tasarlayalım.

Bu işlem için öncelikle universe’de yer alan Predefined (Hazır) Filtre’lerden faydalanmaya çalışalım.

Filtreleri bu şekilde ekleyerek bu raporu çalıştırdığımızda doğal olarak herhangi bir veri alamayacağız.

Yerleştirdiğimiz filtreleri And ve Or operatorleri ile gruplamamız gerekecek.

Öncelikle 2004 yılında Bahama Tatil Köyünde tatil yapan müşteriler için, ilgili filtreler üstüste getirilir.

Aynı işlemler 2006 yılında Hawaian tatil köyünde konaklayan müşteriler için de tekrar edilmelidir.

Son olarak en dıştaki And operatörünü çift tıklayarak OR olarak değiştirebilirsiniz.

Bu durumda çalışan rapora gelen kayıtlar

Matches Pattern Operatoru:

Bu uygulamada Island Resort Marketing universe’ünü kullanarak müşteri isimlerine göre bir kısıtlama yapmaya çalışacağız.

Örneğin amacımız İsmi Ka harfleri ile başlayan müşterilere ait bilgileri görüntülemek olsun.

Bir metinsel bütün içerisinde bir karakter parçacığı arattığınız durumlarda Matches Pattern operatorunu kullanabiliriz.

Customer objesini Query Filter alanına sürükleyerek operator listesinden Matches Pattern  operatoru seçilir. İsmi Kile başlayanları bulmak için K% ifadesi yazılmalıdır.

Gelen raporda sadece KA harfleri ile başlayan müşterilerin olduğunu görebiliriz.

Şimdi Matches Pattern operatorune ilişkin uygulamalara birkaç örnek daha verelim.

İsminin içerisinde “ak” harflerinin geçtiği müşteriler

İsmi “s” harfi ile biten müşteriler

İsminin 4. karakteri “h” olan müşteriler
  Son uygulamada h harfinden önce 3 adet altçizgi konulmuştur. Yani belirtilen noktaya kadar altçizgi kullanarak bu işlemi gerçekleştirebiliriz.

SubQuery Yöntemi İle Kısıtlama

Şayet kısıtlayacağımız değer bir başka sorgudan gelecek bir sonuca bağlı ise bu durumda subquery fonksiyonunu kullanmamız gerekecektir.

E-Fashion universe’ünü kullanarak Chicago mağazasına ait gelirden fazla gelire sahip mağazaları görüntülemeye çalışalım. Bu işlemin yapılabilmesi için en başta Chicago mağazası gelirini tespit edip bu değerden büyük olan gelir değerine sahip mağazaları görüntülememiz gerekecektir.

Universe alanında Sales Revenue seçili iken, Query Filters alanında sağ tarafta yer alan Add a Subquery düğmesine tıklayarak gelir objesine ilişkin bir subquery paneli yerleştirebiliriz.

Amacımız öncelikle Chicago mağazasına ait geliri saptamak olduğu için subquery paneli içerisinde mağazayı Chicago seçerek kısıtlayabiliriz.

Raporu çalıştırdığımız zaman gelen verilerin Chicago mağazası gelirine eşit yada büyük gelirlere sahip mağazalar olduğunu görebiliriz.

Raporu Değişik Formatlarda Görüntüleyerek Analiz Etme

Business Objects’in kullanıcıya sunduğu en önemli özelliklerden birisi de raporu değişik formatlarda görüntüleyerek daha kolay ve anlaşılır bir analiz yapılmasını sağlamaktır.

Bu formatları aşağıdaki gibi sıralamak mümkündür.

	Section
	Break
	Crosstab
	Horizantal Table
	Grafik

Section Oluşturma
Çoğu zaman uzun ve liste şeklindeki raporları analiz etmek kolay olmayabilir. Bu durumda tablodaki değerleri değişik formatlarda görüntüleyerek rapor analizini daha kolay bir hale getirebiliriz.

Örneğin eyalet bazında yıllık ve dönemsel gelir analizini görmek istediğiniz bir tablo düşünün.

Bu uzun tabloda her bir eyaletin yıllık ve dönemsel gelirini ayrı ayrı görmek isteyebiliriz. Bu durumda her State(Eyalet) için Section(bölüm) yaratarak yıllık-dönemsel satış gelirini daha kolay analiz edebiliriz.

Bu işlemin yapılabilmesi için 2 yöntem vardır.

Section yapılacak sütundaki veriler üzerinde mouse ile sağ tıklayarak “Set as Section” seçilir

Böylece her State(Eyaletye) için bir Section(bölüm) oluşturarak, bölgelere ait yıllık gelirleri rahatlıkla analiz edebiliriz.

Bu işlemi gerçekleştirmek için kullanılan bir diğer yöntem ise, Section yapılacak sütunu işaretleyip mouse’un sol tuşuna basılı tutarak imleci tablonun üst tarafında boş bir yere taşımaktır.

Bu işlemin sonucunda State alanı bir önceki yöntemde olduğu gibi Section olacaktır.

Bu uygulamada State(Eyalet) bazında raporun ayrı ayrı görüntülenmesini sağladık. Aynı uygulamada ikinci bir section yani bir alt section yaratarak, eyalet bazında parçaladığımız bu raporu her eyaletin yıllarınıda ayrı ayrı gösterecek şekilde parçalayabiliriz.

	Yılları eyalet altında bir alt section olarak tanımlamak için aynı işlem Year kolonu için tekrar edilebilir.

Raporu bu şekilde parçalamamızın en önemli amaçlarından biriside, sayısal alanlarla ilgili yapacağımız hesaplamaların (Sum, Max,Min, Average gibi fonksiyonların) her bölme için ayrı ayrı görüntülenmesini sağlamaktır.

Bu hesaplamaları araç çubuğunda yer alan   düğmesinin yanında yer alan oka basarak yapabiliriz. Fakat daha öncesinde ilgili sayısal (measure) kolonun seçilmesi gerekmektedir.

Böylece her eyaletin yıllık gelir toplam ve ortalamalarının ayrı ayrı hesaplanmasını sağlamış olduk.

İçiçe section formatının söz konusu olduğu durumlarda içteki sectiona ait hesaplamalar yapılırken, bir üst seviyedeki sectiona ait genel hesaplamalar yapılamamaktadır. Böyle durumlarda manual bir yöntem doğrultusunda her seviyenin toplamı ayrı ayrı görüntülenebilir.

Bu işlem için Data penceresinde yer alan Sales Revenue objesini tek başına herhangibir seviyede konumlandıralım. Measure(Sayısal) bir obje tek başına bulunduğu seviyenin toplamını vereceği için Section sınırları göz önünde tutularak hem eyaletlerin genel toplamlarını hem de raporun Totalini bulabiliriz.

Şekildende anlaşılacağı gibi her section ın sınırlarını belirleyen çizgiler mevcuttur. Gelir objesini ilgili aralıkta section başlıklarıyla aynı hizaya getirerek toplamlarını buldurabiliriz. Hatta tüm sectionların en üstüne yerleştirerek rapor toplamını bile görüntüleyebiliriz.

İçiçe oluşturulan Section’ların birbirlerine olan mesafelerini ayarlama işlemini View Structure menüsünden yapabiliriz.

Burada yer alan gri renkli tırnakları mouse yardımıyla aşağı yukarı hareket ettirerek, section mesafelerini ayarlamamız mümkündür. Sonucu görüntülemek için View Results butonuna tıklamak yeterli olacaktır.

	Sectionları ortadan kaldırarak tabloyu eski haline dönüştürmek için Section alanı içerisinde boş bir alana tıklanarak klavyeden Delete düğmesine basılması yeterli olacaktır. Bu işlem sonucunda section yaptığımız objeyi Data penceresinden tabloya tekrar eklememiz gerekecektir.

	Bir başka yöntem ise Section başlığını mouse ile sürükleyerek tabloya sütun ekler gibi dahil etmektir. Böylece hem Section formatını ortadan kaldırmış hemde objeyi tabloya eklemiş oluruz.

	Section içeren uzun bir rapor sayfasında MAP düğmesinden faydalanarak rapor sayfası üzerinde gezinebiliriz. Data Penceresinde yer alan MAP düğmesine tıkladığımız zaman açılan Section başlıkarı listesinden istediğimiz noktaya tek hamleyle erişebilriz.

Break Oluşturma
Tablo üzerindeki bir sütunda tekrar eden verileri gruplayarak daha rahat analiz yapmamızı sağlayan bir formatlama biçimidir.

Break özelliği uygulanan tablo, Section’ da olduğu gibi ayrı bloklara bölünmez. Tek bir blok içerisinde tekrar eden veriler gruplanır. Ayrıca Break formatında alt toplamların her seviye için ayrı ayrı alınabilmesi, bu formatı Section’dan ayıran en önemli özelliktir. Break formatında birden fazla seviye söz konusu ise, her seviyenin hesaplamaları (Sum , Max , Min, Average vb..) ayrı ayrı görüntülenir.

E-Fashion universe ünü kullanarak Eyalet bazında yıllık ve dönemsel gelir analizi yapalım. Öncelikle State kolonundaki verileri seçmemiz gerekmektedir.

Bu tablo üzerinde State kolonu üzerinde Break uygulamak için ilgili kolon seçilerek, Reporting araç çubuğunda yer alan Insert/Remove Break    butonuna basmak .

State kolonunda herbir eyaletin kendi içinde gruplandığını görebiliriz.

Section formatında olduğu gibi içiçe Break formatı uygulayarak raporu daha alt seviyelerde gruplamak mümkündür.

Bu uygulamada hem Eyalet hemde Eyaletlere ait yılları kendi içinde gruplayalım.

Bu şekilden de anlaşılacağı gibi önce State kolonuna daha sonra Year kolonuna Break uygulanmıştır.

İçiçe Break eklenmiş bir tabloda, birtakım özellikleri değiştirerek raporu daha görsel ve daha anlaşılır bir hale getirebiliriz.

	Burada dikkat edilmesi gereken en önemli nokta; Break eklenmiş her kolon için özellikler ayrı ayrı incelenip değiştirilmelidir. Bu uygulamada 2 adet Break kolonu olduğu için her 2 kolonun Break özellikleri ayrı ayrı değiştirilecektir.

Öncelikle içteki kolondan başlayalım. Year verisi seçilerek Properties menüsünden Break başlığı altındaki bazı seçenekleri değiştirelim.

Tablo başlıklarının her yıl değişiminde tekrar etmesini istemiyorsak Year kolonu Break özelliklerinden Show Break Header özelliğini kaldırabiliriz. Ayrıca Break kolonundaki gruplanmış verilerin ortalanarak görüntülenmesini Center Values Across Break özelliğini işaretleyerek sağlayabiliriz.

Year kolonu üzerinde değiştirilen Break özellikleri sonucunda rapor aşağıdaki gibi görüntülenecektir.

Bu işlemin aynısı State kolonu için de tekrar edilmelidir. State kolonunda yer alan veri tıklanarak Properties seçeneği ile her eyalet grubunda başlığın gelmesini ve eyalet isimlerinin ortalanmasını sağlayabiliriz.

Böylece her eyalet ve o eyalete ait yıllar kendi içinde gruplanmış oldu.

Sales Revenue kolonu ile ilgili matematiksel işlemler   menüsünden gerçekleştirilebilir.

Break formatında, matematiksel işlemlerin (Sum,Average,Max...) her seviye için ayrı ayrı yapıldığına dikkat ediniz.

Crosstab Oluşturma

Tablonunun bazı sütunlarında yer alan verilerin satırda başlık olarak yer alması istenebilir. Bu durumda tabloya CrossTab formatı uygulanmalıdır.

Section ve Break uygulamalarında kullandığımız sorgudan faydalanarak Yıllık ve dönemsel bazda gelir analizini içeren bir tablo yaratalım. Quarter alanını mouse ile sürükleyerek tablonun en üst kısmında uzun bir şerit oluşacak şekilde konumlandırabiliriz.

Bu işlemin sonunda Quarter alanının satırda yer aldığını görebiliriz.

Crosstab oluştuktan sonra göze çarpan en önemli eksiklik, alan isimlerinin tabloda yer almayışıdır. Bu özelliği eklemek için Crosstab’e ait Properties menüsünden faydalanmamız gerekiyor.

Crosstab tablosunu en dış çizgisinden seçilerek Properties menüsünden Show Object Name kutucuğu işaretlenir.

Böylece alan isimlerini tabloda görüntülemiş oluruz.

Son olarak sayısal verileri seçerek Reporting araç çubuğunda yer alan Sum düğmesine tıklayarak toplam aldırabiliriz.

Burada hem yıl bazında hemde dönem bazında toplam alındığını görebiliriz.

	Crosstab formatına dönüştürülmüş tabloyu orjinal haline dönüştürmek için Template menüsünde yer alan Vertical Table seçeneği, Crosstab’in üzerine sürüklenir.

Böylece tablo orjinal haline dönmüş olur.

Dikey formata dönüşen tabloda gerekirse Year ve Quarter kolonlarının yerleri değiştirilebilir.

Horizontal Table

Tabloda yer alan sütunların satır şekline dönüşmesini sağlayan bir formattır.

E-fashion universe’ünü kullanarak aşağıdaki tabloyu oluşturalım.

Template menüsünde yer alan Horizontal Table seçeneğini mouse ile tablonun üzerine sürüklediğimiz anda tablonun yatay tablo olarak değiştiğini görebiliriz.

Bu tabloyu orjinal haline dönüştürmek için Temlate menüsünden Vertical Table seçeneğini tablonun üzerine sürükleyebiliriz..

Grafik Oluşturma :
Raporda yer alan herhangi bir tabloyu Templates menüsündeki grafik seçeneklerini kullanarak grafiğe dönüştrebiliriz.

Yıl bazında gelir değerlerini gösteren tabloyu grafiğe dönüştürmden önce bu tabloyu kopyalayalım.

Bu işlemi yapmamızın nedeni hem tabloyu hem de grafiği yanyana görüntüleyebilmektir.

Template menüsü, Charts başlığı altında yer alan grafik çeşitlerinden Pie başlığı altında yer alan 3D Pie seçeneğini ikinci tablonun tam üzerine sürükleyerek tablonun grafiğe dönüşmesini sağlayabliriz.

Grafikte görüntülenen dilimlerin yüzdesel değerlerini görüntülemek için grafiğe ait özellikler (Properties) içerisinde yer alan Data menüsü altında Values seçeneğinde Show Values ve hemen ardından Show as Percentage kutucukları işaretlenerek yüzde değerleri görüntülenebilir.

Bu grafikte yer alan verilerin tüm eyaletlere ait toplam gelirler olduğunu biliyoruz. Şayet her eyalet için ayrı ayrı grafik oluşturulması isteniyor ise State objesini section formatını uygulayacak şekilde raporun üst kısmına yerleştirebiliriz.

Böylece her eyalet için ayrı ayrı grafik oluştuğunu görebiliriz.

Grafik Eksenlerinde Yerdeğişikliği Yapma

E-Fashion universe’ü seçilerek oluşturulmuş aşağıdaki tabloyu ve grafiği inceleyelim.

Yukarıdaki grafikte her bir bölge için yıllık satışları analiz etmemiz mümkündür. Mesela California bölgesi için en fazla satış yapılan yılın 2006 yılı olduğunu rahatlıkla görebiliriz.

	Grafikte farklı renklerde görüntülenen sütunların hangi yıllara ait olduğunu göremiyorsak  grafiği seçerek Properties menüsünde yer alan Insert Legend seçeneğini işaretleyebiliriz.

Fakat amacımız her bir yıl için en fazla gelir getiren bölgeleri tespit etmek ise, yukarıda yer alan grafikte State ve Year objelerinin eksenlerdeki yerlerini değiştirmemiz gerekmektedir.

Bu işlemi View Structure menüsünden gerçekleştirebiliriz.

Yer değişikliğini, State yada Year objesini şekilde görüldüğü gibi mouse ile sürükleyerek gerçekleştirebiliriz.

View Results düğmesine basılarak elde edilen grafik aşağıdaki gibi olacaktır.

Bu grafikte yıllık bazda en iyi yada en kötü satışın gerçekleştiği bölgeleri rahatlıkla görebiliriz. Örneğin her yıl en fazla gelir kazandıran bölgenin Texas olduğunu söyleyebiliriz.

Şimdi, farklı bir rapor ve ona ait grafik için, View Structure menüsünü kullanarak farklı bir uygulama geliştirelim.

Öncelikle Year,Quarter ve Sales Revenue objelerini kullanarak oluşturduğumuz tabloyu grafiğe dönüştürelim.

Bu grafikte her bir yıla ait Quarter gelirlerini inceleyebiliriz. Fakat soldaki tabloda yer alan tüm sayısal değerlerin tek bir eksen üzerinde görüntülenmesi söz konusu ise, bu işlemi View Structure menüsünden yapabiliriz.

View Structure menüsünde Year ve Quarter objeleri X ekseninde yanyana gelecek şekilde yerleştirildiğinde grafik aşağıdaki formata dönüşecektir. View Result düğmesiyle grafiğin yeni halini görüntüleyebiliriz.

Alerter Fonksiyonu İle Koşullu Biçimlendirme

Raporda yer alan tabloları incelerken çoğu zaman belli bir koşula uyan satırların daha belirgin hale gelmesini ve dolayısı ile bu verilerin daha rahat takip edilmesini isteyebiliriz.

Alerter fonksiyonu sayesinde istediğiiz koşula uygun verilerin farklı formatlanmasını sağlayabliriz.

Hedef senaryosundan oluşan bir örnekle konuyu ele alalım.

E-Fashion universe’ü ile geçen sene satılan ürünlerin satış miktarlarını görüntüleyen bir sorgu yaratalım.

Geçen sene kısıtlamasını, universe içerisinde yer alan Last Year hazır filtresiyle yapabiliriz.

Raporu çalıştırarak geçen sene satılan ürünlere ait değerleri inceleyelim.

Bu senaryoda satış hedefimizin 1000 olduğunu düşünelim. 1000’in altında satan ürünleri hedefi aşamadığı için kırmızı rente ; 1000’e eşit ve büyük olanları ise yeşil renkte görüntüleyerek formatlayalım.

Araç çubuğunda yer alan Alerter menüsüne tıklayarak karşımıza çıkan ekranda New düğmesi ile yeni bir alerter yaratalım.

Bu alerter’a hedef ismini verebiliriz.

Cell Contents kısmında yer alan kutucuğa tıklayarak koşulda kullanılacak objeyi belirleyebiliriz.

Satış miktarının 1000 değerinden küçük olması durumunu belirledikten sonra Format düğmesine tıklayarak yazı rengi arka plan rengi gibi format değişikliklerini yaratabiliriz.

Aynı işlem Alerter penceresinde yer alan Add Sub Alerter düğmesiyle 1000’e eşit ve büyük değerler için tekrarlanır.

Böylece tek bir alerter yaratarak iki ayrı koşul için farklı formatlar oluşturmuş olduk.

Yarattığımız bu Alerter’ı tablodaki veriye uygulamak için önce Line kolonunu seçelim.  Alerter menüsüne tıkladığımız anda çıkan pencerede yer alan hedef alerter’ına ait kutucuğu aktif hale getirip OK düğmesine tıklayabiliriz.

Aynı işlemi Gelir kolonunu için de tekrarlayabiliriz. Böylece aynı Alerter’ı diğer kolonlar üzerinde de uygulayarak tüm sütunların formatlanmasını sağlayabiliriz.

Ranking Fonksiyonu İle Top N Bottom N kayıtların Tespit Edilmesi

Belli bir sayısal değer üzerinden raporumuzdaki en iyi ya da en kötü kayıtları tespit etmek istiyorsak ranking fonksiyonu ile bu işlemi kolayca gerçekleştirebiliriz.

Mağaza bazında toplam gelir ve satış adedini görüntülediğimiz aşağıdaki tabloyu inceleyelim.

Bu tablo üzerinde iki farklı senaryo üzerinden ilerlememiz mümkündür. Örneğin satış geliri en yüksek ilk 4 mağazayı merak ediyorsak, mağaza kolonuna tıklayarak araç çubuğunda yer alan Ranking düğmesi ile bu işlemi gerçekleştirelim.

Bu ekranda dikkat edilmesi gereken nokta Ranking işleminin hangi sayısal değer üzerinden gerçekleşeceğini doğru belirlemektir. Bizim senaryomuza göre Sales Revenue (Gelir ) değerinin seçilmesi gerekmektedir.

OK düğmesi ile satış geliri en yüksek ilk 4 kaydın geldiğini görebiliriz.

Ranking menüsünde yer alan Clculation Mode seçeneklerine değinmek gerekirse;

Count: Belli bir sayısal değer üzerinden topn yada bottom n kaydı bulmaya yarar.Az önceki örnekte bu seçenek kullanılmıştı.

Percentage: Toplam mağaza sayısı için % alarak top yada bottom mağazaları getirir. Burada belirtilen yüzde Gelir yüzdesi değildir. Örneğin Top alanına %20 yazıldığında mağaza sayısının % 20 si kadar en iyi kayıtlar dönecektir.

Cumulative Sum: Gelir toplamları belirtilen sayısal değere en yakın yada eşit top yada bottom mağazalar gelecekti. Örneğin Top kısmına 20.000 değeri girilerek yapılılan ranking işlemi sonucunda, gelir toplamları bu rakamı (yada en yakın sayıyı) veren en iyi mağazalar gelecekti.

Cumulative Percentage: Gelir toplamları gelirin % 30’unu oluşturan en iyi mağazalar hangisi sorusunun cevabını bu yöntemle bulabiliriz. Yani gelir toplamları belirtilen gelir yüzdesini sağlayan en iyi yada en kötü kayıtları bulmamızı sağlayan bir seçenektir.

Değişken Yaratma

Çoğu zaman Universe içerisinde yer almayan bazı değişkenleri formüller yardımıyla kendimiz de oluşturabiliriz.

Yarattığımız bu değişkenler universe’de herhangi bir değişikliğe neden olmayacaktır. Sadece o rapor içerisinde yer alacak ve kullanılacaktır.

Örneğin E-Fashion universe’ünü ele alalım.

Bu universe içerisinde her bir ürünün satış miktarları ve bu ürünlere ait birim fiyatları yer almakta. Eğer bu ürünlere ait KDV değerlerini hesaplamak istiyorsak değişken yaratma yöntemi ile bunu gerçekleştirebliriz.

Öncelikle This Year hazır filtresini kullanarak bu sene satılan ürünleri ve bu ürünlere ait birim fiyat ve satış adedi bilgilerini görüntüleyelim.

Araç çubuğunda yer alan Variable Editor düğmesi ile değişken tanımlayacağımız pencereyi açabiliriz.

Yaratacağımız KDV değişkeninin bir measure ifade olduğunu belirttikten hemen sonra Formula kısmında Data bölmesinde yer alan objeleri çift tıklayarak gerekli formulasyonu oluşturabiliriz.

=[Quantity sold]*[Sold at (unit price)]*0.18

Ok düğmesine tıkladığımız anda sol tarafta yer alan Data menüsüne yarattığımız KDV değerinin de eklendiğini görebiliriz.

Bu değişkeni tabloya ekleyerek her ürünün KDV değerini görüntüleyelim.

Bu raporu her refresh ettiğimizde satış adetleri ve birim fiyat değiştiği sürece, KDV değeri de aynı oranda değişerek güncellenecektir.

Yarattığmız bu değişkeni her türlü işlemde (grafik , alerter, ranking vs..) kullanabiliriz.

If Fonksiyonu İle Koşullu Formül Oluşturma

Bir önceki uygulamamızda bu sene satılan ürünlerin satış adetlerini görüntülemiştik.

Şimdi ise aynı uygulama üzerinden devam ederek önümüzdeki sene için planlanan bir satış adedi değeri yaratalım.

Bu planlamayı yapmadan önce koşullarımızı belirleyelim.

Satış miktarı 1000 den küçük ürünlerde 			% 5
Satış mikatrı 9000 den küçük ürünlerde			%10
Satış Miktarı  9000 e eşit ve büyük ürünlerde		%20  lik bir artış olmasını sağlayalım.

Bu koşullara bağlı bir formulasyonu If fonksiyonu ile oluşturabiliriz.

If (Koşul 1; Sonuç1;if(Koşul2;Sonuç2;if(Koşul3;Sonuç3.....)))

Bu kural dahilinde koşul ve sonuçlarımızı yazmak gerekirse

=if([Quantity sold]<1000;[Quantity sold]*1.05;if([Quantity sold]<9000;[Quantity sold]*1.1;if([Quantity sold]<9000;[Quantity sold]*1.2)))

Bu formülü Planlanan adını verdiğimiz bir değişken içerisinde kullanabiliriz.

Oluşturduğumuz değişkeni tabloya ekleyerek önümüzdeki sene için öngörülen adetleri inceleyebiliriz.

Calculation Context

Yıllık ve dönemsel bazda gelir değerlerini gösteren bir tabloyu inceleyelim.

Bu tabloda yer alan gelir değerlerinin içinde bulunduğu yıl ortalamasına göre sapmasını hesaplamak istiyoruz.

Bu hesaplamayı yapabilmek için en başta yıllık ortalamayı hesaplayan bir değişkene ihtiyacımız olacaktır.

=Average([Sales revenue]) formülü ile oluşturulan değişkeni tabloya eklediğimiz anda istediğimiz sonucun oluşmadığını görebiliriz.

Görüldüğü gibi yıllık ortalama diye oluşturduğumuz değişken, gelir değerlerinin kendi ortalamasını alarak aynı rakamsal sonucu üretti.

Bu durumda yapılması gereken, formülün hangi bazda hesaplama yapacağını belirten uzantıların eklenmesidir.

Hesaplamaların hangi bazda yapıldığını belirten uzantılara calculation context denilmektedir.

En sık kullandığımız context ifadelerinden birisi IN contextidir.

Bu formülasyonu =Average([Sales revenue]) In ([Year]) şeklinde oluşturarak tekrar deneyelim.

Şimdi yıllık ortalamaya göre sapma hesaplamak üzere ;

=[Sales revenue]-[Yıllık Ortalama] forülüyle sapmayı hesaplayabiliriz.

Şayet ortalamanın rapor bazında hesaplanmasını istiyorsak,

=Average([Sales revenue])In Report contextini kullanabiliriz.

Şayet In context’i içerisinde birden fazla diemension yer alacaksa diemensionlar arasında noktalı virgül kullanarak  bu işlemi gerçekleştirebiliriz.

In (Dim1;Dim2;Dim3...)

Birden Fazla Sorgu Oluşturma Birleştirme (Merge Diemensions)

Bu bölümde, birden fazla Query (Sorgu) oluşturarak bu sorgulardan elde edilen sonuçların nasıl birleştirildiğine yönelik uygulamalar yapacağız.

Bir Web Intelligence dokumanında tek bir universe üzerinden çoklu sorgu oluşturulabildiği gibi farklı universe ler üzerinden hareket edilerek de çoklu sorgu oluşturulabilinir.

Şu ana kadar kullanmış olduğumuz demo universe lerden hareket ederek, birden fazla sorgunun nasıl oluşturulduğunu inceleyelim. E-fashion ve Island Resorts Marketing universe leri normalde farklı senaryolar için kullanılan universe lerdir. Fakat bu örnekte bir firmanın farklı iki departmanına özgü bilgileri içeren iki ayrı universe olarak düşünelim.

E-Fashion Universe ünü kullanarak City(Şehir) bazında Gelir analizi yapalım.

Bu sorguyu çalıştırmadan önce yeni bir sorgu yaratmak üzere Add Query menüsünden yeni universe seçilerek işleme devam edilir.

Aynı sorguya Island Resorts Marketing universe’ü ile City bazında gelir değerini gösteren yeni bir sorgu ekleyelim.

Bu sorgular çalıştırıldığı takdirde sonuçların iki ayrı tablo şeklinde görüntülendiğini görebiliriz. Şayet farklı iki universe den gelen gelir bilgilerini tek bir tabloda toparlamak isteniyor ise sorgularda kullanılan Diemesion ların birbiriyle ilşkilendirilmesi gerekmektedir. Bu işleme Merge işlemi denilmektedir.
Merge işlemi yapılmadan önce Data penceresini daha kolay anlaşılabilir bir hale dönüştürelim. Farklı Query lerden gelen objeleri Query bazında sıralamak amacı ile Data penceresini altında yer alan menüden Query seçeneği işaretlenir.

Böylece tabloları oluştururken benzer isimleri içeren objelerin hangi Query’den geldiği rahatlıkla anlayabiliriz.

Merge işlemini yapmamızdaki amaç, her iki Query’den gelen şehir bilgilerini birleştirerek tek bir sütunda toparlayabilmektir.

Araç çubuğunda yer alan Merge Diemensions butonu ile açılan pencereden bu işlemi gerçekleştirelim.

Her iki sorgudan gelen City alanları seçilerek Merge düğmesiyle birleştirilebilir.

Merge işlemi uygulanacak olan diemension larla ilgili bilgi penceresinde OK düğmesine basılarak işlem tamamlanır.

Data penceresinde oluşan Merged Diemensions claas ı içerisinde yer alan City diemension ı her iki Query de yer alan şehirlerin birleşiminden oluşan bir objedir. Burada en çok dikkat edilmesi gereken nokta City (Query1) ve City(Query2 ) objelerini kullanarak gelirleri kıyaslamak doğru olmamasıdır. City objesi ve Revenue objelerini CTRL tuşu ile çoklu seçim yaparak rapor sayfasına sürüklediğimiz anda her iki Query den gelen sonuçları tekbir tablo üzerinde görüntülemiş oluruz.

Bu tabloda yer alan bazı şehirlerin her iki Query de ortak olduğunu görebiliriz. Örneğin Chicago ve Dallas gibi...

Discontinued ifadesi o şehirde veri olmadığını ifade etmektedir.


Buzz off. Why comment on a 2 years old commit after the changes made are not even live any longer?

https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp


Nooo, Italy, not Belgium :-)


Hello


Thanks Fish !

--Ivan

On 7/18/2016 4:19 PM, Fish-Git wrote:
>
>     #define OPTION_STRICT_ALIGMENT
>
> Misspelled. Should be:
>
> |#define OPTION_STRICT_ALIGNMENT |
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/hercules-390/hyperion/commit/c8acdd3a4212b07b807e5cf75bd0d2e7586abf65#commitcomment-18283795>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ABjMW1y6WAiD2hAJH3VwPXfD3TXE2SK5ks5qW4uOgaJpZM4JOwsu>.
>


Usunięte. Efekt ctrl + C, ctrl + V


Good point. Thanks for bring it up.


Where can I get the correct code for this file?
When I try to display the play icon, the images disappear and vice-versa.


develop (lgu1234) - x86_64-Linux-Ubuntu-14.04-gcc-4.8: OK (1697 of 1697 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg)


@hasegeli The `kwargs` solution doesn't work unfortunately because of the `from` variable which can not be used.

I used a dict parameter now and the `urlencode` function. Thx @dstelter :wink:


How you create tag file
please explain the field header you use

I saw some duplicates like this

> +114,romance
>  +114,Romance
>  +114,Romance
>  +114,Romance
>  +114,ROMANTIC
>  +114,ROMANTIC
>  +114,ROMANTIC
>  +114,ROMANTIC
>  +114,romantic comedy
>  +114,seen more than once

Thank you


develop (lgu1234) - x86_64-Linux-Ubuntu-14.04-gcc-4.8-UnitTestsCoverage-Debug: OK (1120 of 1120 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-34.78%25-green.svg)


Wasn't mine originally, but will remove it.


The following doc(s) have been deployed to the [dustinlebla](https://dustinlebla-static-docs.pantheonsite.io/docs) Multidev environment:
- [docs/unsupported-modules-plugins](https://dustinlebla-static-docs.pantheonsite.io/docs/unsupported-modules-plugins)


Oh, yeah I was just going to improve the look and add a button to copy all the printNoInfo part. If you want to move it over to JavaFx and just make it look better feel free to do so.


No problem. When we agree on a specification, I can handle the modifications myself.


develop (lgu1234) - x86_64-Linux-Ubuntu-14.04-custom_check: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg)


I'm not aware of all legitimate occurrences that need to be removed, though if it's just for removing something like "lib/net45/" at the start of the string, this should be much stricter.


shart -> shard


FYI these runtime-sized things won't work outside of gcc.  I might be ok with that for now.


This reference isn't needed.


if I use yii version >= 2.0.8 than no one css file does not registered. js registered normaly. I can't understand why? Can you contact with me on e'mail lexx.klan@mail.ru?


I know. I have used the `|default` filter a couple of times in the main template.


Got your point. Will look into it.


Weill it is if you use IntelliJ while a build is going on, and it doesn't hurt, and it saves me taking it out every time it pops up.


Thank you guys so much for this change. I was having an issue with change detection, and this worked like a charm.


hekki


c quoi ça??


There's no need for a recursive rm here...


Issues #47, #196, #198, and probably others.


Is the dedicated import page being worked on or missing from the request?


Works! Thanks so much, gave me a real headache. Will version 1.12.0.9000 be available on CRAN any time soon? I am also amazed that I can install_github devtools using devtools.


I don't disagree. Here's an idea.. why not expose it as a `char [MAX_OSPATH]` right on `g_import_t`? It can't change without actually reloading the game module (right? I think that's correct). So resolving it once, when preparing `g_import_t` to share with the game module, seems safe / sane. That way, we could call it `write_dir`. Thoughts? If that doesn't tickle your fancy, then I'm fine with what you've got.


thx~


On  Mo 18 Jul 2016 16:36:23 CEST, Ulrich Sibiller wrote:

> There's no need for a recursive rm here...
>

Right... c+p flaw...
--

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
mobile: +49 (1520) 1976 148
landline: +49 (4354) 8390 139

GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22  0782 9AF4 6B30 2577 1B31
mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de


1. В экшенах плохо делатать вызов на сервер, есть либа redux-api-middleware
2. fetch новое, но она не позволяет делать прогресс лоадер + не работает с xml
3. нужно вынести работу с fetch в отдельный модуль, будет очень много лишнего копипаста


why the regression here?


True...Completely nonsense. I will remove the primitive in the next commit.


not a regression - we changed this because post 14.04.2 Canonical forces HWE and you can't opt out so the only way to get a non-HWE kernel is to start here.

See https://github.com/chef/bento/issues/529


Hi Mohan,
please i am trying to write about your angular oauth2 implementation, because i need your Help. But your Email didnt exist, please can you give me your actual adress?
Best Regard


Yeah, I think we need to think about simplifying what we do with the Customizer. We ran into a couple of concerns during implementation:

(1) The act of customizing (with the flip and transform) is pretty specific to the combination of a part and a particular printing session, and is currently (like most things configured in the UI), transient. Thus, it's unlikely that anyone would build up a large collection of customizers for a given printable. and much more likely that this is a final last step before printing as primarily a one-time operation, with a relatively small likelihood of customizer re-use. The interface for using customizers is much simpler and more closely matches that printing use case as a 1-1 to each Printable, rather than as a many-many. Customizers can't really be easily re-used, since a transform to position one part would put a different part off the edge of the printing area.

(2) The print method in the PrinterService does quite a lot. Copying that logic around into the Customizer would create a maintenance issue.

I think it does make sense to contain as much of the Customizer related code in the Customizer service itself, and to move the printWithCustomizer() service into the CustomizerService.

The more fundamental change is the change to the PrinterService, to add a print() function that takes a boolean as a parameter. There didn't seem to otherwise be an easy way to plug control behaviors into the print() process without copying the entire logic of print().

@wilbur-shi Can you make a change to move the 3 parameter print() service into the Customizer service? In this case, you can remove the boolean parameter and make it 2 parameter. Since the name of the service is "printWithCustomizer", it does seem weird for that service to take a boolean to control whether or not to use the customizer, since that's what the name of the service says it will do. Once in the Customizer service, the behavior of that should be for it to always pass "true" down to the print method.


That's perfect, as long as there is some way to get that path...


This is the final merge to create a published version with the DOI 10.5281/zenodo.57571.


sigh. ok, thanks!


This seems to fail to sort models correctly in 1.9 when only some models have verbose_name_plural. Those that have plural name explicitly set come out on top.


rez.chanMap and rez.connected don't exist....? I will revert this locally, maybe best to revert it here too?


Blab


add README file


Why not? Sessions are not only related to UI. Sessions can be used in other classes too as simple permanent (in 1 session) storage where to store some data. I guess that can be useful at some point.


I'm getting an error when building and running for release: "[error][tid:com.facebook.react.JavaScript] Expected listener to be a function." Any ideas? Thanks!


os_2_0_dependency_reduction_signals_slots (kbenne) - x86_64-MacOS-10.10-clang: Tests Failed (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-NA-red.svg)


Interesting. Wouldn't you expect to set this key directly in your specified entitlements file? Otherwise all apps signed against the profile would be forced to use the same application groups.

FYI I took the list from `[IDEEntitlementsMerger genericallyDefinedProfileKeysToSkipWhenCopyingFromProfile]`, and the code to merge them doesn't seem to contain any special casing for anything except the iCloud keys (which I am hoping is just validation code).


Should be `--user-agent` (underscore -> hyphen)


the fclose also crashed for me.


Any reason, why the changelog and author information had to go? Is it conflicting the new licence? If not, I consider it a bad move :(


So in `sv_game.c` where we setup the `g_import_t` to share with the game module, we could do:

`g_strlcpy(g_import.write_dir, Fs_WriteDir(), sizeof(g_import.write_dir));`

Or something along those lines. Dig?


This will not work properly as not only the string literal, but the whole `sqlJoins` will be appended to the `sqlConditionJoins`!


With 11c31c44327935586a1735a64aa9e919b93bbd40 I tried to enforce this command-line option for all platforms. Do you know why it does not work in your case?


This was the line that caused the error.


Thanks! 💯


Instead of an enum, you can use a type-safe key here - then the clients will not need to cast the return value.


Вот здесь добавить event


А вот здесь передать event


I have considered adding an HWE and non-HWE version but generally speaking the cloud service (like EC2) don't use HWE because it doesn't do much for them (no need for new hardware support)


miss


This is duplicating state, which makes me queasy. Ugh. I dunno. What data are you looking to author with this? Is it for ban lists or something?


This can be made generic too.


まず，「を格納」は不要です．それから，「データ数」というのも情報として中途半端です．train, valid, testが全部同じ「データ数」となっているため違いがわからないからです．コメントをつけるならば「訓練サンプル数」のように情報として価値のあるように書くべきです．というか， `num_train` という変数名が既に適切なので，このコメントは不要かと思います．
もしくは， num_train, num_valid, num_testの三行について， `# 訓練，検証，テストサンプル数` みたいに書くかですね．


This is wrong. SIZE_MAX is (or should be) of type size_t, as SIZE_MAX is defined to be the maximum value that a size_t can hold.


Let me know if I need to change the Author Email id as my own


This is an incorrect approach. Please DO NOT modify the web server. Only change the StaticFilesModule to support multiple paths.


we talked about this being in `rcvcap_info`.  It is part of the receive end-point, right?

Your abbreviating the part that is not obvious, and spelling out all of what has conventions for short-hand.  `switch_cnt` seems much easier to read.


Hmm... yes, I was half-asleep when we reviewed this code and should have caught it. having this logic in set() creates unexpected behavior when using it that belongs at a higher level.

@angela-ko Can you move the flipping logic for translate from here into the button behavior in the UI JavaScript? The logic makes more sense at the JavaScript level rather than inside of the setters, since logic like this in the setter would silently alter the requested value to be set, and at this lower level, we don't know the reason why a programmer might be calling the setter. Since we can't really guess the reason that the setter might be used in the future, it's best not to have use-specific convenience logic at this low level. At the JavaScript level in the UI, we know the reason why we need to flip the translate when there is a flip on the axis, and the logic makes more sense there.


This is a pretty big commit. Shouldn't you have split it into several smaller ones? I mean, that's what version control is for.


We want to be sure that there is a pod of this daemonset ready on our host? why can't we do it in a single loop? For each pod of the daemon set, is this pod on my host? Yes, is it ready? Yes, ok. No, return error.

The currently implemented logic between L55-L60 will fail if any of the pods of the daemonset isn't ready. And isPodOnHost takes the full list of pods for the daemonset and returns false as soon as it finds one that isn't on the current host, making IsResolved return an error.

Am I missing something?


I don't think JFX is a good idea to be honest. I would keep it swing if I was you guys.


If we're switching threads, and the counter is `>`, then we want to return `EAGAIN`.  That is not what this condition does.


Not currently. (Consider something like `(return [(let a "a") (typeof a) (let a 2)])`...)

But if we decide to make strings immutable internally - or rather, if you do - then yes.


Looks good to me.


I dont know why but I had to change this or else it wouldn't compile.


Any reason you didn't just use `+=`?


Good, that needed to be done.

One other thing that we could do (later) is have `posix_util.c ` / `windows_util.c`, both sharing the same header file, and have the makefile select which one to use.


os_2_0_dependency_reduction_signals_slots (kbenne) - x86_64-Linux-Ubuntu-14.04-clang-3.5: Build Failed

![Build Badge](http://img.shields.io/badge/build%20status-failing-red.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-NA-red.svg)


TeamCity Xbim :: Xbim Windows UI :: Xbim Windows UI [Build 131](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1147&buildTypeId=Xbim_XbimWindowsUi_XbimWindowsUi) is now running


TeamCity Xbim :: Xbim Windows UI :: Xbim Windows UI [Build 131](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1147&buildTypeId=Xbim_XbimWindowsUi_XbimWindowsUi) outcome was **FAILURE**
Summary: Compilation error: Xbim.Presentation\Xbim.Presentation.csproj Build time: 00:00:32


What was the error message? Perhaps your compiler isn't using the "right" type for SIZE_MAX.

Try this instead:

    ERROR("Index out of range for set: should be 0 <= %" PRIhi " < %zu", index, (size_t) SIZE_MAX);

i.e. with an explicit cast.


Awesome, thanks for fixing this up :smile: Very small change, but the new icon will look great and will be noticeable by Windows users


Compiler flags should probably be left for the user to set, I use these flags when I compile on my rpi3:

```
-mcpu=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard
```

On an rpi2 this is probably right:
```
-mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard
```


:D i like this


I am using MariaDB 10.0.25 and Sphinxsearch 2.2.9 for fulltext search and reverting this change did not cause any performance problems so far. The attachments table has 6 GB and without fulltext search, it took minutes to do a fulltext search. So it seems that MariaDB is able to plan this query efficiently?


TeamCity Xbim :: Xbim Web UI :: Xbim Web UI [Build 64](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1148&buildTypeId=Xbim_XbimWebUi_XbimWebUi) is now running


develop (lgu1234) - Win64-Windows-7-VisualStudio-12: OK (1680 of 1680 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg)


I will try that.


TeamCity Xbim :: Xbim Web UI :: Xbim Web UI [Build 64](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1148&buildTypeId=Xbim_XbimWebUi_XbimWebUi) outcome was **FAILURE**
Summary: Exit code 1 Build time: 00:00:26


Thanks @greatislander for fixing the endnote export issue.
But this created a new problem for me, using Pressbooks Textbook by @bdolor
In May, when using PB 3.5.x with PBT, in my PDF exports, all of the links were live.
But today, when using PB 3.6 with this fix and with PBT, none of my PDF export links are live.
I'm unsure if the PDF live links were generated by PB or PBT.

I attached a screenshot of my PDF comparison, even though you can't actually see the live links, because there is no underlining.
![pb3_6-no-live-links](https://cloud.githubusercontent.com/assets/649719/16919286/0f26af46-4cd7-11e6-924b-46a4868a440c.jpg)


os_2_0_dependency_reduction_signals_slots (kbenne) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.61: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg)


I know. All this is when I didn't think rcv cap was required for this feature. Once I had a clear idea about this feature, I've later fixed all of these: 4e74d6f14004da555e375a6aec6b345a955a8d74


TeamCity Xbim :: Xbim Windows UI :: Xbim Windows UI [Build 132](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1149&buildTypeId=Xbim_XbimWindowsUi_XbimWindowsUi) is now running


If it works, also add a comment...


TeamCity Xbim :: Xbim Windows UI :: Xbim Windows UI [Build 132](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1149&buildTypeId=Xbim_XbimWindowsUi_XbimWindowsUi) outcome was **SUCCESS**
Summary: Running Build time: 00:00:53


Were the people making the different flavors fighting or working with or working for the manufactures? It took me a couple read throughs to figure out that each manufacturer wanted to be the standard.


It is not that easy: in order to preserve backward compatibility we need to keep all API methods unchanged. This could be done in a way similar to the changes for the workflow compatibility PR.


Making sure image and thumbnail image are saved under the same ordinal number when only one is replaced.


what's the build error ?


I think this may be my favourite commit ever.


TeamCity Xbim :: Xbim Web UI :: Xbim Web UI [Build 65](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1150&buildTypeId=Xbim_XbimWebUi_XbimWebUi) is now running


TeamCity Xbim :: Xbim Web UI :: Xbim Web UI [Build 65](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1150&buildTypeId=Xbim_XbimWebUi_XbimWebUi) outcome was **SUCCESS**
Summary: Running Build time: 00:00:19


TeamCity Xbim :: Xbim Web UI :: Xbim Web UI [Build 66](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1151&buildTypeId=Xbim_XbimWebUi_XbimWebUi) is now running


legally? Who owns the term?


Okay, sorry - I just found out that reverting this change causes MariaDB to only search within the subject... :-(
But anyway, I think it should be configurable where the simple search should search by default.


TeamCity Xbim :: Xbim Web UI :: Xbim Web UI [Build 66](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1151&buildTypeId=Xbim_XbimWebUi_XbimWebUi) outcome was **SUCCESS**
Summary: Running Build time: 00:00:18


@diparthshah No, you don't need to add this line.


@Kroc - done and done.  ;)

@Jonney3099 - thank you for mentioning this.  This is just standard VB AutoRedraw = false behavior.  In a finished project, you'd need to handle the Paint() event manually, just like any other VB project.

I would like to create a specific example project on double-buffering, because most VB developers don't know how to do it, but for these sample projects, I've tried to avoid too much "extra" code.  So there might be some redraw glitches when moving/sizing/minimizing the forms.


1) keep the empty line between the last declaration and the define
2) you can remove the extern's it's not needed for functions


keep the empty line before the #endif


I don't see why you made this change. A single field in a data class is not something that must never be duplicated. And the code using this class is now harder to read.


Collaborator:
A review for this commit was created. [Link to review](http://54.234.50.226:8080/ui#review:id=8)


what about http/application server that run in cli, like reactphp?


TeamCity Xbim :: Xbim Web UI :: Xbim Web UI [Build 67](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1152&buildTypeId=Xbim_XbimWebUi_XbimWebUi) is now running


Looks like we're looking ahead to all of the possible fields we're going to need here. Until you start on these stories, it would have been better to leave these as you may change your mind later about what these fields are. I'd be tempted to drop this table and commit just enough fields for your current story. Or, you'll just need to be careful going forward about not doubling up your data


TeamCity Xbim :: Xbim Web UI :: Xbim Web UI [Build 67](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1152&buildTypeId=Xbim_XbimWebUi_XbimWebUi) outcome was **FAILURE**
Summary: Cannot start build runner Build time: 00:00:13


os_2_0_dependency_reduction_signals_slots (kbenne) - i386-Windows-7-VisualStudio-12: Tests Failed (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-NA-red.svg)


I'm curious why you don't just write directly to the hoverCoordinates array in the hoverInfo object.


This first conditional is simply a cleanup of the above switch statement.


it prompts you to say `yes` here


This is the actual fix for the ticket.


ちょっと試しにcopy


=X ! please please please make sure people run this on the vm


This looks really good! Nice work.


Android简单动画


there's no pagination in activity api?


adding libraries


Good idea. I'll change that.


you can abandon this, right?


User SupremeSteak1 has rolled back Joshua-Gordon's comment to version 0. The resulting comment is as follows:

[No content]

11:11:02AM 7/18/16


@Randy000 因为目前ss与ssr的包名是一样的所以无法共存安装。如果有特殊需求的话你可以自取修改一下包名再编译。其实ssr的中继与ss中继实现原理是相同的，无需纠结太多。


This could do with either some clarification or more explicit checking. Right now, the only reason this does not blow up for non-grouped objects is because the root always has multiple children. So this seems like something that is bound to blow up at one point or another.


I don't understand this conversion.
To me, (int) currString is the array address.
So we just check if the array address is even...
So we just check stack alignment discipline.
This is uncorrelated from GetLocaleInfo result (currString length or contents).
Or is there something i missed?
See https://msdn.microsoft.com/en-us/library/windows/desktop/dd318101(v=vs.85).aspx for example.


This patch looks even stronger at LTC than at STC. Congratulations!


@miina remember to localize, i.e. `<?php esc_html_e( 'Modify Gallery', 'customize-image-gallery-control' ) ?>`


They're fine if they don't emulate CGI by placing headers in "HTTP_" prefixed environment variables.


will fix it now.

what do you mean fclose crashes?


```
/var/lib/jenkins/.berkshelf/cookbooks/sysdig-0.4.0/sysdig/attributes/default.rb:7: syntax error, unexpected tIDENTIFIER, expecting ']'
```


os_2_0_dependency_reduction_signals_slots (kbenne) - Win64-Windows-7-VisualStudio-12: Tests Failed (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-NA-red.svg)


Defensive programing wise it's a bit better to check if there is a material in the first place.


Awesome, thanks! Just noticed this over the weekend when demoing the browser for someone 😄


saw approval from javajolt
at https://github.com/basho/yokozuna/commit/d86142e342c7222e458d99671ab19f5af7b1f9bc


merging basho/yokozuna/fix-az-depend_on_fuse = d86142e3 into borshop-integration-660-fix-az-depend_on_fuse


basho/yokozuna/fix-az-depend_on_fuse = d86142e3 merged ok, testing candidate = b6664adc


![Image text](https://github.com/XuYongJun96/Image-Files/blob/master/2048_01.png)


It seems like your theory is that the 'show dialog' messages comes in over the IPC channel after the window controller has been created but before the actual window has loaded (which seems like a reasonable theory).

Why a timer, though? It seems to me (without having an opportunity to sit at a Mac and test this yet) that the timer isn't needed; that `runAfterWindowDidLoadUsingBlock` could make a check to see if the window controller has already handled `windowDidLoad` and, if it has, execute the block immediately. Otherwise it pushes the block into the queue, which is executed during `windowDidLoad`.


i quite carefully had that checked. @niieani maybe keep it in for now. it's easier to remove than to add so to speak


ok, I'll merge and re-add. It's pretty important to keep that one staging.


Bro..all aosp have an camera Issue even Omni too..after 4-5 picture it shows fc..will u check that plz


Collaborator:
A review for this commit was created. [Link to review](http://54.234.50.226:8080/ui#review:id=9)


This is the first mention of root and it's not explained.


正在上传


3x spelling. Fixed this for you in edd44de9e3243a4254e6f8c04d439a42f801831f.


The dynamic column creation can be handled much more cleanly using `ListTableModel` and `ColumnInfo`.


Fixed those in 62496753627591a4a135b6beabaf87c632a85ace


@jdurgin Hi Josh, I am wondering if you have successfully built my code. Do you have further suggestions or questions?


@bontgoy We finished the assignment, but was never able to get the nested method calls to work.


User Joshua-Gordon has rolled back SupremeSteak1's comment to version -1. The resulting comment is as follows:

[Negative content]

11:20:45AM 7/1816


Ahhhhh, I see, this is inverted... Is it possible to exclude the avatars from this inversion?


Time 3335s. Running the final template matching pass...
Time 3614.07, batch 801/859,  NTOT 1320062
Error using fclose
Invalid file identifier.  Use fopen to generate a valid file identifier.

Error in fullMPMU (line 269)
fclose(fid);

On Mon, Jul 18, 2016 at 4:14 PM, marius10p <notifications@github.com> wrote:

> will fix it now.
>
> what do you mean fclose crashes?
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <https://github.com/cortex-lab/KiloSort/commit/1ce1e65f6faeee75d976b3f01bd41e098fa0bf34#commitcomment-18284809>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AHPUP8Astdvs9_ME4xnIeJgoARnoFXX0ks5qW5hIgaJpZM4JOyes>
> .
>


Fixed it. Not sure how that happened, please check if it works.


lol, don't throw up, as you said on IRC, this is C, you can't stop someone from writing to the filesystem. But telling them where they're allowed to right might make everyone's life easier.

Sure, for ban lists, custom stuff, sqlite, and everything else I haven't thought of yet.

How is it duplicating state if that state isn't available in game in the first place? (Clearly I'm not up on the best practices of software design)


Main thread is waiting for a reply (for a given time-> timeInterval)
If not replyhandler will be called with a TimeOut error.


@insin: Added the compiled `lib/*` changes.


Sorry, i forgot, 6.x branch not cherry picked commit from 3.3.5.


ok, I fixed that too


It's very minor, but if you do end up making any other changes to this PR please also fix this whitespace and alignment.


idk why github did this again


Yes


I'm assuming this is what you were talking about, it does work though. It's up to you though, perhaps you should just let mod authors figure out the path on their own...


Think we may be talking around each other a bit, doesn't help that TextMate and Atom use different terminology for various things. :)

The scope of the caret is important because this would be what controls what snippets, etc. are available. Scopes are only actually applied when there is a character consumed by the parser. When `#{}` has no content there is nothing to apply the `source.ruby` scope to and thusly it never exists even though it is supplied as the `contentName`.

I'm not sure if that was what you were actually asking. :) I'm most always on freenode with the same username if you want to ask questions interactively.


all tests pass:
success: http://buildbot.bos1/builders/test-yokozuna/builds/1786


that seems to work.  any way to use npm scripts to rewrite the shebang?  node certainly isn't always going to be /usr/bin/node everywhere, which is why env is recommended.  if not I don't think people would mind doing this edit themselves since it is a developers tool.


Thanks


double checked the skeleton-typescript and there it's needed
however, you've added it to the aspnetcore typescript!? while i still am surprised that it would not be needed there, i didn't check that


How does this react on a high-DPI screen? Or when I change my font size? Probably better to use a value from Theme for this since that accounts for all those things.


:ok_hand: :ok_hand:


Original PR: https://github.com/groupon/selenium-download/pull/26


Can we test bugfixes with [-3,1]? I thought that was only if it is clear that the logic would be improved, but that is just my own interpretation. ttValue after IID is only used for Singular Extensions as far as I can see, and the depth of IID would only be enough for PV nodes. So it changes SE and it not really sure it is a good change. If we had no ttMove from probing in a PV node, it likely was a brand new node, and the use of SE in such nodes is anyone's guess. Probably sometimes good but if you are reordering a large part of the tree after a FH or FL for instance, I don't think more extensions, although in PV nodes only, help very much.


@ArsenArsen
Any specific reason?


TeamCity OTA+ :: rvi_sota_server :: ci [Build 530](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=8470&buildTypeId=ota_plus_RviSotaServer_Ci) is now running


@kevinushey @jjallaire any suggestions on how to improve this? This happens to be still the bottleneck for this serialization method. If we could find a way to convert the DataFrame into an in-memory CSV (`|` delimited in this case), that would speed up things significantly to the point that we could get rid of the databricks CSV reader for local installs which would also simplify `spark_connect` significantly. Things I've tried: `textConnection` was too slow, `write_delim` does not support output to anything else than paths and doing the transformation in R would be to slow. Seems to me we are left to writing this in native code, thoughts?


I don't understand the logic here; maybe extract methods/variables with clearer names? In any case, this could use better formatting.


#9 I think the issue is introduced here. Whenever hoursBeforeEvent equals 0.


corrected in https://github.com/aurelia/skeleton-navigation/commit/c5f95a2bd9b1f0c7b64f57f238baa484dcbd1ad4


Yes, thank you for the rapidity.


@mpetrovic - Change has been made. Could you please check this once again.


Thanks, I will have a look into that changes!


Collaborator:
A review for this commit was created. [Link to review](http://54.234.50.226:8080/ui#review:id=10)


项目好评，提交文字差评


Kevin and I have been talking about re-writing all of our vector /
data-frame serialization using flatbuffers (
https://google.github.io/flatbuffers/). I think this would also solve the
problem, so I'd vote for waiting on that work for any more improvements
here.

On Mon, Jul 18, 2016 at 11:30 AM, Javier Luraschi <notifications@github.com>
wrote:

> @kevinushey <https://github.com/kevinushey> @jjallaire
> <https://github.com/jjallaire> any suggestions on how to improve this?
> This happens to be still the bottleneck for this serialization method. If
> we could find a way to convert the DataFrame into an in-memory CSV (|
> delimited in this case), that would speed up things significantly to the
> point that we could get rid of the databricks CSV reader for local installs
> which would also simplify spark_connect significantly. Things I've tried:
> textConnection was too slow, write_delim does not support output to
> anything else than paths and doing the transformation in R would be to
> slow. Seems to me we are left to writing this in native code, thoughts?
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/rstudio/sparklyr/commit/69824bb04c59571432ff8b661d4748f345ac6791#commitcomment-18285076>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AAGXx_A8VNxbsOX4crDImUpW4JBgtYVkks5qW5wpgaJpZM4JO1f1>
> .
>


MAX_OSPATH would be more appropriate here. MAX_QPATH is much shorter, and appropriate for relative game paths.


@uicestone 233 一颗赛特


woddp


Yeah but what if there are 2 daemonsets containing 2 pods 2 of them is on my host and 2 are not I have 50% that my pods will be at the beginning of the list :D


gg


TeamCity Xbim :: Xbim Windows UI :: Xbim Windows UI [Build 133](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1154&buildTypeId=Xbim_XbimWindowsUi_XbimWindowsUi) is now running


Note: values plotted on the x-axis are athletes who don't have a registered half marathon chip time for Boston 2016. Also, note the spread of the data. For an evenly run race, the data should match a linear relationship of y = 1/2x + b. However, very few athletes can achieve this, specifically with the course profile at Boston. The first 10k of the race is a net downhill, which makes holding an even pace more difficult when approaching the Newton hills from miles 18-22. Comparing values for individuals that approach this linear relationship to their marathon frequency may help determine what athlete profiles yield Boston "success".


This also gets rid of the warning

`warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS`


TeamCity Xbim :: Xbim Windows UI :: Xbim Windows UI [Build 133](http://xbimbuilds.cloudapp.net/viewLog.html?buildId=1154&buildTypeId=Xbim_XbimWindowsUi_XbimWindowsUi) outcome was **SUCCESS**
Summary: Running Build time: 00:00:48


The play Icon is missing indeed, I got it working, this is my solution for the list_item.xml @manankalra :

```
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/image"
        android:layout_width="88dp"
        android:layout_height="88dp"
        tools:src="@mipmap/ic_launcher" />

    <RelativeLayout
        android:id="@+id/textbox"
        android:layout_width="match_parent"
        android:layout_height="88dp"
        android:layout_toRightOf="@+id/image"
        android:background="@color/category_colors"
        android:orientation="vertical"
        android:paddingLeft="16dp">

        <TextView
            android:id="@+id/miwok_text_view"
            style="@style/miwokStyle"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:layout_alignParentLeft="true"
            android:gravity="bottom"
            tools:text="lutti" />

        <TextView
            android:id="@+id/default_text_view"
            style="@style/defaultStyle"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@id/miwok_text_view"
            android:gravity="top"
            tools:text="one" />

        <ImageView
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="16dp"
            android:src="@drawable/ic_play_arrow_white_24dp" />
    </RelativeLayout>

</RelativeLayout>
```


This is my **first** comment.


BTW, there is no MAX_OSPATH, I looked for it, I figured you meant MAX_QPATH


This functino call didn't get changed in templates/repo/header.tmpl


Should that be

```diff
--   A custom game engine **written by you**.
+-   Use a custom game engine, **written by you**.
```


That would be great and definitely improve this significantly as well.


TeamCity OTA+ :: rvi_sota_server :: ci [Build 530](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=8470&buildTypeId=ota_plus_RviSotaServer_Ci) outcome was **FAILURE**
Summary: Tests failed: 11 (11 new), passed: 199, ignored: 3 Build time: 00:06:02
### Failed tests
```
APIFunTests.test adding packages: <no details avaliable>

APIFunTests.test adding manually installed packages: <no details avaliable>

APIFunTests.test viewing manually installed packages: <no details avaliable>

APIFunTests.test viewing vehicles with a given package installed: <no details avaliable>

APIFunTests.test searching packages: <no details avaliable>

APIFunTests.test adding filters to a package: <no details avaliable>

APIFunTests.test removing filters from a package: <no details avaliable>

APIFunTests.test re-adding filters to a package: <no details avaliable>

APIFunTests.test viewing packages with a given filter: <no details avaliable>

APIFunTests.test creating install campaigns: <no details avaliable>

APIFunTests.test list of vins affected by update: <no details avaliable>

##### there are 1 more failed tests, see build details
```


This still has RepoRelLink function call, even though it got changed to RelLink in models/repo.go


hier ist ein fehler


W


Do you want to bump the version before sending to pypi?


*y, z and/or v


Wave a flag if this is ready for staging. I'd like to prevent merge conflicts if possible.


fast-forwarding riak_ts-develop to borshop-integration-660-fix-az-depend_on_fuse = b6664adc


Yes, give me an hour, and I'll submit a PR!

On Mon, Jul 18, 2016 at 5:38 PM +0200, "Cameron Davidson-Pilon" <notifications@github.com> wrote:

Do you want to bump the version before sending to pypi?

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


I am getting "proj_api.h file not found" in many providers (i have proj in custom dir). I started to add PROJ_INCLUDE_DIR to each provider's CMakeLists.txt, like I see you did for some providers in this commit, but I hesitate if it is the right solution, if the provider does not include proj_api.h directly, but via qgscoordinatetransform.h -> qgscoordinatetransform_p.h.

Should not we have some QGIS_CORE_DEPS_INCLUDE_DIRS?


Reminder: We need to update the JS exclusions of the code analysers so they don't analyse the new SJCL.


Yes, I think this is a small enough change that it should be fine to deploy
directly. It should be okay.


Now that we have a use for determining the real provider in ``main``, we should probably just pass this one down and avoid all the times in the future where the callee determines which provider to use. Centralizes some logic and will deduplicate that determination.


Add `json_value.cpp` to my project, it will print
```
Detected memory leaks!
Dumping objects ->
{62} normal block at 0x00000225589098C0, 40 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD 00 CC CD CD CD CD CD CD
Object dump complete.
```
when program exits.

> Because it might be accessed before its constructor has run.

I don't understand this. Whether `nullStatic` is value type or pointer type, it will always be initialized when the `nullSingleton()`  be first called. Even "before its constructor has run", it will be construct a valid null json value object.

> Because its destructor will run at some point after main() exits. Threads that are still active might see an invalid object.

It hard to determine the static variable destruction timing. But you can make a null json value object keep valid after the destructor called.


I found this as not good name.
Finally we all are based on the same Spring Messaging foundation and even I'd use `SqsMessageHeaders.SQS_DELAY_HEADER` constant to build my `Message<?>` in the end it will be only plain `delay` header name.
To distinguish target protocols and simplify end-user life during headers manipulation Spring Integration provides prefixes for target protocol headers. For example `JmsHeaders`, `FileHeaders`. Or just well known for your `AwsHeaders`: https://github.com/spring-projects/spring-integration-aws/blob/master/src/main/java/org/springframework/integration/aws/support/AwsHeaders.java.

So, that would be good if you reconsider the target header name here. But bear in mind that `-` symbol shouldn't be used, because it isn't appropriate for all target protocols, e.g. JMS.


test


> presumably it will be obvious if the policy is disabled?

Alas, not necessarily; a conditional may evaluate differently, but you'd have to notice that¹. However, broken code looks like `if("${SOME_VAR}" STREQUAL "SOME_VALUE")` where either `${SOME_VAR}` or `SOME_VALUE` is a variable name. I'd *hope* no one wrote logic like that relying on the old behavior (note the quotes in the conditional). The policy exists because implicit expansion is usually *not* expected when the arguments are quoted.

(¹ You can test *locally* by changing the `cmake_minimum_required` to 2.x and not setting the policy, in which case CMake will warn if the result would differ. This only "works" for logic paths that are exercised on the particular platform and configuration on which the test is run, however. The main reason I asked in the first place is I was hoping the policy had been set to `OLD` in the first place because of such a warning — i.e. the point being to identify and fix such instances — as opposed to "just because".)

In fact, I *did* find one such warning[[1]](https://github.com/rdeits/swigmake/blob/master/cmake/DrakeUseSWIG.cmake#L320), and the `OLD` behavior looks *wrong*, i.e. it appears that the `NEW` policy actually *fixes a bug*.


This file does not contain utilities; it contains the implementation of the refactoring, and should be named accordingly.


The situation where it won't be possible to define any parameters for the type alias will be very common. We should hide the table in this situation.


use snprintf instead to be on the safe side in case /proc/net/if_inet6 is corrupt


commit message:
"addition of print function with sys.stdout.flush()"


fixed. it was loading locally but not o the github pages site. server img src is case sensitive while local img src is not, hence the discrepancy.


Make sure you have the latest version.


This should be allowed if both are local.


there are no basic loops here, that's true, still we are using more sophisticated enumerable methods, feel free to read following articles:

https://www.sitepoint.com/guide-ruby-collections-part-arrays/
https://www.sitepoint.com/guide-ruby-collections-ii-hashes-sets-ranges/
https://www.sitepoint.com/guide-ruby-collections-iii-enumerable-enumerator/
https://www.sitepoint.com/guide-ruby-collections-iv-tips-tricks/


any particular reason devname is size 21 and not IFNAMSIZ?


Collaborator:
A review for this commit was created. [Link to review](http://54.234.50.226:8080/ui#review:id=11)


`MAX_OS_PATH`, sorry.


@RussTedrake, @rdeits, CMake says that one or both of the arguments here is a variable name. This means that [CMP0054](https://cmake.org/cmake/help/v3.5/policy/CMP0054.html) is kicking in. Can you confirm whether or not expansion is expected/intended here other than the explicit expansion?

My guess is that CMP0054=NEW *fixes* a bug here, but I'd like to confirm it doesn't instead *create* a bug.


This counts the type occurrence on which the refactoring was invoked as a duplicate too, which is wrong.


I'm against this change. Currently we don't have an event handler that returns non-void values (and that's a good thing: they should only react to changes). You can safely move this logic to `mod_damage()` (since `on_damage()` is invoked only from there).


Actually , I think, maybe I'm not correct.To the code:
```cpp
static Value const* nullStatic = new Value;
```
The pointer `nullStatic` would be destruct, and point to another address, maybe `0`. And `nullSingleton()` would return an invalid object.


Is there a screen shot of what this will look like?
For example, in gdb, we will put something like main(int c, char** argv). For lldb, will this now be main(int, char**) ?


Sounds very punishing. I'd drop the minimum charge loss heavily.

Consider a tile full of metal bolts. 4000 volume of them. Then a bicycle drives over it/nailbomb explodes near it/zombie kicks it.
The expected result is that 2000 volume of metal bolts becomes unusable.


Wollte das nicht in überschaubarer Zeit mal jemand ins gluon PR'n? Was ist der Vorteil davon wenn alle communities das feature in eigenen Paketen pflegen?


might be better off separating the while loop from the fscanf and skip lines that may have had conversion failures, that return 0 for example.


It's interesting to know about CLAhub and this particulate CLA.. There are some "typos", in case you want to make more professional and drop the extra spaces (I couldn't figure out how to make a pull request..):

"contribution , [..] contribution ."


Shouldn't this be `if ecs_efs_id is defined`?


Que hiciste Juan! :-1:


If I have a variable of type `List<String>`, I cannot select `List` and introduce a type alias for it; this shows "Cannot perform refactoring without a type". But this context does have a type.


/cc @jcredding


this should be bar.ico, no?


I'm not in a position to do this now (or even later today), but you should only enable the saving of timestamps and tinting of comments if `SettingValues.commentLastVisit == true`.


This commit seems to have caused this test failure in the htdp tests: http://drdr.racket-lang.org/36015/racket/share/pkgs/htdp-test/tests/htdp-lang/test-htdp.rkt#output1


Didn't work.


Ich werde in Kürze einen Pull-Request machen.


Ah, you're right. Will do that later today!


I went ahead and deployed it over the weekend then uploaded the script for Steve. I guess he's waiting for Katherine to do something on here end of things, not sure what, exactly.


It would be nice if we could define a feature with a no-op.  Is that possible?


cc @Simn


It's duplicating state that PhysicsFS is already the source of truth for. By "caching" `write_dir` on `g_import_t`, we're introducing a duplicate of what `Fs_WriteDir` returns. This is generally undesirable because `Fs_WriteDir` and `g_import.write_dir` could conceivably become out of sync. In general, duplicating data is a bad practice, that's all.


fast-forwarding develop-2.2 to borshop-integration-1420-nem/clean-up-start-fsm-paths = 31d14608


hello my people


eeo como estan


👍 I'll remove this


a = a * kRmsPropDecay + (g * g);
は
a = a * kRmsPropDecay + (g * g) * (1.0 - kRmsPropDecay);
ではないのでしょうか？意図的にそうしてあるのでしょうか？


Does not this feature require ``<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="false" />`` in ``AndroidManifest.xml``?


Wow.  Excellent. (though sad that there was a bug; and likely mine!)


Maybe I missed something but I don't see what the conflict is here.


I'm not opposed architecturally to callbacks returning values (the Gtk code base is a good example of this) but you're correct in that it's both non-idiomatic and unnecessary in this case. See revised commit.


isn't it a duplicated line ?


I haven't touched this repo..  this one will be for @rdeits


@jmgate This is the commit I was referring to.


Fixed merge conflict


Sorry, incorrectly called README "README.txt". I am aware that files do not necessarily have to have an extension in unix environments or on GitHub


perfect!


Nice work


Alright, thanks. So the actual security flaw here is the combination of PHP populating all http headers as HTTP_* env variables and guzzle is accidentally using a variable that starts with `HTTP_` which can be set through a regular request. Rule of thumb for all php applications should thus be: Never ever use HTTP_* environment variables (unless you can make sure the application is run only in cli).


5442_HWCoilInitTempSizing (Myoldmopar) - x86_64-MacOS-10.9-clang: OK (2224 of 2227 tests passed, 551 test warnings)

 * 554 tests had: AUD diffs.
 * 536 tests had: EIO diffs.
 * 536 tests had: ERR diffs.
 * 3 tests had: ESO big diffs.
 * 3 tests had: Table big diffs.
 * 1 test had: MTD diffs.
 * 1 test had: MTR big diffs.
 * 1 test had: RDD diffs.
 * 1 test had: ZSZ big diffs.

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-99.87%25-yellow.svg)


Changing this line to

`return endHour >= startHour ? endHour - startHour : 24 + endHour - startHour;`

should fix it.


Would be nice to suggest a default name for the type alias, e.g. `StringList` for `List<String>`, `IntToBoolean` for `(Int) -> Boolean`


Append a version number to the "sizes" attribute? I think you rather wanted to append it to the `href`...


Not sure what you mean. What exactly is the problem here?


That makes sense. So to avoid duplicating state why not just do what I originally did and use a function pointer to Fs_WriteDir?


Right.. which is why I was second-guessing my suggestion. LOL.


=P


I recently removed the height of the buttons so they should be auto-sized: https://github.com/Ultimaker/Cura/commit/8c22efc4dd62ed72a81405e58048ba5eaf54b228
Was this retested on windows 10 since then?


Could delete the ghost code :^)


Why is this needed? Why can't this be an optional parameter to `KotlinIntroduceTypeAliasHandler.doInvoke`?


Can I confirm that this is no longer a compulsory field? There is a unique index on the ASSESS_INSTANCE_ID and the organisation, which means that really this should be a required field and removing it could lead to some problems. Effectively each organisation would only ever be able to have 1 assessment instance where the ASSESS_INSTANCE_ID was null. Also, we handle relations on the Student Assessment Instance with this as well - could be troublesome.

I haven't had a good look through the rest of these changes, but the same logic would apply to any "primary" key value in a model


Collaborator:
A review for this commit was created. [Link to review](http://54.234.50.226:8080/ui#review:id=12)


No, I can fix that. Any other comments?

On Mon, Jul 18, 2016 at 10:57 AM Kartik Agaram <notifications@github.com>
wrote:

> Any reason you didn't just use +=?
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/akkartik/mu/commit/bd3d6c9e8314bc31cb294ba321b9513842eef120#commitcomment-18284492>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ABCwnr0DDh68IdpWXl3H-qE4h1IW1Mdgks5qW5QggaJpZM4JOzM1>
> .
>


@Kvothe100

Remember that order matters.  Ruby reads top to bottom left to right.  That means that is a condition is met in the code you wrote then that code will run and skip past everything in the conditional.  It seems to me like you could reorder these conditions to get a fuller solution.

Also, This is the DBC repo.  Please close this pull request and tag me in a Pull request on your base fork.

Thanks!


There's a `LinkedMultiMap` class in `com.intellij.util.containers`


What are you trying to target with this selector?


Yes, I believe *NEW* should give the intended behavior (I expect `swig_lowercase_language` to be set to a string like`matlab` or `python`, which should not be expanded further).


@amedviediev Could you please keep format
- fields
- constructors
- public methods
- private methods?


ads


That should teach me not to look at dates of issues. I failed to notice that it was a very old issue (despite having tot type in the actual number...)
We can probably remove this, check if that works for windows 10 and close the issue.


@amedviediev should we check if Device is null or not here?


@faassen  the not he I think.


@jdonaldson wouldn't `{}` do the job?


Eslint throws the following error: "Move the invocation into the parens that contain the function  wrap-iife"


Maybe `load_folder` (or `directory`, or `from_path` or ...)?.. `load_all` sounds a bit too global for this case :)