Bilmek istediğin her şeye ulaş

Bilgisayar Programcısı Sinan D inploid.com'da 1 soru sordu, 8 soru yanıtladı ve 8 takipçisi var.

Mart 2015

Sinan D bir yanıt verdi.

Klavyeye bakmadan hızlı yazı yazabilmeyi öğrenmek için hangi yöntemleri önerirsiniz?

Bir çok program bulabilirsin, ama herhangi bir metin editörü ile kendin de antreman yaparak hızlanabilirsin.
mesela notepad aç klavyeden a ya basmaya çalış, sonra başka bi harfe, bi kaç günde hepsinin yerini ezberlemiş olursun zaten.
Şubat 2015

Sinan D bir yanıt verdi.

En kolay öğrenilen bilgisayar programlama dili hangisidir?

En kolay öğrenilen diye bişey diyemem çünkü bence öğrenmek istedikten ve imkân olduktan sonra hepsi aynı kolaylıkta, fakat en kolay yazılan vb.net olduğu için kesinlikle tavsiye ederim 2004'ten beri yazıyorum gayet memnunum,
bazı tipler "ya o çok kolay" gibi gerzek aşağılamalara girebilirler kafanı karıştırmasın, zira bu hayatta özel şöförlü lüks bi arabayla gidebilmek varken, sırf zor olduğu için belediye otobüsünde ayakta gitmeyi seçmek gibi bişey.
Şubat 2015

Sinan D bir yanıt verdi.

C#'ta 16 milyon dizi nesneli bir Dictionary nesnesini doldurmak istediğimde 6 milyon elemana ulaştığında 'out of memory exception' hatası veriyor. Bunu engellemek için nasıl bir çözüm uygulayabilirim?

Web projesiyse ve ekrana basarken kullanıyorsan response. Buffer false yapıp deneyebilirsin ama neden böyle bişey yaptığını anlayamadım, yapmak istediğin şeyi anlatırsan belki daha makul yöntemler önerilebilir
Ocak 2015

Sinan D bir yanıt verdi.

Yazılım şirketi kurmak istiyorum. Teknik işlere çok karışmadan, istediğim işi nasıl kurup yönetebilirim? Sektörde ne gibi dezavantajlarım olur? Ne tavsiye edersiniz?

Şirket kurmak ve çalıştırmak için işletme ve yönetim bilgisi gerekir, elbette işkoluyla ilgili bilgi birikim tecrübe çok büyük avantajdır fakat bunlar yeterli değildir.
yazılım şirketim var operasyonel işlerden kod yazmaya vaktim kalmıyor.
inşaat firması sahiplerinin inşaatta çalışması gibi bişey benim kod yazmam...

mail atmasını bilmeyen patronum oldu, halen de benden kat kat fazla kazanıyor :)
bence önce akılcı ve GERÇEKÇİ bir işplanı hazırla sonra güvenilir bir muhasebeciyle birlikte bir şahış şirketi kur ve saldır.

eğer ev geçindirme vs derdin yok ve vaktinde bolsa, inkübasyon şirketlerinden birine girebilirsin böylece kuluçka dönemini daha güvende geçirebilirsin.

bol şanslar
Ocak 2015

Sinan D bir yanıta alt yorum yaptı

buna klasik yöntem diyebiliriz :) çok komplex bir yapı yoksa iş görecektir,
eğer iis8 kullanıyorsan websocket denemesi de yapmış olmak için websocket'le de çözebilirsin.

senin yöntemin eksik yanı server tarafında kontrol koymamış olman, mesela biri login olup session bilgilerini aldıktan sonra senin pencereyi kapatsa veya javascript'i engellese, senin sistem çalışmaz, adam istediği gibi request göndermeye devam eder.
Sorunun cevabını dün akşam rüyamda buldum :)

Veritabanına userid ve date_time olan kolonları olan yeni bir tablo1 ekledim. Hemen akabinde, user login kodunu yazmış olduğum yerde, tablo1 içerisinde kullanıcı kayıtlı ise giriş tarih& saatini güncelliyorum değil ise kullanıcıyı userid 'si ile birlikte ekliyorum. Aynı zamanda eklemiş olduğum tarih& saati session içerisinde tutuyorum. Masterpage içerisinde aşağıdaki javascript kodunu ekledim.

  function BlockUser() {
                  
                   var param = "";
                   $.ajax({
                       type: "POST",
                       url: "ServerControl.asmx/BlockUser",
                       data: param,
                       contentType: "application/json; charset=utf-8",
                       dataType: "json",
                       success: SetBlockUserSucceed,
                       error: SetBlockUserFailed
                   });
               }
               function SetBlockUserSucceed(result) {
                   var sonuc = result.d;
                   var metin = sonuc.split(';');//ikinci parametre lazım olabilir.
                   if (metin[0] == 'true')
                   {
                       alert("Oturum Farklı Bir Noktada Açıldı.");
                       window.location = "/Login.aspx";
                   }

               }

               function SetBlockUserFailed() {
                  //Henüz karar vermedim.
               }
              window.load = setInterval('BlockUser()', 1000);




Daha sonra asp.net tarafında ServerControl.asmx içerisine aşağıdaki kodu yazdım.

        [WebMethod(EnableSession = true)]
        public string BlockUser()
        {
            string msg = "";
            if (HttpContext.Current.Session["Kullanici"] != null)
            {
                string Userid = HttpContext.Current.Session["Kullanici"].ToString();
                DataTable table = vt.Sorgu("Select Date_Time from BlockUser Where UserID = " + Userid, "E98J584JRIRJYTIY");
                if (table.Rows.Count > 0)
                    if (table.Rows[0][0].ToString() != Session["BlockUser"].ToString())
                    {
                        msg = "true;param"; //Yönlendirilecek sayfa ileride değiştirilebilir. ikinci parametre olarak gönder.
                        Session.Abandon();
                    }
                    else
                    {
                        msg = "false;param";
                    }
            }
            return msg;
        } 


Oluşturmuş olduğum demo şimdilik bu şekilde işimi görüyor. Çalışma mantığını yazıya dökmem gerekirse, her kullanıcı table1 de kendi giriş tarihini güncelliyor ve javascript ile saniyede bir halen giriş tarihi kendi giriş tarihimi diye kontrol ediyor. Farklı bir bilgisayardan ya da cihazdan aynı kullanıcı adı ile giriş yapıldığında table1 içerisindeki date_time değiştiğinden dolayı bir önceki oturuma ait sessionları öldürerek sayfa yönlendirmesini gerçekleştirebiliyorum.

Bu çözümün haricinde, çözüm üreten varsa ya da var olan çözümü geliştirebilecek arkadaşların cevaplarını 4 gözle bekliyorum :)
Ekim 2014

Sinan D bir yanıt verdi.

Klavyeden girilen birbirinden farklı 3 sayının en büyüğünü bulan programın akış şeması nasıldır?

1) 3 elamanlı bir dizi tanımlanır
2) klavyeden girilenler diziye doldurulur
3) dizi sort edilip en büyük elaman kullanılır.
Eylül 2014

Sinan D bir yanıt verdi.

Şu ana kadar yapılmamış internet sitesi var mıdır?

Kullanma klavuzlarını yayınlayan bir site yap, ben yapacaktım fırsatım olmadı, gelir modeli vs her şeyi çok net. Yaparsan güzel para kazanma ihtimali yüksek.
Eylül 2014

Sinan D bir yanıt verdi.

Facebook benzeri bir site yapmak için neleri bilmek gerekir? Nelere ihtiyaç duyarız?

Hacim olarak facebook benzeri bir yapı oluşturmak için, iyi derecede veritabanı bilgisi, bigdata ve iyi derecede network bilgisi gerekir ki bunlar en en temel konular, sadece kullanıcı denetimi için bile çok sayıda insan gereken bir işi, bi kaç kişilik ekiplerin yaptığı işler gibi düşünmek hata olur.

fonskiyonel anlamda facebook benzeri bir iş yapmak için ise, CRUD işlemleri yapacak kadar veritabanı bilgisi ve orta-üst seviyede yazılım geliştirme bilgisi yeterli olacaktır.
Temmuz 2013

Sinan D bir yanıta alt yorum yaptı

cevap için teşekkürler, henüz 4.0 la devam ediyorum yakında geçeceğim.
Bana sorarsanız artık her ikisine de gerek yok çünkü 4.5 ile gelen yeni özellik ile artık bu tarz data bağlama işlemlerinde data türünü belirleyebiliyorsunuz ve "Item.PropertyName" şeklinde nesneye erişebiliyorsunuz. Hatta bu konuda daha önce yazdığım bir yazıda kullanımını bulabilirsiniz:

ASP.NET 4.5 ve Visual Studio 2012 ile gelen yeni harika özellik(ler)

Bunun dışında yine de Container.DataItem ile Eval arasında bir seçim yapmak isterseniz bence çok büyük bir farklılık yoktur (en azından performans üzerinde hissedilir bir etki göremezsiniz). Bildiğim şey, Eval("PropertyName") fonksiyonu data olarak bağlanan nesnenin tüm özelliklerini tarar ve yazdığınız string ile eşleşen data türünün değerini bağlar. Bu yöntemin ve Container.DataItem'ın en büyük dezavantajı derleme esnasında olası bir hatayı compiler'da göremezsiniz. Yani Eval("Email") şeklinde bir bağlama biçimi doğru ise, yanlışlıkla siz Eval("Emails") yazmış iseniz, veya o property "Email" yerine "ContactMail" olarak değiştirilmiş ise derleme esnasında bunu farkedemezsiniz. Sayfayı çalıştırmış olmanız gerekir hatayı fark etmeniz için.

Benim tavsiyem, 4.5 ile gelen özelliklerden faydalanmanızdır ve her zaman mümkünse yeni versiyonlara upgrade etmenizdir.
Temmuz 2013

Sinan D bu yanıtı beğendi:

ASP.Net kullanırken Container.DataItem mı Databinder.Eval mi tercih edilmeli? Neden?

Bana sorarsanız artık her ikisine de gerek yok çünkü 4.5 ile gelen yeni özellik ile artık bu tarz data bağlama işlemlerinde data türünü belirleyebiliyorsunuz ve "Item.PropertyName" şeklinde nesneye erişebiliyorsunuz. Hatta bu konuda daha önce yazdığım bir yazıda kullanımını bulabilirsiniz:

ASP.NET 4.5 ve Visual Studio 2012 ile gelen yeni harika özellik(ler)

Bunun dışında yine de Container.DataItem ile Eval arasında bir seçim yapmak isterseniz bence çok büyük bir farklılık yoktur (en azından performans üzerinde hissedilir bir etki göremezsiniz). Bildiğim şey, Eval("PropertyName") fonksiyonu data olarak bağlanan nesnenin tüm özelliklerini tarar ve yazdığınız string ile eşleşen data türünün değerini bağlar. Bu yöntemin ve Container.DataItem'ın en büyük dezavantajı derleme esnasında olası bir hatayı compiler'da göremezsiniz. Yani Eval("Email") şeklinde bir bağlama biçimi doğru ise, yanlışlıkla siz Eval("Emails") yazmış iseniz, veya o property "Email" yerine "ContactMail" olarak değiştirilmiş ise derleme esnasında bunu farkedemezsiniz. Sayfayı çalıştırmış olmanız gerekir hatayı fark etmeniz için.

Benim tavsiyem, 4.5 ile gelen özelliklerden faydalanmanızdır ve her zaman mümkünse yeni versiyonlara upgrade etmenizdir.
Temmuz 2013

Sinan DSerkan Köse kişisini takip etmeye başladı

Serkan Köse, Girişimci, @serkan

inploid.com kurucu ortağı, fotoğraf meraklısı (https://www.flickr.com/photos/koseserkan/ ve https://instagram.com/koseserkan/), motosiklet sevdalısı, elektronik yüksek mühendisi, insan ve bir adam. Dünyanın değişebileceğine inanan bir adam...

Temmuz 2013

Sinan D bir yanıt verdi.

C# ile yapılabilen ama VB.NET ile yapılamayan hangi işlemler vardır?

Tersini sorsan byref kullanarak bir fonksiyona gönderdiğin nesnenin içini dolduramazsın derdim ama diğer türlüsüne denk gelmedim. Diller arasında tercih "yapılamayan işlem" üzerinden olmaz zira bu şekilde bir şey bulamazsın, bulursan da yukarıda verdiğim örnekteki gibi teorik olarak mümkün olan ama dilin tasarımını yapan kişi tarafından es geçilmiş ufak şeyler çıkar.
Bir dili seçerken kriter kolay geliştirme ve performans olmalıdır c# ile vb.net arasında benim bildiğim performans farkı yok. kolay geliştirme dersen az biraz bu işten anlayan kişi vb.net in kullanıcıyı yormayan bir dil olduğunu söyler.
Daha Fazla