Sayfalar

Translate Blog

27 Kasım 2012 Salı

Bedava Autodesk ve Microsoft Ürünleri

Ücretsiz Microsoft Visual Studio 2012 indirebilirsiniz.
Ücretsiz Autocad 2012 indirebilirsiniz.
Ücretsiz 3DS Max 2012 İndirebilirsiniz.

HEMDE BEDAVA!!! Tabi bir eğitim kurumunda öğrenci veya öğretmenseniz ;)



Eğer üniversitede öğrenci veya öğretmenseniz, edu uzantılı espotanız var ise Microsofttan bedava ürünleri indirebilirsiniz.
https://www.dreamspark.com/Student/Default.aspx
Kayıt olurken edu uzantılı eposta adresinizle kayıt olun.


Eğer bir öğrenci iseniz yine Autodesk ürünlerini bedava kullanabilirsiniz. Sadece kayıt olun ve okul bilgilerinizi girin. Üniversite öğrencisi olmak zorunda değilsiniz!!!
http://students.autodesk.com/

3 Kasım 2012 Cumartesi

Php Türkçe Karakter, Session veya Header Hataları Çözümü

Birçok kişi web sitesi yaparken karakterlerinde sorun yaşıyor, ben de senelerdir bu işin içindeyim bir türlü ders alıp da sağlam bir yol tutturamamışım demek ki ki  bu yazıyı yazmak zorunda kaldım.

Konumuz web sayfalarında ekrana gelen session_start veya Header Already Send gibi hataların nedenleri. Öncelikle şu bilgiyi vereyim Header ile yönlendirme yapıyorsanız sayfanızda header dan önce herhangi bir yazı olmamalı. Herşeyi düzgün yaptınız ama anlamadığınız bir şekilde hala bir hata var.

Evet anlaşılmaz bir şekilde sayfanızın alakasız satırlarında hata veriyor değil mi?
Bunun nedeni sayfanızın karakter kodlamasındaki hata. UTF8 kullanılır genelde, veritabanınız da utf 8dir. mysql bağlantınızıda utf8 yapmışınızdır. Hatanın nedeni ise BOM denilen bir karakter yapısından kaynaklanıyor. Dreamweaver kullananlar için resimde gördüğünüz kutucuğu seçmiş olabilirsiniz, onu kaldırın. Böylelikle sizin gözle göremediğiniz ama kodlarınızın arasına, mesela <?php kodunun arasına yerleşen boşluk karakterini ortadan kaldırmış olacaksınız.

Bomu neden seçmiş olabilirsiniz, Türkçe karakterde sorun yaşıyorsunuz diye değiştirmiş olabilirsiniz. Yapmayın. Bazen Türkçe karakter sorunun çözmek kodlarınızı kopyalayıp yeni boş bir belgeye kaydederek çözülebilir.

Sayfanızda ez_sql kullanıyor olabilirsiniz. Türkçe karakter sorunu yaşamanız çok yüksek, mysql bağlantısı yaptığınız belgede bağlantı kodunuzun altına $db->query("SET NAMES 'utf8'"); ekleyin. Belgelerinizi ve veritabanınızın dilini her zaman UTF8 olarak kullanın. Bir sorun yaşamazsınız. Yaşarsanız belgenizin içini kopyalayın yeni belge açıp yapıştırıp UTF8 olarak kaydedin ;)

Tecrübe ile sabittir. Bom konusunda engin bilgisini paylaşan Adil YILDIZ dostuma teşekkürler. Bom hakkında daha detaylı bilgiyi buradan alabilirsiniz.




27 Ekim 2012 Cumartesi

C# ile Bilgisayar Uyku Modu Tespiti (Idle Time)

Birçok yerde aradım, bulamadım. Siz arayıp da bulamazsınız diye buraya koyuyorum ;) Bir kaç yöntem vardı aslında ama sanırım en basiti bu yöntem olsa gerek. Şu linkte bulunan kardeşler bizim için bir class hazırlamışlar. Bize de çöreklenmek düşer.

Bir uygulama hazırlıyorsunuz ve uygulamanız bilgisayar kullanılmadığı anı tespit etmesi gerekiyor, paylaşacağım örnekte ise bilgisayarın kullanılmadığı, farenin klavyenin basılmadığı süreleri sayıyor.

Aşağıdaki örnekte bir textbox var, timer var, listbox var. Using kısmına fazladan
using System.Runtime.InteropServices;
eklenmiş. Formunuza eklediyseniz aşağıdaki kodu olduğu gibi C# form koduna yapıştırın. Çalıştırdığınız zaman fare veya klavyeye dokunduğunuzda aşağı sayan sayılar tekrar sıfırlandığını göreceksiniz.

Class içinde bulunan Win32.GetIdleTime() ile o anki durumu alabiliyoruz, yani "bilgisayar boşta" durumunun süresini elde edebiliyoruz. Bir if ile rahatlıkla bu sınırı kendiniz belirleyebilirsiniz. Aşağıdaki örnekte bilgisayarın kullanılmadığı yaklaşık 1dk lık (60000) süre dolunca textbox'a Uyku modeu diye yazıyor.

Peki bu kodu nasıl kullanabilirsiniz, bilgisayarın uyku modunu siz ayarlayacaksınız, diyelim 10dk. Programınızda da bu süreyi belirteceksiniz, 10dk kadarlık süre geçtiyse ki bu yaklaşık 1014*60sn*10dk yaklaşık 600000 sayısı eder. bu sayıyı geçtiyse bilgisayar uyku moduna girmiştir yahu, kullanıcıyı uyarayım artık dedirtebilirsiniz.

Ben bunu nerede kullanacam ne işime yarayacak ki demeyin, bilgisayarlara kullanıcı girişi hazırlıyorsanız mysql ile kullanıcı kontrol girişli, ve adam çıkış yapmadan bilgisayardan kalktıysa boşta kalmasın pc, kullanıcı hesabını kapatsın diye yapabilirsiniz mesela. Eğer kodunu biliyorsanız belirlediğiniz sürede bilgisayarı kapatabilir, uykuya da alabilirsiniz.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
//using Microsoft.Win32;
namespace uykuModu
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       

private void timer1_Tick(object sender, EventArgs e)
        {
            listBox1.Items.Add(Win32.GetIdleTime().ToString());
            if (Win32.GetIdleTime() > 60000)
            {
                textBox1.Text = "UYKU MODUNA GEÇ";
            }
        }
    }


   // KLAVYE FARE HAREKETLERİ TESPİTİ
    internal struct LASTINPUTINFO
    {
        public uint cbSize;
        public uint dwTime;
    }
    public class Win32
    {
        [DllImport("User32.dll")]
        public static extern bool LockWorkStation();
        [DllImport("User32.dll")]
        private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
        [DllImport("Kernel32.dll")]
        private static extern uint GetLastError();
        public static uint GetIdleTime()
        {
            LASTINPUTINFO lastInPut = new LASTINPUTINFO();
            lastInPut.cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(lastInPut);
            GetLastInputInfo(ref lastInPut);
            return ((uint)Environment.TickCount - lastInPut.dwTime);
        }
        public static long GetTickCount()
        {
            return Environment.TickCount;
        }
        public static long GetLastInputTime()
        {
            LASTINPUTINFO lastInPut = new LASTINPUTINFO();
            lastInPut.cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(lastInPut);
            if (!GetLastInputInfo(ref lastInPut))
            {
                throw new Exception(GetLastError().ToString());
            }
            return lastInPut.dwTime;
        }
    }
}