Menu sederhana pada CodeIgniter 2.0.2

Baru mengupload menu yang sangat sederhana untuk CodeIgniter di sini..

  1. disarankan menggunakan Modular Extension HMVC
  2. download di sini
  3. ekstrak
  4. rename folder menjadi main
  5. letakkan di folder modules

panggil class main dari halaman web http://servername/index.php/main

Menampilkan daftar direktori dan file

Menampilkan daftar direktori dan file di CodeIgniter 2.0.2, menggunakan directory_map() dari helper directory. Secara default fungsi ini tidak menampilkan file-file hidden. Untuk menampilkan file-file hidden pada fungsi directory_map dapat ditambahkan parameter ketiga yang bernilai TRUE.

class Files extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->helper('directory');
}
function index(){
$data = directory_map('application',FALSE);
echo 'directory:';
foreach($data as $key=>$value){
echo $key;
}
echo 'files:';
foreach($data as $key=>$values){
if(!is_array($values)){
echo $values;
}
}
}
}

Web.config ASP.Net MVC

Di ASP.NET MVC Secara default ada 2 buah Web.Config

/Views/Web.config

Berisi directive-directive yang menginstruksikan ke server web untuk mengabaikan file-file aspx di folder Views. Selain hal itu, file ini juga berisi konfigurasi yang diperlukan untuk membuat kompiler ASP .NET berjalan dengan sip dengan sintak template View nya

/Web.config

File ini tempat konfigurasi aplikasi

Connection Strings

1. PHP, MySQL

mysql_connect(‘server’,’user’,’password’);
mysql_connect_db(‘database’);

2. Visual Studio 2010, MS SQL Server Express 2010

providerName="System.Data.SqlClient" connectionString="Server=.\SQLEXPRESS;Database=xxx;Integrated Security=true;MultipleActiveResultSets=True;"

DbContext

Menggunakan DbContext dengan namespace yang berbeda dengan namespace Model, menghasilkan error berikut :

Type ‘Project.Data.Model’ could not be found. Make sure that the required schemas are loaded and that the namespaces are imported correctly. Near type name, line 1, column 74.

Masalah ini solve ketika namespace yang dipergunakan sama.

Concurrency Exception

Masalah Concurrency terjadi jika aplikasi kita di buka di beberapa browser, dan beberapa user berusaha mengupdate database pada field dan record yang sama secara bersama-sama pula. Seharusnya aplikasi mengantisipasi hal ini, karena menyebabkan data menjadi tidak konsisten.
Misalnya terdapat user A yang mengupdate data X pada suatu tempat, bersamaan dengan user B mengupdate data yang sama pada tempat yang berbeda secara bersama-sama. Ketika user A mengupdate data X menyadi data Y, maka user B belum mengetahui bahwa data X telah berubah menjadi data Y. Maka seharusnya dia tidak dapat mengupdate data tersebut, kecuali yang ditampilkan di layar sudah yang paling baru (data Y, bukan data X).
C# menggunakan DbUpdateConcurrencyException untuk menangkap eksepsi ini.
Snippet:

[HttpPost]
public ActionResult Edit(Product product)
{
try
{
if (ModelState.IsValid)
{
db.Entry(product).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return RedirectToAction("Index");
}
}
catch (DbUpdateConcurrencyException ex)
{
var entry = ex.Entries.First();
var databaseValues = (Product)entry.GetDatabaseValues().ToObject();
var clientValues = (Product)entry.Entity;
if (databaseValues.Name != clientValues.Name)
{
ModelState.AddModelError("Name", "CurrentValue" + databaseValues.Name);
}
if (databaseValues.Price != clientValues.Price)
{
ModelState.AddModelError("Price", "CurrentValue" + databaseValues.Price);
}
ModelState.AddModelError(string.Empty, "Bla bla bla");
product.Timestamp = databaseValues.Timestamp;
}
catch (DataException de)
{
ModelState.AddModelError(string.Empty, "Unable to save changes");
}
ViewBag.InstructorID = new SelectList(db.Product, "ProductId", "Name", product.Id);
return View(product);
}

QuartzNet

Lingkungan :MS Visual Studio .Net 2010 (C#)

Instalasi
Instalasi dengan perintah install-package Quartz pada Nuget, install-package log4net, hal ini akan menambahkan Referensi Quartz dan log4net pada Solution.
Job
Buat sebuah folder untuk menyimpan Job, beri nama folder tersebut Job. Di dalam folder Job, buatlah sebuah Class baru, beri nama Job1 (file Job1.cs). Class Job1 harus mengimplementasi Interface IJob.

Interface Ijob memiliki satu method bernama Execute, yang bertipe void. Buat job dalam method ini, misalnya insert ke dalam database. Contoh:

Contoh:

using Quartz;
using QuartzSchedul.Models;
namespace QuartzSchedul.Job
{
public class Job1:IJob
{
public void Execute(JobExecutionContext context)
{
Tes tes1 = new Tes {  Name = "Tes1" };
DataContext dcontext = new DataContext();
dcontext.Tes.Add(tes1);
dcontext.SaveChanges();
}
}
}

Konfigurasi
Pada Web.Config, tambahkan key sebagai berikut:

<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
    <section name="quartz" type="System.Configuration.NameValuesSectionHandler, System, Version=1.0.5000.0, Culture=neutral, Public Key Token=b77a5c561934e089" />
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
  </configSections>
  <quartz>
    <add key="quartz.scheduler.instanceName" value="QuartzScheduler" />
    <add key="quartz.threadPool.threadCount" value="10" />
    <add key="quartz.threadPool.threadPolicy" value="2" />
    <add key="quartz.jobStore.misfireThreshold" value="6000" />
    <add key="quartz.jobStore.type" value="Quartz.simpl.RAMJobStore,Quartz" />
  </quartz>
  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter,CommonLogging">
        <arg key="showLogName" value="true" />
        <arg key="showDataName" value="true" />
        <arg key="level" value="DEBUG" />
        <arg key="dateFormat" value="HH:mm:ss:fff" />
      </factoryAdapter>
    </logging>
  </common>
<add key=”job1” value=”5 * * * * ?”> dalam  <AppSettings>, sehingga kurang lebih menjadi seperti ini:
<configuration>
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
<add key="job1" value="1 * * * * ?" />
</appSettings>

Pada Global.asax, tambahkan scheduler dan daftarkan Job yang telah dibuat pada scheduler.

IScheduler scheduler = null;
ISchedulerFactory factory = new StdSchedulerFactory();
scheduler = factory.GetScheduler();
JobDetail job1 = new JobDetail("job1","jobGroup",typeof(Job1));
string cronjob1 = ConfigurationManager.AppSettings["job1"];
CronTrigger trigger = new CronTrigger("trigger", "triggerGroup", "job", "jobGroup", cronjob1);
scheduler.AddJob(job1,true);
scheduler.ScheduleJob(trigger);

Free Software

Free Software Licence

Free Software Licence adalah sebuah lisensi software yang memberikan hak untuk memodifikasi dan mendistribusikan ulang software tersebut.

Gratis versus Libre

Free berarti gratis, yaitu harga 0, Sedangkan Libre berarti tanpa restriksi(batasan). Kata Richard Stallman , “think free as free speech, not a free beer”

Proposal Acara Pengenalan Sabily

بِسْمِ اللَّهِ الرَّحْمٰنِ الرَّحِيمِ

PROPOSAL ACARA PENGENALAN SABILY

Latar Belakang

Saat ini, masyarakat akrab dengan teknologi informasi dan menggunakan produk proprietary yang canggih dan sangat membantu. Produk proprietary adalah produk yang dibeli dengan syarat dan ketentuan yang ketat. Sayang sekali masyarakat banyak yang belum memahami bahwa produk proprietary yang mereka gunakan melarang mereka melakukan banyak hal, seperti menggandakan, mempelajari kode sumber, dan memodifikasinya.

Bagi dunia pendidikan, produk proprietary dapat mematikan kreatifitas, karena para pelaku pendidikan hanya berperan sebagai pengguna dan pembeli saja . Di sisi lain banyak juga yang tidak sadar bahwa produk-produk tersebut harus membeli, sehingga secara tidak sadar mereka telah melanggar hukum.

Pengenalan Sistem Operasi Sabily

Sabily adalah Sistem Operasi yang dirancang untuk kaum muslimin. Sistem ini dikembangkan oleh cendekiawan muslim dari berbagai negara, antara lain Perancis, Tunisia, Malaysia, dan Indonesia. Sabily tidak berafiliasi dengan politik atau sekte tertentu dalam agama Islam. Sistem Operasi ini bersifat bebas, artinya: boleh dipergunakan oleh siapa saja, boleh dibaca kode sumbernya, dan boleh dimodifikasi kode sumbernya apabila berkenan. Berbeda dengan Sistem Operasi proprietary, yang bersifat tidak bebas, yaitu tidak semua orang bebas menggunakan, sebagai contoh apabila anda membeli MS Windows, maka program tersebut hanya diperbolehkan dipakai untuk anda saja, tidak boleh digandakan, karena berarti anda melawan hukum. Anda juga tidak akan pernah mendapatkan kode sumbernya, karena kode sumber merupakan rahasia perusahaan. Untuk diketahui bahwa mengetahui kode sumber adalah suatu hal yang penting bagi pengguna perangkat lunak, sebagaimana pentingnya pasien mengetahui kandungan obat yang akan ditelannya, karena dari kode sumber kita bisa menilai apakah program yang kita pergunakan berbahaya atau tidak bagi data kita.

Sebagaimana Sistem Operasi lainnya, Sabily dapat dipergunakan untuk bekerja, belajar dan bermain.

Sebagai alat untuk bekerja, Sabily telah terbundle dengan aplikasi-aplikasi perkantoran, yaitu Libre Office. Aplikasi Libre Office merupakan kumpulan aplikasi SpreadSheet, Word Processor, Presentation. Jika masyarakat pada umumnya mengenal aplikasi MS Office, maka aplikasi Libre Office dapat melakukan pekerjaan yang hampir sama dengan MS Office, kalaupun terdapat perbedaan, hal tersebut adalah karena kedua hal tersebut merupakan produk yang berbeda. Bahkan MS Office yang merupakan produk dari institusi Microsoft yang bersifat komersil memiliki perbedaan yang mencolok dari satu versi terhadap versi lainnya.

Sabily dilengkapi dengan Browser Internet. Sebagai Software Islam, Sabily dilengkapi dengan filter dari materi yang tidak baik, misalnya pornografi.

Sebagai alat untuk belajar, Sabily dilengkapi dengan program edukasi, antara lain adalah game edukasi, aplikasi-aplikasi matematika, al quran, dan lain sebagainya.

Bentuk dan Tema Kegiatan

Kegiatan ini berbentuk Pengenalan dengan mengambil Tema:

PENGENALAN SABILY, SISTEM OPERASI UNTUK UMAT ISLAM”

Maksud dan Tujuan

Maksud dari Penyelenggaraan Acara ini adalah untuk memberikan informasi dan pengenalan kepada guru dan staf TU agar mereka dapat mengenal lebih jauh tentang apa yang dimaksud dengan aplikasi Open Source dan Sistem Operasi Sabily, sekaligus dapat mendorong agar berlatih dan terampil menggunakan untuk keperluan sehari-hari.

Tujuan dari penyelenggaraan Pelatihan ini adalah meningkatkan SDM pelaku pendidikan Islam dan dapat menggunakan produk yang legal, berkualitas, dan halal.

Peserta

  1. Guru

  2. Staff TU

Waktu dan Tempat

Tergantung kesepakatan

Penutup

Demikian Proposal ini kami sampaikan sebagai bahan pertimbangan dan acuan penyelenggaraan Acara sebagaimana dimaksud, atas perhatian dan kerja sama yang baik disampaikan terima kasih.

Dibuat di : Surabaya

Pada tanggal : 24 Mei 2011

Komunitas Sabily Indonesia

Membaca input array menggunakan jquery

Membaca input array pada menggunakan jquery.
:input adalah semua komponen input.
[name='tx[]‘] adalah attribut dari input
Ketika tombol “Button” ditekan, maka akan menampilkan isi dari masing-masing text bergantian

<html>
<head>
<title>Input Array</title>
<link type=”text/css” href=”css/smoothness/jquery-ui-1.8.custom.css” rel=”stylesheet” />
<script type=”text/javascript” src=”smooth/js/jquery-1.4.2.min.js”></script>
<script type=”text/javascript” src=”smooth/js/jquery-ui-1.8.custom.min.js”></script>
<script type=”text/javascript”>
$(document).ready(function(){
$(“#btn”).click(function(){
$(“:input[name='tx[]‘]”).each(function(){
alert($(this).val());
});
});
});
</script>
</head>
<body>
<input type=”text” id=tx[] name=tx[] value=”satu”>
<input type=”text” id=tx[] name=tx[] value=”dua”>
<input type=”text” id=tx[] name=tx[] value=”tiga”>
<input type=”text” id=tx[] name=tx[] value=”empat”>
<input type=”text” id=tx[] name=tx[] value=”lima”>
<button id=btn>Button</button>
</body>
</html>

Follow

Get every new post delivered to your Inbox.