Showing posts with label open source. Show all posts
Showing posts with label open source. Show all posts

Tuesday, 14 June 2016

Shopify vs Magento - e-Commerce Platform Distinctions?

Friday, 23 October 2015

Instalasi Font Baru di Linux Ubuntu

Jika kalian bergelut di bidang design, kalian akan butuh menginstall fonts-fonts baru dari internet. Menginstall fonts di Linux tidak sama ketika kita menginstall fonts di Windows. Kalau di Windows kita hanya perlu double klik fail .ttf-nya kemudian klik Install, selesai. Di versi-versi terbaru Linux, kita perlu mengcopy fonts baru yang ingin kita install ke folder fonts-nya. Tapi jangan khawatir, caranya sangat gampang. Ikuti saja langkah-langkah berikut ini

1. Buatlah suatu direktori baru menggunakan permission root pada folder fonts Linux kalian. Kalau saya menggunakan folder newfonts, silahkan saja kalian ubah sesuai selera masing-masing. Di terminal kalian cukup memasukkan perintah berikut ini

sudo mkdir /usr/share/fonts/truetype/newfonts 

2. Setelah kalian sudah mendownload dan mengekstrak fail-fail fonts kalian, copy saja langsung ke folder baru di direktori fonts kalian

sudo cp -a [Folder Ekstrak]/*.ttf /usr/share/fonts/truetype/newfonts

Saya baru saja mendownload fonts Roboto dari Google, dan saya ekstrak di folder Downloads saya, jadi perintah di atas untuk kasus saya menjadi

sudo cp -a Downloads/Roboto/*.ttf /usr/share/fonts/truetype/newfonts

3. Langkah terakhir adalah kita memberitahu Linux bahwa ada konten baru yang bakal digunakan untuk kedepannya. Dengan langkah ini aplikasi-aplikasi seperti Inkscape dapat menggunakan fonts yang baru kita download dan pasang di Linux kita. Ketikkan perintah ini di Terminal kalian.

fc -cache -f -v 

Sudah selesai, selamat berkarya dengan fonts baru kalian.



Monday, 23 February 2015

Cara Set Default App di Ubuntu 14.10

Ketika kita memiliki lebih dari saru aplikasi yang dapat digunakan untuk membuka/menjakankan suatu program, kita biasanya memiliki selera masing-masing dalam memilih aplikasi terbaik untuk digunakan.

Men-set suatu aplikasi default di Ubuntu 14.10 sangatlah mudah. Kalian hanya perlu klik kanan program/fail yang ingin dijalankan/dibuka > Properties >  tab Open With > pilih aplikasi pilihan kalian > klik Set as default.



Set as default
Set as default



Sunday, 15 February 2015

Instalasi OpenCV 2.4.9 di Ubuntu 14.10

Halo semuanya, kali ini saya ingin berbagi cara bagaimana kita menginstall OpenCV 2.4.9 di Ubuntu 14.10. Kalau misal kalian pengguna windows, kalian bisa melihat postingan saya tentang cara menginstall OpenCV 2.4.9 di Windows atau menghubungkan OpenCV (khusus 2.2) di dengan Code::Blocks.

Setelah mengotak-ngatik dan mengikuti beberapa tutorial tentang cara menginstall OpenCV 2.4.9 dari situs resminya, gagal, install ulang OS (tidak usah saya jelasin kenapa bisa sampai install ulang), akhirnya saya bisa juga menggunakan OpenCV 2.4.9 di Ubuntu 14.10.


Jika kalian menggunakan Ubuntu pada versi-versi sebelumnya, kalian bisa mencoba menggunakan tutorial ini untuk menginstall OpenCV dan dependency-dependency-nya. Akan tetapi, setelah baca tutorial oleh Dan Nguyen, ternyata ada masalah antara OpenCV dengan ffmpeg. Setelah mengikuti tutorialnya, OpenCV sudah bisa digunakan.

Itu adalah cara pertama yang saya gunakan dan berhasil. Namun ternyata ada cara lebih mudah.

Repository Ubuntu sudah menyediakan beberapa library OpenCV yang bisa digunakan untuk melakukan operasi-operasi pemrosesan citra digital. COba kalian buka Synaptic package manager (kalau belum ada, silahkan install melalui ubuntu software center) dan cari "opencv". Install-lah package-package yang ditemukan.

Synaptic Package Manager - OpenCV
Synaptic Package Manager - OpenCV

Nah, untuk membuat program pemrosesan citra digital menggunakan OpenCV, install-lah Geany. Geany adalah IDE yang kita bisa gunakan untuk membuat program C/C++ di Ubuntu. Silahkan cari dan install saja di Ubuntu Software Center.

Note: Pastikan sudah menginstall C/C++ compiler, untuk mengecek silahkan buka terminal dan ketikkan perintah g++. Jika tidak ditemukan perintah tersebut, berarti kalian belum menginstall compilernya.

Setelah menginstall Geany dan C/C++ compiler, buatlah suatu direktori untuk menyimpan program kalian.

Buatlah sebuah fail cpp dan siapkan suatu citra di dalam direktori tersebut. Masukkan kodingan berikut di dalam fail cpp yang sudah kalian buat menggunakan Geany.

#include "iostream"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"


using namespace std;
using namespace cv;

int main() {
Mat image;// new blank image
image = imread("image.jpeg");// read the file
namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// create a window for display.
imshow( "Display window", image );// show our image inside it.
waitKey(0);// wait for a keystroke in the window
return 0;

}



Nah, sebelum kalian compile, kalian harus memberi tahu Geany untuk mengikutsertakan library OpenCV yang sudah kalian install sebelumnya ketika membuild program cpp kalian. Caranya adalah klik Set Build Command (klik tombol panah di samping icon batu bata). Di isian Build, tambahkan `pkg-config --libs opencv`.

Compile (F9) dan jalankan (F5) program kalian dan hasilnya akan seperti ini:

OpenCV 2.4.9 di Ubuntu 14.10

Sudah selesai deh,, gampang kn? :)

Sumber



Friday, 13 February 2015

Open Source DoS/DDoS Analyzer / Mitigation Tool

FastNetMon:
           - high performance DoS/DDoS analyzer with sflow/mirror support and load analyzer builded on top of PF_RING.





FastNetMon - high performance DoS/DDoS and netflowk load analyzer builded on top of multiple packet capture engines (PF_RING, sFLOW, Netflow, PCAP).

What we do? We can detect hosts in our own network with big amount of packets per second/bytes per second or flow per second incoming or outgoing from certain host. And we can call external script which can send notify, switch off server or blackhole this client.
 

Features:
+ Can process incoming and outgoing traffic
+ Can trigger block script if certain IP load network with big amount of packets per second
+ Can trigger block script if certain IP load network with big amount of bytes per second
+ Can trigger block script if certain IP load network with big amount of flows per second
+ VLAN untagging
+ MPLS traffic processing
+ L2TP decapsulation of nested packets
+ PF_RING ZC/DNA support (wire speed processing on tens of MPPS but need license)
+ Can process sFLOW v5
+ Can work on mirror/SPAN ports
+ Can work on server/soft-router
+ Can detect DoS/DDoS in 1-2 seconds
+ Tested up to 10GE with 5-6 Mpps on Intel i7 2600 with Intel Nic 82599

Download Link : https://github.com/FastVPSEestiOu/fastnetmon


DDOSMON:
                  is a network analysis platform which is designed to find anomalous network patterns such as DDoS attacks and act on them automatically. It can do this either by directly sniffing or acting on netflow data export streams.

It is used by a few hosting providers and datacenters.




Program that uses low level linux packet sniffing in incoming network traffic for monitoring possible network attacks and reacting to them by alerting and triggering user defined self defence mechanisms.
With a ncurses interface you can monitor network traffic live and watch recent events. Logs are saved to log folder, any ddos attack detection send an email to the user.
It can classify following attacks:
  • SYN Flood
  • UDP Flood
  • ICMP Flood
Any other attack with massive amount of traffic or packet would still be detected.





Download Link : https://github.com/edubart/ddosmon

or

https://bitbucket.org/tortoiselabs/ddosmon/overview



Tuesday, 3 February 2015

Mengubah Repository Linux Menjadi Repository Lokal

Hlo teman-teman, pengen nge-share lagi nihh.. Baru-baru ini saya menginstall Deepin Linux, karena melihat UI cantiknya, dan saya juga mulai tertarik ke yang berbasis open source. Instalasi OS ini sangat mudah dan tidak make yang ribet-ribet. Hsilnya juga cantik kok.



Nah, kendala pertama yang ane hadapin ketika menggunakan Deepin Linux adalah,, ketika saya ingin mengistall package-package baru menggunakan perintah sudo apt-get install [nama package], hasilnya adalah seperti ini:

E: GPG error: http://mirrors.love4taylor.org trusty InRelease: Clearsigned file isn't valid, got 'NODATA' .....

Inti dari permasahalan ini tak lain adalah repository dari Linuxnya. Karena satu dan lain hal yang saya belum mengerti, Linux tidak bisa download dan install beberapa package, seperti r-base dll. Akhirnya saya bertanya ke teman saya yang sudah install Deepin Linux. Solusinya sekarang sudah dapet dan masalahnya pun terpecahkan. Dan sekarang saya ingin bagi-bagi nihh :D

Backup Daftar Repository Linux


Buka Terminal kalian (Ctrl+Alt+T), kemudian login menggunakan perintah sudo su. Kemudian lakukan backup daftar repository-nya menggunakan perintah sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup.


Ganti daftar Repository Linux dengan Repository Lokal


Buka daftar repository di text editor menggunakan perintah gedit /etc/apt/sources.list. Hapus daftar tersebut dan ganti dengan di bawah ini:


deb http://kambing.ui.ac.id/ubuntu/ trusty main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ trusty-updates main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ trusty-security main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ trusty-backports main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://komo.padinet.com/ubuntu/ trusty main restricted universe multiverse
deb http://komo.padinet.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://komo.padinet.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://komo.padinet.com/ubuntu/ trusty-backports main restricted universe multiverse
deb http://komo.padinet.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb ftp://ftp.itb.ac.id/pub/ubuntu trusty main restricted universe multiverse
deb ftp://ftp.itb.ac.id/pub/ubuntu trusty-updates main restricted universe multiverse
deb ftp://ftp.itb.ac.id/pub/ubuntu trusty-security main restricted universe multiverse
deb ftp://ftp.itb.ac.id/pub/ubuntu trusty-backports main restricted universe multiverse
deb ftp://ftp.itb.ac.id/pub/ubuntu trusty-proposed main restricted universe multiverse

deb http://dl2.foss-id.web.id/ubuntu/ trusty main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu/ trusty-updates main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu/ trusty-security main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu/ trusty-backports main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu/ trusty-proposed main restricted universe multiverse

kemudian save (Ctrl+S).

Waktunya Untuk Meng-Update


Nah tahap terakhir adalah meng-update, tapi bukan update status yakk :P. Balik ke terminal, ketikkan perintah sudo apt-get update. Dia akan melakukan semacam update package ntar. :)


Sudah dehh,, kalian sekarang bisa menginstall package-package yang kalian inginkan. Selamat mencoba :)

Thursday, 16 October 2014

List of Open Source computer software programs

Some of the most useful computer software are given below for everyone to understand and download:
Firefox web browser: Browse the web with this awesome web browser. It's not only open source but also a product of Non Profit Organization(Mozilla Corporation).
Mozilla Thunderbird: Read and send email directly from your desktop.
RSSOwl Newsreader: Get latest news directly without searching or browsing websites.
VLC media player: Play your favorite music or videos.
GIMP: Edit or create photos, it offers many great features.
OpenOffice: Create and edit documents, presentations, spreadsheets and many more. It is compatible with file formats used by Microsoft Office.
Miro Video Converter: Convert videos to many different formats including Android, iPhone.
Miro: Awesome music and video player, allows you to search videos directly from it, browse websites, download torrents, listen to podcast.
PeaZip: Create and extract archived files.
Notepad++ text editor: A very useful text editor that allows files to be opened in tabs, advanced search and replace, auto completion and you can customize it by downloading additional plugins.
Ubuntu Operating System: Linux distribution which is easy to use, configure and learn. If you wish to switch to Linux then it's simple with Ubuntu.

Play games

There are many free games that you can download and play. Some of them which i like are:
Supertuxkart: Solve challenges and compete with others.

Thursday, 22 May 2014

Android Tutorial - Membuat Chart Menggunakan AChartEngine

Salah satu fitur yang penting dan populer dalam aplikasi mobile adalah visualisasi data. Data dapat divisualisasikan dalam berbagai caranya, salah satunya adalah menggunakan chart. Kali ini saya ingin berbagi bagaimana caranya membuat chart, khususnya line chart menggunakan library AChartEngine. Library ini dapat di unduh dan digunakan secara gratis (open source) di sini.


  1. Buat projek baru.
  2. Copy library AChartEngine yang sudah di unduh dan paste di folder libs projek kalian.
  3. Pada layout yang ingin kalian beri chart (nama layout saya: activity_chart.xml), buat kode xml-nya menjadi seperti ini. Di sini saya buat chartnya berukuran satu layar penuh.
  4. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".ChartActivity"
        android:id="@+id/layout"
        android:orientation="vertical"
        android:background="#fff" >
    
    
    </LinearLayout>
  5. Pada kodingan activity kalian (nama activity saya: ChartActivity.java), buat kode java-nya menjadi seperti ini.
  6. package com.example.linechartmodule;
    
    import org.achartengine.ChartFactory;
    import org.achartengine.GraphicalView;
    import org.achartengine.chart.PointStyle;
    import org.achartengine.model.SeriesSelection;
    import org.achartengine.model.XYMultipleSeriesDataset;
    import org.achartengine.model.XYSeries;
    import org.achartengine.renderer.XYMultipleSeriesRenderer;
    import org.achartengine.renderer.XYSeriesRenderer;
    import org.achartengine.tools.ZoomEvent;
    import org.achartengine.tools.ZoomListener;
    
    import android.app.Activity;
    import android.graphics.Color;
    import android.graphics.Paint.Align;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.Toast;
    
    public class ChartActivity extends Activity {
    
     private GraphicalView mChart;
    
    
      @Override
         protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_chart);
            
             OpenChart();
         }
        
      private void OpenChart()
         {
          //Definisikan nilai-nilai yang ingin
       //divisualisasikan ke dalam chart
           int x[]={10,18,32,21,48,60,53,80,18,32,21,48,60,53,
             80,18,32,21,48,60,53,8,8,3,2,4,6,3,0,1,3,2,4,6};
          
    
           // Create XY Series for X Series.
          XYSeries xSeries=new XYSeries("X Series");
          
    
          //  Adding data to the X Series.
          for(int i=0;i<x.length;i++)
          {
           xSeries.add(i,x[i]);
          }
    
             // Create a Dataset to hold the XSeries.
          
          XYMultipleSeriesDataset dataset=new XYMultipleSeriesDataset();
          
           // Add X series to the Dataset.   
          dataset.addSeries(xSeries);
          
          
           // Create XYSeriesRenderer to customize XSeries
    
          XYSeriesRenderer Xrenderer=new XYSeriesRenderer();
          Xrenderer.setColor(Color.GREEN);
          Xrenderer.setPointStyle(PointStyle.DIAMOND);
          Xrenderer.setDisplayChartValues(true);
          Xrenderer.setLineWidth(2);
          Xrenderer.setFillPoints(true);
          
          
          // Create XYMultipleSeriesRenderer to customize the whole chart
    
          final XYMultipleSeriesRenderer mRenderer=new XYMultipleSeriesRenderer();
          
          mRenderer.setChartTitle("Judul/Nama Chart");
          mRenderer.setXTitle("X Values");
          mRenderer.setYTitle("Y Values");
          
          //Tambahkan tombol Zoom
          mRenderer.setZoomButtonsVisible(true);
          
          //Kita set 0 agar kita bisa membuat label kita sendiri
          mRenderer.setXLabels(0);
          
          //Agar chart bisa kita geser, kita aktifkan pan
          mRenderer.setPanEnabled(true);
          
          //Jika kita ingin membatasi user menggeser dari koodinat mana sampai mana,
          //kita set panlimit(xMinPanCoor, xMaxPanCoor, yMinPanCoor, yMaxPanCoor)
          mRenderer.setPanLimits(new double[] {0,100,-100,100});
          
          //Agar chart bisa kita zoom, kita aktifkan zoom
          mRenderer.setZoomEnabled(true);
          
          //Kita set biar ada grid yang tampak
          mRenderer.setShowGrid(true);
          
          //Set warna chart, label, axis
          mRenderer.setApplyBackgroundColor(true);
          mRenderer.setBackgroundColor(Color.WHITE);
          mRenderer.setMarginsColor(Color.WHITE);
          mRenderer.setAxesColor(Color.BLACK);
          mRenderer.setLabelsColor(Color.BLACK);
          mRenderer.setXLabelsColor(Color.BLACK);
          mRenderer.setYLabelsColor(0, Color.BLACK);
          
          mRenderer.setXLabelsAlign(Align.CENTER);
          
          mRenderer.setClickEnabled(true);
         
          //Jika kita ingin label hanya ada pada range/nilai tertentu
          //Disini saya set label hanya ada setiap tiga nilai value dalam chart
          for(int i=0;i<x.length;i++)
          {
           if (i%3 == 0)
            {
             mRenderer.addXTextLabel(i, "text"); //label bisa angka, bisa text juga
            }
          }
          
            // Adding the XSeriesRenderer to the MultipleRenderer. 
          mRenderer.addSeriesRenderer(Xrenderer);
       
          
          LinearLayout chart_container=(LinearLayout)findViewById(R.id.layout);
    
        // Creating an intent to plot line chart using dataset and multipleRenderer
          
          mChart=(GraphicalView)ChartFactory.getLineChartView(getBaseContext(), dataset, mRenderer);
          mChart.setBackgroundColor(Color.WHITE);
          
          //Di sini kita buat jika user mengklik suatu nilai values dalam chart,
          //akan nampil Toast nilai yang diklik user
    
          mChart.setOnClickListener(new View.OnClickListener() {
        
        @Override
        public void onClick(View arg0) {
         // TODO Auto-generated method stub
         
         SeriesSelection series_selection=mChart.getCurrentSeriesAndPoint();
         
         if(series_selection!=null)
         {
          int series_index=series_selection.getSeriesIndex();
          
          String select_series="X Series";
          if(series_index==0)
          {
           select_series="X Series";
          }else
          {
           select_series="Y Series";
          }
          
          //String month=mMonth[(int)series_selection.getXValue()];
          
          int amount=(int)series_selection.getValue();
          
          Toast.makeText(getBaseContext(), select_series+"in: "+amount, Toast.LENGTH_LONG).show();
         }
        }
       });
          
    
     // Masukkan chart ke dalam linear layout yang sudah dibuat
          chart_container.addView(mChart);
          
          
         }
    
     }
    
Sudah deh, hanya sampai sini doang ko, gampang bukan? :)

Hasilnya nanti akan seperti ini

Line Chart dengan AChartEngine
Line Chart

Zoom In Line Chart dengan AChartEngine
Zoom In

Zoom Out Line Chart dengan AChartEngine
Zoom Out

Salam Terraligno


Monday, 19 May 2014

Android Tutorial - Cara Mendapatkan MD5 Fingerprint Aplikasi Android Kita

Halo semuanya, kali ini saya ingin membahas tentang cara gampang mendapatkan MD5 Fingerprint aplikasi Android kita. Untuk apa kita membutuhkan MD5 Fingerprint? Salah satu alasan yang bagus mengapa kita harus mengetahui data ini adalah untuk mendapatkan API Key Google Maps.


Oke, langsung saja kita mulai.

Ada beberapa orang yang mengklaim cara untuk mendapatkan MD5 Fingerprint ini cukup dengan
pergi ke Window - Preferences - Android - Build. Dan simsalabim dapat yang seperti ini nih gan

MD5 Fingerprint
MD5 Fingerprint
Sumber 
Tetapi kalau Anda bernasib sama seperti saya, kalian akan melihat jendela Preferences - Android - Build kalian akan seperti ini...

Preferences
Preferences
Jangan nanya mengapa malah hasilnya seperti ini *kayaknya sih beda versi SDK  gan*

Alternatifnya apa? Kalian bisa saja buka cmd dan ngetik-ngetik beberapa keyword seperti yang dijelaskan di sini. Tapi karena saya malas buka CMD setiap kali saya ingin tahu MD5 fingerprint aplikasi saya, saya coba cari solusi laen.

Alhamdulillah sih dari tutorial ini saya dapat pencerahan. Caranya gini gan (bagi kalian yang tidak mau repot-repot baca bahasa inggris)
  1. Buka Help - Install New Software - Work with: http://keytool.sourceforge.net/update, tunggu sampai Eclipse terhubung dengan URL tsb, kemudian centang Keytool, klik Next/Finish sampai semua proses selesai. Jika kalian ditanyakan apakah anda percaya dengan konten dari URL tsb, klik Yes atau semacamnya saja.
  2.  
    Note: Ini akan secara otomatis akan mengupdate Eclipse kalian ke versi 21.1, dan Android SDK platofrm-tools kalian menjadi 16.0.2
  3. Tunggu sampai semua proses selesai dikerjakan. Jika sudah, restart lah Eclipse kalian.
  4. Kalian harus membuat keystore terlebih dahulu. Caranya klik menu Keytool Create New Certificate, kemudian isi isiannya. Jika sudah tekan Finish.
  5. Klik menu Keytool Open Keystore -  Cari keystore yang sudah kalian buat barusan dan masukkan password yang tadi kalian berikan. Nanti akan muncul jendela baru, tinggal kalian klik, daaaaaaaaaaan....
MD5 Signature
MD5 Signature
Sudah dehh, lebih gampang seperti ini kan? :) Happy coding everyone :)


Saturday, 29 March 2014

OpenCV Tutorial - Menghubungkan/Me-link OpenCV dengan CodeBlocks

Semester ini saya ditawari, dan menerima, untuk menjadi asisten praktikum salah satu mata kuliah Ilmu Komputer, yaitu Pengantar Pengoahan Citra Digital. Mata kuliah ini intinya tentang , kalau saya mengutip dosen koordinator sekaligus pembimbing akhir saya, bagaimana kita membuat komputer “melihat”. Mungkin akan saya post tentang mata kuliah ini lain kali :p.

OpenCV
Sumber: http://en.wikipedia.org
Yang sebenarnya ingin saya post sekarang adalah tentang menginstall dua software yang digunakan dalam praktikum ini. Yaitu OpenCV (Open ComputerVision) dan CodeBlocks. Versi yang saya gunakan di praktikum ini adalah OpenCV 2.2 dan CodeBlocks 12.11. Untuk CodeBlocks bisa Anda download di sini. Untuk OpenCV bisa diunduh di sini.


Perlu diperhatikan bahwa banyak installer OpenCV memiliki isi folder directory yang berbeda-beda. Maka dari itu, jika Anda ingin mengikuti tutorial ini, silahkan unduh dari link ini.

Ok, jika Anda sudah download semuanya, silahkan saja diinstall seperti biasa. Yang perlu diingat adalah bahwa ketika Anda mengisntall OpenCV, centang opsi Add OpenCV to the system path for all users, atau semacamnya.Selanjutnya tinggal Next, next, ampe install/finish saja.

Add OpenCV to the system path for all users
Add OpenCV to the system path for all users
Nah, sekarang di CodeBlocksnya, ikuti langkah-langkah ini (asumsi: direktori instalasi OpenCV: C:\OpenCV2.2):

  1. Klik Settings,
  2. Pilih Compiler...,
  3. Pilih tab Linker settings,
  4. Klik Add,
  5. Pergi ke direktori C:OpenCV2.2\lib, pilih semua yang ada di dalam folder itu (Ctrl+A), Klik Open,
  6. Linker settings, OpenCV+CodeBlocks
    Linker settings, OpenCV+CodeBlocks
  7. Pilih tab Search directories,
  8. Di dalam tab Search directories, pilih tab Compiler,
  9. Klik Add
  10. Tambahkan directory:
  11. C:\OpenCV2.2\include, C:\OpenCV2.2\include\opencv, C:\OpenCV2.2\include\opencv2
    Search directories - Compiler, OpenCV+CodeBlocks
    Search directories - Compiler, OpenCV+CodeBlocks
  12. Di dalam tab Search directories, pilih tab Linker,
  13. Klik Add,
  14. Tambahkan directory:
  15. C:\OpenCV2.2\lib
    Search directories - Linker, OpenCV+CodeBlocks
    Search directories - Linker, OpenCV+CodeBlocks
  16. Restart OpenCV (colse/tutup terus buka lagi).
Sudah, harusnya sekarang OpenCV sudah bisa digunakan di CodeBlocks. Sekian saja dari saya kali ini, terima kasih ;)

Saturday, 15 March 2014

Android Tutorial - Menambah Fitur Share pada ActionBar

Halo semua, kali ini saya ingin kembali berbagi mengenai Android development. Sebagaimana yang kita ketahui, kan sudah banyak ya, aplikasi yang menyediakan fitur share content. Nah kali ini, saya ingin berbagi bagaimana caranya kita dapat mengimplementasikan fitur sharing di ActionBar aplikasi kita. Kurang lebih mirip-mirip seperti ini lah hasilnya.

Sharing pada ActionBar
Sharing pada ActionBar
Sumber Gambar
Ok langsung saja kita mulai.

1. Buka Eclipse atau ADT kalian dan buatlah projek baru. Pastikan Minimum SDK-nya 14 (IceCream Sandwich) ya..

2. Pada fail res > menu > main.xml, ubah isinya menjadi seperti kodingan di bawah ini

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:id="@+id/action_share"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:actionProviderClass="android.widget.ShareActionProvider"/>

</menu>

Ini adalah konfigurasi untuk menampilkan Intent untuk sharing. Kalian tidak perlu memikirkan kemana saja aplikasi kalian akan mengirimkan konten yang akan di-share, ShareActionProvider yang akan mengurus hal tersebut, dengan kata lain: otomatis gan. Kemudian penjelasan atribut showAsAction yang gampangnya seperti ini, dia akan tampil pada action bar jika ada ruang/space yang cukup untuknya.

3. Pada MainActivity.java ubahlah kodingan di dalam fungsi onCreateOptionsMenu menjadi sebagai berikut:

// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);

MenuItem shareItem = (MenuItem)menu.findItem(R.id.action_share);

ShareActionProvider mShare = (ShareActionProvider)shareItem.getActionProvider();

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Text to Share");

mShare.setShareIntent(shareIntent);


return true;

Ok, yang kita lakukan di sini adalah membuat suatu Intent yang akan melakukan aksi mengirim (ACTION_SEND) suatu konten bertipe text/plain. Dan di kodingan atas, kita tambahkan suatu text berisi "Text to Share" yang merupakan konten yang akan kita kirim. Setelah itu kita serahkan pada ShareActionProvider untuk mengirimkan konten tersebut melalui salah satu dari berbagai aplikasi-aplikasi yang dapat digunakan untuk share konten.

Ketika kalian jalankan aplikasi kalian, hasilnya akan seperti ini..


Contoh Share pada Action Bar
Contoh Share pada Action Bar


Contoh Share pada Action Bar dengan aplikasi Messaging
Contoh Share pada Action Bar
dengan aplikasi Messaging

Ok, sampai situ saja dulu ya, semoga ini bermanfaat :)

Sunday, 22 December 2013

Rekomendasi Music dan Sound Effect Libraries

Halo semuanya, sudah lama nih g ngepost d blog tercinta ini lagi.. Maklum, sibuk dengan tugas akhir #modus :P.

Kali ini saya ingin berbagi mengenai sumber resource yang bisa dibilang "open source". Apa itu?

Pernah g kalian mencoba bikin game, tapi stuck di sound effect, atau backsound, atau yang semacamnya gtu? Opsinya sih ada dua dalam menangani masalah ini, yaitu:

1. Bikin sendiri sound-nya, atau
2. Nyari di internet.

Untuk kali ini sih saya pengen share tentang opsi kedua.


Di internet sih sebenarnya sudah banyak sekali situs-situs yang menyediakan sound effect, musik, dll. Entah yang buat dimasukkan ke game, film pendek, dll. Namun pertanyaannya adalah:

Bagaimana masalah LICENSE (a.k.a LISENSI)-nya???

Saya yakin ada diantara kalian yang tidak ingin terlibat dalam masalah hukum pembajakan kekayaan intelektual. Bisa ribet dahh urusan yang kaya begituan.. Ya ga? ya ga?

Nah, makanya di sini saya berusaha untuk men-share beberapa situs yang menurut saya baik banget dalam memberikan sound-sound ini. Dan sound-sound-nya INSYA ALLAH legal gans :). Lisensinya pun g ribet, ada yang diberikan secara CUMA-CUMA, ada yang cuma minta kita MEMASUKKAN NAMA AUTOHOR-nya ketika kita menggunakan sound-nya, dll.

Ini dia daftarnya:

1. Opengameart.org
Situs ini merupakan situs yang berisi berbagai resource yang dapat digunakan ketika seseorang ingin membuat game. Tidak hanya dari sound effect dan musik, tetapi ada juga gambar-gambar kartun, tekstur, dan bahkan sampai tutorial. Lisensi untuk menggunakan resource dari situs ini bisa dilihat di FAQ-nya :)

opengameart.org
http://opengameart.org

Freesound.org tidak kalah hebat dari opengameart.org. Tetapi, seperti nama situsnya, dia hanya menyediakan sound-sound saja. Namun koleksinya lumayan bagus-bagus kok. Untuk lisensinya, penjelasannay bisa dilihat di sini :). Agar kita dapat men-download sound dari situs ini, kita harus menjadi member terlebih dahulu. Tapi cuman ngasih username, email, password gtu2 ko,, g ribet :)


Freesound.org
http://www.freesound.org

Mungkin itu saja dulu yang saya sampaikan di sini. Semoga bermanfaat :)


Wednesday, 4 December 2013

OpenCV Tutorial - Sobel Edge-Detection

Halo semuanya, kali ini saya ingin bagi-bagi ilmu mengenai pemrosesan citra digital. Ini sih sebenarnya tuntutan kuliah juga, tapi apa salahnya saya taro di blog saya.

Kali ini saya ingin share tentang Sobel Edge-Detection SECARA MANUAL (tidak menggunakan fungsi yang sekali panggil langsung dapat). Hasilnya ntar akan seperti ini gan

Hasil Sobel edge-detection
Hasil Sobel edge-detection

Yak, langsung saja, ini dia kodingannya.

#include 
#include
#include
#include

using namespace std;

//Fungsi untuk menghitung gradien terhadap suatu sumbu
void hitungSobelAxis(CvMat *matInput, CvMat *output, int x[3][3] ) {

int temp;

for (int i = 1; i < matInput->rows - 1; i++) {
for (int j = 1; j < matInput -> cols - 1; j++) {
//Hitung hasil masking
temp = (cvGetReal2D(matInput, i-1, j-1) * x[0][0]) + (cvGetReal2D(matInput, i-1, j) * x[0][1]) + (cvGetReal2D(matInput, i-1, j+1) * x[0][2])
+ (cvGetReal2D(matInput, i, j-1) * x[1][0]) + (cvGetReal2D(matInput, i, j) * x[1][1]) + (cvGetReal2D(matInput, i, j+1) * x[1][2])
+ (cvGetReal2D(matInput, i+1, j-1) * x[2][0]) + (cvGetReal2D(matInput, i+1, j) * x[2][1]) + (cvGetReal2D(matInput, i+1, j+1) * x[2][2]);
//Masukkan hasil masking pada output citra
cvSetReal2D(output, i-1, j-1, temp);
}
}
}

//Setelah menghitung gradien x dan y, hitung Magnitude
void hitungSobel(CvMat *x, CvMat *y, CvMat *hasil) {
for (int i = 0; i < hasil-> rows; i++) {
for (int j = 0; j < hasil->cols; j++) {
//hitung magnitude
cvSetReal2D(hasil, i, j,
//Magnitude = |Gx| = sqrt(Gx^2 + Gy^2)
sqrt(cvGetReal2D(x, i, j) * cvGetReal2D(x, i, j) +
cvGetReal2D(y, i, j) * cvGetReal2D(y, i, j))
);
}
}
}

void threshold(CvMat *in) {
for (int i=0; i rows; i++)
{
for (int j=0; jcols; j++)
{
//Jika nilai pixel citra asli < 128
//Ubah menjadi 0 (hitam)
if (cvGetReal2D(in, i, j) < 128)
{
cvSetReal2D(in, i, j, 0);
}

//Jika nilai pixel citra asli >= 128
//Ubah menjadi 255 (putih)
else
{
cvSetReal2D(in, i, j, 255);
}
}
}
}

//Fungsi menampilkan citra
void tampilkan(CvMat *out, char* stringTemp) {
cvNamedWindow(stringTemp, CV_WINDOW_AUTOSIZE);
cvShowImage(stringTemp, out);
}


int main()
{
CvMat *matInput = cvLoadImageM("cat.jpg", CV_LOAD_IMAGE_GRAYSCALE);
CvMat *outX, *outY, *out;

char *original = "Original";
char *stringX = "Hasil X";
char *stringY = "Hasil Y";
char *stringHasil = "Hasil";

//untuk citra gradien
outX = cvCreateMat(matInput->rows - 1, matInput->cols - 1, CV_8U);
outY = cvCreateMat(matInput->rows - 1, matInput->cols - 1, CV_8U);

//untuk citra hasil edge-detection
out = cvCreateMat(matInput->rows - 1, matInput->cols - 1, CV_8U);

//Kernel sumbu X dan sumbu Y
int kernelX[3][3] = {{-1,0,1}, {-2,0,2}, {-1,0,1}};
int kernelY[3][3] = {{-1,-2,-1}, {0,0,0}, {1,2,1}};

hitungSobelAxis(matInput, outX, kernelX);
hitungSobelAxis(matInput, outY, kernelY);

hitungSobel(outX, outY, out);

tampilkan(matInput, original);
threshold(out);
tampilkan(out, stringHasil);

cvWaitKey(0);
}


Kalau ada yang ingin ditanyakan, komen saja ya gan (bisa, tidak bisa jawab tidak dijamin :P)

Thursday, 26 September 2013

Kvasir By Cisco - Web-Based Open Source Penetration Testing Tool

Kvasir : ( Penetration Test Data Management )

            is a web2py application and can be installed for each customer or task. This design keeps data separated and from you accidentally attacking or reviewing other customers. 

             This tool was developed primarily for the Cisco Systems Advanced Services Security Posture Assessment (SPA) team. While not every method used by the SPA team may directly relate we hope that this tool is something that can be molded and adapted to fit almost any working scenario.

                Kvasir is a vulnerability / penetration testing data management system designed to help mitigate the issues found when performing team-based assessments. Kvasir does this by homogenizing data sources into a pre-defined structure. Currently the following sources are supported:
 
Kvasir is here to help you with. Here's what you'll need to get started:
  • The latest version of web2py (http://www.web2py.com/)
  • A database (PostgreSQL known to work)
  • A network vulnerability scanner (Nexpose/Nmap supported)
  • Additional python libraries




                                Kvasir is a web-based application with its goal to assist “at-a-glance” penetration testing. Disparate information sources such as vulnerability scanners, exploitation frameworks, and other tools are homogenized into a unified database structure. This allows security testers to accurately view the data and make good decisions on the next attack steps.

                               Multiple testers can work together on the same data allowing them to share important collected information. There’s nothing worse than seeing an account name pass by and finding out your co-worker cracked it two days ago but didn’t find anything “important” so it was never fully documented.
 

Supported Data Sources:


 At current release, Kvasir directly supports the following tools:

There are obviously some gaps here but these are the primary tools we use. Support for scanners such as Nessus, QualysGuard, SAINT, and others are in various stages of development already, just not completed at this time.

Snapshot :

                               Initial screen of Kvasir shows two bar graphs detailing the distribution of vulnerabilities based on severity level count and host/severity count as well as additional statistical data:




                          Kvasir’s Host Listing page displays details such as services, vulnerability counts, operating systems, assigned groups, and engineers:.

                          
                              Kvasir supports importing exploit data from Nexpose (Exploit Database and Metasploit) and CANVAS. Link to exploits from vulnerabilities and CVE assignments are made so you can get an immediate glance at what hosts/services have exploitable vulnerabilities:


                           Host detail page provides an immediate overview of valuable information such as services, vulnerability mapping, user accounts, and notes, all shared between testing engineers:





                      
                              Of course as you collect user accounts and passwords it’s nice to be able to correlate them to hosts, services, hashes and hash types, and sources:




Source code / Download is available now at https://github.com/KvasirSecurity/Kvasir


Thanks ,

RRN Technologies Team.