Rakkoc.Com Recep Akkoç / Rakkocun Yazıtları

9Eyl/142

IMEI – Kredi Kart Numarası Hesaplama – Doğrulama

Merhabalar, Şuan Iphone6 canlı yayında tanıtılıyor ama internet yayını çok kotu izlenmiyor... Uzun zamandır yazmıyorum. İş güç değişimler zamansızlık dan öte kendime zaman ayırma lüksümün olmadığını düşündüğümden yazmıyordum belkide. Gevezeyim yazdığımda uzuyıp gidiyor. Fazla uzatmadan konuya geleyim.

Bir arkadaş az önce aradı MOD10 Kart no hesaplama diye bir şey varmış sen bilirsin. Eeee bilirim de ? dememe kalmadan bilirim dediğim an bana o lazım diye geldi istek. mod10 olarak arkadaşın söylediği şey aslında Luhn Algorithm (Luhn Algoritması)

Kısa tarih bilgisi ile bir alman olan Hans Peter Luhn abimiz tarafından 1954 yılında dakte edilen sayıların yanlış girilip girilmediğini kontrol amaclı geliştirilmiş. IMEI - Kredikarti gibi sayıların son karakterinde doğrulama kodu olarak kullanılır.

Kendi kullandığım fonksiyonları paylaşmak istemedim. Bir googlelayım dedim. 2-3 sayfada karsıma kodtarifi diye bir siteden makale çıktı.

using System;
using System.Linq;
//Credit Card Check Digit - Luhn Algorithm
namespace LuhnAlgorithm
{
    class Program
    {
        static void Main(string[] args)
        {
           string ccNo = "4022999999994026";
           bool sonuc = IsLuhnValid(ccNo);//Parametre olarak k.k numarası geçilir.
        }

        public static bool IsLuhnValid(string value)
        {
            return value.Where(c => Char.IsDigit(c)).Reverse()
              .SelectMany((c, i) => ((c - '0') << (i & 1)).ToString())
              .Sum(c => c - '0') % 10 == 0;
        }
    }
}

kullanım seklide :

string ccNo = "4022999999994026";
bool sonuc = IsLuhnValid(ccNo);//Parametre olarak k.k numarası geçilir.
if(!sonuc)
 Console.WriteLine("Kart numarası hatalı!");
else
 Console.WriteLine("Kart numarası doğru.");

Sayfanın üst kısmından gördüm ki sitenin sahibi Fulya hanım mış, paylaştığı kod için teşekkür ederim. Kendisi iş hayatından tanıdığım ve aynı projede görev aldığım bir insan.

Bu arada kendi kodumu paylaşmama nedenim çok gizli özel kapalı saklama kabında hatta banka kasasında saklanması gereken bir kod olduğundan değil. Bayağı eskiden kalma iş görecek kadar yazılmış bir kod olmasından dolayı. Ebem dedem misali düz ve gerektiği kadar kod yazan bir insanim. Türemeler Miraslar kalıtımlar günümüzde gereksiz fazla kullaniliyor bence. Hala entity framework yerine kendi dbHelper sinifi uzerinden db işlemlerini yürüten birisi olarak yeterince dinazor olduğumu belirterek kendi kodumuda buraya ekliyim :

        public string LuhnCheck(string cardNumber)
        {
            int total = 0;
            int power = 2;

            for (int i = cardNumber.Length - 2; i >= 0; i += -1)
            {
                int res = Convert.ToInt32(cardNumber.Substring(i, 1)) * power;
                if (res >= 10)
                    res -= 9;
                total += res;
                power = power ^ 3;
            }

            total = 10 - (total % 10);
            if (total != 10)
            {
                return total.ToString();
            }
            else
            {
                return "0";
            }
        }

burdaki kodun calisma mantigi son karakteri hesaplama

string strCardNo = BIN + strSelectedCardNoPad.PadLeft(7, '0').Substring(0, 7);
string chrChckDjt =  LuhnCheck(strCardNo + "0");
return strCardNo + chrChckDjt;

Şeklinde de bir yerde kullanmışım mesela. BIN kodu kart'a ait Patentli seri no başlangıç bölümü. Sonrasında gerekli hesaplamaları yapıp üretilen 15 haneli kart numarasına son karakter eklenerek toplam 16 haneli kart numarası elde ediliyor.

Bu kodu verip bitirmek olmamalı; Mantığınıda anlatmaya çalışıyım.

Örnek kart No : 4022999999994026
bunda numaraları 1'er atlayarak grupluyoruz, Yukarda Kalın ve Kırmızılar diye iki grup oluştu.

Kalınları (ilk karakteri ve 1'er atlanmış halini) 2 ile carpıyor çift hane çikarsa bir sonucun onlar ve birler basamağını topluyoruz. Kırmızıları ise direk topluyoruz.

4 x 2 2 x 2 9 x 2 9 x 2 9 x 2 9 x 2 4 x 2 2 x 2
8 4 18 -> 1+8 18 -> 1+8 18 -> 1+8 18 -> 1+8 8 4
8 4 9 9 9 9 8 4

8 + 4 + 9 + 9 + 9 + 9 + 8 + 4 = 60 ilk cift sonucu

0 + 2 + 9 + 9 + 9 + 9 + 0 + 644

60 + 44 = 104

104 Mod 10 = 4

Luhn algoritmasina Mod10 yada Modulus 10 algoritmasi denmesinin sebebi bu işlemler bittiginda olusan sonucun Mod10 yapıldığında 0 kalması gerekmekte olmasıdır. Yani hesapladigimiz Kart no Luhn algoritmasina uymuyor Mod10 da sonuc 4 kaliyor. son karakter 6 degil 2 olsa toplamda 4 değer duşeceğinden Luhn algoritmasına uygun kod elde etmiş olacaktık.

Online kontrol ve test yapmak isteyen olursa : http://planetcalc.com/2464/ adresinde hazir bir tane mevcut. Luhn degeri 0 tutturmaya calişcaksınız.
Her türlü Akıllı kart ürünü Yoroca tarafından geliştirile bilir, Aklınızda bulunsun, belki gerekir...

5Oca/140

(EF) Entity Framework Nedir?

Entity Framework (EF)’ün tanımına geçmeden bilmemiz gereken bir iki tanim vardir. Bunlar Object Relational Mapping (ORM) ve Object Oriented Programming (OOP). Entity Framework, .Net platformunda ORM (Object Relational Mapping) araçlarından biridir. ORM (Object Relational Mapping) ise veritabanı ile nesneye yönelik programlama (OOP) arasındaki ilişkiyi kuran teknolojidir. Yani Entity Framework, nesne tabanlı programlamada veritabanındaki tablolara uygun nesneler oluşturma tekniğidir.

Öncelikle ORM nedir sorusuna cevap bulalım ; Veritabanımızda yaratmış olduğumuz her bir nesneye karşılık kod tarafında bir nesne oluşturan programlardır diyebiliriz. Bu programlar code generation veya shema generation tekniği kullanarak bizim yazmamız gereken kodu otomatik üretiyor veya tam tersinde bizim yazdigimiz kod sablonuna uygun database semasini olusturuyor.

Günümüzde kullanılan birçok ORM aracı bulunmaktadır. Örneğin; Java tabanlı olarak Hibernate, Flex’de Athena Framework, Delphi’de ECO gibi. Entity Framework ise Microsoft tarafından geliştirilen .Net tabanlı bir ORM aracıdır. Entity Framework ile kolayca CRUD işlemleri yapılabilir. Peki, neden ORM? Çünkü;

- Veritabanı işlemleri ile ilgili kod yazımı en aza ineceğinden minimum zamanda maksimum iş çıkartmayı sağlar.

- OOP düzeninde kod yazmayı sağlar.

- Veritabanı olarak esnek yapıya sahiptir. Örneğin yazdığınız proje MSSQL ile çalışmakta ve birden Oracle’a geçmeniz istendi. Bunu yapabilmek için birçok ayar gerekirken Entity Framework ile direkt geçiş yapabilirsiniz.

- Veritabanı bağımlılığı yoktur. Yani EF’yi oluşturmadan önce veritabanı tablo ve kolonlarını oluşturmalısınız gibi bir kural yoktur. Siz EF ile modellemeyi yaparken olmayan tabloları ve kolonları sizin yerinize açacaktır.

-Maintenance daha kolaydır.

Her ne kadar EF kodlama olarak zaman kazandırsa da performans olarak ADO.Net kadar hızlı değildir. Bunu ayriyetten belirtmek istedim cunku yazilan her proje Entity ile olmak zorunda degildir ve/veya projenin tamaminda entity kullanmak zorunda olmak sizin icin dezavantaj olabilir.

Entity Framework .Net 3.5 ile beraber Vs 2008 sp1 ile gelmistir. tarih 11 Agustor 2008

Database tarafinda relationshiplarimiz (iliskiler) orm tarafinda association olarak adlandirilacaktir.

Entity Framework ile 4 farklı yöntem ile proje geliştirilebilir. Bu yöntemler;

- Model First (New Database)

-  Database First (Existing Database)

- Code First (New Database)

- Code First (Existing Database)

Model First (Önce Model): Bu yöntemde Visual Studio üzerinde boş bir model dosyası (.edmx) eklenerek veri tabanı bu model üzerinde tasarlanir. Derleme adiminda verilen script dosyasi ile veri tabani oluşturulur.

Database First (Önce Veritabanı): Bu yöntemde hali hazırda var olan veritabanı projeye model dosyası ile bağlanır ve gerekli class’lar EF tarafından üretilir. Ilerde veritabanina yapilacak eklemelerde mevcut version Ef 6 da sorunlar yasamistim kod daki classlarin iliskilerini tam yapamadigi icin bu versionu kullanmaktan uzak durmaktayim (giris seviyesineki en kolay version da budur.

Code First (Önce Kod – Yeni Veritabanı): Bu yöntemde classlar ve mapping kodları yazılımcı tarafından oluşturulur. Daha sonra veri tabanı bu class’lardan türetilir.

Code First (Önce Kod – Var olan Veritabanı): Bu yöntemde de classlar ve mapping kodları yazılımcı tarafından oluşturulur. Veritabanı class’ların ve modellemenin durumuna göre tekrardan şekillenebilir.

ilerleyen yazilarimda ustunde duracagim daha cok Code First olan version olacaktir.

19Nis/130

VLC Error 1814

Merhabalar;

Bir format sonrasi kurulumlarimi yapmaktayim. VLC'yi kurarken error 1814 diye bir hata aldim.

Bu hata sizinde basiniza gelirse diye paylasmak istedim. Hayanin cozumu cok basit. sag tiklayip "Run As Administrator" pc turkce ise "Yonetici olarak calistir" diyin ve kuruluma baslayin.

VLC'yi hem windows pc'mde hem linux pc'mde, hemde androidde kullaniyorum, herkese tavsiye ederim.

Cep telefonum Samsung Note 2, uzerine 64gb'lik CLASS 10 hafiza karti taktim ve suan izlemekte oldugum anime NARUTO'yu yukledim. metrobuste, serviste gunde yaklasik iki bucuk saat trafikte yollarda zaman gecirmekteyim guzel bir kullanim ile rahat oluyor.

VLC'nin bir diger onemli ozelligi ise normal ses'in %100 oldugu halde VLC bunu biraz kaliteyi dusurarek %300'e kadar cikartabiliyor. Ana ekranda sesini yukseltme kisminden yukseltip %200'e getirebilirsiniz ama mausenin scrool tusunu video uzerinde iken kulanarak daha yuksek bir ses cikisida elde edebiliyorsunuz.

cok yorgunum ve yatagimda uzanip aklimdan gecenleri blogluyorum iste, neyse size hayirli geceler.

10Nis/132

Vektorada Çalışma fırsatı

Merhaba Arkadaslar;

Vektora Mecidiye koyde guzel bir yerde ofisi olan bir cok farkli sekmentte yazilim isi yapan ve kurumsal cozumler sunan bir firma. Cok sevdigim bir arkadasim olan Oguz Serin bu sirkette calismakta ve kendi ekibini kurmakta. Bu yeni kurulacak ekibe eleman arayisindalar. C# bilgisi olan (Sharepoint tercihtir) eleman araniyor.

Bana bilgi verirseniz direk kendisine yonlendire bilirim veya yenibiris.com daki ilanlar asagidaki linkte.

http://www.yenibiris.com/vektora_bilisim_teknolojileri/sharepoint_yazilimcisi/392072.ilan?AdLocID=889597

Edit :

Yeni link : http://www.yenibiris.com/vektora_bilisim_teknolojileri/yetistirilmek_uzere_sharepoint_yazilimcisi/405390.ilan?Keyword=vektora&AdLocID=897456

28Oca/132

Ankaranın BurgerKing’i (sikayet-eleştiri)

Sene 2009'da Ulus meydanda Burgerking yoktu 🙂 PTT BANK projesi kapasiminda kart basim evi kuruluyordu ve bir sure burda kalmak zorunda kaldim. Evim disinda yemek yiyeceksem Burgerking'i tercih ediyorum. Bunun sebebi yiyecegimin bir makra ile garanti altina alinmasi oluyor. Evet ankaranin kendine ozgu fast food'u olan ASPAVA'yida denedim ama suanda bu yaziyi ne zaman acildigini bilmedigim (ulustaki) ANKARANIN BURGERKINGINDEN yaziyorum. Yazimi okumakta olanlarinda biraz agizini sulandirmak adina Big King Extra mi bitirdim. Cikolatali Suflemi yedim Rakkoc.Com'a yeni index atip Blog'umun guvenlik guncellemelerini yaptim simdi güzel bir kahve esliginde limonlu cheesecake'imi yiyorum.

Çokta laf kalabaliği yapmadan konuma gireyim, sikayetci oldugum konuyu anlatiyim oncelik ile;

Ankara yabanci memleket bana gore; Gelidim kaliyorum. Her aksam yine burgerking'de yiyorum. Dün aksamda geldim burgerking'e 2 big king extra 1 tanesi paket. Oturup yiyecegim birisinide otelimde, gece yatmadan once atistiririm diye goturecegim.

Benden onceki bayan her halinden burgerking'e ilk defa geldigi belli. Sira ile hamburgerlerin fiyatlarini sorup patatesli mi patatessiz mi olduklarini sordu. 3 tane whoper JR menu aldi. paket yaptirdi. Dis gorunusunden durumunun pek iyi olmadigi belli idi. Ankaranin sogunda bir orgu yelek ile gelmisti burger'a 3 menu whoper'ini aldi. paketletti ve 23.25 tl odemesini yapip cikti. Kendi dusuncem Cocuklarina goturdu. Hamburger burgerking mcdonalds biraz pop kultur cocuklarin ilgisini cekiyor diye boyle davrandigini dusundum. Sikayetci oldugum konu ise asagidaki resimde gordugunuz gibi whoper 2 tanesi 11,75 TL ve ek olarak 1 tane daha 7,75 TL'den toplamda 19,5 TL odenmesi gereken bir durum. Kasiyer gunluk cirosunu yuksek tutmak adinami bu islemi yapti yoksa dalginligindan mi 3x7,75 = 23,25TL aldi bilemiyorum ama bu konu bence onemli. Bilmiyen insanlarin bir itelenmesi ve ezilmesi soz konusu oluyor burada.

Aklima lise donememim geldi. Lisede iken ben kendim calisir kendim kazarnir kendim harcardim. Tabi her yere yetisemiyordu kazandigim. Avcilardaki eski burgerking'e giderdim. eski dedigime bakmayin o zamanlar avcilar merkezde bir tane burgerking vardi ve 2 katli idi. Sonradan 2. burger king acildi ve eski burgerking lakabini kazanan burgerkingimiz 3. katini yaptirdi.

Neden bu donemler geldi aklima onuda anlatayim 2-3 arkadas gidip burgerking'de otururduk. Paramiz yettigince bir menu alir onunu yerdik. etrafta patates kizartmasini yemeden kalkan varsa masalari temizleyen gorevlilerden once gider patatesleri alir onlarida atistirirdik (genelde menu sayisi kisi sayisindan az oluyorduda 🙂

Sonra universite yillarimda daha iyi maas aldigim bir isim vardi okuldan cok yine o avcilar merkezdeki burgerda zaman gecirirdim 🙂 tabi universitem Istanbul universitesi Avcilar kampusu olunca, Liseyide Haydarakinda halledince avcilar meskenim olmustu. O zamanlar 5 kurus olan para ustlerini hesap ederdik tabi ogrencilik yillari. Dun gordugum o kadin bana o ogrenci olaran recep'i hatirlatti nedensizce.

Twitter uzerinden burgerking'e sikayette bulundum. Benden iletisim bilgilerimi istediler gonderdim. bakalim sonucu ne olacaksa sizin ile de paylasacagim.

Bugunde ayni bugerking'de oldugumu belirtmistim (Kasiyer kizin sevgilisi de ayni yerde calisiyor yada burda bir birlerini buldular bilemiyorum) Ice tea yerine kola varmisler, Kasiyeri gidip uyardim, Sevgilisi olan personel atarli atarli bana bakip soyleniyordu.. Buranin personelimi o onuda bilmiyorum. Suan kapanmak uzere buldundugum burgerking. o kisi temizligini yapiyor. ama uzerinde burgerking'in formasi yok.

Turkiyenin onde gelen buyuk Güvenlik sitelerinden birisi olan Tahribat.com'da ki kisiler ile bu konuda konustum onlarda bu burgerking subesi ile ilgili kolanin icine su katildigi gibi bir sikayette bulunduklarini ama bir sey cikmadigini soylediler.

Son olarak eklemek isterim bu burgerking subesi otelime en yakin olan sube oldugu icin geliyorum; 2 Hafta sonra burasi ile bir irtibatim kalmiyacak, Burgerking'den isteyim ise calisanlarinin egitimi konusunda biraz daha dikkatli olmalari olacaktir.

Toplam 26 sayfa mevcuttur; 7. sayfayi okuyorsunuz...« Ilk...4567891011...20...Son »