MongoDB’ yi windows servisi olarak başlatmak

Herseferinde mongodb’yi herseferinde konsoldan başlatmak zahmetli ve zaman alan bir olay. Bunun için mongodb’yi nasıl windows servisi olarak başlatırız ona bakalım. Öncelikle daha önce mongodb’yi servis olarak kaydettiysek onu siliyoruz:

C:mongodbbin>mongod –remove


Not:mongodb dosyalarını c’de mongodb klasörüne attığınızı varsayıyorum.
Daha sonra ise aşağıdaki kodu konsolumuza yazıyoruz:

 

C:mongodbbinmongod –dbpath=C:datadb –logpath=C:mongodblog.txt –install


Not:burada dbpath’e dikkat etmeliyiz. Datalarımızı nerede saklıyorsak oranın adresini vermemiz gerekli.
En son olarakta konsola services.msc yazarak servislerimizin bulunduğu pencereyi açıyoruz ve Mongodb servisini bulup başlat diyoruz. İşte bu kadar. Artık mongodb otomatikmen servis olarak başlatılacak.

{:}{:en}Herseferinde mongodb’yi herseferinde konsoldan başlatmak zahmetli ve zaman alan bir olay. Bunun için mongodb’yi nasıl windows servisi olarak başlatırız ona bakalım. Öncelikle daha önce mongodb’yi servis olarak kaydettiysek onu siliyoruz:

C:mongodbbin>mongod –remove


Not:mongodb dosyalarını c’de mongodb klasörüne attığınızı varsayıyorum.
Daha sonra ise aşağıdaki kodu konsolumuza yazıyoruz:

 

C:mongodbbinmongod –dbpath=C:datadb –logpath=C:mongodblog.txt –install


Not:burada dbpath’e dikkat etmeliyiz. Datalarımızı nerede saklıyorsak oranın adresini vermemiz gerekli.
En son olarakta konsola services.msc yazarak servislerimizin bulunduğu pencereyi açıyoruz ve Mongodb servisini bulup başlat diyoruz. İşte bu kadar. Artık mongodb otomatikmen servis olarak başlatılacak.

{:}

Node.js için faydalı modüller: Nodemon ile web server’ı otomatik yeniden başlatma

Node.js kullanırken en büyük sıkıntılardan biri de değişikliklerin aktif olması için server’ı sürekli yeniden başlatmak zorunda kalmamızdı. İşte nodemon bizi bu sıkıntıdan kurtaran bir modül. Klasörlerimizi izleyip bir değişiklik gördüğü anda kendisi otomatik olarak server’ımızı yeniden başlatıyor bizi manual olarak yeniden başlatma derdinden kurtarıyor. Benim de sürekli kullandığım vazgeçilmez modüllerden 😀  Github adresi için tıklayınız. Öncelikle kurmak için node konsoluna:

-npm install nodemon  

yazmamız yeterli . Daha sonra server’ımızı node app.js ile değil de
-nodemon app.js ile başlatmamız yeterli. Nodemon artık uygulamamızı izleyecek ve herhangi bir dosyada bir değişiklik gördüğünde otomatik olarak server’ımızı yeniden başlatacaktır.

Regular Expression Debugger ile Regex patternlerinizi debug edin

Her yazılımcının olmassa olmazı Regular Expression. İster küçük bir regex isterseniz kompleks bir regex patterni kullanıyor olun. Patterninizi test/debug etmenize  yarayan gerçek zamanlı bu siteye buradan erişebilirsiniz.
Siteye girdiğiniz zaman aşağıdaki gibi bir ekran ile karşılaşacaksınız.

Sol taraftan Javascript’ i seçip  “REGULAR EXPRESSION”  kısmına istediğimiz regex patternini “TEST STRING” kısmına ise test etmek istediğimiz stringi yazıyoruz. Ve web uygulaması gerçek zamanlı olarak patternimizi debug edip test stringi üzerinde sonucu gösteriyor. Sağ taraftaki “EXPLANATION” kısmında ise patternimizin tek tek ne işe yaradığını gösteriyor.

Mssql pivot table kullanımı.

Karşılaştığım sorgularda fark ettiğim olay pivot kullanılmaması. Örnek olması açısından paylaşmak istedim. Aşağıda aynı sonucu veren 2 tane query var biri pivot kullanılarak biride kullanılmayarak hazırlanmış. Sonuçlar aynı tatbikî. Ama pivot kullanmadan aşağıdaki sonucu almak için iki kat fazla sorgu yazılmış. Geri dönüp bakıldığında anlaşılması çok zorlaşıyor.  Örnekte adventurework veri tabanı kullandım.
Sonuç:
 
Pivot Kullanılmadan
SELECT Table1.ShiftName
      ,SUM(Table1.Production) AS Production
      ,SUM(Table1.Engineering) AS Engineering
      ,SUM(Table1.Marketing) AS Marketing
FROM (
      SELECT S.NAME AS ShiftName
            ,COUNT(H.BusinessEntityID) AS Production
            ,0 ASEngineering
            ,0 AS Marketing
      FROM HumanResources.EmployeeDepartmentHistory H
      INNER JOINHumanResources.Department D
            ON H.DepartmentID = D.DepartmentID
      INNER JOINHumanResources.Shift S
            ON H.ShiftID = S.ShiftID
      WHERE H.EndDate IS NULL
            AND D.NAME = ‘Production’
      GROUP BY S.NAME
     
      UNION ALL
     
      SELECT S.NAME AS ShiftName
            ,0 ASProduction
            ,COUNT(H.BusinessEntityID) AS Engineering
            ,0 AS Marketing
      FROM HumanResources.EmployeeDepartmentHistory H
      INNER JOINHumanResources.Department D
            ON H.DepartmentID = D.DepartmentID
      INNER JOINHumanResources.Shift S
            ON H.ShiftID = S.ShiftID
      WHERE H.EndDate IS NULL
            AND D.NAME = ‘Engineering’
      GROUP BY S.NAME
     
      UNION ALL
     
      SELECT S.NAME AS ShiftName
            ,0 ASProduction
            ,0 ASEngineering
            ,COUNT(H.BusinessEntityID) AS Marketing
      FROM HumanResources.EmployeeDepartmentHistory H
      INNER JOINHumanResources.Department D
            ON H.DepartmentID = D.DepartmentID
      INNER JOINHumanResources.Shift S
            ON H.ShiftID = S.ShiftID
      WHERE H.EndDate IS NULL
            AND D.NAME = ‘Marketing’
      GROUP BY S.NAME
      ) Table1
GROUP BY Table1.ShiftName
Pivot kullanılarak
SELECT * FROM (SELECT S.NAME AS ShiftName
      ,H.BusinessEntityID
      ,D.NAME DepartmentName
FROM HumanResources.EmployeeDepartmentHistory H
INNER JOIN HumanResources.Department D
      ON H.DepartmentID = D.DepartmentID
INNER JOIN HumanResources.Shift S
      ON H.ShiftID = S.ShiftID
WHERE H.EndDate IS NULL
      AND D.NAME IN (
            ‘Production’
            ,‘Engineering’
            ,‘Marketing’
            )
)AS a
PIVOT
(
COUNT(BusinessEntityID)
FOR DepartmentName IN ([Production],[Engineering],[Marketing])
)AS b

Node.js uygulama yapınızı geliştirin

Stackoverflow’da node.js başlıklarını gezerken karşılaştığım. Sürekli node.js ile ilgili sorularıma sabırla cevap veren Peter Lyons’dan express projenizi nasıl profösyönel olarak yapılandıracağınıza dair tavsiyeler. Kesinlikle okunması gerekiyor. Hele ki benim gibi node.js dünyasına yeni adım attıysanız.Projesini Github’a atmış birde arkadaş
Stackoverflow Adresi
Github adresi

C# Object Initializer Özelliği

Gereklilikler:Properties, new kavramı, reference types ve value types, contructions, object kavramı, auto implement properties gibi konuların bilinmesi konunun anlaşılması için gerekmektedir.

Bu dersimizde C# 3.0 ile gelen özelliği olan Object Initializer özelliğini inceliyeceğiz. Örnek olarak İnsan isimli classımızı ele alalım.

class Insan{      

public string Adi { get; set; };      

public int Yasi { get; set; };

}

Şimdi C# 2.0 ile Insan isimli classımızın bir örneğini oluşturup(instantiate) özelliklerine(properties) değer atamak için aşağıdaki kodu yazmamış gerekli.

Insan insan = new Insan();
insan.Adi="Fuat";
insan.Yasi="21"; 
 

C# 3.0 Object Initializer Syntax  ile yukarıdaki kodu daha anlaşır, daha temiz ve daha kısa bir şekilde yazabiliriz.

Insan insan = new Insan{ Adi="Fuat", Yasi="21"};

İşi biraz daha kompleks hale getirelim. Ve Insan isimli classımızı güncelliyelim ve bir class daha ekliyelim.

 
class Insan
{
      public string Adi { get; set; };
      public int Yasi { get; set; };
      public Fizik Fiziksel  { get; set; };
}
class Fizik
{
      public int Boy  { get; set; };
      public int Kilo  { get; set; };


}


Şimdi C# 2.0 da Insan nesnesinin örneğini oluşturup properties alanlarına değer atıyalım.

   Insan insan = new Insan();

insan.Adi="Murat";
insan.Soyadi="Tatar";
insan.Fiziksel = new Fizik();
insan.Fiziksel.Boy=176;
insan.Kilo=65;
Şimdi ise bunu C# 3.0 Object Initializer ile yapalım. Biraz kompleks gibi gelebilir ama mantığı çok basit.
 
Insan insan = new Insan
{
   Adi="Murat",
   Soyadi="Tatar",
   Fiziksel= new Fizik
     {
         Boy=176;
         Kilo=65;      
     }
};
 
Tek satır olsun daha güzel gözüksün diyorsanızda:
Insan insan = new Insan {Adi="Murat", Soyadi="Tatar", Fiziksel= new Fizik{Boy=176; Kilo=65;} };

 

Adım Adım Visual Studio 2010 Performansını Artırma

Malum bilgisayarım eski olduğu için bu meseleye çok kafa yordum zamanında ve sizlerle nasıl visual studio 2010 hızlandırılır paylaşmak istiyorum. Hızlandırmak için malesef bazı visual studio özelliklerinden feragat etmek zorundayız. Ayarları yaparken dikkate almanız gereken bu özelliğe benim ihtiyacım varmı olmalı. Başlayalım. 



















Visual Experience altındaki tüm seçenekleri iptal ediyoruz.

Setting deki Track Changes seçeneğini iptal ediyoruz.

 

Default view daki “Always open documents in full XAML view ” seçeneğini iptal ediyoruz. (Wpf ve Silverligh kullanıyorsanız başlangıçta visual studio hızlanması için bu çok önemli)



















Project and Solutions daki “Track Active Item in Solution Explorer ” seçeneğini iptal ediyoruz.



















Startup daki at startup seçeneğini “Show Emty Enviroment At Startup ” olarak değiştiriyoruz. (Visual studio 2010 un başlangıçta hızlı açılması için bu seçenek çok önemlidir)



















Build and Run içerisindeki ” Only build startup projects and dependencies on Run ” seçeneğini aktif hale getiriyoruz.



















IntelliTrace seçeneğini iptal ediyoruz. Herşeyi resimdeki gibi yaptıysanız bayağı hız kazanmış olucak visual studiomuz. Yapamadığınız veya göremediğiniz bir seçenek olursa yorum yazmayı unutmayın lütfen.