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

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 ?

21Ara/150

SQL Veritabanı Tablo Boyutları

Merhabalar, veritabanı boyutları proje ile beraber büyüyorda büyüyor gelişiyor da gelişiyor fakat gerçekten bu kadar büyümesi gerekiyor mu ? Ne ne kadar yer tutuyor? Öğrenmenin yolu aşağıdaki scripti çalıştırmak :

exec sp_executesql @stmt=N'begin try 
SELECT
	(row_number() over(order by a3.name, a2.name)) as l1,
	a3.name AS [schemaname],
	a2.name AS [tablename],
	a1.rows as row_count,
	(a1.reserved + ISNULL(a4.reserved,0))* 8 AS reserved, 
	a1.data * 8 AS data,
	(CASE WHEN (a1.used + ISNULL(a4.used,0)) > a1.data THEN (a1.used + ISNULL(a4.used,0)) - a1.data ELSE 0 END) * 8 AS index_size,
	(CASE WHEN (a1.reserved + ISNULL(a4.reserved,0)) > a1.used THEN (a1.reserved + ISNULL(a4.reserved,0)) - a1.used ELSE 0 END) * 8 AS unused
FROM
	(SELECT 
		ps.object_id,
		SUM (
			CASE
				WHEN (ps.index_id < 2) THEN row_count
				ELSE 0
			END
			) AS [rows],
		SUM (ps.reserved_page_count) AS reserved,
		SUM (
			CASE
				WHEN (ps.index_id < 2) THEN (ps.in_row_data_page_count + ps.lob_used_page_count + ps.row_overflow_used_page_count)
				ELSE (ps.lob_used_page_count + ps.row_overflow_used_page_count)
			END
			) AS data,
		SUM (ps.used_page_count) AS used
	FROM sys.dm_db_partition_stats ps
	GROUP BY ps.object_id) AS a1
LEFT OUTER JOIN 
	(SELECT 
		it.parent_id,
		SUM(ps.reserved_page_count) AS reserved,
		SUM(ps.used_page_count) AS used
	 FROM sys.dm_db_partition_stats ps
	 INNER JOIN sys.internal_tables it ON (it.object_id = ps.object_id)
	 WHERE it.internal_type IN (202,204)
	 GROUP BY it.parent_id) AS a4 ON (a4.parent_id = a1.object_id)
INNER JOIN sys.all_objects a2  ON ( a1.object_id = a2.object_id ) 
INNER JOIN sys.schemas a3 ON (a2.schema_id = a3.schema_id)
WHERE a2.type <> N''S'' and a2.type <> N''IT''
ORDER BY a3.name, a2.name
end try 
begin catch 
select 
	-100 as l1
,	1 as schemaname 
,       ERROR_NUMBER() as tablename
,       ERROR_SEVERITY() as row_count
,       ERROR_STATE() as reserved
,       ERROR_MESSAGE() as data
,       1 as index_size
, 		1 as unused 
end catch',@params=N''
go

Peki kod ile uğraşmak istemezsen ?

If you are using SQL Server Management Studio (SSMS), instead of running a query (which in my case returned duplicate rows) you can run a standard report.

  1. Right click on the database
  2. Navigate to Reports > Standard Reports > Disk Usage By Table
20Ara/150

Bootstrap Nedir, Ne iş yapar, Neden kullanılır

Sevgili Blogum, okurlarım, google bot Bootstrapresponsive ve mobile-first projeler geliştirebileceğimiz en popüler framework'lerden biridir. Kendileri twiter tarafından responsivite amaçlı geliştirilmiştir. Özellikle Google'ın 21 nisan güncellemesi ile arama algoritmasında değişikliğe gidip, mobil arayüzü desteği olmayan siteleri 2. plana atacağını söylemesiyle birlikte her zamankinden daha fazla ihtiyaç duyuldu.

Responsive, duyarlı / uyumlu web tasarım, yani mobil cihazlarda iyi bir deneyim sunan web siteleridir.
Mobile-first, Web teknolojilerinde önceliği cep telefonuna ver, pc tarafını ondan sonra planla demektir.

Bootstrap ve buna benzer tüm plugin veya framework'leri belgemize dahil etmenin 2 yolu vardır. İlki CDN kullanmak, ikincisi de kütüphane dosyalarını kendi sunucumuzda host etmek. Benim kişisel önerim tüm plugin veya framework'leri kendi sunucunuza çekmeniz şeklindedir. Nedeni ise geliştirme süreçinde internet bağımlılığından kurtulma; kullanılan versionun desteğinin kalkması gibi durumlardan etkilen meme ve gerektiğinde uygulamaların yanlız intranet (iç network) üzerinden erişimi. en son aklıma gelen de https bağlantılarında cdn'in eklentısını kontrol etme gereksiniminden kurtulma (bu sonuncusu tembellikten başka bir şey değil)

Peki bu işler nasıl yapılır; GetBootStrap sayfasındaki Download bölümüne girip Download Bootstrap dersın ve gelir. güncel versionda 'bootstrap-3.3.6-dist' dosyası gelmekte.

CSS\bootstrap.css
CSS\bootstrap-theme.css
JS\bootstrap.min.js

bu dosyalari sayfaniza dahil ettikten sonra Jquery'yi de dahil etmeniz gerekmektedir. visual studio da bir MVC projesi açtığımızda nasıl gözüküyor neler çekiyor bir bakalım:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Home Page - My ASP.NET Application</title>
    <link href="/Content/bootstrap.css" rel="stylesheet" />
    <link href="/Content/bootstrap-theme.css" rel="stylesheet" />
</head>
<body>
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="/">Application name</a>
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li><a href="/">Home</a></li>
                    <li><a href="/Home/About">About</a></li>
                    <li><a href="/Home/Contact">Contact</a></li>
                </ul>
                    <ul class="nav navbar-nav navbar-right">
        <li><a href="#" id="registerLink"><span class="glyphicon glyphicon-user"></span> Register</a></li>
        
        <li><a href="/Account/Login" id="loginLink">Log in</a></li>
    </ul>

            </div>
        </div>
    </div>
    <div class="container body-content">
        


<div class="jumbotron">
    <h1>ASP.NET</h1>
    <p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p>
    <p><a href="http://asp.net" class="btn btn-primary btn-lg">Learn more »</a></p>
</div>

<div class="row">
    <div class="col-md-4">
        <h2>Getting started</h2>
        <p>
            ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that
            enables a clean separation of concerns and gives you full control over markup
            for enjoyable, agile development.
        </p>
        <p><a class="btn btn-default" href="http://go.microsoft.com/fwlink/?LinkId=301865">Learn more »</a></p>
    </div>
    <div class="col-md-4">
        <h2>Get more libraries</h2>
        <p>NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.</p>
        <p><a class="btn btn-default" href="http://go.microsoft.com/fwlink/?LinkId=301866">Learn more »</a></p>
    </div>
    <div class="col-md-4">
        <h2>Web Hosting</h2>
        <p>You can easily find a web hosting company that offers the right mix of features and price for your applications.</p>
        <p><a class="btn btn-default" href="http://go.microsoft.com/fwlink/?LinkId=301867">Learn more »</a></p>
    </div>
</div>

        <hr />
        <footer>
            <p>© 2015 - My ASP.NET Application</p>
        </footer>
    <script src="/Scripts/jquery-1.11.3.js"></script>
    <script src="/Scripts/bootstrap.js"></script>
</body>
</html>

7. ve 8. satırlarda

<link href="/Content/bootstrap.css" rel="stylesheet" />

<link href="/Content/bootstrap-theme.css" rel="stylesheet" />

72 ve 73 de

<script src="/Scripts/jquery-1.11.3.js"></script>

<script src="/Scripts/bootstrap.js"></script>

Content demesenin sebebi mvc projesinde cssleri default projede orada toplamışlar. Sayfayı bir gözden geçircek olursak ana tablo altında bir grid yapısı vs mevcut. bunları da anlatacağım ama hızlı olarak tab anlamarını söyliyim ve bu günlük bitiriyim.

.col-xs-*(extra small) - ekstra küçük cihazlar(telefonlar)
.col-sm-*(small) - küçük cihazlar(tabletler)
.col-md-*(medium) - orta boylu cihazlar(netbook'lar)
.col-lg-*(large) - geniş cihazlar(masaüstüler)

test ve görsel : http://www.bootply.com/xOLRwoOKFx

8Eyl/150

C# ve Printer 2

Merhaba sevgili okurlar,

Ben hep kendim yazıyorum kendim okuyorum diye düşünüyordum ama pek öyle değilmiş. Blog daki yazılar ile ilgili mail ve sms atanlar oldu. Entity framework ve Csharp printer ile ilgili yazılarımın devamını sormuşlar. Entity biraz zor, o konuda db hazırla örnek hazırla vs zaman istiyor. Devam edemeyeceğim o konuya büyük ihtimal ile.

Fazla uzatmadan direk printer ve resim ile ilgili bir basit örnek paylaşayim dedim.

proje dosyasınıda buradan indire bilirsiniz: testApp32

sifre : blog.rakkoc.com

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Text;
using System.Windows.Forms;

namespace testApp32
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        PrintDocument pd = new PrintDocument();

        private void Form1_Load(object sender, EventArgs e)
        {
            pd.PrintPage += pd_PrintPage;
        }


        private void btnGetPrinterList_Click(object sender, EventArgs e)
        {
            //ListBox'i temizle
            listBox1.Items.Clear();
            // her bir yuklu printer
            foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
            {
                //listeye ekle.
                listBox1.Items.Add(printer);
            }
        }

        private void btnPrintImage_Click(object sender, EventArgs e)
        {
            //print al
            pd.Print();
        }

        void pd_PrintPage(object sender, PrintPageEventArgs e)
        {
            // Sayfa olcu birimi olarak milimetre kullanacak
            e.Graphics.PageUnit = GraphicsUnit.Millimeter;

            //oylesine bir imaj olusturalim.
            Bitmap biImage = new Bitmap("Yoroca.png");
            // X, Y, Width, height gibi olculer istege bagli milimetrik olarak girilir.
            e.Graphics.DrawImage(biImage, 10, 10);

            //bir tanede string koyalim
            e.Graphics.DrawString("test 1 2 3", new Font("Arial", 4), (Brush)Brushes.Black, 1, 1);

        }

        //listeden Printer secilirse
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                //Secilen printeri printdocument objesinin printer adina atayalim.
                pd.PrinterSettings.PrinterName = Convert.ToString(listBox1.Items[listBox1.SelectedIndex]);

            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);
            }
        }

    }
}
Toplam 26 sayfa mevcuttur; 4. sayfayi okuyorsunuz...12345678...20...Son »