Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

21 Ocak 2013 Pazartesi

c# 4 dynamic TryInvokeMember




Mvc4 ErrorMessage Resource


Mvc4 ViewStart page ile MasterPage




Mvc4 layout



Mvc4 json/application



1 Ocak 2013 Salı

Tarım'a dair notlarım

Tropik Sera (tropiksera.com) konuşması:
Kumkat için: bol güneş, iz elementleri(5 lt suya 1 subardağı) 15 günde 1 => nitrat(asidik oranı düşürülmelidir) fosfor demir magnezyum bor bakır çinko
1 çorba kaşığı nitratı asidik oranı 2.5 tur ve yakar
eğer PH 5.5-6.5 arasında bitki
asidik X alkalik olanlar
demir, magnezyum, bor = alkalik
nitrat = asidik
5 LT suya bunlar atılıp 5.5-6.5 PH arasındaysa dolum yapılır ve 6.5 üstüyse seyreltilir.

Narenciyede kuzey kapalı olmalı(karayel) don getirir.Yaprak sabit ağaçlarla'da kuzey kapatılabilir.
dönümü 25-30 bine sera kurulabilir (sadece naylon 5-6 yılda bir değiştirilirse)
BATEM üretme çiftliği'nde dönümü 250 bin dolara sera yaptırılıyor.

2 ayaklı canlılar, dışkı ve idrarı aynı kanaldan attığı için nitrat oranı çok yüksek.

20 Aralık 2012 Perşembe

Kim hangi basamak sağlık kuruluşu

Ref: medeczane.sgk.gov.tr
Birinci Basamak Resmi Sağlık Kuruluşlarından; Kamu idareleri bünyesindeki kurum hekimlikleri,
sağlık ocağı,
verem savaş dispanseri,
ana-çocuk sağlığı ve aile planlaması merkezi,
sağlık merkezi ve toplum sağlığı merkezi,
112 acil sağlık hizmeti birimi,
üniversitelerin medikososyal birimleri,
Türk Silahlı Kuvvetlerinin birinci basamak sağlık üniteleri ve belediyelere ait poliklinikler
tarafından oluşturulmuş reçeteler,

Birinci Basamak Özel Sağlık Kuruluşlarından; İşyeri hekimleri tarafından düzenlenen reçeteler,

İkinci Basamak Resmi Sağlık Kurumlarından; Türk Silahlı Kuvvetlerinin 2 inci basamak hastaneleri tarafından oluşturulan reçeteler,

Üçüncü Basamak Resmi Sağlık Kurumlarından; Türk Silahlı Kuvvetlerinin 3 üncü basamak hastaneleri tarafından oluşturulan reçeteler,
e-reçete uygulaması kapsamı dışındadır.

Bu birimlerde üretilen tüm reçeteler, teknik alt yapılar hazır olana kadar eskiden olduğu gibi manuel olarak oluşturulacaktır. Yukarıda belirtilen resmi ve özel sağlık kuruluşları MEDULA hastane sistemini kullanmaya başlamaları veya teknik alt yapılarını oluşturmaları halinde e-reçete uygulamasına geçeceklerdir.

6 Aralık 2012 Perşembe

Q_OBJECT macrosu ne işe yarar?

Bunu izlerken bende kısaca sordum Q_OBJECT sorusunu ve aşağıdaki cevapları aldım.

StackOverflow MOC(Meta-Object Compiler), Qt'un C++ uzantılarıyla başa çıkan, C++ header dosyalarını okuyan, içinde Q_OBJECT makrosu olanlar sınıf tanımlamaları için içinde Meta Object Code içeren C++ kaynak dosyası üreten programdır. Derlemeden az önce çalışır bu MOC. Ve ürettiği bu meta-object kodu SIGNAL & SLOT mekanizması, çalışma zamanı bilgisi ve dinamik özellikler içindir.
StackOverflow Basitçe Q_OBJECT makrosunun bulunduğu bu sınıfın GUI elemanları içerdiğini ve SIGNALS&SLOTS mekanizmasını kullandığını BUILD zamanında belirtir.
StackOverflow C++ derleyicisinin anlayacağı şekilde SIGNALS&SLOTS mekanizmasının çevirilmesini sağlar.

5 Aralık 2012 Çarşamba

Kryptos(gizli dünya) logos(bilmi)
Kriptoloji = Kriptografi(şifreleme) + Kriptoanaliz(çözme)

Haberleşmede Güvenlik Öğeleri



  1. Gizlilik(İçeriğin gizliliği)
  2. Bütünlük(Giden ve Gelenin aynı olması)
  3. Kimlik Doğrulaması(Kaynağın doğrulanması)
  4. İnkar edememezlik
  5. Süreklilik

Basit Şifreleme Yöntemleri

Sezar Şifresi

Sezar Şifresi : ci= E(pi) = pi+3
Açık Mesaj : Gizli Bilgi
Şifreli Mesaj : Ilcol Dloıl

Simetrik Kriptografi

Anahtarın iki tarafın bildiği şifrelerken ve çözerken kullandığı yöntemdir.



Bu açma işlemi dikkat edilirse şifreleme işleminin tamamen simetriğidir. Yani aynı anahtar girmekte ve aynı algoritma kullanılmaktadır.




Asimetrik Şifreleme(Açık Anahtarlı)

Ref: Asimetrik Şifreleme

4 Aralık 2012 Salı

Sql Server'da Mirror yapılan DB nin LOG database'ini truncate etmek

arkadaşlar eger mirro olan databaelerin trans logu şitiyse sakın normal
yollarden yapmaya calısmayın, baska dosya isimleri kullanıp attach detach
filan yapmayın...

- sadece translog backup nı alın, genel ayarlarla oynamanıza gerek yok

- Databe uzerinde sql query acıp, DBCC LOGINFO('database ismi') diyip,
"status" değerinin sıfır oldugunu görün
- DBCC SHRINKFILE(logun virtual ismi, istediginiz boyut) ama sizin
database ler buyuk oldugu icin boyut 1gb altı olmasın yani1024
yazabilirsiniz
- eğer yukarıdaki işlem kucuktemdiyse SELECT name,log_reuse_wait_desc FROM
sys.databases; diyip duruma bakın, "NOTHING" yazmalı, yok LOG_BACKUP
yazıyorsa translog backup ı ilk adımdaki alıp yine shirink deneyin

bu yontemle medula 80gb dan 1 gb a indi, belki daha da inerdi ama cok
ihtiyac yok


Saygılarımla / Best Regards

Bülent Naci ALPAY
Sistem & Network Muduru
IT

20 Kasım 2012 Salı

Database içindeki tüm tablolar için LOG tablosuna değişimleri kaydetmek için Veritabanı seviyesinde(TRIGGER temelli) LOGLAMA

Log Tablosu
USE [ZapaZupaVeritabani]
GO

/****** Object:  Table [dbo].[Loglar]    Script Date: 11/20/2012 21:22:07 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Loglar](
 [log_id] [int] IDENTITY(1,1) NOT NULL,
 [logTarih] [datetime] NULL,
 [logIslem] [tinyint] NULL,
 [trgKullanici_id] [varchar](50) NULL,
 [tabloAdi] [varchar](250) NULL,
 [logXml] [xml] NULL,
 CONSTRAINT [PK_Logla] PRIMARY KEY CLUSTERED 
(
 [log_id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1: INSERT, 2: UPDATE, 3: DELETE' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Loglar', @level2type=N'COLUMN',@level2name=N'logIslem'
GO

ALTER TABLE [dbo].[Loglar] ADD  CONSTRAINT [DF_Logla_tarih]  DEFAULT (getdate()) FOR [logTarih]
GO

ALTER TABLE [dbo].[Loglar] ADD  CONSTRAINT [DF_Loglar_logIslem]  DEFAULT ((1)) FOR [logIslem]
GO

Her tablo için INSERT, UPDATE, DELETE tetikleyicisini otomatik oluşturma
USE medula_V3
DECLARE @sInsert AS NVARCHAR(MAX)
DECLARE @sUpdate AS NVARCHAR(MAX)
DECLARE @sDelete AS NVARCHAR(MAX)
DECLARE @trigName AS NVARCHAR(200)
DECLARE @tableName AS NVARCHAR(200)

DECLARE crTabloAdlari CURSOR FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
OPEN crTabloAdlari
FETCH NEXT FROM crTabloAdlari INTO @tableName
 
WHILE @@Fetch_Status = 0
BEGIN
print @tableName + ' -  '+CAST(CHARINDEX('Log',@tableName) AS VARCHAR(20))

 IF CHARINDEX('Log',@tableName)= 0 AND CHARINDEX('sys',@tableName)= 0 
 BEGIN

  SET @sInsert = 'CREATE TRIGGER [dbo].[Insert'+@tableName+']   ON  dbo.'+@tableName+'   AFTER INSERT AS BEGIN DECLARE @logIslem TINYINT SET @logIslem = 1 SET NOCOUNT ON DECLARE @tableName VARCHAR(200) SELECT @tableName = OBJECT_SCHEMA_NAME( parent_id ) + ''.'' + OBJECT_NAME( parent_id ) FROM sys.triggers WHERE object_id = @@PROCID DECLARE @after AS XML  SET @after = ''<''+@tableName+''>''+ (select * from inserted for xml AUTO,ELEMENTS XSINIL)+''''   INSERT INTO [dbo].[Loglar]           ([logIslem]  ,[trgKullanici_id]  ,[tabloAdi]  ,[logXml])     VALUES           (@logIslem  ,SUSER_NAME()  ,@tableName  ,@after) END'
  SET @sUpdate = 'CREATE TRIGGER [dbo].[Update'+@tableName+']   ON  dbo.'+@tableName+'   AFTER UPDATE AS BEGIN DECLARE @logIslem TINYINT SET @logIslem = 2 SET NOCOUNT ON DECLARE @tableName VARCHAR(200) SELECT @tableName = OBJECT_SCHEMA_NAME( parent_id ) + ''.'' + OBJECT_NAME( parent_id ) FROM sys.triggers WHERE object_id = @@PROCID  DECLARE @allXml AS XML SET @allXml = ''<''+@tableName+''>''+ (select * from deleted for xml AUTO, ELEMENTS XSINIL)  + (select * from inserted for xml AUTO,ELEMENTS XSINIL) +''''  INSERT INTO [dbo].[Loglar]           ([logIslem]  ,[trgKullanici_id]  ,[tabloAdi]  ,[logXml]) VALUES (@logIslem  ,SUSER_NAME()  ,@tableName  ,@allXml) END'
  SET @sDelete = 'CREATE TRIGGER [dbo].[Deleted'+@tableName+']   ON  dbo.'+@tableName+'   AFTER DELETE AS BEGIN DECLARE @logIslem TINYINT SET @logIslem = 3 SET NOCOUNT ON DECLARE @tableName VARCHAR(200) SELECT @tableName = OBJECT_SCHEMA_NAME( parent_id ) + ''.'' + OBJECT_NAME( parent_id ) FROM sys.triggers WHERE object_id = @@PROCID  DECLARE @allXml AS XML SET @allXml = ''<''+@tableName+''>''+ (select * from deleted for xml AUTO, ELEMENTS XSINIL)  +''''  INSERT INTO [dbo].[Loglar]           ([logIslem]  ,[trgKullanici_id]  ,[tabloAdi]  ,[logXml])     VALUES           (@logIslem  ,SUSER_NAME()  ,@tableName  ,@allXml)END'

  print @sInsert
  exec  sp_executesql @sInsert
  print @sUpdate
  exec  sp_executesql @sUpdate
  print @sDelete
  exec  sp_executesql @sDelete
 END
FETCH NEXT FROM crTabloAdlari INTO @tableName
END
 
CLOSE crTabloAdlari
DEALLOCATE crTabloAdlari
GO

Database içindeki tüm TRIGGER ları silmek

DECLARE @dbName AS NVARCHAR(MAX)
SET @dbName = 'AdventureZapaZupa'
DECLARE @sqlUse AS NVARCHAR(MAX)
SET @sqlUse = N'use '+@dbName
EXEC sp_executesql @sqlUse

DECLARE @sDelete AS NVARCHAR(MAX)
DECLARE @trigName AS NVARCHAR(200)
DECLARE @tableName AS NVARCHAR(200)
DECLARE @sql AS NVARCHAR(MAX)
  
DECLARE crTrigs CURSOR FOR
  SELECT name FROM sys.triggers order by name 
  
 OPEN crTrigs
  FETCH NEXT FROM crTrigs INTO @trigName
  
  WHILE @@FETCH_STATUS = 0
 BEGIN   
  SET @sql = N'use '+@dbName+' DROP TRIGGER [dbo].[' + @trigName + ']'
  EXEC sp_executesql @sql
    FETCH NEXT FROM crTrigs INTO @trigName
  END
   
 CLOSE crTrigs
DEALLOCATE crTrigs

8 Kasım 2012 Perşembe

Soap Zarfının Header'ına Bilgi Eklemek

En temel haliyle bir web servisi:
using System.Web.Services;

namespace soapWebService
{
    [WebService(Namespace = "http://sanirimbuyok.blogspot.com/WebServisSoapHeader")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    public class Service1 : WebService
    {
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }
}

Web Servisinin Temel Halinden Ne Nedir?

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
If web service code aren't compliant to WS-I, it still don't generate compilation error, but it will generate error while client add or update web reference.


[WebService(Namespace = "http://tempuri.org/")]
In .NET programming, namespaces are used to prevent name collisions:

namespace A {public class C {}}

namespace B {public class C {}}


Even though the two classes are named "C", they really have different names. One is "A.C" and the other is "B.C". The use of namespaces has prevented a collision between the names.

XML namespaces like the one you're talking about have the same purpose, but for XML. It helps prevent name collisions.

You could start with a simple namespace like http://www.abc.com/, but the problem is that you may experience collisions even within your company. Instead, you may want to get more specific and use something like http://www.abc.com/services/serviceName. You're unlikely to have two names in your one service that collide with each other.

Buna Göre Oluşan İlk Reference.cs (Proxy Sınıfımız)


7 Kasım 2012 Çarşamba

Protokol Numarası Oluşturma Kuralları

SağlıkNet Jira

1-Üretme algoritmasına uygun olarak üretilmelidir.
2- Kurum türü SKRS kurumlar tablosunda olmalıdır.
3- Protokol No alanı içindeki ?Kurum Türü? kurum için ?A? semt polikliniği için ?S? olmalıdır.
4- Protokol No alanı içindeki ?Kurum Kodu? bölümü SKRS yayınlanan KURUMLAR tablosunda olmalıdır.
5- Protokol No alanı içindeki ?Klinik Kodu? bölümü SKRS yayınlanan KLİNİKLER tablosunda olmalıdır.
6- Protokol No alanı içindeki ?Klinik Alt Bölüm Numarası? her hastanenin klinik (ya da alt klinik) altında oluşturduğu alt birimleri kapsar, üç haneden oluşmalıdır.
7- Aile hekimleri klinik alt bölüm numarası olarak tek bir birim oldukları için ?001? kullanmalıdır.
8- Muayene türü bilgisi yapılan muayeneye göre eklenmelidir.
a- ) ilk muayene = A
b-) kontrol muayenesi = B
c-) Adli Muayene = C
d-) Trafik kazası sonrası muayene = D
e-) Acil Muayene = E
f-) Konsültasyon = F
şeklinde belirtilmelidir.
9- Protoko lNo alanı içindeki ?GünAyYıl? protokol numarasının üretildiği gün, ay, yıl bilgisidir. 9- Tarih bilgisi altı haneli olmalıdır. Gün iki hane, ay iki hane, yıl iki hane olmalıdır.
10- Protokol No alanı içindeki ?Sıradan Verilmiş Numara? her sene ?1? den başlamak üzere artan sırada üretilmiş olan numaradır ve sekiz haneli olmalıdır.
11- Tetkik sonucu MSVS dış bir laboratuvardan gönderiliyorsa, Laboratuvarın Protokol numarası olmalı,
12- Tetkik sonucu MSVS dış bir laboratuvardan gönderiliyorsa, talep eden kurumun Protokol numarası olmamalı,
13- Tetkik sonucu MSVS kurum içinden bir laboratuvardan gönderiliyorsa, Kurumun protokol numarası olmalı,

+İleri Tarih kontrolü eklenmeli

16 Ekim 2012 Salı

SC ile Windows Servisi Yükleme (installUtil olmayınca)

Benim tercihim installutil.exe ama yoksa yapacak tek şey var o da sc kullanmak.
Yardımı şöyle:


DESCRIPTION:
Creates a service entry in the registry and Service Database.
USAGE:
sc create [service name] [binPath= ] ...

OPTIONS:
NOTE: The option name includes the equal sign.
A space is required between the equal sign and the value.
type= <own|share|interact|kernel|filesys|rec>
(default = own)
start= <boot|system|auto|demand|disabled|delayed-auto>
(default = demand)
error= <normal|severe|critical|ignore>
(default = normal)
binPath= <binarypathname>
group= <loadordergroup>
tag= <yes|no>
depend= <Dependencies(separated by / (forward slash))>
obj= <AccountName|ObjectName>
(default = LocalSystem)
DisplayName= <display name>
password= <password>


Önemli nokta her = işaretinden sonra boşluk bırakılması ve eğer dosya yolunuzda boşluk karakteri varsa dosya yolunuzu çift tırnak içine almanız.

Az önce yaptığım basitçe örneğim:

C:\Users\cem.topkaya\Documents\Visual Studio 2010\Projects\serviceOtomatikDeneme
\bin\Debug>sc create FMCDeneme binpath= "C:\Users\cem.topkaya\Documents\Visual Studio 2010\Projects\serviceOtomatikDeneme\bin\Debug\serviceOtomatikDeneme.exe"


Daha güzel anlatım: www.wsinnovations.com

23 Ağustos 2012 Perşembe

Use the XmlInclude or SoapInclude attribute

Sorun:
The type was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.

Bazı çözümler:
www.johnsoer.com
http://www.codeproject.com

Benim sorunun kaynağı ise şuydu:
Web servisimin arkasına bir dll ile diğer web servisi işlemlerini hallediyordum. Web servisim aynı zamanda dll ile eriştiğim servise erişince sonuç veri tipi bir anda iki farklı namespace altında göründü. Sonuçta web sayfasında deserialization sorunu peyda oldu. Çözümü ise aşağıdaki kodda göründüğü üzere:
[XmlInclude(typeof(FMC.Turkiye.Facade.LabTest.BiolabTestleri.SonucOkuSonuc))]
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    public class BiolabIslemleri : System.Web.Services.WebService
    {

XmlInclude satırı ile çözmüş oldum. Burada yapmak istediğim SonucOkuSonuc sınıfının hangi namespace altında olduğunu tam olarak işaret etmemdir.

10 Temmuz 2012 Salı

HTML5 Data özelliği

Ref: John Resig

<li class="user" data-name="John Resig" data-city="Boston"

     data-lang="js" data-food="Bacon">


  <b>John says:</b> <span>Hello, how are you?</span>

</li>

var user = document.getElementsByTagName("li")[0];

var pos = 0, span = user.getElementsByTagName("span")[0];

var phrases = [

  {name: "city", prefix: "I am from "},

  {name: "food", prefix: "I like to eat "},

  {name: "lang", prefix: "I like to program in "}

];

user.addEventListener( "click", function(){

  var phrase = phrases[ pos++ ];

  // Use the .dataset property

  span.innerHTML = phrase.prefix + user.dataset[ phrase.name ];

}, false);


span.innerHTML = phrase.prefix +

  user.getAttribute("data-" + phrase.name );