Şöyleki,
identity kolonlu tablomuzda aradan bazı satırı sildik ve aradaki değerleri kullanmak istiyoruz.
(
IDENTITY
29
30
39
40
...
gibi
30 39 arası silinmiş
ve kullanmak istiyoruz
)
dbcc checkident (mytable, reseed, 30)
not:
1.yapılacak ilk kayıt verilen sayının 1 fazlası olarak kaydedilir.
2.kolon aynı zamanda primary key se 39 a gelindiğinde çıkacak sorun için hazırlıklı olunmalıdır.
7 Aralık 2009 Pazartesi
21 Ekim 2009 Çarşamba
9 Eylül 2009 Çarşamba
Dunning ve Kruger Etkisi
Justin Kruger and David Dunning isimli iki psikoloji profesörü 65 Cornell üniversite öğrencisi üzerinde bazı testler uygulamışlar. Gramer, mantık ve şaka içerikli testler yapmışlar ve öğrencilerden testlerdeki performanslarını tahmin etmelerini istemişler.
Testlerde en düşük %25 e girenler, performans ve yeteneklerini çok daha üzerinde tahmin etmişler. İlk %12 ye girenler ise kendilerini %58 lerde tahmin etmişler.
Çalışmaları ve deney sonuçları, Aralık 1999 da Journal of Personality and Social Psychology dergisi yayınlanmış. Makalede vardıkları sonuç ise:
Testlerde en düşük %25 e girenler, performans ve yeteneklerini çok daha üzerinde tahmin etmişler. İlk %12 ye girenler ise kendilerini %58 lerde tahmin etmişler.
Çalışmaları ve deney sonuçları, Aralık 1999 da Journal of Personality and Social Psychology dergisi yayınlanmış. Makalede vardıkları sonuç ise:
- We propose that those with limited knowledge in a
domain suffer a dual burden: Not only do they reach mistaken
conclusions and make regrettable errors, but their incompetence
robs them of the ability to realize it.
4 Eylül 2009 Cuma
Java client ile servlet kullanarak file upload (Bu cümleyi Türkçe yazmak mümkün mü?)
Diyelim ki java ugulamanız ile bir server'a dosya upload etmeniz gerekiyor.. Apache bunun için http client ve file upload kütüphaneleri oluşturmuş. Bu kütüphaneleri kullanarak basit bir şekilde işinizi halledebiliyorsunuz. Ben client tarafında httpclient-2.0 jar'ı, server tarafında ise fileupload-1.0 jar'ı kullandım. Bunların yeni sürümleri de var ama bunlar da işimi gördü.
Öncelikle client koda bakalım:
public static void upload(String sourceFilePath) {
String servletUrl = "http://some.url/servlet";
try {
HttpClient client = new HttpClient();
MultipartPostMethod mPost = new MultipartPostMethod(servletUrl);
// Connection timeout in milliseconds
client.setConnectionTimeout(8000);
File file = new File(sourceFilePath);
mPost.addParameter(file.getName(), file);
int statusCode = client.executeMethod(mPost);
mPost.releaseConnection();
if (statusCode == 2000) {
throw new Exception("Dosya upload edilemedi");
}
// diğer işlemler....
} catch (Exception ex) {
// hatayla ilgili kod...
}
}
Karşı tarafta da bu isteği karşılayacak bir servlet yazmak gerekiyor:
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
String dosyaDizini="D:\\";
try {
DiskFileUpload diskFileUpload = new DiskFileUpload();
// Maksimum kabul edilebilecek dosya boyutu
diskFileUpload.setSizeMax(1000000);
List requestItems = diskFileUpload.parseRequest(request);
Iterator iterator = requestItems.iterator();
while (iterator.hasNext()) {
FileItem fileItem = (FileItem) iterator.next();
if (!fileItem.isFormField()) {
File file= new File(dosyaDizini,fileItem.getName());
fileItem.write(file);
// CLİENT'A BAŞARI MESAJI
response.sendError(1000);
}
}
} catch (Exception ioex) {
// HATA OLUŞTU MESAJI
response.sendError(2000);
}
}
Tabi ki bu api ile dosya dışında metinsel parametreler göndermek de mümkün.
Http client ile ilgili bilgi: http://hc.apache.org/httpcomponents-client/index.html
File upload api için: http://commons.apache.org/fileupload/
3 Eylül 2009 Perşembe
24 Ağustos 2009 Pazartesi
Oracle veritabanında belli sütunların saklanması
Oracle veritabanında sadece bazı sütünlardaki (kredi kartı no ya da TC Kimlik No gibi) bilgilerin saklanması gerekebilir. Bu alanları şifrelemeden gözlerden saklamak istersek Oracle 10g'den sonra kullanılabilen Virtual Private Database (VPD) "data masking" işimize yarıyor.
Bunun avantajı, veritabanında alanlar decyrpt - encrypt edilmediğinden performans kaybı yaşatmaması..
Önce bir fonksiyon oluşturuyoruz:
CREATE OR REPLACE
FUNCTION vpd_function (obj_owner IN VARCHAR2, obj_name IN VARCHAR2)
RETURN VARCHAR2
AS
BEGIN
RETURN '1=2';
END vpd_function;
/
Bu fonksiyonun döndürdüğü değer (1=2) maskelemek istediğimiz sütunlar için bir where cümlesi vazifesi görecek. Her zaman yanlış olacağından bu alanlar boş gelmiş olacak.
Şimdi bu fonksiyonu kullanacak bir policy tanımlıyoruz:
BEGIN
DBMS_RLS.ADD_POLICY(object_schema=> 'ŞEMA_ADI',
object_name=> 'TABLO_ADI',
policy_name=> 'POLICY_ADI',
function_schema=> 'ŞEMA_ADI',
policy_function=> 'vpd_function',
sec_relevant_cols=> 'VIRGULLE_AYRILMIŞ_SÜTUN_ADLARI',
policy_type => DBMS_RLS.SHARED_STATIC,
sec_relevant_cols_opt=> dbms_rls.ALL_ROWS);
END;
/
Burada POLICY_ADI'na istediğiniz herhangi bir isim verebilirsiniz.
Son olarak bu policy'nin dışında kalacak kullanıcıya izin veriyoruz:
grant exempt access policy to KULLANICI;
Artık ister program kullansın ister yazılım içinde bağlantı kursun, ilgili tabloda select çeken kullanıcı tüm satırları görecek ama belirttiğimiz sütunlar ona boş görünecektir.
Bunun avantajı, veritabanında alanlar decyrpt - encrypt edilmediğinden performans kaybı yaşatmaması..
Önce bir fonksiyon oluşturuyoruz:
CREATE OR REPLACE
FUNCTION vpd_function (obj_owner IN VARCHAR2, obj_name IN VARCHAR2)
RETURN VARCHAR2
AS
BEGIN
RETURN '1=2';
END vpd_function;
/
Bu fonksiyonun döndürdüğü değer (1=2) maskelemek istediğimiz sütunlar için bir where cümlesi vazifesi görecek. Her zaman yanlış olacağından bu alanlar boş gelmiş olacak.
Şimdi bu fonksiyonu kullanacak bir policy tanımlıyoruz:
BEGIN
DBMS_RLS.ADD_POLICY(object_schema=> 'ŞEMA_ADI',
object_name=> 'TABLO_ADI',
policy_name=> 'POLICY_ADI',
function_schema=> 'ŞEMA_ADI',
policy_function=> 'vpd_function',
sec_relevant_cols=> 'VIRGULLE_AYRILMIŞ_SÜTUN_ADLARI',
policy_type => DBMS_RLS.SHARED_STATIC,
sec_relevant_cols_opt=> dbms_rls.ALL_ROWS);
END;
/
Burada POLICY_ADI'na istediğiniz herhangi bir isim verebilirsiniz.
Son olarak bu policy'nin dışında kalacak kullanıcıya izin veriyoruz:
grant exempt access policy to KULLANICI;
Artık ister program kullansın ister yazılım içinde bağlantı kursun, ilgili tabloda select çeken kullanıcı tüm satırları görecek ama belirttiğimiz sütunlar ona boş görünecektir.
8 Temmuz 2009 Çarşamba
Halı Saha Maçı
Sevgili arkadaşlar
Maç bugün (8 Temmuz 2009) 19:00-20:00 saatleri arasında olacak şekilde ayarlandı. Halı sahanın adresi:
Tuana
4.Cad. No:24 Yıldızevler/Çankaya
Tel:441 76 75
Burası atakule'ye oldukça yakın.. Harita üzerinde gösterirsek:
Daha Büyük Haritayı Görüntüle
Akşam görüşmek üzere
Maç bugün (8 Temmuz 2009) 19:00-20:00 saatleri arasında olacak şekilde ayarlandı. Halı sahanın adresi:
Tuana
4.Cad. No:24 Yıldızevler/Çankaya
Tel:441 76 75
Burası atakule'ye oldukça yakın.. Harita üzerinde gösterirsek:
Daha Büyük Haritayı Görüntüle
Akşam görüşmek üzere
26 Haziran 2009 Cuma
Michael Jackson öldü...
20 sene önce kendi çabalarımızla öğrenmeye çalışmış, bir türlü becerememiştik. Moon walk nasıl yapılır öğrenmek isteyenler için: http://www.youtube.com/watch?v=E_FzgtLVzbI
Moon walk'ı ustanın kendisinden izlemek için: http://www.youtube.com/watch?v=s7MmEMrCRfc
Moon walk'ı ustanın kendisinden izlemek için: http://www.youtube.com/watch?v=s7MmEMrCRfc
2 Haziran 2009 Salı
13 Mayıs 2009 Çarşamba
SQL SERVER String Functions
SELECT [Kolon1] ,
STUFF([Kolon1],3,9,'-')
+STUFF( substring([Kolon1],3,7),3,9,'-')
+STUFF( substring([Kolon1],5,5),3,0,'-')
FROM [TABLO1]
WHERE
LEN ([Kolon1])= 9
and
CHARINDEX('-' , [Kolon1])=0
and
CHARINDEX('.' , [Kolon1])=0
and
CHARINDEX('/' , [Kolon1])=0
sonuçlar
123546789
12-34-56-789
STUFF([Kolon1],3,9,'-')
+STUFF( substring([Kolon1],3,7),3,9,'-')
+STUFF( substring([Kolon1],5,5),3,0,'-')
FROM [TABLO1]
WHERE
LEN ([Kolon1])= 9
and
CHARINDEX('-' , [Kolon1])=0
and
CHARINDEX('.' , [Kolon1])=0
and
CHARINDEX('/' , [Kolon1])=0
sonuçlar
123546789
12-34-56-789
Etiketler:
charindex,
concat,
len,
sql server,
string functions,
stuff,
substring
3 Şubat 2009 Salı
11 Ocak 2009 Pazar
JAX-WS ile Güvenlik Bilgilerini Almak
Eğer JAX-WS kullanırken bir şekilde servisinize gönderilen mesajın içindeki kullanıcı bilgilerine ulaşmanız icab ederse, web servisinize küçük eklemeler yapmanız yetecektir:
@WebService()
public class LoginWebService {
@Resource
private WebServiceContext context;
@WebMethod(operationName = "operasyon")
public void operasyon() {
ServletContext servletContext = (ServletContext)context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
String kullaniciadi = servletContext.getInitParameter("username");
String sifre = servletContext.getInitParameter("password");
//Sonrası size kalmış! :-))
}
}
@WebService()
public class LoginWebService {
@Resource
private WebServiceContext context;
@WebMethod(operationName = "operasyon")
public void operasyon() {
ServletContext servletContext = (ServletContext)context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
String kullaniciadi = servletContext.getInitParameter("username");
String sifre = servletContext.getInitParameter("password");
//Sonrası size kalmış! :-))
}
}
Netbeans, Glassfish ve Türkçe!
Windows üzerinde Netbeans ve Glassfish kullanırken bir takım problemler yaşıyorsanız ilk şüphelenmeniz gereken yer dil ve bölge ayarlarıdır. Eğer Glassfish'i başlatırken abuk subuk, internette aradığınızda bile bulamadığınız bir takım hatlarla karşılaşıyorsanız,
1. Netbeans'in kurulu olduğu klasörde etc diye bir klasör bulunuyor. Bunun içinde netbeans.conf dosyasını bir text editör ile açıp netbeans_default_options diye başlayan satırın en sonuna (ama tırnak işaretinin içinde kalacak şekilde
--locale tr_TR
ifadesini ekleyin.
Glassfish'in kurulu olduğu klasörde "lib" klasöründe "Launcher.xml" ve "processLauncher.xml" dosyaları var. Bunların içine
<sysproperty key="user.language" value="tr-TR"/></sysproperty>
satırını ekleyin.
Son olarak uygulama sunucumuzun ilgili domain klasöründe domain.xml diye bir
dosya var. Bunun içine de ilgili yere
<jvm-options>-Duser.language=tr-TR</jvm-options>
satırını eklemelisiniz.
1. Netbeans'in kurulu olduğu klasörde etc diye bir klasör bulunuyor. Bunun içinde netbeans.conf dosyasını bir text editör ile açıp netbeans_default_options diye başlayan satırın en sonuna (ama tırnak işaretinin içinde kalacak şekilde
--locale tr_TR
ifadesini ekleyin.
Glassfish'in kurulu olduğu klasörde "lib" klasöründe "Launcher.xml" ve "processLauncher.xml" dosyaları var. Bunların içine
<sysproperty key="user.language" value="tr-TR"/></sysproperty>
satırını ekleyin.
Son olarak uygulama sunucumuzun ilgili domain klasöründe domain.xml diye bir
dosya var. Bunun içine de ilgili yere
<jvm-options>-Duser.language=tr-TR</jvm-options>
satırını eklemelisiniz.
Kaydol:
Kayıtlar (Atom)