14 Ekim 2020 Çarşamba

Gizlilik Politikası

MOBİL UYGULAMA GİZLİLİK BİLDİRİMİ

Sürüm, 10 Eylül 2020

 

Tüm Kullanıcılarımızın gizliliği bizim için çok önemlidir. Bir Uygulama Kullanıcısı olarak Hizmetimizi kullandığınızda, (Uygulama Yayıncısı olarak) Kişisel Verilerinizi işleriz. Bu Gizlilik Bildirimi, Kişisel Verilerinizi nasıl koruduğumuzu ve işleme koyduğumuzu açıklar. Dikkatlice okumanızı öneririz. 

1. Bu Gizlilik Bildiriminde ne belirtilmiştir?

 

Bu Gizlilik Bildirimindeki bölümler size aşağıdakiler hakkında bilgi verir: 


  • İşlenen Kişisel Verilerin türleri,

  • Kişisel Verilerin işlenme amaçları, 

  • Kişisel Verilerin işlendiği yerler,

  • Kişisel Verileri korumak için uygulanan güvenlik önlemleri,

  • Üçüncü şahıslarla ilgili sorumluluk sınırları,

  • Kişisel Verilerinizi görüntüleme, değiştirme ve silme,

  • Bu Gizlilik Bildiriminde yapılan değişiklikler; 

  • Sorunuz veya açıklamalarınız varsa ne yapacaksınız? 


2. İşlenen Kişisel Verilerin türleri


A. Hizmetimiz tarafından kullanılan Kişisel Veriler 

Hizmetimizi geliştirmek için Anonim Verileri kullanırız. Bu bilgiler, Hizmet aracılığıyla kamuya açıklanmayacaktır.

 

B. Otomatik olarak oluşturulan bilgiler 

Çoğu diğer web siteleri ve çevrimiçi hizmetler gibi, Uygulamayı nasıl kullandığınızla ilgili olarak otomatik olarak üretilen bilgileri toplar ve işleriz. Toplanan bilgiler, ip adresinizi ve / veya benzersiz cihaz kimliğinizi içerir.

 

Özellikle katılmayı seçerseniz, Uygulama, coğrafi konum bilgilerinizi toplayabilir. Her durumda, coğrafi konum bilginizin alınmasını mobil cihazınızın ayarlarından engelleyebilirsiniz.

 

Sosyal ağ hesabınızdan bilgi erişimi ve toplama izni vermeyi özellikle tercih ederseniz, sosyal ağ hesabınızdaki temel kişisel bilgileriniz (adınız ve e-posta adresiniz gibi) ve ayrıca sosyal ağ kullanıcı kimliği ( şifreniz değil ) ve Uygulama aracılığıyla paylaştığınız yayınlarla ilgili parametreler. Erişilebilen ve alınabilecek bilgileri kontrol etmek için hesabınızın gizlilik tercihlerini nasıl ayarlayabileceğiniz hakkında daha fazla bilgi için lütfen sosyal ağın gizlilik politikasına bakın.


Bu, aynı zamanda, Uygulamayı nasıl kullandığınıza ilişkin otomatik olarak oluşturulmuş bilgilerle ilgili olarak gerçekleşir. Bu tür bilgiler, Uygulamanın nasıl kullanıldığını daha iyi anlamamıza ve bir kullanıcı olarak ihtiyacınıza uygun hizmet üretmemize yardımcı olur.


Uygulama içindeki kullanıcı yetkilendirme özelliklerini etkinleştirirseniz, aşağıdaki ek bilgiler saklanır: 


  • İsim,

  • E-posta,

  • Telefon numarası (isteğe bağlı);

  • Facebook, Twitter, Google+ veya LinkedIn gibi harici bir sağlayıcı tarafından gönderilen ek profil bilgileri.

 

Uygulama sahibine, uygulamanın kullanımı hakkında bilgi vermek için aşağıdaki (bilinmeyen) bilgileri de topluyoruz: 


• Uygulamayı açtığınız an,

• Uygulamanın içinde açtığınız ekranlar ve bu ekranlarda harcadığınız süre,

• Uygulamadan ayrıldığınız an.

 

Not: kullanıcı yetkilendirme özellikleri etkinleştirilmişse, giriş yaptığınızda anonim bilgileri sizin bilgilerinizle ilişkilendirebiliriz.


Eğer uygulamada anlık bildirim reklamları aktifse, uygulama ile entegre çalışan BleshSDK hakkındaki bilgiler aşağıda sunulmaktadır.

 

  • BleshSDK vasıtasıyla Kullanıcılar’ın bildirim izni durumu, bluetooth durum bilgisi, cihaz bilgileri, reklam tanıtıcısı (IDFA), konum, operatör, yüklü uygulama listesi bilgilerine erişilmekte olup sağlanan bu bilgilerin gizliliği için gerekli güvenlik önlemleri alınmaktadır.

  • Kullanıcı’nın, kendisine iletilen kampanya görüntüsünü fotoğraf albümüne kaydetmek istemesi durumunda, Kullanıcı’nın fotoğraf albümü ve kamerasına erişilmekte ve ekran görüntüsü fotoğraf albümüne kaydedilmektedir.

  • Bilgiler yalnızca Kullanıcı’nın izin verdiği ölçüde Uygulama üzerinden anlık bildirimler gönderme amacı kapsamında, güvenli şekilde ve sadece gereken süre boyunca kullanılmaktadır. Bilgiler yalnızca söz konusu amaçların gerçekleştirilmesi için üçüncü partiler ile paylaşılmakta olup bu kapsam dışında bilgilerin yayınlanması ve ifşa edilmesine izin verilmemektedir.




C. Belirli Bilgiler 

Size sadakat kartı, haber bültenleri, reklamcılık gibi bazı etkinliklerle başvurmanız istenebilir; bu durumda bazı kişisel bilgiler istenir. Bu bilgiler, hizmetimizin (üçüncü şahıslar dahil) veritabanında saklanır ve bizimle paylaşılacaktır.

 

Uygulamadaki fotoğraflar da dahil olmak üzere veri yüklediğinizde, bu paylaşılacak ve uygulamanın diğer tüm kullanıcıları tarafından görülebilecektir.

3. Kişisel Verilerin işlenme amaçları

 

A. Amaçlar 


Taraflar Kişisel Verileri aşağıdaki amaçlarla işlemektedir: 


  • Hizmeti kullanabilmenizi sağlamak için,

  • Hizmetimizle ilgili bilgileri güncel tutmak için,

  • Hizmetin iyileştirilmesi ve/veya özelleştirilmesi için,

  • Sizi tanımlamak ve/veya Hizmeti özelleştirmek için,

  • Sizi tanımak ve dolandırıcılığı önlemek için,

  • Destek sağlamak için,

  • Kişisel Verilerinizi, bizden bunu talep ettiğiniz takdirde veya yasal olarak yükümlü olduğumuz durumlarda, üçüncü şahıslara iletmek.

   

 

B. Kişisel Verilerin üçüncü şahıslara iletilmesi 

Sizden önceden izin alınmaksızın Kişisel Verilerinizi üçüncü şahıslara satmamaktayız, satmıyor veya kiralamıyoruz. Bununla birlikte, Ücretli Hizmetlerle ilgili ödeme sağlayıcıları aracılığıyla ödeme yapmak gibi Kişisel Verilerinizi size sağlama veya talimatları yerine getirmeniz açısından şart olduğu durumlarda, Kişisel Verilerinizi üçüncü taraflara sağlayabiliriz. 


Uygun olduğunu düşündüğümüz şekilde Hizmet'in bu tür amaçlar için üçüncü taraflara kullanımı hakkında "toplu anonim veriler" sağlayabiliriz. "Toplam anonim veriler", size geri gönderilemeyen ve bu nedenle Kişisel Veriler olarak sayılmayan verilerdir. Örneğin, Kullanıcıların Hizmeti nasıl kullandığını daha iyi anlamak için toplu anonim verileri kullanabiliriz.


Üçüncü bir tarafa geçtiğimiz veya bir üçüncü tarafla birleştiğimiz veya bir yeniden yapılandırmaya tabi olduğumuz durumda, Kişisel Verileriniz de üçüncü kişilere açıklanabilir ve / veya bu üçüncü kişiye devredilebilir. Bu üçüncü taraf, Kişisel Verileri ve bize sağladığınız diğer bilgileri kullanmaya devam etme hakkına sahip olacak. 


Kişisel Verilerinizi, iyi niyetle, bir mahkeme kararı, halen devam eden adli işlem, cezai veya sivil mahkeme celbi veya kolluk kuvveti makamları tarafından verilen diğer yasal işlem veya taleplere uymanız gerektiğine inandığımız yerlerde ifşa edebiliriz veya egzersiz yapabiliriz Yasal hakları veya yasal iddialara karşı savunmak. 

4. Kişisel Verilerin işlendiği yerler

Hizmet kapsamında işlenen verilerin tutulduğu veri merkezleri değişik bölgelerde bulunmaktadır., Türkiye, İrlanda, Hollanda, Amerika Birleşik Devletleri bölgelerinde yer alan barındırma hizmetleri kullanılarak sağlanmaktadır. Bununla birlikte, işlenen Kişisel Veriler, bu ülkeler ve bölgeler dışında bir ülkede bulunan muhafaza sunucularına aktarılabilir ve depolanabilir. Kişisel Verilerinizin güvenli bir şekilde ve bu gizlilik politikasına uygun şekilde kullanılmasını sağlamak için makul ölçüde gerekli tüm adımları atacağız.

5. Kişisel Verileri korumak için hangi güvenlik önlemleri uygulanmaktadır?

Verilerinizin güvenliği ve diğer Kullanıcıların güvenliği bizim için çok önemlidir. Kişisel Verilerinizi kayıp ya da herhangi bir yasadışı işleme karşı korumak için teknik ve organizasyonel önlemler aldık. Aşağıdaki tedbirleri uyguladık: sunucularımızı güvenlik duvarları, SSL bağlantıları ve hassas verilerin şifrelenmesi yoluyla koruma. Bu liste ayrıntılı değildir. 

6. Üçüncü şahıslarla ilgili sorumluluk sınırları

Hizmetimiz üçüncü taraflar tarafından sunulan hizmetler ve ürünler ve / veya ortakların, reklamverenlerin ve diğer üçüncü tarafların web sitelerine veya hizmetlerine köprüler içerebilir.

   

Tarafların, bu üçüncü tarafların içeriği, web siteleri veya hizmetleri üzerinde herhangi bir kontrolü veya etkisi yoktur. Üçüncü kişi web sitelerinin ve hizmetlerinin kullanımı için farklı gizlilik politikaları uygulanabilir. Bu Gizlilik Beyanı, yalnızca taraflar tarafından Hizmeti kendi amaçları doğrultusunda kullanmanız yoluyla elde edilen Kişisel Verilerle ilgilidir. Taraflar, üçüncü taraf web sitelerinin ve hizmetlerin içeriği, uygulamaları veya işletilmesi ile ilgili herhangi bir sorumluluk kabul etmez.

7. Kişisel Verileri Görüntüleme ve Silme

Uygulamayı kullanarak toplanan kişisel bilgilere e-posta yoluyla bizimle iletişime geçmek veya silmek için bir istek gönderebilirsiniz. Kimliğinizi doğrulamak için ek bilgi sağlamanız istenebilir.

8. Çocuk gizliliği

Çocuklarla ilgili kişisel bilgiler bilerek veya kasıtlı olarak toplanmamaktadır.

9. Güvenlik

Kişisel bilgilerinizin güvenliğini sağlamak, hasar riskini en aza indirmek, bilgi kaybı ve yetkisiz erişimden veya bilgiyi kullanmak için önlemler uygulanmaktadır. Bununla birlikte, bu tedbirler mutlak bilgi güvenliği sağlayamamaktadır. Dolayısıyla, kişisel bilgilerinizin güvenliğini sağlamak için çaba sarf edilir, ancak bu garanti edilmez ve Uygulamanın ve ilgili veritabanlarının herhangi bir haksız davranış, arıza, izinsiz engeller veya erişim veya diğer kötüye kullanım ve kötüye kullanımdan muaf olacağını makul bir şekilde bekleyemezsiniz.

10. Bu Gizlilik Bildiriminde Yapılan Değişiklikler

Bu Beyan, herhangi bir zamanda güncellenebilir. Taraflar, Gizlilik Bildirimi'nin güncellenmiş bir sürümünü Hizmet aracılığıyla yayınlayacaktır. Taraflar, bu Gizlilik Bildirimi'nde yapacağı değişikliklerden haberdar olmak ve tarafların Kişisel Verilerinizi nasıl koruma altına alacakları konusunda bilgi sahibi olmak için bu sayfayı zaman zaman kontrol etmenizi önerir. Bu Gizlilik Bildirimini periyodik olarak gözden geçirmek ve güncellemeler hakkında bilgi sahibi olmak sizin sorumluluğunuzdadır ve kabul ve taahhüt eder.

 

Bu Bildirimde yapılan değişikliklerin herhangi birine bağlı kalmayı kabul etmektesiniz. Değişiklik yürürlüğe girdikten sonra Uygulamayı kullanmaya devam etmeniz, değiştirilen Bildirim'i kabul ettiğinizi gösterecektir. Değiştirilen Bildirimi kabul etmiyorsanız, Uygulamayı kaldırmanız ve onu daha fazla kullanmaktan kaçınmanız gerekir. 

11. Herhangi bir sorunuz ya da açıklamalarınız varsa ne yapacaksınız?

Bu Gizlilik Bildirimi ile ilgili herhangi bir sorunuz veya açıklamalarınız varsa, lütfen bir e-posta göndererek bizimle iletişime geçin. 


Bu Gizlilik Bildirimi son olarak 10 Nisan 2019 tarihinde güncellendi.

9 Mayıs 2011 Pazartesi

jsf hibernate and Spring Enterprise Web Application

http://www.javaworld.com/javaworld/jw-07-2004/jw-0719-jsf.html?page=1

Build a real-world Web application with JavaServer Faces, the Spring Framework, and Hibernate


10 Aralık 2010 Cuma

JPA Ve Hibernate

JPA ve Hibernate
Aslında JPA ve Hibernate farklı şeylerdir. JPA bir Persistence API dir. Implementasyon içermez.Hibernate ise bir persistence layer implementasyonudur. JPA dan önce direk hibernate kullanıyorduk ve hibernate kütüphanelerine bağımlıydık. JPA bir JEE standardıdır ve ek bir library eklememize gerek kalmaz. Uygulamamızdan JPA ya referanslar yazarız. Doğrudan Hibernate kütüphanelerine referans yazmayız. Sonuçta uygulamamız bir implementasyon kütüphanesine bağımlı olmaz. JPA+Hibernate şeklinde yazdığımız bir uygulamayı çok rahatlıkla JPA+EclipseLink yada bir başka implemantasyon setine çevirebiliriz. Kodlarımızda bir bağımlılık olmadığından refactor yapmamız gerekmez. Bu konuda bazı makale ve Tutoriallar:



10 Ağustos 2007 Cuma

Core Design Patterns: Abstract Factory Pattern

Abstract Factory Pattern: Bu paternin yaptığı iş bir çok değişik factory objesini encapsule etmekdir. Creation ile ilgili bir patterndir. Kullanımı şöyledir. Client uygulama abstract factory classından somut bir obje yaratır. Ve bu objenin genel methodlarını kullanır. Client uygulama alt seviyede yaratılan objenin hangi obje olduğunu bilmez. Bu pattern bir obje kümesinin implementasyon ayrıntıları ile genel kullanımını birbirinden ayırır.

Örnek Kod:

Button.java

package factory;
abstract class Button
{
public abstract void paint();
}

OSXButton.java
package factory;
class OSXButton extends Button
{
public void paint()
{
System.out.println("I'm an OSXButton: ");
}
}

WinButton.java
package factory;
class WinButton extends Button
{
public void paint()
{
System.out.println("I'm a WinButton: ");
}
}

GUIFactory.java
package factory;
abstract class GUIFactory
{
public static GUIFactory getFactory()
{
//int sys = readFromConfigFile("OS_TYPE");
int sys=1;
if (sys == 0)
{
return new WinFactory();
}
else
{
return new OSXFactory();
}
}

public abstract Button createButton();
}

OSXFactory.java
package factory;
class OSXFactory extends GUIFactory
{
public Button createButton()
{
return new OSXButton();
}
}

WinFactory.java
package factory;
class WinFactory extends GUIFactory
{
public Button createButton()
{
return new WinButton();
}
}

Application.java
package factory;
public class Application
{
public static void main(String[] args)
{
//GUIFactory içindeki int sys=1 satırı int sys=0 yapılırsa winButton üretilir.
GUIFactory factory = GUIFactory.getFactory();
Button button = factory.createButton();
button.paint();
}
// Output is either:
// "I'm a WinButton:"
// or:
// "I'm an OSXButton:"
}

UML Of Abstract Factory Pattern

Core Design Patterns: Decorator Pattern

Decorator Pattern: run time da var olan obje yada objelere yeni davranış şekilleri eklemek için kullanılır. Bu pattern bir tür subclass işlemidir ancak extend işlemi compile time da değil runtime da yapılmaktadır. Bu da ekstra flexibility kazandırır.

Decorator pattern bir decorator objesinin diğer bir objeyi wrap etmesi şeklinde yapılır. Ve bu genelde decorator objesinin constructorına diğer objenin parametre olarak girmesi ile sağlanır.

Örnek Kod:

DecoratedWindowTest.java
package decoratorPattern;

public class DecoratedWindowTest {
public static void main(String[] args) {
// create a decorated Window with horizontal and vertical scrollbars
Window decoratedWindow = new HorizontalScrollBarDecorator (
new VerticalScrollBarDecorator(new SimpleWindow()));

// print the Window's description
System.out.println(decoratedWindow.getDescription());
}
}

HorizontalScrollBarDecorator.java
package decoratorPattern;
// the second concrete decorator which adds horizontal scrollbar functionality
class HorizontalScrollBarDecorator extends WindowDecorator {
public HorizontalScrollBarDecorator(Window decoratedWindow) {
super(decoratedWindow);
}

public void draw() {
drawHorizontalScrollBar();
decoratedWindow.draw();
}

private void drawHorizontalScrollBar() {
// draw the horizontal scrollbar
}

public String getDescription() {
return decoratedWindow.getDescription()
+ ", including horizontal scrollbars";
}
}

SimpleWindow.java
package decoratorPattern;

// implementation of a simple Window without any scrollbars
class SimpleWindow implements Window {
public void draw() {
// draw window
}

public String getDescription() {
return "simple window";
}
}

VerticalScrollBarDecorator.java
package decoratorPattern;

// the first concrete decorator which adds vertical scrollbar functionality
class VerticalScrollBarDecorator extends WindowDecorator {
public VerticalScrollBarDecorator(Window decoratedWindow) {
super(decoratedWindow);
}

public void draw() {
drawVerticalScrollBar();
decoratedWindow.draw();
}

private void drawVerticalScrollBar() {
// draw the vertical scrollbar
}

public String getDescription() {
return decoratedWindow.getDescription()
+ ", including vertical scrollbars";
}
}

Window.java
package decoratorPattern;

// the Window interface
interface Window {
public void draw(); // draws the Window
public String getDescription(); // returns a description of the Window
}


WindowDecorator.java
package decoratorPattern;

// abstract decorator class - note that it implements Window
abstract class WindowDecorator implements Window {
protected Window decoratedWindow; // the Window being decorated

public WindowDecorator(Window decoratedWindow) {
this.decoratedWindow = decoratedWindow;
}
}

UML Of Decorator Pattern

Core Design Patterns: Command Pattern

Command Pattern: Actionları objeye encapsule etme yönteminin adıdır. Her bir action bir object olarak düşünülür. Bu sayede yeniden kullanabilme, loglayabilme, undo v.s. bir çok vantaj sağlamaktadır.

Örnek Kod:
/*
The Design Patterns Java Companion

Copyright (C) 1998, by James W. Cooper

IBM Thomas J. Watson Research Center

*/

package CommandPattern;

import java.awt.Button;
import java.awt.Color;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ActionCommand extends Frame {
Menu mnuFile;

MenuItem mnuOpen, mnuExit;

Button btnRed;

Panel p;

Frame fr;

//-----------------------------------------
public ActionCommand() {
super("Frame without commands");
fr = this; //sae cop of this frame
MenuBar mbar = new MenuBar();
setMenuBar(mbar);

mnuFile = new Menu("File", true);
mbar.add(mnuFile);

mnuOpen = new MenuItem("Open...");
mnuFile.add(mnuOpen);
mnuExit = new MenuItem("Exit");
mnuFile.add(mnuExit);

mnuOpen.addActionListener(new fileOpen());
mnuExit.addActionListener(new fileExit());

btnRed = new Button("Red");
p = new Panel();
add(p);
p.add(btnRed);

btnRed.addActionListener(new btnRed());
setBounds(100, 100, 200, 100);
setVisible(true);
}

//-----------------------------------------
private void exitClicked() {
System.exit(0);
}

//-----------------------------------------
static public void main(String argv[]) {
new ActionCommand();
}

//=====----====--inner classes---=====----
class fileOpen implements ActionListener {
public void actionPerformed(ActionEvent e) {
FileDialog fDlg = new FileDialog(fr, "Open a file", FileDialog.LOAD);
fDlg.show();
}
}

//-------------------------------------
class btnRed implements ActionListener {
public void actionPerformed(ActionEvent e) {
p.setBackground(Color.red);
}
}

//-------------------------------------
class fileExit implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
}
//=====================================