Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

STARTUP İSTANBUL’A GROWTH HACKİNG DAMGASINI VURACAK!

İnternet ekosisteminin Türkiye ve dünyadaki etkili aktörlerinin katıldığı, bölgenin en önemli girişimcilik etkinliği Startup İstanbul, Türkiye’yi sektörün dünya çapında yükselen kavramlarından biri olan Growth Hacking ile tanıştıracak.

30 Eylül’de Lütfi Kırdar Kongre ve Sergi Sarayı’nda gerçekleşecek olan Startup Istanbul, bu yıl 40 ülkeden 1000 katılımcıyı ağırlayacak. 100 girişim ve 200 yatırımcının katılacağı konferans, girişimcilik dünyasının son yıllarda gözde kavramlarından biri olan Growth Hacking ön plana çıkıyor.

Dünyada ve Türkiye’de Growth Hacking diyince akla ilk gelen isimlerden biri olan dünyaca ünlü analitik servisi KISSmetrics’in kurucu ortağı Neil Patel, kısaca “düşük bütçeli online pazarlama” olarak tanımlanabilecek bu yöntemi ayrıntıları ve örnekleriyle katılımcılara anlatacak. 2010 yılında ortaya atılan ve erken aşama internet girişimleri için ideal bir kavram olan Growth Hacking, online pazarlamadan farklı olarak, avantaj sağlayan her türlü metriği dikkate alıp kısıtlı bütçelerle eldeki verileri analiz etme, test etme ve ölçümleme prensibine dayanıyor. A/B testinden Google Analytics’e, SEO’dan viral pazarlamaya kadar pek çok uygulama, Growth Hacking sürecinde kullanılıyor ve Facebook, Twitter, AirBnB, Dropbox, LinkedIn gibi dev şirketler de bu yeni kavramın getirilerinden faydalanıyor.

IBM Smart Camp finalleri Startup İstanbul’da

2010 yılından bu yana dünya çapında gerçekleştirilen IBM SmartCamp, bu yıl finallerini Startup İstanbul’da gerçekleştirecek. Dünyanın enerji, sağlık, ulaşım, e-devlet hizmetleri gibi temel alanlarda karşı karşıya olduğu sorunlara çözümler sunan yeni nesil yenilikçi şirketlere odaklanan IBM, bu yıl Genel Kategori ve Sağlık Bilişimi Kategorisi başlığı altında iki ayrı kategoride en iyileri Startup İstanbul’da belirleyecek. IBM Türkiye’nin içinde olduğu EMEA bölgesinin Startup İstanbul’da belirlenecek olan birincileri ise, Kasım ayında Londra’da dünya finalleri için yarışacak.

Microsoft ofisinde “Startup Challenge”

Startup İstanbul, zorlu Etohum süreçlerinden başarıyla geçen seçilmiş girişimlere de kapılarını açıyor. 27 Eylül’de İstanbul’daki Microsoft ofisinde gerçekleşecek iki günlük yoğun eğitim ve mentorluk programını tamamlayacak olan girişimciler, 29 Eylül’de Startup İstanbul programları kapsamında dünyanın ve Türkiye’nin önde gelen yatırım ve risk sermayesi şirketlerine sunum yapacaklar. Etohum, teknoloji girişimcilerinin sayısını artırmak amacıyla geçtiğimiz yıl Microsoft ile işbirliği sözleşmesine imza atmış, bu iş ortaklığı çerçevesinde her iki kurumun, mentorluk, iş geliştirme ve ofis alanlarının kullanımı konusunda birbirine karşılıklı destek vermesi için ilk adımları atmıştı.

Amerika ve Avrupa’dan yatırımcıların ve konuşmacıların katılacağı konferansta, dünyanın en büyük hızlandırıcıları olarak bilinen 500 Startups, YCombinator, Blablacar, Twitter, Udemy, Qualcomm Ventures, Endeavor, Wayra, Startup Wise Guys, Plan9, Flat6labs, Eleven gibi şirketler de çeşitli oturumlar ve speednetworking etkinliği aracılığıyla girişimcilerle buluşacak. Google’daki başarılı çalışmalarıyla tanınan moda ve pazarlama gurusu Marion Gamel ile melek yatırımcılık ve startup hızlandırıcıları konusunda uzmanlaşan Microsoft Ventures Genel Müdürü ve ortaklarından Rahul Sood da konferansın beklenen isimlerinden.

Startup İstanbul’un belli olan diğer konuşmacıları ve program akışı hakkında daha ayrıntılı bilgi almak için http://www.startupistanbul.com adresini ziyaret edebilirsiniz.

Kaynak: mulakatsorulari.net

MVC Video Oynatma

İlk olarak videoyu sisteme yükleme kısmına bakacağız. Resim yüklemeden farkı olmayan tipik bir upload olayı. Sadece webconfig'den max. upload mikarını ayarlamak gerekiyor o kadar.

HTML;
<form action="" method="post" enctype="multipart/form-data">
@Html.TextBoxFor(m => m.Baslik, new { @class = "osmankurtnet" })
<input id="File1" type="file" name="File1" />
<input id="Submit1" type="submit" value="Tamam" />
</form>

Yükleme Controller;

 
[HttpPost]
public ActionResult VideoGaleriEdit(Video vid, HttpPostedFileBase File1)
{
Video v = new Video();
v.Baslik = "osmankurt.net Yazılım Uzmanı";
if (File1 != null)
{
if (File1.ContentLength > 0)
{
File1.SaveAs(Server.MapPath(Url.Content("~/uploaded/" + File1.FileName)));
v.Video1 = File1.FileName;
}
}
entity.Video.AddObject(v);
entity.SaveChanges();
}
return View();
}

Yükleme işlemi tamamlandı. Ön tarafta göstermek için öncelikle buradan dosyamızı indirmeniz ve alt kısımda ki gibi sayfamıza referans olarak eklemeniz gerekmektedir.
HTML;

<div style="text-align: center;">
<div id="player"><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Get the Adobe Flash Player to see this video.</a></div>
<script src="~/flvplayer/swfobject.js" type="text/javascript"></script>
<script type="text/javascript">
var so = new SWFObject('@Url.Content("~/flvplayer/player.swf")', 'mpl', '538', '390', '9.0.124');
so.addParam('allowscriptaccess', 'always');
so.addParam('allowfullscreen', 'true');
so.addVariable('file', '@Url.Content("~/uploaded/" + ViewBag.Icerik)');
so.addVariable('image', '@Url.Content("~/images/sg-icerik/video.png")');
so.addVariable('autostart', 'false');
so.addVariable('skin', '/flvplayer/snel.swf');
so.write('player');
</script>
</div>

Controller;

 
public ActionResult VideoDetay(string id)
{
var video = (from a in entity.Video where a.VideoID == GelenID select a).FirstOrDefault();
if (video != null)
{
ViewBag.Baslik = video.Baslik;
ViewBag.Icerik = video.Video1;
}
return View();
}

Görüşmek üzere

Osman KURT
Yazılım Uzmanı

MVC Eğitmeni & Yazılım Uzmanı

Windows 8 Hayal Kırıklığı Diyorlar!

Ya kardeşim Allah aşkına neyin kafasını yaşıyorsunuz. Microsoft uzun zamandır bu kadar iyi iş çıkarmıyordu bence. Apple yapınca devrim niteliğinde diyenler, gidin o zaman mac kullanın.

Windows 8 ve 8.1 tamamen hız üzerine kurulmuş bir sistem. klavyenizde ki tekbir Windows tuşu ile yapabileceklerinizin sınırı yok. PC kendi içinde ki arama hızı olsun aynı zaman da web içinde ki araması olsun mükemmel denecek kadar iyi.

Yapılan araştırmalara göre falan filan. Bakıyorsun hala %35'lik kısım XP kullanıyor. Bilmem farkında mısınız ama XP'yi dedem kullanıyordu. Tipik ara yüz alışkanlığı nedeni ile güzel bir ürünün önünü kesmemeli bence.

Lisans ücretleri pahalı.

Evet bence de pahalı ama kampanyalı zamanından aldığım Windows 8 lisansım babalar gibi. Verdiğim 80 TL'yi sonuna kadar hak ediyor bence.

Bazı siteler haber yapmadan önce birçok etkeni göz önünde bulundurmalı. haber yapıldın diye yapılmaz.


Saygılarımla

Osman KURT

Bir Windows kullanıcısı   

MVC'de BundleConfig Kullanımı Ve Performans Artışı

MVC projelerimizin default oluşumunda gelen bir özellik ve Microsoft gerçekten bu özelliği kullanmamızı istiyor.
Kullanımı basit, sayfa içerisinde o kadar çok css ve script tanımlıyoruz ki bazen biz bile ne nerden geliyor karıştırıyoruz. İşte bundle tam da bunu engellemek için yapışmış birşey.

Karışıklığı önlediği gibi eklediğimiz css ve js dosyalarını da optimize ederek, yüklemeden yani performansdan tasarruf sağlıyor ve bu sayede arama motorlarının bizi üst sıralara taşımasına yardımcı oluyor.

Gelelim kullanımına;
MVC projemizde ki App_start kalsöründe bulunan BundleConfig.cs dosyamıza alt örnekte olduğu gibi css ve scriptlerimizi ekliyoruz. İstediğimiz gibi ekleyebiliriz. Ezme durumlarından dolayı parça parça olarak ta ekleyebilirsiniz.


            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

            bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                        "~/Content/themes/base/jquery.ui.core.css",
                        "~/Content/themes/base/jquery.ui.resizable.css",
                        "~/Content/themes/base/jquery.ui.selectable.css",
                        "~/Content/themes/base/jquery.ui.accordion.css",
                        "~/Content/themes/base/jquery.ui.autocomplete.css",
                        "~/Content/themes/base/jquery.ui.button.css",
                        "~/Content/themes/base/jquery.ui.dialog.css",
                        "~/Content/themes/base/jquery.ui.slider.css",
                        "~/Content/themes/base/jquery.ui.tabs.css",
                        "~/Content/themes/base/jquery.ui.datepicker.css",
                        "~/Content/themes/base/jquery.ui.progressbar.css",
                        "~/Content/themes/base/jquery.ui.theme.css"));
Not düşmek gerekir se * işaretleri siz sürüm notu bildirmeden va olan sürümün numarasını almaya yarıyor.
Ön yüzde çağırmak gerekirse;

    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")

Kullanım gördüğünüz gibi bu kadar basit. Üst kısımda ki kodu sayfamızın neresinde css ve js dosyalarımızın çıkmasını istiyorsak oaraya kaymamız gerekiyor.

Yazımın başında da dedim ya optimize diye bir durum da var. İşte onun içinde BundleConfig.cs dosyamızın içine en üst kısımda ki paylaştığım kodun altına

   BundleTable.EnableOptimizations = true;
Eklememiz gerekiyor.

Örnek Dosya İçin

Görümek üzere,

Osman KURT
Yazılım Uzmanı & MVC Eğitmeni

MSSql Bugüne Ait Verileri Çekme

Mssql de tarih işlemleri benim için her zaman sıkıntılı olan işlemler olmuştur. Sql konusunda eminim ki birçok arkadaşımız da bu sıkıntıları yaşıyor. Bu yazım da sizlere ufak ama çok sıkça kullanılacak bir kod parçası vereceğim.

Farz edelimki başlama tarihi olan bir tablomuz olsun ve bizde başlama tarihi bugüne ait olan verileri çekelim. Bu arada alanımızın veri tipi datetime.

Sorgumuz,

Select * from Firmalar where CONVERT(NVARCHAR,BaslamaTarihi,104) = CONVERT(NVARCHAR,GETDATE(),104) 

Görüşmek üzere,

Osman KURT
Yazılım Uzmanı & MVC Eğitmeni

*Sorulan bir soru üzerine yapılmış bir paylaşımdır.

Edge Of Tomorrow Nasıl Bir Film?

Bugünün yazısı da bu olsun arkadaşlar.

Edge Of Tomorrow Nasıl Bir Film?
Başrollerini  Tom Cruise ve  Emily Blunt'ın oynadığı film şuan için IMDB'den 8,2 puanı almış. Açıkca söylemek gerekirse aldığı puanı ve daha fazlasını hakettiğini gönül rahatlığı ile söyleyebilirim. Gerek sahnelerinde ki efektler, gerekse oyuncuların performansları beni bu konuda gayet haklı çıkarıyor. Filmin 3D olması da beni ayrıca mutlu etti. Her ne kadar gittiğimiz sinemanın gözükleri dandik olsa da film beni bu konuda da üzmedi. Ne diyim bedava 3D gözlüğü bu kadar olur. Burnumun üzerinde resmen bir kalıpla film izledim.

Filmin konusuna gelince elbette söylemeyeceğim :) o kadar övdük filmi bence arkadaş ortamında ya da varsa kız arkadaşınızla gidebilirsiniz. Tabi ki aksiyon seviyorsanız.



Her neyse ben yeni bir film izleyene kadar görüşmek üzere

Osman KURT
Yazılım Uzmanı

Yeni Başlayanlar İçin MVC Eğitimi

Daha önceki yazılarımda mvc eğitimim verdiğimi belirtmiştim. Bunu yenilemekte fayda görüyorum. Arkadaşlar ben İstanbul'da ikamet ediyorum bu yüzden yüz yüze eğitimlerde haliyle İstanbul içi olmak durumunda. Şehir dışında olan arkadaşlar için de uzaktan bağlantı programalrı sayesinde gerekli eğitimi gerçekleştirebiliyorum.



Bununla alakalı birçok arkadaş mail ile bağlantı sağladıkları için bu yazıyı paylaşma gereği duydum.

Eğer ki siz de mvc eğitimi almak istiyorsanız info@osmankurt.net adresinden yada iletişim formundan bana ulaşabilirsiniz. İlk aşamada lütfen ikamet ettiğiniz il ve ilçe bilginizi paylaşınız.

İlginiz için çok teşekkür ederim.
Görüşmek üzere

Osman KURT

C# .Net de İpucu

Başlıktan da anlayacağınız üzere bir ipucu ile karşınızdayım.
Daha önceden method hazırlarken parametrelerde ref diye bir tanımlama kullandınız mı?

Kısaca açıklamak gerekirse, çalışacak method'dan önce bir değişken tanımladınız ve tanımladığınız değişkeninizin method çalıştıktan sonra dinamik olarak değerinin update edilmesini ve bu değişimin de method içinde işlendikten sonra gerçekleşmesini istiyorsunuz. Methodunuz da return değeri olarak bu parametre ile alakalı herhangi birşey döndürmüyor. O zaman ref diye bir tanımlamamız var. Alt kısımda ki kod örneği tam da bunu açıklıyor.

İnanın bana gerektiği yerde kullanınca siz de ne kadar harika olduğunu göreceksiniz. Sadece yazı ile anlatmak biraz zorluyor insanı :)

Örnek Method;

    public class OrnekDeneme
    {
        public static void deneme(ref bool osmankurt)
        {
            osmankurt = true;
        }
    }
Kullanımı;
            bool osmankurt = false;
            OrnekDeneme.deneme(ref osmankurt);
            var deger = osmankurt;

Görüşmek üzere
Osman KURT
Yazılım Uzmanı & MVC Eğitmeni

MVC'de Captcha Kullanımı

Yakın bir tanıdığımın işine yaracağı için üzerinde çalıştığım bir örnek, basit ama hayat kurtarır. Günümüz teknolojisnin insan hayatında bazen bıkkınlık verir derecesine rahatsızlık verdiğinin farkındayız.

Bunlarda yazılan otomatik sistemlerin payı büyük. Yazılım tekniklerinin gelişmesi ile suistimal oranlarıda arttı haliyle.

Nasıl mı?

Reklam amaçı yazılan botlar gibi.
İşte bunları engellemenin  en önemli faktörlerinden bir tanesi Captcha kullanımı. Yani karşımızda ki kullanıcının insan olduğunu anlamak.

Onu da nasıl yapıyoruz bakalım şimdi.
Oluşturduğumuz bir projenin HomeController kısmına şu kodu yazıyoruz;

public ActionResult CaptchaImage(string prefix, bool noisy = true)
       {
            int i, r, x, y;
            var rand = new Random((int)DateTime.Now.Ticks);
            int a = rand.Next(10, 99);
            int b = rand.Next(0, 9);
            var captcha = string.Format("{0} + {1} = ?", a, b);
            Session["Captcha"] = a + b;
            FileContentResult img = null;
            using (var mem = new MemoryStream())
            using (var bmp = new Bitmap(130, 30))
            using (var gfx = Graphics.FromImage((Image)bmp))
            {
                gfx.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
                gfx.SmoothingMode = SmoothingMode.AntiAlias;
                gfx.FillRectangle(Brushes.White, new Rectangle(0, 0, bmp.Width, bmp.Height));
                if (noisy)
                {
                    var pen = new Pen(Color.Yellow);
                    for (i = 1; i < 10; i++)
                    {
                        pen.Color = Color.FromArgb((rand.Next(0, 255)),(rand.Next(0, 255)),(rand.Next(0, 255)));
                        r = rand.Next(0, (130 / 3));
                        x = rand.Next(0, 130);
                        y = rand.Next(0, 30);
                    }
                }
                gfx.DrawString(captcha, new Font("Tahoma", 15), Brushes.Gray, 2, 3);
                bmp.Save(mem, System.Drawing.Imaging.ImageFormat.Jpeg);
                img = this.File(mem.GetBuffer(), "image/Jpeg");
            }
            return img;
        }

Daha sonra ön tarafa geçiyoruz ve kullanıcılarımıza göstereceğimiz resim parçasını ayarlıyoruz. Bunun için de alt kısımda ki kod bloğunu kullanıyoruz.

<script>
    function GetCaptcha() {
        $("#rsm").attr('src', '/Home/CaptchaImage?' + new Date().getTime());
   }
</script>
<img src="@Url.Action("CaptchaImage")" id="rsm" style="" />
<input type="button" value="Yenile" onclick=" return GetCaptcha()" />

Post ettiğimiz zaman doğruluk kontrolünü,
if (Session["Captcha"] == null || Session["Captcha"].ToString() != model.Captcha)
{
     //hata mesajı
     return View(model);
}

Session da tuttuğumuz captcha verisi ile kullanıcının girdiği veriyi karşılaştırıyoruz ve kontrolümüzü sağlıyoruz.

Görüşmek üzere
Osman KURT
Yazılım Uzmanı & MVC Eğitmeni