Javascript’de For ile Tablo Oluşturma

Javascript for döngüsünü kullanarak satır ve sütun sayısı belirli olan herhangi bir tabloyu yapabilirsiniz.Kod yazarken size kolaylık sağlayacaktır. içerisine gerekenleri ekleterek zamandan ve koddan tasarruf edebilirsiniz.Programa kaç satır ve kaç sutun olacağını belirtmeniz yeterli.

<script>
    var a = parseInt(prompt("Kaç Satır Olacak?"));
    var b = parseInt(prompt("Kaç Sutun Olacak?"));
    document.write("<table border='1'>");
    for (var i = 1; i <= a; i++) {
        document.write("<tr>");
        for (var j = 1; j <= b; j++) {
            document.write("<td>" + i + ". * " + j + ". </td>");
        }
        document.write("</tr>");
    }
    document.write("</table>");
</script>

Ubuntu Sistemler için OrangeHRM Kurulumu

OrangeHRM İnsan kaynakları yönetimi için gerekli olan tüm şartları sağlamakta ve açık kaynak kodlu olarak dağıtılmaktadır üstelik ücretsiz bir şekilde indirip kullanabilirsiniz.Çok zengin özellikleri bulunmaktadır avrupadaki firmalar arasında popülerliği bulunmaktadır. Ücretsiz sürümü oldukça fazla özellik barındırsada Paralı sürümleri daha fazla geliştirilmiş modüller içerir ücretsiz bir şekilde kullanmaya başlayıp daha sonraki zamanlarda firma ihtiyaçlarına göre bir üst sürüme geçebilirsiniz.

Genellikle firmalar ofislerinde bulundurdukları sunucularda bu sistemi kullanırlar bu yüzden sistemi dışarıya açmanıza gerek yoktur herhangi bir siteye kurulmasınada gerek yok ofis içerisindeki ağda kullanılması insan kaynakları yöneticileri için ek güvenlik önemleri almalarını azaltacaktır.

Web server seçimini apache ve veritabanı yönetimi için ise MySQL olarak seçiyoruz.

sudo su
apt-get update && apt-get upgrade
apt-get install apache2
apt-get install mysql-server
apt-get install php5 php5-mysql

Temel LAMP Kurulumlarını geçtiğimize göre artık asıl bizim işimize yarayacak olan OrangeHRM kurulumuna başlayalım.

cd
wget http://freefr.dl.sourceforge.net/project/orangehrm/stable/3.3.2/orangehrm-3.3.2.zip
unzip orangehrm-* /var/www/html

dosyamızı html dizini içerisine açtığımızda sürüm ismi ile bir klasör oluşturduğunu göreceksiniz.Bundan kurtulmamız ve ana dizine tamamıyla taşımamız ve dosyaları görmemiz gerekiyor.

cd /var/www/html/
mv orangehrm-3.3.2 orangehrm

Son olarak klasör dizinleri ve kullanıcı ayarlarını yapalım apache için ve OrangeHRM izinlerini verelim ki sıkıntısız kurulum aşamasında işlemlerimizi yapabilelim.

chown -R www-data:www:data /var/www/html/orangehrm
chmod -R 755 /var/www/html/orangehrm

son olarak herşey yerinde gittiğini düşünüyorsanız apache yeniden başlatarak tüm bu ayarların geçerli olmasını sağlayabilirsiniz.

apt-get restart apache2

orangehrmkurulumgorsel1

Veritabanı bilgilerinizi girdikten sonra sistem tarafından otomatik olarak gerekenler yapılacaktır.Bu yüzden sizin ek bir ayar yapmanıza gerek yok

orangehrmkurulumgorsel3

OrangeHRM otomatik olarak kurulacak gereken ayarları sistem üzerinden zahmetsizce yapabilirsiniz.OrangeHRM oldukça kolay ve etkili bir uygulamadır.Eksiği yok fazlası var denilebilir tabiki paralı sürümü ile karşılaştırıldığında eksiklikleri elbette vardır ancak ilk başlarda uygulamayı denemek amacıyla kullanılabilir.

  • Çalışanların bilgilerini tutma
  • Departmanlara göre analiz yapma
  • Detaylı raporlama
  • Çalışma saatlerini belirleyip çizelge oluşturma
  • İşin tanımına göre gereken eğitimleri çalışanlara sunabilme
  • Akıllı telefon entegrasyonu
  • Çalışanların yaptığı işleri detaylı takip edebilme
  • Performans değerlendirme

Javascript ile Toplama ve Ortalama Bulma

Javascript dilinde basit algoritmaları gerçekleştirmek oldukça kolaydır.Pek çok dilde olduğu gibi javascriptdede yazacağız artık standartlaşmaya başladı diyebiliriz.Kullanıcıdan sayıları alabilmek adına prompt komutunu kullanacağız for döngüsü ile yaklaşık kaç adet sayı gireceğini kullanıcının belirlemesini istiyorum.Örnek kodumuz ise aşağıdaki gibidir.

<script>
    var sum = 0;
    var count_for = parseInt(prompt("Kaç Tane Sayı Toplanacak"));
    for (var i = 1; i <= count_for; i++) {
        var number = prompt(i + ".Sayi");
        document.write(i + ".number = " + number + "<br />");
        sum = sum + parseInt(number);
    }
    avg = parseInt(sum) / count_for;

    document.write("<br />Sum : " + sum);
    document.write("<br />Avg : " + avg);
</script>

Let’s Encrypt ile Web Server Yapılandırma

Internet Security Research Group (ISRG) tarafından yürütülen bir proje olarak geçtiğimiz aylarda karşımıza çıkmaktadır. Transport Layer Security encryption (TLS) için ücretsiz olarak SSL sertifikası sağlamaktadırlar. Let’s Encrypt kurulum sırasındaki karmaşanın önüne geçmek ve kullanıcıyı yoran bir çok işlevi otomatikleştiren bir uygulama olarak karşımıza çıkmaktadır.

Web siteleriniz için ücretsiz bir şekilde bu sertifikayı kullanabilirsiniz. Ancak bu projede tarafınıza verilecek olan sertifikanın süresi 90 gündür. Bu sürenin bitiminde sertifikanız otomatik olarak geçersiz hale gelecektir. Proje Electronic Frontier Foundation (EFF), Mozilla Foundation ve University of Michigan tarafından desteklenmektedir.

Öncelikle sisteme kurulum ile ilgili gereken paketleri indirerek başlayalım

sudo su
apt-get update && apt-get upgrade
apt-get install git
git clone https://github.com/certbot/certbot
cd certbot

Ardından klasör içerisinde aşağıdaki komutu web sitenize göre düzenleyerek veriniz.

./certbot-auto certonly -d siteadresi.com -d www.siteadresi.com --server https://acme-v02.api.letsencrypt.org/directory

Oluşturulan sertifikalar aşağıdaki dosya yolunda bulunmaktadır.

/etc/letsencrypt/live/siteadresi.com/

sertifikalar ise şu şekilde kullanılacaktır.

  • privkey.com aşağıdaki parametlerde kullanılacak olan dosyamızdır
    • Apache = SSLCertificateKeyFile
    • Nginx = ssl_certificate_key
  • cert.pem aşağıdaki parametrede kullanılacak olan dosyamızdır
    • Apache = SSLCertificateFile
  • chain.pem aşağıdaki parametrede kullanılacak olan dosyamızdır
    • Apache = SSLCertificateChainFile
  • fullchain.pem aşağıdaki parametrede kullanılacak olan dosyamızdır
    • Nginx = ssl_certificate

Apache Örnek yapılandırma

<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/html
ServerName www.yourdomain.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/siteadresi.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/siteadresi.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/siteadresi.com/chain.pem
</VirtualHost>

Nginx Örnek yapılandırma

server {
    listen 443 ssl;
    server_name www.siteadresi.com;
    ssl_certificate /etc/letsencrypt/live/siteadresi.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/siteadresi.com/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ...
}

Olacak şekilde ayarlaması yapıldığı taktirde 90 gün geçerli ücretsiz SSL tarafınıza sunulacak ve kullanıma başlayacaksınız.Yapılandırmaların geçerli olabilmesi için web server uygulamanızı yeniden başlatmanız gerekmektedir.

Apache

service apache2 restart

Nginx

service nginx restart

Peki 90 gün sonunda ne yapmamız gerekiyor ?

Telaşlanmayın http ye geçmenize gerek yok sadece SSL yenilemeniz gerekiyor bunun için ise aşağıdaki komutu verdiğiniz taktirde sorununuz çözülecektir.

./certbot-auto certonly -d siteadresi.com -d www.siteadresi.com --server https://acme-v02.api.letsencrypt.org/directory

her 3 ayda bir bu işlemi yerine getirmeniz gerekiyor.Buna çözüm olarakda cron job işimizi görecektir.

crontab -e

komutumuzu veriyoruz açılan yere aşağıdaki parametreyi ekleyelim bu parametre her 3 ayda bir çalışacak şekilde ayarlanmıştır.

30 03 01 */3 * /usr/local/bin/renew.sh >/dev/null 2>&1

Dosya: renew.sh

sudo su
cd ~ && cd letsencrypt
./letsencrypt-auto certonly -d siteadresi.com -d www.siteadresi.com --server https://acme-v02.api.letsencrypt.org/directory
service nginx restart

gereken yerleri kendi sitenize göre düzenleyebilirsiniz.(web server tipi ve site adresiniz)Çalıştığını gözlemledikten sonra rahatlıkla kullanabileceğiniz bir sistem haline gelecek ve her 3 ayda otomatik olarak yenilenecektir.Herhangi bir ek ayar yapmanıza gerek yoktur.Otomatik olarak yeni keyler yerlerini alacaktır.

PHP ile Cross-Origin Etkinleştirme

CDN yada uzak dizinden dosya kullandıran sitelerdeki en büyük sorun tarayıcıların uzak dizin hatası vermesidir. CDN tarafında tuttuğunuz dosyaları kullanıcılara bu hata yüzünden gösterilmez tarayıcı güvensiz gibi görüp kaynağa ulaşmaz bunu çözmek için ise ya Nginx kurallarına ekleme yapmanız gerekir.

Çoğu zaman bu ekleme bile yeterli gelmez yada çalışmaz header bilgisine tanımladığınız uzak dizin kullanımı tanımı geçmez bu gibi durumlarda PHP kullanarak istenilen domain adreslerinden uzak dizini kabul ettirebiliriz.

<?php
/**
 * Created by PhpStorm.
 * User: mertcan
 * Date: 28.11.2015
 * Time: 22:38
 */

// allowed origins
$allowedOrigins = array(
    '(http(s)://)?(www\.)?my\-domain\.com',
    '(http(s)://)?(www\.)?my\-domain\.com',
    '(http(s)://)?(www\.)?my\-domain\.com'
);

if (isset($_SERVER['HTTP_ORIGIN']) && $_SERVER['HTTP_ORIGIN'] != '') {
    foreach ($allowedOrigins as $allowedOrigin) {
        if (preg_match('#' . $allowedOrigin . '#', $_SERVER['HTTP_ORIGIN'])) {
            header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
            header('Access-Control-Allow-Methods: GET, PUT, POST, OPTIONS, DELETE');
            header('Access-Control-Max-Age: 1728000');
            header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
            break;
        }
    }
}

PHP sayesinde header bilgisine belirttiğiniz originsleri ekleyebilirsiniz birden çok domain tanımlaması yapabilirsiniz. Kullanıcılarınız içeriklerinizi sıkıntısız bir şekilde görebilirler