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

10Mar/160

MIFARE DESFire EV2

Merhaba sevgili okurlarim, Sabah güne NXPnin yeni ürünü olan MIFARE DESFIRE EV2 versiyonun haberi ile uyandım. Sevgili ortağım Murat Mayda bu konuda bir webinar'ın haberi ile beni bilgilendirmiş saolsun. Hemen kayıt oldum. Merakla başlamasını bekliyorum.

22Şub/160

Google drive “One moment please…”

Merhabalar, iş amaçlı kullandığım bir sunucuların yedeklerini almak amaçlı yandex disk kullanıyordum. Fakat uçak krizinden sonra Rus ya ile aramız gerildi ve yandexin yamuk yapma ihtimalini göz ününde bulundurarak sunuculardan yandexin her şeyini sildim.

Fakat bir sunucum var ki google drive kurdum aktifleşmiyor. Sabahın bu saatinde bir çözüm buldum. Paylaşayım istedim.

  • Open the control panel (Denetim masasını aç)
  • Go to network and control (Ağ bağlantıları ve Ayarlar gibi bir şey olması lazım ona girin)
  • Go to Internet Options (Internet Ayarlarına girin)
  • Open Security Tab (Güvenlik sekmesine girin)
  • Click Trusted sites (Güvenilir siteler)
  • Click the "site" button (Siteler olması gereken bir buton olacak.)
  • copy & paste https://accounts.google.com to "Add this website to the zone" and click Add button (https://accounts.google.com adresini buraya ekleyin.)

2008 olan sunucumda bu ayarlar sorunu çözdü. Elimden gelen ile türkçeye çevirmeyi denedim. Fakat türkçe windows elimde olmadığı için biraz tahmınlere dayalı oldu. iyi çalışmalar dilerim.

Kaynağın orjinalı : http://shitohichiumaya.blogspot.com.tr/2013/04/my-solution-of-google-drive-hang-up-at.html

31Oca/160

Windows Form Uygulamasında Konsol açma

Merhaba Arkadaşlar,

Windows uygulaması içinde konsol açmak için bir örneği paylaşmak istedim. Tabi birazda dökümante olsunda gerektiğinde buradan bakarım mantığında paylaşıyorum.

using System;  
using System.Windows.Forms;  
using System.Text;  
using System.IO;  
using System.Runtime.InteropServices;  
using Microsoft.Win32.SafeHandles;  
 
namespace WindowsApplication  
{  
    static class Program  
    {  
        [DllImport("kernel32.dll",  
            EntryPoint = "GetStdHandle",  
            SetLastError = true,  
            CharSet = CharSet.Auto,  
            CallingConvention = CallingConvention.StdCall)]  
        private static extern IntPtr GetStdHandle(int nStdHandle);  
        [DllImport("kernel32.dll",  
            EntryPoint = "AllocConsole",  
            SetLastError = true,  
            CharSet = CharSet.Auto,  
            CallingConvention = CallingConvention.StdCall)]  
        private static extern int AllocConsole();  
        private const int STD_OUTPUT_HANDLE = -11;  
        private const int MY_CODE_PAGE = 437;  
 
        static void Main(string[] args)  
        {  
            Console.WriteLine("This text you can see in debug output window.");  
              
            AllocConsole();  
            IntPtr stdHandle=GetStdHandle(STD_OUTPUT_HANDLE);  
            SafeFileHandle safeFileHandle = new SafeFileHandle(stdHandle, true);  
            FileStream fileStream = new FileStream(safeFileHandle, FileAccess.Write);  
            Encoding encoding = System.Text.Encoding.GetEncoding(MY_CODE_PAGE);  
            StreamWriter standardOutput = new StreamWriter(fileStream, encoding);  
            standardOutput.AutoFlush = true;  
            Console.SetOut(standardOutput);  
 
            Console.WriteLine("This text you can see in console window.");  
 
            MessageBox.Show("Now I'm happy!");  
        }  
    }  
} 

AllocConsole fonksionu tekbaşınada konsolu açıyor, Fakat daha önceden Console.Write gibi bir konsol işlemi yaptırdı iseniz yeni acılacak konsol ekranı sadece siyah ekrandan ibaret bir pencere olacaktır. Aktif uygulamayı handle (tutamaç) edip. bu handle'den bir stream (akış) oluşturup bu stream den bir stream writer (yazıcı akışkan) oluşturup mevcut thread'e basarsak yeni ekelenecek console metinleri direk siyah ekranımıza düşecektir.

iyi çalışmalar dilerim.

 

Windows form da bir örnek de yapayım; Aşağıdaki örnette Timer1 1 saniyede bir ekrana saat tarih basmakta. Button3'e basıldığında Console ekranı gelecek ve saat tarih ekrana yazılmaya başlayacaktır. Bütün işlem button3'un onclick fonksiyonun icindeki adımlar.

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 System.IO;
using Microsoft.Win32.SafeHandles;

namespace MifareHidEmilator
{
    public partial class frmMainForm : Form
    {

        [DllImport("kernel32.dll",
    EntryPoint = "GetStdHandle",
    SetLastError = true,
    CharSet = CharSet.Auto,
    CallingConvention = CallingConvention.StdCall)]
        private static extern IntPtr GetStdHandle(int nStdHandle);
        [DllImport("kernel32.dll",
            EntryPoint = "AllocConsole",
            SetLastError = true,
            CharSet = CharSet.Auto,
            CallingConvention = CallingConvention.StdCall)]
        private static extern int AllocConsole();
        private const int STD_OUTPUT_HANDLE = -11;
        private const int MY_CODE_PAGE = 437;  

        
        public frmMainForm()
        {
            InitializeComponent();
            //this.Hide();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            AllocConsole();

            IntPtr stdHandle = GetStdHandle(STD_OUTPUT_HANDLE);
            SafeFileHandle safeFileHandle = new SafeFileHandle(stdHandle, true);
            FileStream fileStream = new FileStream(safeFileHandle, FileAccess.Write);
            Encoding encoding = System.Text.Encoding.GetEncoding(MY_CODE_PAGE);
            StreamWriter standardOutput = new StreamWriter(fileStream, encoding);
            standardOutput.AutoFlush = true;
            Console.SetOut(standardOutput);  
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            Console.WriteLine(DateTime.Now);
        }

        private void frmMainForm_Load(object sender, EventArgs e)
        {

        }
    }
}
14Oca/160

DVI Nedir, Çeşitleri nelerdir

Merhabalar ilk önce sözlüksel anlamdan girelim konuya, DVI Dijital Görüntü Arabirimi anlamına gelen Digital Video Interface kelimelerinin baş harflerinden oluşur.

Bilgisayar, LCD ekranı, Projeksiyon veya dijital televizyon gibi harici bir çıkış aygıtını bağlamak üzere tasarlanmış eski bir bağlantı türüdür. DVI konektörleri ve kabloları isminden de anlaşılabileceği gibi yalnızca video bilgilerini iletme özelliğine sahiptir. Bu nedenle, DVI aygıtlar ses için ayrı kablolar gerektirir. Dijital Görüntü Arabirimi standardı, bir kaynak aygıtla (kişisel bilgisayar gibi) bir ekran aygıtı (monitör veya dijital TV gibi) arasında video iletimini kapsayan bir video arabirimi standardıdır. DVI standardı hem masaüstü bilgisayarlarda hem de monitörlerde olmak üzere bilgisayar endüstrisinde yaygın olarak kabul görmüştür. Günümüzde perakende olarak satılan çoğu bilgisayar ve LCD monitörde bir DVI arabirimi bulunmaktadır; projektörler ve tüketici televizyonları gibi birçok aygıttaysa DVI bir başka video arabirimi standardı olan HDMI aracılığıyla dolaylı olarak desteklenmektedir. Çoğu Dizüstü bilgisayarda eski VGA bağlantı noktası, bazı modellerde de HDMI bağlantı noktası vardır. Az sayıda Dizüstü bilgisayarda DVI bağlantı noktası vardır. Fakat PC monitörlerinde DVI çıkışını HDMI'dan daha sık görmekteyiz. Bunun sebebi ise maliyet.

DVI kablosunun bir standartı olduğunu söylemiştik fakat bu standartın kendi içinde bazı kırılımları olduğunu söylemeliyim.

(Görsel erkek soket içindir)

VGA sadece analog görüntü sinyali aktarmaktadır. Ekran kartlarında çoğunlukla DVI-I (Dual link) çıkış yer alır. Bu çıkışa hem DVI-D(dijital) hem de DVI-I(analog) tipte kablo ile monitörünüzü bağlayabilirsiniz. Tabiki bu çıkışların pin out'u da gerektiği zaman karşınıza çıkacaktır, DVI pinout aşağıdaki gibidir.
(Görsel dişi soket içindir)

21Ara/152

SQL Transaction Log Nasil Temizlenir ?

Merhaba Blog, 2-3 gündür bu yazıyı düzenliyip yayınlamayı düşünüyordum da elim ermiyordu.

  • Right click on the database name.
  • Select Tasks -> Shrink -> Database
  • Then click OK!

Bu yöntem iyi hoş ama sonuç her zaman işe yaramıyor. SQL2008 kullanan bir müşterimin database'i 46 gb civarında.

el insaf 36 gb log mu olur. Diskin IO'sunu kontrol ettiğimde ise halay çekmekte.

çözüm aslında basit ama ekranlarda bu konuda bir uyarı yok. Database Recovery Mode default olarak FULL gelmekte ve bu modda iken sadece unused alanı shrink edip %1-%2 etkilenmekte.

Etkin çözüm olarak 'AdventureWorks' veritabanımızda bir script çalıştıralım.

USE AdventureWorks;
ALTER DATABASE AdventureWorks
SET RECOVERY Simple;
GO
CHECKPOINT;
GO
CHECKPOINT; -- run twice to ensure file wrap-around
GO
DBCC SHRINKFILE(AdventureWorks_log, 200);
GO    
ALTER DATABASE AdventureWorks
SET RECOVERY FULL;
CHECKPOINT;
GO

Ve sonuç :

bu ekranı görünce insanın içini huzur kaplıyor. ama CDC kullanıyorsanız logları temizlerken dikkat ediniz.

10 GB data da fazla gibi duruyor, birde ona bakalım hangi tablo ne kadar yer kaplıyor ?

Toplam 23 sayfa mevcuttur; 1. sayfayi okuyorsunuz...12345678...20...Son »