Admob'tan yapılan açıklama ile Google'un Adsense reklam ağı ortak bir merkezde birleştiriliyor.
Son tarih olarak 30 Eylül verilmiş.
Bakalım kullanıcılar Adsense'i beğeneceklermi?
1 Eylül 2013 Pazar
8 Temmuz 2013 Pazartesi
combo for android
package com.sahabe.ytech;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
private WebView myWebView;
private ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.webView1);
myWebView.getSettings().setJavaScriptEnabled(true);
pd = ProgressDialog.show(this, "", "Dosyalar Hazırlanıyor",true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setSupportZoom(true);
myWebView.getSettings().setUseWideViewPort(true);
myWebView.getSettings().setLoadWithOverviewMode(true);
//myWebView.getSettings().setDomStorageEnabled(true);
//myWebView.setWebChromeClient(new WebChromeClient());
myWebView.setWebViewClient(new MyWebViewClient());
myWebView.loadUrl("file:///android_asset/index.html");
LinearLayout layout = (LinearLayout)findViewById(R.id.reklam);
AdView adView = new AdView(this, AdSize.BANNER, "xxxxxxxxxxxx");
layout.addView(adView);
AdRequest request = new AdRequest();
//request.setTesting(true);
adView.loadAd(request);
}
class MyWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
if(pd.isShowing()&&pd!=null)
{
pd.dismiss();
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); // Stay within this webview and load url
return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if((keyCode == KeyEvent.KEYCODE_BACK) && (myWebView.canGoBack()))
{
myWebView.goBack();
return true;
}else if ( (keyCode == KeyEvent.KEYCODE_BACK) && (myWebView.canGoBack()==false) )
{
finish();
return true;
} else
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.cikis:
finish();
break;
}
return true;
}
}
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
private WebView myWebView;
private ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.webView1);
myWebView.getSettings().setJavaScriptEnabled(true);
pd = ProgressDialog.show(this, "", "Dosyalar Hazırlanıyor",true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setSupportZoom(true);
myWebView.getSettings().setUseWideViewPort(true);
myWebView.getSettings().setLoadWithOverviewMode(true);
//myWebView.getSettings().setDomStorageEnabled(true);
//myWebView.setWebChromeClient(new WebChromeClient());
myWebView.setWebViewClient(new MyWebViewClient());
myWebView.loadUrl("file:///android_asset/index.html");
LinearLayout layout = (LinearLayout)findViewById(R.id.reklam);
AdView adView = new AdView(this, AdSize.BANNER, "xxxxxxxxxxxx");
layout.addView(adView);
AdRequest request = new AdRequest();
//request.setTesting(true);
adView.loadAd(request);
}
class MyWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
if(pd.isShowing()&&pd!=null)
{
pd.dismiss();
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); // Stay within this webview and load url
return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if((keyCode == KeyEvent.KEYCODE_BACK) && (myWebView.canGoBack()))
{
myWebView.goBack();
return true;
}else if ( (keyCode == KeyEvent.KEYCODE_BACK) && (myWebView.canGoBack()==false) )
{
finish();
return true;
} else
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.cikis:
finish();
break;
}
return true;
}
}
17 Haziran 2013 Pazartesi
Jquery mobile background image
<style type="text/css">
body {
background: url(imgage.gif);
background-repeat:repeat-y;
background-position:center center;
background-attachment:scroll;
background-size:100% 100%;
}
.ui-page {
background: transparent;
}
.ui-content{
background: transparent;
}
</style>
29 Nisan 2013 Pazartesi
admob reklam ekleme
<LinearLayout android:id="@+id/reklam" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:layout_alignParentBottom="true"></LinearLayout> -------------------------------------------public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); LinearLayout layout = (LinearLayout)findViewById(R.id.reklam); AdView adView = new AdView(this, AdSize.BANNER, "xxxxxxxxxxxxxx"); layout.addView(adView); AdRequest request = new AdRequest(); request.setTesting(true); adView.loadAd(request);}----------------------------------------------<activity android:name="com.google.ads.AdActivity"android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>9 Nisan 2013 Salı
WebView Loading
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class SandbarinFacebook extends Activity {
WebView mWebView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ProgressDialog pd = ProgressDialog.show(this, "", "Loading...",true);
mWebView = (WebView) findViewById(R.id.webkitWebView1);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if(pd.isShowing()&&pd!=null)
{
pd.dismiss();
}
}
});
mWebView.loadUrl("http://www.yahoo.co.in");
setTitle("Yahoo!");
}
}
8 Nisan 2013 Pazartesi
Android menu_exit + back button
package com.yalnizlarmektebi.ytech;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.*;
import android.webkit.WebSettings.ZoomDensity;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
private WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.webView1);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setSupportZoom(true);
myWebView.getSettings().setUseWideViewPort(true);
myWebView.getSettings().setLoadWithOverviewMode(true);
//myWebView.getSettings().setDomStorageEnabled(true);
//myWebView.setWebChromeClient(new WebChromeClient());
myWebView.setWebViewClient(new MyWebViewClient());
myWebView.loadUrl("http://www.selcuk.edu.tr");
LinearLayout layout = (LinearLayout)findViewById(R.id.reklam);
AdView adView = new AdView(this, AdSize.BANNER, "xxxxxxxxxxxxxxxxxxxxx");
layout.addView(adView);
AdRequest request = new AdRequest();
//request.setTesting(true);
adView.loadAd(request);
}
class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); // Stay within this webview and load url
return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if((keyCode == KeyEvent.KEYCODE_BACK) && (myWebView.canGoBack()))
{
myWebView.goBack();
return true;
}else if ( (keyCode == KeyEvent.KEYCODE_BACK) && (myWebView.canGoBack()==false) )
{
finish();
return true;
} else
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.cikis:
finish();
break;
}
return true;
}
}
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.*;
import android.webkit.WebSettings.ZoomDensity;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
private WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.webView1);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setSupportZoom(true);
myWebView.getSettings().setUseWideViewPort(true);
myWebView.getSettings().setLoadWithOverviewMode(true);
//myWebView.getSettings().setDomStorageEnabled(true);
//myWebView.setWebChromeClient(new WebChromeClient());
myWebView.setWebViewClient(new MyWebViewClient());
myWebView.loadUrl("http://www.selcuk.edu.tr");
LinearLayout layout = (LinearLayout)findViewById(R.id.reklam);
AdView adView = new AdView(this, AdSize.BANNER, "xxxxxxxxxxxxxxxxxxxxx");
layout.addView(adView);
AdRequest request = new AdRequest();
//request.setTesting(true);
adView.loadAd(request);
}
class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); // Stay within this webview and load url
return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if((keyCode == KeyEvent.KEYCODE_BACK) && (myWebView.canGoBack()))
{
myWebView.goBack();
return true;
}else if ( (keyCode == KeyEvent.KEYCODE_BACK) && (myWebView.canGoBack()==false) )
{
finish();
return true;
} else
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.cikis:
finish();
break;
}
return true;
}
}
18 Mart 2013 Pazartesi
Android Webview ile JavaScript ve Jquery Mobile
Webviewde javascript ve jquery mobile dosyalarının görüntülenmesinde sıkıntı çekebilirsiniz. Bunun için webviewda java gösterimini açmanız gerekli.
bunun için gerekli olan kodlar kırmızı renkte gösterilmiştir;
package com.example.selcukmobil;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.*;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webView1);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setDomStorageEnabled(true);
myWebView.setWebChromeClient(new WebChromeClient());
myWebView.loadUrl("http://m.selcuk.edu.tr/");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Yaptığımız tek şey javascript kodlarının çalışmasına izin vermek oldu.
bunun için gerekli olan kodlar kırmızı renkte gösterilmiştir;
package com.example.selcukmobil;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.*;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webView1);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setDomStorageEnabled(true);
myWebView.setWebChromeClient(new WebChromeClient());
myWebView.loadUrl("http://m.selcuk.edu.tr/");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Yaptığımız tek şey javascript kodlarının çalışmasına izin vermek oldu.
14 Mart 2013 Perşembe
MobiOne bir başka mobil Html5 emulatörü
MobiOne Html5 ve Java kullanılarak iOS ve Android uygulamalar geliştirmenize yardımcı olabilecek bir araç.
iOS uygulaması geliştirirken Apple developer sertifikası istemesi düşündürücü. Yani apple için uygulama geliştiriyorsanız apple amcaya yıllık 99$ vermek zorundasınız.
Dolayısı ile derlememi android için gerçekleştirdim. Aslında yaptığı html ve js dosyaları üretmek. Bu dosyaları da .apk dosyasının assets bölümüne atmak.
Küçük bir video hazırladım:
iOS uygulaması geliştirirken Apple developer sertifikası istemesi düşündürücü. Yani apple için uygulama geliştiriyorsanız apple amcaya yıllık 99$ vermek zorundasınız.
Dolayısı ile derlememi android için gerçekleştirdim. Aslında yaptığı html ve js dosyaları üretmek. Bu dosyaları da .apk dosyasının assets bölümüne atmak.
Küçük bir video hazırladım:
Etiketler:
android,
apk,
map,
mobione,
simple application
13 Mart 2013 Çarşamba
AppInventor For Android
Google desteği ile başlatılmış bir Android geliştirme projesi olan AppInventor MiT tarafından desteklenmekte.
Web üzerinden blok diyagramlar kullanarak Android uygulamalar geliştirmenizi sağlıyor. Arayüz oluşturma işlemi tamamlandıktan sonra lojik bölümde kod yazmak yerine blok diyagramlarla gerçekleştiriyorsunuz.
Sol üst köşedeki "Open Blok Editor" dosyasına tıkladığınızda bir java arayüzü açılmakta ve lojik bölümü kod yazmadan bloklarla yapabilmektesiniz.
Web üzerinden blok diyagramlar kullanarak Android uygulamalar geliştirmenizi sağlıyor. Arayüz oluşturma işlemi tamamlandıktan sonra lojik bölümde kod yazmak yerine blok diyagramlarla gerçekleştiriyorsunuz.
Sol üst köşedeki "Open Blok Editor" dosyasına tıkladığınızda bir java arayüzü açılmakta ve lojik bölümü kod yazmadan bloklarla yapabilmektesiniz.
Sisteminizde Android Sdk' nın yüklü olması gerekli. Blok editor açılırken sizden adb.exe dosyasının yerini soracaktır. Bu dosya SDK'nın içindedir. Eğer konuya yabancı iseniz ve Windows kullanıcısı iseniz. Bir dosya kurmanız yeterli olacaktır --> http://dl.google.com/dl/appinventor/installers/windows/appinventor_setup_installer_v_1_2.exe
Blok editor ile işin kod kısmını hallediyoruz;
Blok diyagramın sol üst köşesinden yeni bir emulatör üretebiliriz. Yaptığımız uygulamaları denemek için yeni emulatör açabiliyorsunuz. Connect to Device diyerek uygulamayı telefona yada emulatöre bağlayabiliyorsunuz.
Eğitim videosu
11 Mart 2013 Pazartesi
7 Mart 2013 Perşembe
OJS metadata düzenleme sorunun çözümü
2.3.8 deki templates klasörü altında bulunan metadataedit.tpl dosyasını yenisi ile değiştirdik. Muhtemelen ftp ile dosya yanlış veya eksik aktarıldı.
Miku Miku Dance
Yamaha firması tarafından insan sesini örnek alarak geliştirilen Vocaloid programının 3d karakteridir, Hatsune Miku.
Mavi saçları ve sentetik sesi ile sanal bir pop yıldızıdır. Japonya ve dünya genelinde bir çok fanı bulunmaktadır.
Miku Miku Dance ise 3d dans ve kareografi aracı olarak geliştirilmiş ücretsiz bir programdır.
Şuradan http://www.geocities.jp/higuchuu4/index_e.htm download edebilirsiniz.
Miku Miku Dance ise 3d dans ve kareografi aracı olarak geliştirilmiş ücretsiz bir programdır.
Şuradan http://www.geocities.jp/higuchuu4/index_e.htm download edebilirsiniz.
Beni uğraştırma diyorsanız 32 bit DirectX versiyonu ve 64bit versiyonunun direkt linkleri
Dosyayı download edin ve zipden çıkartın. Klasörün içindeki mikumikudance.exe açın. Karşınıza kullanımı çok basit olan bir arayüz çıkacaktır.
Modeller zipden çıkarttığınız ana klasör içinde userfile/model klasörü içinde. Modellerin uzantısı .pmd türünde. Model yüklemek için aşağıdaki kahverengi alanda bulunan Load butonuna tıklamanız yeterli olacaktır. Sizi direk model klasörüne yönlendirir. Orada bir kaç tane farklı karakter mevcut. Tabiki esas kız Hatsune Miku :D
Sağ mouse ile kamerayı döndürebilirsiniz. Orta tekerlek tuşu ile zoom yapabilirsiniz. Şurada bir tutorial mevcut :D
Arkadaş bunu hareket ettirmek çok zor dersen hazır kareografilerde mevcut. Adres verelim --> http://www.mediafire.com/MelissaMikuMikuDance
Ayrıca google amcaya MMD motions yazarsanız zibil gibi motion dosyası çıkar.İndirdiğiniz dosyaları userfile/motion klasörüne yüle programdanda load motion seçeneğini seç. Olay bu kadar :D
Bir de müziği nasıl ekleyeceğiz diye soranlar olursa sadece wav uzantılı dosyalar kabul ediyor. Onuda yine userfile/wave klasörüne salla ve programdan çağır.
Farklı modeller bulmak istersen www.deviantart.com adresinde arama alanına "Lat models" yaz, tonlarca model var orda. Daha olmadı google amcaya sorabilirsin.
İlerleyen derslerde model oluşturma ve temel bone efektleri ile animasyon yapımını anlatacağım. tabi ki boş vakit bulursam :D
OJS Mathjax plugin ve diğer plugin kurulumları
Kurulumda php.ini dosyasından sistemin genel .tar dosyası kurulumuna izin verilmeli
shell_exec() komutu ana sistemde açıldıktan sonra kurulum yapılmalı1...
shell_exec() komutu ana sistemde açıldıktan sonra kurulum yapılmalı1...
OJS kurulumda verilecek haklar
Make the following files and directories (and their contents) write-able
by your webserver. You can do this by changing the owner and group or
changing their permissions. In this example we will change their
permissions:
- Code: Select all
> chmod 666 config.inc.php
> chmod 777 public/ -R
> chmod 777 cache/ -R
4 Mart 2013 Pazartesi
OJS geri bildirim maili düzeltmesi
OJS yayın geldikten sonra geri dönüş maili için ayarlamalar.
Dil ayarlarından ingilizce seçildikten sonra tüm alanlar doldurulduğunda türkçe ve ingilizce şablonların tamamı görünebilir duruma gelir.
Dil ayarlarından ingilizce seçildikten sonra tüm alanlar doldurulduğunda türkçe ve ingilizce şablonların tamamı görünebilir duruma gelir.
JqueryMobile ve CodeIgniter Entegrasyonu
Mobil Uygulamalarda tasarlanacak olan sitenin tek bir sayfa olması yükleme açısından avantajlı olacaktır.
CodeIgniter ile JqueryMobile kullanarak tasarladığınız sayfayı, View'e aktarmanız yeterli olacaktır. Normalde JqM ile oluşturduğunuz dosyalar .html uzantılıdır. Bu dosyanın uzantısını da gönül rahatlığı ile .php olarak değiştirebilirsiniz.
views/anasayfa.php dosyası aslında bizim geliştirdiğimiz JqM dosyasıdır. Bu dosya içince gönül rahatlığı ile php kodaları ekleyebilirsiniz.
Diğer bir sorun olan dizin sorunu ise CodeIgniter'ın base_url() komutu ile halledilebilir. Diğer bir kolay yol ise CI'ın ana dizinine klasör açmaktır. Aşağıdaki resimde img klasörüne link verirken img/x.jpg şeklinde link verilebilir.
Bu şekilde ana dizinde istediğiniz kadar klasör oluşturabilirsiniz.
27 Şubat 2013 Çarşamba
PhoneGap mobil dünya için manyak bir framework
PhoneGap open source olmasının yanında bir çok platform için uygulama geliştirmenizi sağlıyor.
HTML5, CSS, ve JavaScript platformlarını kullanarak geliştirdiğiniz web arayüzlerini mobil uygulamalara çeviriyor. Tamamen ücretsiz bir uygulama olması artı bir avantaj ve Adobe tarafından destekleniyor.
http://phonegap.com/ adresinden dökümanlara ve programa ulaşabilirsiniz.
Şurada küçük ama etkili bir örnek mevcut. Konuyla ilgili çalışan arkadaşlara duyurulur :D
26 Şubat 2013 Salı
Biz mezun olurken 3310 vardı
Kimse kızmasın, arkadaş biz mezun olduğumuzda nokia 3310 piyasanın en iyi telefonu idi. 4 satır boy 16 karakter yazı yazabilme özelliği ve küçük boyutu ile zamanın canavar telefonlarındandı. GSM servisinden sağladığımız logolar veya formatla çizilmiş kalpler vb. iconlar zamanın teknoloji harikalarıydı.
Bilgisayar programcılığı nankör meslek, 10 yıl önce Delphi şahken şimdi adı sanı bilinmez oldu. O yüzden kişinin kendini güncellemesi gerekli fakat nereye kadar?
Güncellenmek önemli fakat bu kadar geniş alanda nasıl olacak nasıl başlanacak?
Android application programlamaya girecek arkadaşlar için iyi bir başlangıç sitesi --> http://developer.android.com/sdk/index.html
dosyayı download edin, bilgisayarınızın c: dizinine çıkarın ve kuruluma başlayın. Eclipse java editörü ile birlikte tüm java ve android veriyonlarının kütüphanelerini yükleyin. sistemde JDK olması şart tabiki.
Eclipse ekranını açtığınızda simülatöründen, design paletine tüm parçaları bulabilirsiniz.
25 Şubat 2013 Pazartesi
OJS Türkçe Dil probleminin çözümü
Aşağıdaki kodları silerek OJS Türkçe dil hatası giderilebilir;
(lib/pkp/classes/i18n/PKPLocale.inc.php)
dosyasında bulunan (satır 107-112)
if
(!@setlocale(LC_ALL, $sysLocale, $locale)) {
// For PHP < 4.3.0
if(setlocale(LC_ALL, $sysLocale) != $sysLocale) {
setlocale(LC_ALL, $locale);
}
}
Jquery Mobile
http://jquerymobile.com/
Jquery'nin mobile cihazlar için HTML5 ile cross uygulamalar yapmanızı sağlıyor. Siteden JqueryMobile kütüphanesini indirebileceğiniz gibi sitede bulunan web IDE'si ile kolayca tasarımlarınızı yapıp çıktılarını alabiliyorsunuz.
Yapmanız gereken sağ üst köşede bulunan Download HTML butonuna basmak ve oluşan dosyayı indirmek ve projenize dahil etmek.
21 Şubat 2013 Perşembe
Manyak Bir site: screenr.com
Masaüstü görüntüsü alarak video ders hazırlamak isteyenler için ideal bir site. Tek yapmanız geken www.screenr.com adresine girip üye olmak.
Görüntü kaydetme işlemi java ile yapıldığı için sisteminizde JRE nin son sürümünün kurulu olması gerekiyor. Ekran alanını mouse ile ayarladıktan sonra videoyu kaydedebiliyor ve anında yayınlayabiliyorsunuz.
Artık bu tür işlerin masaüstü programlar kullanılmadan web üzerinden yapılabilmesi çok güzel :D
Görüntü kaydetme işlemi java ile yapıldığı için sisteminizde JRE nin son sürümünün kurulu olması gerekiyor. Ekran alanını mouse ile ayarladıktan sonra videoyu kaydedebiliyor ve anında yayınlayabiliyorsunuz.
Artık bu tür işlerin masaüstü programlar kullanılmadan web üzerinden yapılabilmesi çok güzel :D
PLY Formatı özellikleri
PLY yani Polygon dosya formatı, 3D modellerin saklanması ve import/export işlemleri için oldukça kullanışlı ve basit bir formattır.
PLY formatı iki farklı şekilde binary veya txt olarak saklanabiliyor. Bir çok akademik çalışmada sıklıkla kullanılıyor.
Genel dosya şablonu şu şekilde saklanıyor.
PLY formatı iki farklı şekilde binary veya txt olarak saklanabiliyor. Bir çok akademik çalışmada sıklıkla kullanılıyor.
Genel dosya şablonu şu şekilde saklanıyor.
ply
format ascii 1.0 { ascii/binary, format version number }
comment made by Greg Turk { comments keyword specified, like all lines }
comment this file is a cube
element vertex 8 { define "vertex" element, 8 of them in file }
property float x { vertex contains float "x" coordinate }
property float y { y coordinate is also a vertex property }
property float z { z coordinate, too }
element face 6 { there are 6 "face" elements in the file }
property list uchar int vertex_index { "vertex_indices" is a list of ints }
end_header { delimits the end of the header }
0 0 0 { start of vertex list }
0 0 1
0 1 1
0 1 0
1 0 0
1 0 1
1 1 1
1 1 0
4 0 1 2 3 { start of face list }
4 7 6 5 4
4 0 4 5 1
4 1 5 6 2
4 2 6 7 3
4 3 7 4 0
20 Şubat 2013 Çarşamba
OJS hazır dergi sitemi
Web programcılığı artık "nerede beleş oraya yerleş" mantalitesine dönmüş durumda. Artık her türlü web eklentisi yaptığınız sayfalara eklenebiliyor. Tabiki bundle halinde gelen açık kaynak kodlu sistemlerde mevcut. Bunlardan bir tanesi de Open Journal Systems, OJS.
OJS aslında üniversite dergileri için geliştirilmeye başlanmış bir proje. Fakat her türlü online dergi için düzenlenebilir bir yapısı mevcut.
WEb sitelerinden ücretsiz bir şekilde download ederek kullanabilirsiniz. Tamamen ücretsiz ve tabiki PHP
http://pkp.sfu.ca/?q=ojs
OJS aslında üniversite dergileri için geliştirilmeye başlanmış bir proje. Fakat her türlü online dergi için düzenlenebilir bir yapısı mevcut.
WEb sitelerinden ücretsiz bir şekilde download ederek kullanabilirsiniz. Tamamen ücretsiz ve tabiki PHP
http://pkp.sfu.ca/?q=ojs
19 Şubat 2013 Salı
ScriptCase
Gün geçmiyor ki PHP eklentisi çıkmasın.
ScriptCase çok gelişmiş gridler ve formlar üretmenizisağlıyor. Ayrıca bir çok veritabanı ile uyumlu çalışıyor. Tek yapmanız gereken ScriptCase'i sistemine kurarak veritabanına bağlanmak. Bu aşamadan sonra ScriptCase veritabanına bağlanarak seçtiğiniz tablo için grid veya formlar üretiyor. Bunların pdf,doc,rtf vb. çıktılarını hazır oluşturuyor.
Oluşturduğunuz projeleri deploy ederek her ortama entegre edebiliyorsunuz. Demo versiyonunu denemenizi tavsiye ederim.
CodeIgniter'ın NetBeans'e bağlanması
NetBeans'in çocukluğunu bilirim. Sağda solda "Java şöyle uçar, java şöyle kaçar" laflarını duyduğumuz yıllardan beri takip ederim. O yıllarda ve hala Amerika'da en iyi yazılım dilidir Java, sebebi ücretsiz olması tabiki.
Hatta NB(netbeans) o yıllarda mail order yolu ile eve ücretsiz cd gönderirdi. Eski sürümlerin cdlerini hala saklarım. Fakat Türkiye'den çok talep olduğu için ülkemizi ücretsiz cd dağıtımından çıkartmışlardı. Beleş diye oranında mk. yani...
Neyse konuya dönelim efem NB CodeIgniter ile uyumlu çalışıyor, kod tamamlama gibi özellikleri ile işleri kolaylaştırıyor.
İlk önce linkten Netbeans'ı indirelim. Version 7.2.0'ı tercih edelim, sadece PHP desteği olan 50mb'lım indirmeyi tercih edelim. Kurulumu bitirdikten sonrs php.exe'nin yolunu verelim. Netbeans tools/options penceresini açalım ve PHP seçeneğini seçelim. Wamp türü bundle kullanıyorsanız, c:\wamp\bin\php\ dizinin içinde php.exe'yi kolaylıkla bulabilirsiniz. (Resme tıklayınca büyüyor ya la...)
Şimdi CodeIgniter bağlayalım.
1. Netbeans Tools/plugins bölümüne gelelim. Settings Seçeneğini açalım.
2. Buradan add butonuna tıklayalım .
3. Açılan penceredeki adrese aşağıdaki plugin adresini ekleyelim;
http://kenai.com/downloads/nbphpci/Latest_NetBeans720/updates.xml
4. Available Plugins seçeneğine gidin, listeden 2 tane CodeIgniter seçeneğini ( Framework and Framework Repository )seçin ve Install edin.
5. Artık Codeigniter tools/options/php seçeğinde görülecektir. Bundan sonra yapmanız gereken CodeIgniter dosyalarını bağlamak
6. CodeIgniter seçeneğinden Base File seçeneğini seçin ve CodeIgniter zip dosyasının yolunu bağlayın.
Evet bundan sonra yeni projenizi başlattığınızda codeIgniteri seçebilirsiniz, kod tamamlama özelliği ile işleri daha kolay halledebilirsiniz.
Hatta NB(netbeans) o yıllarda mail order yolu ile eve ücretsiz cd gönderirdi. Eski sürümlerin cdlerini hala saklarım. Fakat Türkiye'den çok talep olduğu için ülkemizi ücretsiz cd dağıtımından çıkartmışlardı. Beleş diye oranında mk. yani...
Neyse konuya dönelim efem NB CodeIgniter ile uyumlu çalışıyor, kod tamamlama gibi özellikleri ile işleri kolaylaştırıyor.
İlk önce linkten Netbeans'ı indirelim. Version 7.2.0'ı tercih edelim, sadece PHP desteği olan 50mb'lım indirmeyi tercih edelim. Kurulumu bitirdikten sonrs php.exe'nin yolunu verelim. Netbeans tools/options penceresini açalım ve PHP seçeneğini seçelim. Wamp türü bundle kullanıyorsanız, c:\wamp\bin\php\ dizinin içinde php.exe'yi kolaylıkla bulabilirsiniz. (Resme tıklayınca büyüyor ya la...)
Şimdi CodeIgniter bağlayalım.
1. Netbeans Tools/plugins bölümüne gelelim. Settings Seçeneğini açalım.
2. Buradan add butonuna tıklayalım .
3. Açılan penceredeki adrese aşağıdaki plugin adresini ekleyelim;
http://kenai.com/downloads/nbphpci/Latest_NetBeans720/updates.xml
4. Available Plugins seçeneğine gidin, listeden 2 tane CodeIgniter seçeneğini ( Framework and Framework Repository )seçin ve Install edin.
5. Artık Codeigniter tools/options/php seçeğinde görülecektir. Bundan sonra yapmanız gereken CodeIgniter dosyalarını bağlamak
6. CodeIgniter seçeneğinden Base File seçeneğini seçin ve CodeIgniter zip dosyasının yolunu bağlayın.
Evet bundan sonra yeni projenizi başlattığınızda codeIgniteri seçebilirsiniz, kod tamamlama özelliği ile işleri daha kolay halledebilirsiniz.
18 Şubat 2013 Pazartesi
CodeIgniter Oracle bağlantısı
CodeIgniter için oracle yapılandırması şöyle yapılır;
Aplication/config/database.php dosyasını açınız.
Burada bağlantı ayarlarını aşağıdaki yapılandırınız;
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=193.140.x.x)(PORT=1521))(CONNECT_DATA=(SID=Orc1)))';
$db['default']['username'] = 'kullanıcı adı';
$db['default']['password'] = 'sifre';
$db['default']['database'] = 'veritabanı_adı';
$db['default']['dbdriver'] = 'oci8';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
uyarı
HOST=193.140.x.x Oracle'ın bulunduğu server'in ip adresi olmak zorunda.
Aplication/config/database.php dosyasını açınız.
Burada bağlantı ayarlarını aşağıdaki yapılandırınız;
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=193.140.x.x)(PORT=1521))(CONNECT_DATA=(SID=Orc1)))';
$db['default']['username'] = 'kullanıcı adı';
$db['default']['password'] = 'sifre';
$db['default']['database'] = 'veritabanı_adı';
$db['default']['dbdriver'] = 'oci8';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
uyarı
HOST=193.140.x.x Oracle'ın bulunduğu server'in ip adresi olmak zorunda.
Webden para kazanma yolları vol. 6508
Selamün aleyküm gençler bu webten para kazanma işi Google amcanın adsense reklam eklentisi ile başladı. Halkın genetik yapısındam mütevellit (zira bizim insanımız yatarak para kazanmayı çok sevdiği için) insanlar adsense eklentilerine, adeta hücum ettiler.
Şu an ise insanlar bloglardan yada amatör sitelerden para kazanma derdinde. Kazanılmaz demiyorum lakin bloğunuzun yada sitenizin günde 2000 ile 3000 arasında hit alması gerekiyor. Adres kısaltma siteleri ise şu anda popüler.
Peki nedir adres kısaltma? efendim bir reklam geçiş sistemidir. sitenizin adresini yazıyorsunuz ilgili site size bir link oluşturuyor. O linki web sitenizde, twitter da, face bookta paylaşıyorsunuz ve 1000 tıklama karşılığında 6 dolar civarında para kazanıyorsunuz. Tabiki bunun için sağlam bir blog yada siteye sahip olmanız gerekli.
Bu sitelerden bir tanesi 1tk.us 6$/1000 hit bir diğeri ise adf.ly . onlar ise 5$/10000 hit şeklinde.
Bende bir umut iki link oluşturdum;
Yukarıdaki linklere tıklayarak bi çorba parası atabilirsiniz.
Tabiki bu sitelerin güvenirliliği tartışmalı ama denemekte fayda var.
14 Şubat 2013 Perşembe
Twitter Bootstrap
Baba bu twittercılar manyak ya
adamlar kendi sitelerindede kullandıkları css,js kütüphanelerini paylaşmışlar. Harika efektlere sadece 84 kb'lik dosyayla ulaşabiliyorsunuz. Aha da adresleri
http://twitter.github.com/bootstrap/
adamlar kendi sitelerindede kullandıkları css,js kütüphanelerini paylaşmışlar. Harika efektlere sadece 84 kb'lik dosyayla ulaşabiliyorsunuz. Aha da adresleri
http://twitter.github.com/bootstrap/
PLY Formatlı 3d Modeller
Çalışmalar için PLY formatlı modeller
http://graphics.im.ntu.edu.tw/~robin/courses/cg03/model/
http://gfx.cs.princeton.edu/proj/sugcon/models/
http://graphics.im.ntu.edu.tw/~robin/courses/cg03/model/
http://gfx.cs.princeton.edu/proj/sugcon/models/
12 Şubat 2013 Salı
Üç boyutlu bilgisayar grafikleri için çalışma alanları.
http://morden.csee.usf.edu/dragon/kpalbrec/mesh.html
http://morden.csee.usf.edu/dragon/kpalbrec/mesh.html
9 Şubat 2013 Cumartesi
Asus X202E ---- Bir minik dev
Gaptanın seyir defteri, Asus X202E üzerinden yazıyor...
Bizim biraderin eski laptopunu kaybetmesinden sonra kendisine alacağımız cihazın laptop mu? yoksa tablet mi? olacağı konusunda fikir ayrılığına düştük.
Fakat geçen hafta Asus'un X202E modelini görmemizle fikrimiz netbook doğrultusunda değişti.
Küçük laptop diyebiliriz
Ekran : 11.6 inch dokunmatik
İşletim Sistemi : Win 8 (Dokunmatik ekranla kullanımı çok güzelleşiyor)
İşlemci: i3 1.80ghz
Ram: ddr3 4 GB
Ekran kartı: paylaşımlı 1 gb intel chipset
Küçük dev, gayet güçlü. 3d Stress test ile yeterli oranı vermesede diğer işlemler için gayet güzel.
Bizim biraderin eski laptopunu kaybetmesinden sonra kendisine alacağımız cihazın laptop mu? yoksa tablet mi? olacağı konusunda fikir ayrılığına düştük.
Fakat geçen hafta Asus'un X202E modelini görmemizle fikrimiz netbook doğrultusunda değişti.
Küçük laptop diyebiliriz
Ekran : 11.6 inch dokunmatik
İşletim Sistemi : Win 8 (Dokunmatik ekranla kullanımı çok güzelleşiyor)
İşlemci: i3 1.80ghz
Ram: ddr3 4 GB
Ekran kartı: paylaşımlı 1 gb intel chipset
Küçük dev, gayet güçlü. 3d Stress test ile yeterli oranı vermesede diğer işlemler için gayet güzel.
Etiketler:
asus,
inceleme,
touch screen,
win8,
x202e
8 Şubat 2013 Cuma
RPC pluginler nedir? Nerede kullanılır?
RPC = Rich Photorealistic Content
Zengin foto realistic içerik şeklinde Türkçeye çevirebiliriz.
RPC'ler birçok açıdan çekilmiş resimlerin ve videoların (bunlar
ağaç,araba,insan ve çeşitli çevre birimleri olabilir) 2d şeklinde 3d
tasarımlarınızda kullanmanızı sağlayan bir plug-in´dir. Mantığı şudur,
örnek olarak bir insan resmi farklı açılardan çekilir ve tek bir dosya
içine bu resim bilgileri aktarılır. Sahnenize bu insanı
yerleştirdiğinizde normalde 2d yer kaplayan bir nesne olmasına rağmen
kamera değişimine göre içinde barındırdığı resimlerde uygun açıyla
değişir.
(indira gandi from : http://www.tr3d.com/?id=forum&f=1&oku=15354)
Rpc pluginler bir çok modelleme programına entegre edilebiliyor. 2d resimler, özellikle ağaç ve manzara ihtiva eden sahnelerde daha hızlı render alınmasını sağlıyor.
Arkaplana gerçek ağaç modeli atarak sahneyi kasmak yerine bunları kullanmak yerinde olacaktır. Bir çok RPC plugini sağlayan üretici mevcut bunların linkleri aşağıda veriyorum;
Ayrıca torrenten binlerce rpc dosyası bulunabiliyor. 3ds Max'e plugin olarak yüklenebildiği gibi "merge" seçeneği ile sahneye yüklenenleride mevcut.
Gaptanın Seyir Defteri
M.Yasin Özsağlam
Php Nuke'den Joomla'ya bir liseli geleneği
Sene 2002, Lisans 2. sınıfta, Php'nin daha doğru düzgün bilinmediği yıllar. Web sitelerinde bulunan hareketli giflerin insanları mest ettiği, hatta orgazm etkisi yarattığı zamanlar. O yıllarda php yapmak için Apache, Mysql ve Php ayrı ayrı kurulur, sonra ayar dosyaları ile bağlanırdı. Mysql'e command paneli ile bağlanırdık.
Sonradan Allah'tan apacheTriad ve PhpTriad gibi bundle'lar çıktıda işler kolaylaşmıştı. Şimdilerde ise Xampp ve Wamp işi götürüyor.
2005 yılına geldiğimizde ise artık Php içerik yönetim sistemlerini duyar olmuştuk. Bunları atası PHP-Nuke adında bir sistemdi. Kendi taplolarını kendi oluşturuyor, menuler, kullanıcılar gruplar vs. dinamik bir şekilde geliyordu. O zamanlar idealist olduğum için iyi bir programcının her şeyi kendi yazmalı diye düşünüyordum. Tabiki işler her zaman bu şekilde yürümüyordu.
Daha sonraki yıllarda Joomla ismini duymaya başladık. Joomla'nın ilk versiyonları çok sağlam değildi. Fakat bugün 2.5 ve 3.0 sürümlerini deneme fırsatı buldum.
Zend frameworku üzerine kurulmuş bir sistem, kurulumda 61 tane tablo oluşturuyor. Hazır web sistemi kurmak isteyenler için hızlı bir çözüm sunuyor.
Fakat dışarıda oluşturduğunuz php sayfalarını da Joomla ilekontrol edebiliyorsunuz.
Liseli yöntemi olarak gördüğüm CMS'ler şu an için hızlı çözüm kaynağı olmuş durumdalar. İnsan ne oldum değil, ne olacam demeli :D
Sonradan Allah'tan apacheTriad ve PhpTriad gibi bundle'lar çıktıda işler kolaylaşmıştı. Şimdilerde ise Xampp ve Wamp işi götürüyor.
2005 yılına geldiğimizde ise artık Php içerik yönetim sistemlerini duyar olmuştuk. Bunları atası PHP-Nuke adında bir sistemdi. Kendi taplolarını kendi oluşturuyor, menuler, kullanıcılar gruplar vs. dinamik bir şekilde geliyordu. O zamanlar idealist olduğum için iyi bir programcının her şeyi kendi yazmalı diye düşünüyordum. Tabiki işler her zaman bu şekilde yürümüyordu.
Daha sonraki yıllarda Joomla ismini duymaya başladık. Joomla'nın ilk versiyonları çok sağlam değildi. Fakat bugün 2.5 ve 3.0 sürümlerini deneme fırsatı buldum.
Zend frameworku üzerine kurulmuş bir sistem, kurulumda 61 tane tablo oluşturuyor. Hazır web sistemi kurmak isteyenler için hızlı bir çözüm sunuyor.
Fakat dışarıda oluşturduğunuz php sayfalarını da Joomla ilekontrol edebiliyorsunuz.
Liseli yöntemi olarak gördüğüm CMS'ler şu an için hızlı çözüm kaynağı olmuş durumdalar. İnsan ne oldum değil, ne olacam demeli :D
Gaptanın Seyir Defteri
M.Yasin ÖZSAĞLAM
7 Şubat 2013 Perşembe
DAZ Studio 4.5
"Yasin hoca 3D'yi bıraktı" diyollaaa... Yalan, vallahi yalan...
Arkadaşlar 3D'yi bırakamam çünkü, 3Ds Max maceram r3.1 sürümü ile başladı ki miladi takvimde 1999-2000 yıllarına tekabül eder. 3d benim hobim, yıllar boyu çok farklı alanlarda çalışsamda arka planda 3d'yi hep takip etmişimdir.
Konuyu dağıtmadan asıl mevzuya geçelim. Geçtiğimiz yaz aylarında 4.0 sürümü piyasaya sürülen DAZ studio'nun 4.5 sürümü yayınlandı. Bu sürümde benim eksik gördüğüm content manager güçlendirilmiş. Yeni modeller ve aksesuarlar bütünleşik olarak geliyor.
İyi de hocam DAZ nedir? diyorsanız. Özetle şöyle anlatıyım, hazır insan modelleri ve bunların animasyonlarını kolayca yapabildiğiniz bir 3D hareketlendirme programı. En güzel yanı ise yapılan model yada animasyonlar envai çeşit dosya formatında çıkartılabiliyor.
Ücretsiz deneme sürümü kendi web sitesinden temin edilebilir. İçerisine binlerce ek model yükleyebilirsiniz fakat model ve aksesuarlar ücretli satılıyor. Onun yerine torrent sitelerinde free yada kırılmış olarakta model ekleyebiliyorsunuz. En güzel yanı animasyonu yapılmış model dosyaları kolayca 3ds Max projenize eklenebiliyor.
Plugin ve model desteği ile mükemmel diyebilirim. 3d karakter animasyonu ile ilgilenen arkadaşların mutlaka göz atması gereken bir program bence.
Yaşlanma Emareleri ve Php Framework'leri
Yeni bir Php projesine başlarken, heyecan ve amatör bir ruhla "proje classlarını kendimiz tarafından oluşturulması" gerektiğini söylediğimde, aldığım tepkiler sayesinde taş devrinde kaldığımı anladım.
Tabiki bunda son 2 yıl içinde dirctX / Xna kütüphanelerine yönelmiş olmanın büyük etkisi vardı. Aslında PHP dünyası yıllar önce frameworke adım atmıştı, adlarını duyuyordum ama kendimi geliştirme imkanı bulamıyordum. Aslında küçük bir yerde çalışmanın yarattığı uyuşuklukta diyebiliriz.
Yeni mezun bir arkadaşın "Abi 30 yaşında hala elizabeth mi? hala manuel mi yazacan "class"ları? Bir dünya php framework var" demesiyle uzun süren kış uykumdan uyandım.
Bıçağın kemiğe dayanması yada yumurtanın kapıya gelmesi adına ne derseniz deyin. Dev bir web projesinde kendi classlarını kendinizin üretmesi demek, atlantik okyanusunu sandalla geçmeye çalışmakla aynıdır.
O yüzden hemen derin bir araştırmaya başladım. Elin oğlu boş durmamış, piyasada envai çeşit Php frameworku oluşmuş. Eline klavye alan adeta Php frameworku oluşturmuş. Lakin her alanda olduğu bunlardan bazıları halkın sevgisini kazanmış ve yaygınlaşmış. Aşağıdaki yaygın Frameworkler ve bunların özellikleri gösterilmiş; (resme tıklayıp büyük halini görebilirsiniz)
(gaynak : http://www.phpframeworks.com/)
Frameworkleri kullanarak nerdeyse hiç PHP kodu yazmıyorsunuz. Tabiki bu demek değildir ki Php bilmeyende bunları kullanabilir. Php tabanınızın olması şart, bir OOP programlamaya aşina olmanız şart. Php ile classlar oluşturup kullanmışsanız her türlü framework üzerinde hızla iş görebilirsiniz.
Piyasada en yaygın kullanılan Frameworkler; Zend(Php ana geliştiricisi zaten), Symphony, Code Igniter, CakePhp 'dir.
Fakat bunlar içinen en efendi olanı, en saygılı ve mütevazi olanı benim gördüğüm kadarı ile Code Igniter. Her türlü ortama kolayca ayak uydurabiliyor. Dosyalarının taşınması, kurulması(ki sadece kopyalıyorsunuz) oldukça basit.
http://ellislab.com/codeigniter sayfasından framework dosyalarını indirip Php sayfaları çakabiliyorsunuz. Yapı olarak Model-View-Controller kısaca MVC yapısnı kullanıyor. Bu yapı üretilen web siteleri için extra güvenlik sağlıyor. Kullanıcının gördüğü sayfalar View katmanında tutuluyor, burada bulunan sayfalara minimum Php kodu yazıyorsunuz. Veritabanı işlemleri ise Model katmanında yapılıyor. View ile Model arasındaki bağlantı ise Controller katmanında sağlanıyor.
Code Igniter ile ilgili bir dünya konu anlatımı youtube ve diğer ortamlarda çok fazla ders mevcut. Code Igniter beleş bir IDE olan Netbeans ile de kullanılabiliyor. Böylece kod tamamlama yardımından da yararlanabiliyorsunuz. Onun Netbeans ortamına nasıl entegre edildiği mevzusunu da bir diğer yazımda anlatırım artık. Her şeyi devletten Beklemeyin
Gaptanın Seyir defteri
M.Yasin ÖZSAĞLAM
Oracle Auto Increment meselesi...
Piyasada, özellikle web aleminde kullanılan en baba veritabanları, PHP abimiz için MySql, ASP dayımız için MsSql'dir.
Fakat çalıştığım yer gibi kurumlarda malesef Oracle amca kullanılmaktadır. Aslında; MySql ve MsSql genç yakışıklı delikanlılar ise Oracle göbekli fakat zengin bir iş adamıdır, programcılar için...
Oracle'nın bünyeye olan faydalarından bahsedip diğerleri ile kıyaslamak yanlış olacaktır. Oracle çok kayıtlı kurumlarda kullanımı iyidir, hızlıdır, hede höde vs.
Bunun yanında fakir fukaranın dostu MySql'de kendini çok geliştirdi. Ülkemizde hukuki gelişimden(!) mütevellit Amerikalı yazılım şirketleri MicroSoft, Oracle vb. devler kurumların kapısını çalmaya başladı ve yazılım ücretlerini tahsil etmeye başladı. Her şeyi kaçak göçek kullanan halkımız ve kurumlarımız bir anda neye uğradığını şaşırdı. Tabiki açık kaynak koduna geçmek windowsla ilerlemiş olan kurumlarda sıkıntılara yol açacaktır. Msn, solitarie vb. çok faydalı yazılımlara erişemeyen kurum çalışanları sebebiyle Pardus projesi de rafa kaldırıldı. Konu nerden nereye geldi, Oracle'da auto increment meselesini anlatacaktık demi la?!
Oracle'da auto increment yok kardeşim!... şaşırdınız değil mi? Mysql'de olan Limit de yok bu tür basit işlemler için bile sequence ve trigger oluşturmanız gerekli. Bunlar içinde ek kodlar yazmanız gerekmekte. Binlerce dolar vererek aldığınız veritabanında basit işler bile el yordamıyla manuel olarak yapılıyor.
Nasıl yapılır?!
Efendim bu Oracle tablolarını yönetmenin en iyi yolu Pl/Sql manager diye bir program. Aşağıdaki resimde ekran görüntüsü mevcut (makale okuya okuya iyice makale formatına bağladık, bkz. aşağı gibi :D ) Pl/Sql ' i internetten ortamından crackli olarak indirip kurabilirsiniz.
Pl/Sql
Efendim soldaki ağac menuden Sequence seçelim ve gelen pencereyi aşağıdaki gibi yapalım. Max- min değerler artış değerlerini belirleyelim.
Ben coderım (kodırım), kod yazmadan rahat edemem derseniz, ahanda sql benzeri kodları burada;
create or replace sequence SEQ_YAYIN
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
Bu işlemi gerçekleştirdikten sonra Trigger bölümünde artışı onaylamamız lazım. Yani her data girişte tetikleyip, alanı artıracağız.
Kodları da verelimde, psikopatlar rahat etsin;
create or replace trigger TRG_YAYIN
before insert on haber
for each row
begin
select SEQ_YAYIN.nextval into :new.YAYIN_ID from dual;
end TRG_YAYIN;
before insert on haber
for each row
begin
select SEQ_YAYIN.nextval into :new.YAYIN_ID from dual;
end TRG_YAYIN;
Evet işte böyle Oracle ile olan boğuşma yeni başlıyor :D
Gaptanın Seyir Defteri
Uz. M. Yasin ÖZSAĞLAM
Günaydın
"Hello world!" diyerek başlamak isterdim ama çok klişe olacağı için bu cümleyi kullanmak istemedim.
Yeni işimde malum web yazılımı yapacağım, karşılaştığım zorlukları, çözdüğüm problemleri her zaman bir deftere not ediyordum fakat bilgisayarcı olduğumu anladım ve blog denen naneyi artık kendi mesleki alanımdaki yazılarla renklendirmenin zamanının geldiğini düşünmeye başladım. (Nasıl bir cümle kurdum lan ben?!..)
Her zaman söylerim bir insan evladının progamcı olması için 3 önemli özelliği sağlaması gerekmektedir;
1. Bencil olma (minumum bilgi paylaşımı, az konuşma vb.)
2. Beyninde birden fazla prosesi aynı anda işleyebilme (tv izlerken kod yazabilme, iki kişiyle aynı anda konuşabilme vb.)
3. Counter Strike oynama vb. bilişim etkinliklerinde bulunmak
Gördüğünüz gibi çoğu bilgisayar programcısı adayı bu üç özelliği sağlayamaz. Dişilerin programcı olamamalarının temel nedenlerinden biri de bu üç maddeden son ikisini sağlayamamaktır. Zira "bencil" olma kriterini ziyadesiyle yerine getirmektedirler.
Bu bloğu açmamın nedeni, aşılmış problemleri yayınlamak ve kendime ait bir log tutmak olacaktır.
Bazı blog yazarları okuyucu sayısına ve istatistiklere çok takılmaktalar ve esas konudan ayrılmaktalar. Benim böyle bir sorunum olmayacağı kesin :D
Yeni işimde malum web yazılımı yapacağım, karşılaştığım zorlukları, çözdüğüm problemleri her zaman bir deftere not ediyordum fakat bilgisayarcı olduğumu anladım ve blog denen naneyi artık kendi mesleki alanımdaki yazılarla renklendirmenin zamanının geldiğini düşünmeye başladım. (Nasıl bir cümle kurdum lan ben?!..)
Her zaman söylerim bir insan evladının progamcı olması için 3 önemli özelliği sağlaması gerekmektedir;
1. Bencil olma (minumum bilgi paylaşımı, az konuşma vb.)
2. Beyninde birden fazla prosesi aynı anda işleyebilme (tv izlerken kod yazabilme, iki kişiyle aynı anda konuşabilme vb.)
3. Counter Strike oynama vb. bilişim etkinliklerinde bulunmak
Gördüğünüz gibi çoğu bilgisayar programcısı adayı bu üç özelliği sağlayamaz. Dişilerin programcı olamamalarının temel nedenlerinden biri de bu üç maddeden son ikisini sağlayamamaktır. Zira "bencil" olma kriterini ziyadesiyle yerine getirmektedirler.
Bu bloğu açmamın nedeni, aşılmış problemleri yayınlamak ve kendime ait bir log tutmak olacaktır.
Bazı blog yazarları okuyucu sayısına ve istatistiklere çok takılmaktalar ve esas konudan ayrılmaktalar. Benim böyle bir sorunum olmayacağı kesin :D
Gaptanın Seyir Defteri - 7.2.2013
Uz. M. Yasin ÖZSAĞLAM
Kaydol:
Kayıtlar (Atom)





























