28 Tem 2011

SQL 2008 CLR Aktif Etme

SQL 2008 'de CLR 'ı aktif etmek için aşağıdaki queryi yazıp çalıştırmanız yeterlidir.
EXEC sp_configure 'clr enabled' , '1' ;
reconfigure;

27 Tem 2011

IIS 7.0 (Win server 2008) Üzerinde Çalışan Wordpress Resim Upload Problemi

Bu sorunun 2 nedeni var
1- Eğer resimleri türkçe karakter ile yüklüyorsanız isimlerdeki karakterler bozulduğu için resimler bulunamamakta. Türkçe karakter kullanmadan yüklenirse sorun ortadan kalkabilir.
2- Eğer sorun Türkçe karakter'den kaynaklanmıyorsa büyük ihtimalle klasör yazma izninden kaynaklanıyordur. Normal olarak herhangi bir işlem yapmadığınızda upload ettiğiniz resimler "wp-content\uploads" içerisine yüklenmektedir. Bu klasöre yükleme yapabilmek için (IIS tarafından otomatik oluşturulan) IIS_USRS kullanıcısı için full yetki verilmeli, fakat full yetki de verilse Wordpress (ya da IIS üzerinde çalışıtırılan herhangi bir PHP site) IIS server üzerinde çalışan sitede upload sorunu oluşmakta.
 
Sorunun çözümü ise gayet basit;
              
           Application Pools –> (wordpress'inizin application pool'u) –>Advanced Settings –> Process Model –> Identity –> Built-in Service –> Network Service Olarak seçilmeli
           Sites  –> (wordpress siteniz) –> Authentication –> Anonymous Authentication –> Sağ click –Edit –> "Application pool identity" seçilmeli.
Artık resimlerinizi Windows 2008 IIS üzerinde çalışan Wordpress sitenize rahatlıkla yükleyebilirsiniz.
(Çalışmazsa bir de bu linke bakınız)

25 Tem 2011

ASP.NET: [System.Diagnostics.DebuggerNonUserCodeAttribute()] Hatası

.aspx veya .ascx uzantılı sayfalarımıza yazdığımız c# kodları bilindiği üzere <%%> tagları arasına yazılmakta. Bu sayfalardaki kod yoğunğu çok fazla olduğu zamanlarda sayfa içerisindeki parantezler karışabiliyor. Bu parantezlerin birine tıklayarak nerede kapandığını görebiliyoruz fakat gözden kaçırdığımız bir tanesi derleme esnasında olmasa da debug anında hata ortaya çıkmakta. Eğer bütün parantezleri teker teker kontrol edip hepsinin başlangıç ve bitiş yerlerini görüp eksiksiz olduğuna emin olursanız bu hata ortadan kalkacaktır.

12 Tem 2011

Wordpress Anketi Yan Menüde Yayına Alma

Anketler bölümünden anket oluşturulduktan sonra eğer ana sayfada yan menüde göstermek istiyorsanız  anketin kodunu ( anketlerin listelendiği bölümden yayınlama istediğiniz anketin üzerine gelerek "Embed & Link" linkini tıklayıp " WordPress Shortcode" kısmından "[polldaddy poll=5220000]" şeklindeki kodu kopyalayailirsiniz)  Görünüm  - > Bileşenler sekmesinden "Metin" bileşenini sürükleyip yan menü içerisine bırakarak içierisine bu kodu yapıştırıp kaydetmelisiniz.

Dikkat edilmesi gereken bir nokta eger widget (metin kutusu) olarak yan menuye anket koymaniz durumunda ayni anketi post olarak yayınlamamak gerekmesi. Böyle bir çakışma olduğunda sorun oluşabiliyormuş.

28 Haz 2011

Vshell FTP Ayarları

- User database açılmalı (Common > Advanced) altından ve txt db yolu seçilip açılmalı (txt dosyasının izinlerini inherit(miras) almamalı ve sadace system ile administrator'a açık olmalı)


User database e kullanıcılar eklenmeli


- "Access Control" dan erişime açılacak kullanıcılar seçilmeli. 
(default gelen "Everyone" kullanıcısı için sadece Logon Allow yapılmalı)


- Seçilen kullanıcılar için sadece SFTP ve Logonlar Allow yapılmalı (sadece SFTP'ye erişebilmeleri ve logon olabilmeleri için).


- Virtual roots'dan site yolu seçilip allow(erişim izinli) ve deny(yasaklı) kullanıclar seçilmeli.


- Virtual roots'da default tanımlı kullanıcılara açık ise kapatılmalı (Everyone kullanıcısı dahil edilmiş ise kaldırılmalı). (çünkü root içerisindeki diğer klasörlere ve root a erişimi sağlıyor)



27 Haz 2011

Asp.Net Outputcache Webconfig Ayarları

Asp.Net TARAFI
[OutputCache(CacheProfile = "MyCacheProfile", VaryByParam = "strContentName", VaryByCustom = "userName")]
public ActionResult Detail() //Controller
{
}
[OutputCache(CacheProfile = "MyCacheProfile", VaryByParam = "None", VaryByCustom = "userName")]
public ActionResult Detail() //Controller
{
}
-------------------------------------
WEBCONFIG TARAFI
<!--caching-->
<caching>
    <outputCacheSettings>
        <outputCacheProfiles>
            <add name="MyCacheProfile" duration="600" location="Server" enabled="true"/>
        </outputCacheProfiles>
    </outputCacheSettings>
</caching>
<!--caching-->
-------------------------------------
şeklinde bir arada kullanılabilir

ASP.NET MVC de checkboxların döndürdüğü değer

Asp.net mvc de checkboxların hangi değeri döndürdüğü resimde gözüktüğü gibi belirlenebilir.
Checkbox tik'li ise (yani true ise) değer olarak boşluk string ("") değer döndürür.

Checkbox tik'li değil ise (yani false ise) değer olarak boş (null) değer döndürür.

SQL tablo değer değiştirme hatası

SQL tablo değer değiştirme hatası büyük ihtimalle tablolar arsında var olan foreign key'ler sebebi ile meydana gelmektedir.
SQL Foreign keyli tablolarda değer değiştirme hatası  ile karşılaşıldığında tablolar arasında bulunan foreign key'in update işlemi cascade yapılmalı.
Bunun için
Design -> Foreign Key Relationship -> INSERT And UPDATE Specifical -> Update Rule -> Cascade yapılmalı.

SQL tablonun tekrar oluşturulmasını gerektirecek durumları önlemek

Tools -> Options
      -> Designers   
        -> Table And Database Designers
        Prevent saving Changes that require table re-creation (tablonun tekrar oluşturulmasını gerektirecek durumları önlemek için tik kaldırılmalı)

SQL Server 2005 Network Configuration (uzaktan erişim ağ yapılandırması)

- SQL Server 2005 Network Configuration (uzaktan erişim ağ yapılandırması)
  - Protocols for SQLEXPRESS

Shared memory Enabled
Named Pipes Enabled
TCP/IP Enabled
VIA Disabled
olmalı.
TCP/IP -> IPAll -> TCP Port 1433 (standart SQl portu)

4 Haz 2011

MVC FormCollection Kullanımı

System.web.mvc -> FormCollection ile tanımlanan form koleksiyonundan aşağıdaki şekilde form verisi alınabilir.
Kod tarafında
FormCollection objForm = new FormCollection();
objForm["Name"] şeklinde kullanılabilir.
------------------
ASPX tarafında
<input id="Name" name="Name" type="hidden" value="" />

2 Haz 2011

Linq To SQL ile tablo birleştirme (3 tablo) join işlemi


var objProfileGroupList
= from _Group_Profile in objDc.Group_Profiles join _Profiles in objDc.Profiles
            on _Group_Profile.ProfileId equals _Profiles.Id into gp
join _Groups in objDc.Groups on _Group_Profile.GroupId equals _Groups.Id
where _Group_Profile.ProfileId == 1
select _Groups;



Yukarıdaki örnek kodda objProfileGroupList objesi içerisine seçilen gruplar atanmaktadır.
Tablolar arasındaki ilişkiyi resimden görebilirsiniz.


 


MSDN: Formulate Joins and Cross-Product Queries (LINQ to SQL)




1 May 2011

Çalıştır (Run) Kısayolları

BAŞLAT/DONATILAR/ÇALIŞTIR bölümüne girerek bu komutları yazabilirsiniz.

Çalıştır (Windows Logo + R)

Visual Studio (2010 2008 2005 son sürüm)

- devenv : Splash Screen ile.
- devenv /nosplash : "Splash Screen"'siz
.

Microsoft SQL Server Manegament Studio

- Smss 


Başlat - Çalıştır Tüm Komutların Listesi

systeminfo: işletim sistemi bilgileri, yükleme - boot tarihleri, domain - hotfix
%systemroot%\system32\oobe\msoobe.exe /a  (windows kullanıcı adı key serial gibi başlangıçtaki bilgileri değiştirme)

dxdiag : directX Diagonistic Toll

msconfig : microsoft configurasyon (başlangıç programları, boot...)

regedit : kayıt defteri

sfc /scannow : dosya ve sürücüleri hatalara karşı tarayıp düzeltiyor.

compmgmt.msc computer management 

devmgmt.msc device management
diskmgmt.msc disk management

gpedit.msc  local group policy Editor

secpol.msc local security policy
services.msc servisler
wf.msc windows firewall

msconfig - System configuration
ipconfig

sysedit
msinfo32


compmgmt.msc Bilgisayar yönetimini açar.
clipbrd.exe Pano işlemcisini açar.
cleanmgr.exe Disk temizleyiciyi açar.
ciadv.msc Dizin yöneticisini açar.
charmap.exe Karakterleri ayarlamanızı sağlar.
calc.exe Hesap makinesini açar.
diskmgmt.msc Disk yönetimini açar.
devmgmt.msc Aygıt yöneticisini açar.
dfrg.msc Disk birleştiriciyi açar.
eudcedit.exe Karakter imal edebilirsiniz.
appwiz.cpl Program ekle kaldırı açar.
access.cpl Erişebilirlik seçeneklerini açar.
accwiz.exe Erişebilirlik sihirbazını açar.
desk.cpl Görüntü özelliklerini açar.
eventvwr.exe Olay görüntüleyicisini açar.
freecell.exe İskambil oyununu açar.
fsmgmt.msc Paylaşılan klasörler menüsünü açar.
hdwwiz.cpl Donanım ekleme sihirbazını açar.
iexpress.exe Setup programını açar.
inetcpl.cpl İnternet özelliklerini açar.
intl.cpl Bölge ve dil ayarlarını açar.
joy.cpl Oyun kontrollerini açar.
magnify.exe Büyüteçi açar.
main.cpl Fare özelliklerini açar.
mmsys.cpl Ses ayarlarını açar.
mspaint.exe Paint programını açar.
narrator.exe İngilizce ekran okuyucusunu açar.
ntbackup.exe Yedekleme sihirbazını açar.
nusrmgr.cpl Kullanıcı hesaplarını açar.
osk.exe Ekran klavyesi açar.
telnet.exe Telnet'i açar.
spider.exe Kağıt oyunu açar.
gpedit.msc Grup poliçesi açar.
msconfig.exe Sistem ayarlarını açar.
verifier.exe Sürücü monitörünü açar.
drwtsn32.exe Sorun tanıma aracını açar.
dxdiag.exe DirectX sürümünüzü öğrenmenizi sağlar.
mobsync.exe Senkronizasyon sağlar.
mplay32.exe Media Player'ın çok basit bir halini açar.
odbcad32.exe Database işleme sağlar.
packager.exe Obje paketleyiciyi açar.
perfmon.exe Sistem monitörünü açar.
progman.exe Masaüstü yöneticisini açar.
rasphone.exe Erişim defterini açar.
shrpubw.exe Network paylaşımı bilgisini açar.
sigverif.exe İmza denetleyicisini açar.
sysedit.exe Sistem yöneticisini açar.
syskey.exe Şifre databaseini açar.
sndrec32.exe Ses kaydedicisini açar.
timedate.cpl Tarih ayarlama penceresini açar.
tourstart.exe Windows XP turu başlatır.
winchat.exe Windows içinde bulunan chat programını açar.
winmine.exe Mayın Tarlası oyununu açar.
write.exe WordPad'i açar.
wupdmgr.exe Windows güncelleştirme penceresini açar.
explorer.exe Windows Gezgini'ni açar.
powercfg.cpl Güç seçeneklerini açar.
rasphone.exe Ağ bağlantılarını açar.
regedt32.exe Windows Kayıt Düzenleyicisi'ni açar.
regedit.exe Windows Kayıt Düzenleyicisi'ni açar.
sndvol32.exe Ses ayarlarını yapmanızı sağlar.
notepad.exe Not defterini açar.


taskmgr.exe Görev yöneticisini açar.    

19 Tem 2010

USB RS232 dönüştürücü kurulumu kullanılması ve C# ile seri port iletişim örneği

 Driver yüklü ise baştan kaldırın. Sonra Bilgisayar açılışında işletim sistemleri menüsünden (işletim sistemleri menüsü yoksa bios ekranından sonra) f8 tuşu ile ile dijital imza zorlamasını kaldırın (Daha detaylı bilgi için buraya bakabilirsiniz). Rs232 Usb çeviriciyi usb den takın (uçlarını kısa devre yapmadan) ve driver'ı gösterip yükleyin. Hyper Terminali açın, bağlantı oluşturun ayarlar kısmında default ayarları getirin (Restore defaults) Daha sonra seri port'un üstten 2. ve 3. portlarını birleştirin ve klavyeden giriş yapın, yazdıklarınız aynen gözüküyorsa rs232 portunuz sorunsuz çalışıyor demektir.

Tekrar bağlanmaya çalıştığınızda port hatası verirse Hyper Terminali kapatıp dönüştürücüyü çıkarın, kısa devre yaptığınız uçları düzeltin, kısa devre yapmadan tekrar bağlayın ve hyper Terminali açarak yeniden bağlanmayı deneyin.

Aşağıdaki C# ile yazdığım program ile de test edebilirsiniz, (programı buradan indirebilirsiniz). Dikkat edin Port doğru seçilmeli yoksa hata verecektir.





private void Form1_Load(object sender, EventArgs e)
        {
            SerialSettings(sender, e);
        }

        private void comboBoxPortNameBaundRate_SelectedIndexChanged(object sender, EventArgs e)
        {
            SerialSettings(sender, e);
        }

        public void SerialSettings(object sender, EventArgs e)
        {
            serialPort1 = new SerialPort(comboBoxPortName.Text, Convert.ToInt32(comboBoxBaundRate.Text));
            serialPort1.ReadTimeout = 500;
            serialPort1.WriteTimeout = 500;
        }

        private void Write_Click(object sender, EventArgs e)
        {
            try
            {
                if (!serialPort1.IsOpen)
                {                  
                    serialPort1.Open();
                }
                serialPort1.WriteLine(textBox1.Text);
                MessageBox.Show("Başarıyla yazıldı", "Tebrikler");
            }
            catch (Exception writemessage) { MessageBox.Show("Seri Porta yazma sırasında şu hata oluştu: \n\n" + writemessage.Message); }
        }

        private void Read_Click(object sender, EventArgs e)
        {
            try
            {
                textBox2.Text = serialPort1.ReadLine();
                serialPort1.Close();
                MessageBox.Show("Başarıyla okundu", "Tebrikler");
            }
            catch (Exception readmessage) { MessageBox.Show("Seri Porttan okuma sırasında şu hata oluştu:        \n\n" + readmessage.Message); }
        }


Dönüştürücüyü en ucuza nereden alabilirim diyorsanız tabii ki ebay.com . Çinden geliyor gelmesi 7-8 günü geçiyor hatta bazen 10-14 gün arasında geliyor, fakat zaman sorunu olmayanlar için sorun olmaz, fiyat gayet uygun (3.5 - 4 Tl civarı). Dikkat edin şefaf olanlardan almayın, siyah olanlar daha iyi ama onun da garantisi yok, sorun çıkarsa satıcılar geri ödeme yapıyorlar ama işimi garantiye alayım daha fazla vermeye razıyım diyorsanız 7$ ödeyerek vista ve win7 uyumlu, chipli bir dönüştürücü alabilirsiniz. Ödemeyi Paypal ile yapıyorsunuz çok güvenli bir yol, kolay gelsin.


9 Tem 2010

Casio cfx 9800 G için 2x2 ve 3x3 matris çözümü program kodu




 2006 yılında arayıp bulamadığım bu programı daha sonra kendim oluşturmuştum. Belki bir ihtiyacı olan olur diye paylaşmak istedim. Özellikle Elektrik Elektronik ve İnşaat mühendisliği gibi sayısal ağırlıklı bölümlerde 2x2 ve 3x3 matris çarpımlarının hesap makinası ile hesaplanması makinalar otomatik olarak yapmadığından çok kolay değilir bu sebeple bir kod oluşturmak gerekir. Bu kod özellikle Casio grafik serisi hesap makinalarında matris çözümü ihtiyacınızı karşılayacaktır inşallah.
 


Casio cfx 9800 G için 2x2 matris çözümü program kodu

 

"2x2 MAT COZUMU"
"A="?→A
"B="?→B
"C="?→C
"D="?→D
"E="?→E
"F="?→F

((ExD)-(BxF)) ÷ (AxD)-(BxC)) → X
((AxF)-(CxE)) ÷ (DxA)-(BxC)) → Y
"X="
X
"Y="
Y




Casio cfx 9800 G için 3x3 matris çözümü program kodu

"3x3 MAT COZUMU"
"A="?→A
"B="?→B
"C="?→C
"D="?→D
"E="?→E
"F="?→F
"G="?→G
"H="?→H
"I="?→I
"K="?→K
"L="?→L
"M"?→M

(((AxExI) + (BxFxG) + (CxDxH)) – ((GxExC) + (HxFxA) + (IxDxB))) → W
"DET 3x3 MAT "
W

(((KxExI) + (BxFxM) + (CxLxH)) – ((MxExC) + (HxFxK) + (IxLxB))) ÷ W → X
"X="
X

(((AxLxI) + (KxFxG) + (CxDxM)) – ((GxLxC) + (MxFxA) + (IxDxK))) ÷ W → Y
"Y="
Y

(((AxExM) + (BxLxG) + (KxDxH)) – ((GxExK) + (HxLxA) + (MxDxB))) ÷ W → Z
"Z="
Z