Categories
linux perisian

Dapatkan semula fail yang terpadam dengan photorec

  1. Pasang pakej testdisk sebagai root
    aptitude install testdisk
  2. Mount partition yang hendak digunakan sebagai penyimpan hasil carian. Katakan /dev/sdb1 dan sistem failnya adalah NTFS
    ntfs-3g /dev/sdb1 /mnt
  3. Buat direktori untuk simpan hasil carian
    mkdir /mnt/photorec

    Sekarang semua hasil carian akan disimpan kedalam folder tersebut

  4. Guna photorec untuk mendapatkan semula fail yang terpadam dan jangan lupa memilih /mnt/photorec sebagai destinasi simpanan hasil carian
    photorec
  5. Setelah selesai, susun hasil carian mengikut ekstensi fail dengan skrip recovery.py dibawah. Salin dan simpan kod didalam folder /mnt/photorec
    [code lang=’python’]
    #!/usr/bin/env python
    import os
    import os.path
    import shutil
    import sys

    source = sys.argv[1]
    destination = sys.argv[2]

    while not os.path.exists(source):
    source = raw_input(‘Enter a valid source directory\n’)
    while not os.path.exists(destination):
    destination = raw_input(‘Enter a valid destination directory\n’)

    for root, dirs, files in os.walk(source, topdown=False):
    for file in files:
    extension = os.path.splitext(file)[1][1:].upper()
    destinationPath = os.path.join(destination,extension)

    if not os.path.exists(destinationPath):
    os.mkdir(destinationPath)
    if os.path.exists(os.path.join(destinationPath,file)):
    print ‘WARNING: this file was not copied :’ + os.path.join(root,file)
    else:
    shutil.copy2(os.path.join(root,file), destinationPath)
    [/code]

    Buat satu direktori untuk menyimpan fail-fail yang telah disusun mengikut extension dan susun
    mkdir /mnt/photorec-sorted
    cd /mnt/photorec
    python recovery.py . ../photorec-sorted

  6. Uji fail satu per satu. Bukan semua yang berjaya ditemui adalah dalam keadaan elok.

Rujukan: http://www.cgsecurity.org/wiki/After_Using_PhotoRec

Categories
perisian rangkaian

Pelayan tftp

Untuk mengkonfigurasi pelayan tftp pada Debian Lenny, anda perlu memasang pakej tftpd-hpa sebagai root

aptitude install tftpd-hpa

Kemudian tetapkannya supaya berjalan serbagai servis daemon

Untuk menggunakannya serta-merta, mulakan servis

/etc/init.d/tftpd-hpa start

Untuk membolehkan anda memindahkan fail ke pelayan tftp, anda mesti membina fail dengan nama yang sama seperti fail yang hendak dipindahkan dari klien ke pelayan dalam direktori /var/lib/tftpboot dan fail tersebut mestilah telah ditetapkan permission bit sebagai 777

chmod -R 777 /var/lib/tftpboot

Categories
pengaturcaraan

Letakkan komen didalam kod anda!

Tanpa komen, agak sukar untuk memahami kegunaan sesuatu pembolehubah dan fungsi di dalam kod anda terutama sekali didalam kod yang panjang. Situasi ini akan mengakibatkan pitam dan rasa berdenyut-denyut dibahagian dahi.

Contoh:
[code lang=’python’]
for i in range(1,13):
print i,
[/code]

Sudah tentu mereka yang baru berjinak-jinak dengan python akan menggaru kepala tanpa mencubanya terlebih dahulu.

Cara meletakkan komen adalah seperti berikut.

[code lang=’python’]
# paparkan nombor dari 1 hingga 12
for i in range(1,13):
# nombor dipaparkan ke skrin dalam satu baris
print i,
[/code]

Sudah tentu ini adalah sebagai contoh sahaja dan apa yang saya lakukan adalah agak berlebihan namun saya harap anda semua dapat memahami konsep penggunaannya.

Categories
internet

Simpan fail video dari Youtube

Kaedah ini dilakukan menggunakan Debian Lenny, mungkin juga boleh dilakukan pada disto yang lain.

Untuk menyimpan fail video dari youtube.com, anda cuma perlu biarkan video telah dimuatkan sepenuhnya dan cari fail yang namanya bermula dengan Flash dalam direktori /tmp/

Contoh, setelah memainkan video Hazumu Rhythm dari http://www.youtube.com/watch?v=G0zOb2CekfY&feature=related, saya senaraikan fail dalam /tmp/

ls /tmp/

Saya akan nampak senarai fail dalm direktori dalam /tmp/

AtiXUEvent00000bd9_09a42b60 mapping-umarzuki
defaultroute.vmc orbit-umarzuki
FlashltEUxY plugtmp
FlashRHQn7G seahorse-2JVA4E
Flashx0Ii0W virtual-umarzuki.IG87Zv
gconfd-umarzuki VMCnFXEEa
gedit-svn.umarzuki.187405481 vmc.pid
keyring-URXl6h

Sekarang saya cuba salin fail FlashltEUxY ke direktori Desktop dan namakannya sebagai a.flv

cp /tmp/FlashltEUxY Desktop/a.flv

Kemudian saya cuba mainkan fail tersebut dengan mplayer untuk memastikan sama ada benar fail tersebut mengandungi video yang saya kehendaki

mplayer Desktop/a.flv

hazumu rhythm

Kalau betul itu adalah videonya, pindah dan namakan semula ke lokasi anda menyimpan koleksi video

mv Desktop/a.flv music/hazumu-rhythm.flv

Categories
linux

Teknik penjimatan tenaga dengan CPU scaling

Contoh menggunakan Debian Lenny pada komputer riba Presario CQ40-115AU dengan pemproces mikro AMD Turion X2 RM-7. Teknik ini akan menjadikan komputer riba anda hanya menggunakan kuasa pemprosesan tambahan jika perlu.

Anda perlu pasang pakej cpufrequtils sysfsutils sebagai root
aptitude install cpufrequtils sysfsutils

Muatkan modul yang diperlukan
modprobe powernow_k8
modprobe cpufreq_ondemand

Tetapkan cpu scaling governor ondemand pada kedua-dua pemproses mikro (AMD X2 mempunyai 2 pemproses mikro)
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor

Tetapkan supaya kedua-dua modul tersebut dimuatkan semasa komputer anda memuatkan sistem operasinya
echo powernow_k8 >> /etc/modules
echo cpufreq_ondemand >> /etc/modules

Sekarang hasil yang sepatutnya adalah seperti berikut apabila anda menaip
cpufreq-info

cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to cpufreq@lists.linux.org.uk, please.
analyzing CPU 0:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 0
hardware limits: 500 MHz – 2.00 GHz
available frequency steps: 2.00 GHz, 1000 MHz, 500 MHz
available cpufreq governors: userspace, powersave, ondemand, performance
current policy: frequency should be within 500 MHz and 2.00 GHz.
The governor “ondemand” may decide which speed to use
within this range.
current CPU frequency is 500 MHz (asserted by call to hardware).
cpufreq stats: 2.00 GHz:28.24%, 1000 MHz:0.37%, 500 MHz:71.38% (388)
analyzing CPU 1:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 1
hardware limits: 500 MHz – 2.00 GHz
available frequency steps: 2.00 GHz, 1000 MHz, 500 MHz
available cpufreq governors: userspace, powersave, ondemand, performance
current policy: frequency should be within 500 MHz and 2.00 GHz.
The governor “ondemand” may decide which speed to use
within this range.
current CPU frequency is 500 MHz (asserted by call to hardware).
cpufreq stats: 2.00 GHz:29.22%, 1000 MHz:0.95%, 500 MHz:69.82% (576)

Dan apabila anda perhatikan pada aplet CPU Frequency Scaling Monitor, anda akan nampak seperti ini
scale

Sumber maklumat: http://technowizah.com/2007/01/debian-how-to-cpu-frequency-management.html

Nota: Jika terdapat sebarang masalah selepas ini, contohnya seperti sambungan ke rangkaian wayarles terputus-putus, keluarkan modul powernow_k8 dan cpufreq_ondemand dari kernel
rmmod powernow_k8
rmmod cpufreq_ondemand

Categories
pengaturcaraan

Cara baca dokumentasi fungsi/function Python

Saya andaikan anda menggunakan sistem pengoperasian Debian GNU/Linux.

Katakan anda ingin membaca dokumentasi mengenai fungsi random
pydoc random

Anda juga boleh menggunakan GUI untuk carian paparan dokumentasi. Sebelum itu pastikan anda telah memasang python-tk
pydoc -g

Kemudian satu tingkap akan muncul

Screenshot-pydoc

Apabila anda melakukan carian kepada sesuatu fungsi, senarai carian akan dipaparkan dan anda boleh memilih daripada senarai tersebut, kemudian klik pada go to selected. Satu tingkap klien web akan dibuka secara automatik memaparkan dokumen berkaitan fungsi yang telah anda pilih tadi.

Screenshot-Python: module random - Iceweasel

Categories
pengaturcaraan

Compile C++ pada Debian Lenny

Pasang pakej g++ sebagai root
su -
aptitude install g++

Untuk compile fail hello.cpp yang kandungannya seperti berikut
[code lang=’cpp’]#include
using namespace std;

int main ()
{
cout << "Hello, world." << endl; return 0; } [/code] Arahannya seperti berikut: g++ hello.cpp -o hello

Sengaja saya tambah pilihan dan parameter -o hello supaya program terhasil bernama hello, bukannya a.out. Untuk laksanakan program terhasil:
./hello

Hasil sepatutnya:

Hello, world.