Saturday, June 20, 2020

SIMPEG Kota Batam Android rilis 1.1.1

Pada rilis versi 1.1.0, SIMPEG Kota Batam Android mengubah tampilan "home" menyesuaikan dengan aplikasi versi web https://simpeg.batam.go.id. Selain itu, juga memperbaiki beberapa bug yg muncul.

Di rilis terakhir, yaitu versi 1.1.1, bug crash saat GPS disabled juga sedang diupayakan. Selama pengujian dengan perangkat virtual, bug ini tidak terjadi. Semoga terselesaikan!

Kelemahan deteksi posisi juga sedang kembali diupayakan karena versi 1.1.0 belum berhasil mengatasi masalah deteksi posisi ketika pengguna di dalam ruangan yg menghalangi sensor GPS untuk menerima sinyal. Pada kondisi tersebut, LocationManager dari Android tetap memberikan respon "lokasi" namun setelah diperiksa ternyata umurnya sudah terlalu lama, misalnya hasil deteksi 1 jam yang lalu. Pada versi 1.1.1, seharusnya aplikasi dapat segera menggunakan pendeteksian berdasarkan jaringan seluler.

Bug yg mungkin tidak akan terselesaikan adalah bug (KB-1) Android 4.4 KitKat (mungkin) tidak dapat mengunggah berkas (problem Android WebView) https://issuetracker.google.com/issues/36983532 Bug ini muncul mulai pada versi 1.0.1 karena sejak versi itu SIMPEG Kota Batam Android memvasilitasi KitKat.

Temukan di Google Play

Friday, April 17, 2020

DisdukcapilBisa Batam versi Android terpublis di Google Play

Setelah gagal publis di versi pertama, aplikasi disdukcapilBisa Batam versi Android terpublis di Google Play di versi 1.1

Hal yang baru pada versi ini adalah:

- Menghilangkan video Youtube.

- Menambah drawer navigation.
- Memperbaiki pengambilan foto.
- Menambah kemampuan mengunduh berkas.
- Menambah kemampuan notifikasi.


Ini adalah aplikasi pertamaku yg publis di Google Play, BTW. :D

Friday, September 22, 2017

Pamac 6.0, Aku Suka!

Beberapa hari yang lalu, saya update Manjaro Linux di laptop. Salah satu paket yang terupdate adalah pamac, yaitu sebuah aplikasi (GUI) paket manager.

Setelah sebelumnya saya harus "hafal" nama paket suatu aplikasi/librari untuk menginstal, sekarang mencarinya lebih mudah karena ada pengkategorian paket ke dalam "Games", "Office", dan lain- lain.

Aku suka!


Friday, March 25, 2016

Tak Kenal Maka Tak Sayang

Pada pembahasan sebelumnya telah disinggung tentang "deklarasi". Kamu tentu sering mendengar kata ini, terutama saat akan dimulainya pilkada. Ada deklarasi pasangan bakal calon A, B, C. Tujuannya untuk mengenalkan pasangan bakal calon tersebut ke masyarakat. Demikian halnya dalam C ada mekanisme deklarasi sebelum sebuah variabel atau fungsi digunakan.

Perhatikan kode berikut:


/* Nama: pertama2.c */
#include <stdio.h>

void tampil ();

int main (int argc, char **argv)
{
  ke = 2; 
  tampil (ke);
  return 0;
} 

void tampil (int program)
{
  printf ("Program Ke-%d Bahasa C\n", program);
}
 
Ada yang salah dalam program di atas! Silahkan tulis kode di atas dan simpan dengan nama pertama2.c, kemudian compile
$ gcc -o pertama2 pertama2.c
Muncul:

pertama2.c: In function ‘main’:
pertama2.c:10:3: error: ‘ke’ undeclared (first use in this function)
   ke = 2; 
   ^

Artinya, variabel 'ke' dalam fungsi 'main' tidak dikenali. Jadi, harus kenalan dulu! :D Bentuk deklarasi atau pengenalan variabel dalam C adalah sebagai berikut:

[tipe] [nama_variable];

Adapun bentuk pengenalan fungsi dalam C adalah:

[tipe] [nama_fungsi] ([argumen]);

Tipe-tipe dasar dari variabel dan fungsi C adalah:
char
karakter, dapat dikembangkan menjadi bentuk teks (string).
sort, int, long
bilangan desimal.
float
bilangan pecahan.
double
bilangan dengan presisi tinggi.

Sedangkan tipe
void
digunakan untuk fungsi yang tidak memberikan nilai. Fungsi seperti ini disebut juga dengan prosedur.

Lalu, bagaimana seharusnya kode program pertama2.c di atas?


Monday, January 28, 2013

Ayo, Mulai Saja!

Sebuah kode program C biasanya tersusun seperti contoh berikut:

/* Nama: pertama1.c */
#include <stdio.h>

void tampil ();

int main (int argc, char **argv)
{
  tampil ();
  return 0;
}


void tampil ()
{
  printf ("Program Pertama Bahasa C\n");
}


Saya menggunakan kata "biasanya" karena memang tidak harus i itu, he he he :D

Baiklah, kita bahas satu-satu.

/* Nama: pertama1.c */

adalah bagaimana kita memberi komentar dalam kode program C. Semua yang diawali /* dan diakhiri */ adalah komentar, tidak peduli seberapa panjang atau seberapa banyak barisnya. Selain /* */, beberapa kompiler memperbolehkan penggunaan // untuk mengawali komentar dalam satu baris. Contoh:

// Bahasa C - oleh eshabe

Gunanya komentar adalah agar programer dapat memberi catatan pada program yang ia buat sehingga ia atau orang lain dapat lebih memahami / mengerti tentang program tersebut. Bayangkan, jika suatu program tidak ada catatannya. Jangankan orang lain, sang pembuat pun bakal bingung saat ia membukanya setahun kemudian.

Komentar tidak termasuk dalam program itu sendiri, diabaikan oleh pemroses program (compiler), jadi tidak usah pelit saat memberi catatan karena ukuran program biner tidak terpengaruh.

#include <stdio.h>

adalah bagaimana kita memanggil kode program lain. Biasanya program yang dipanggil adalah kode yang berisi deklarasi fungsi atau konstanta.

void tampil ();

adalah pendeklarasian fungsi tampil() yang ditulis belakangan.

int main (int argc, char **argv) { }

adalah bagian utama program. Ya, ia adalah suatu fungsi! Suatu fungsi dalam C terdiri dari:

[tipe fungsi] [nama fungsi] ([argumen]) { [isi] }

- Tipe fungsi bisa int, float, double, char, void, atau yang lain sesuai tipe data.
- Nama fungsi diawali oleh alfabet [1] dan terdiri dari alfanumerik dan garis bawah (underscore).
- Argumen berisi variabel yang akan dilewatkan pada fungsi tersebut.
- Isi? ya isi dari fungsi...

Khusus main(), tipe fungsi dapat berupa void, yang artinya abaikan. Kita tidak perlu memberi nilai 'return' saat mengakhiri fungi. Argumen juga bisa dikosongkan atau diisi 'void', artinya kita mengabaikannya!

Perhatikan! Isi selalu diapit dengan kurung kurawal buka tutup ({...}).

Jadi, bentuk berikut bisa jadi merupakan bentuk minimal dari program C:

main(){}

Tapi bentuk di atas saat kita compile sering ditolak :) Coba saja bentuk ini:

int main(void){}

Simpan kode program dengan nama pertama1.c!

Misalnya disimpan di /home/zuper/myc/, jalankan Terminal lalu ketik perintah-perintah berikut:

$ cd  /home/zuper/myc/
$ gcc -o pertama1 pertama1.c
$ ./pertama1


Apa yang terjadi?

gcc -o pertama1 pertama1.c : compile kode program pertama1.c dan simpan hasilnya (program biner) dengan nama pertama1


Sunday, September 23, 2012

Agar Smartfren AndroMax Tab 7-mu Dikenali Oleh ADB (Android Debug Bridge) di Ubuntu Precise Pangoline (12.04)

Ketika terpikir untuk rooting Smartfren AndroMax Tab 7, segera saja saya gugling. Banyak sih yang saya temukan, tapi tak satupun yang menerangkan rooting Smartfren AndroMax  Tab 7 dari Linux atau Ubuntu. Semuanya dari Windows dengan tool ADB! Bahkan blog yg judulnya Linux pun menggunakan Windows! ;)

Apa benar tidak bisa dari Linux? Bisa koq! Caranya?

"Perhatian! Pada bagian ini tidak menjelaskan cara rooting. Kamu saya anggap sudah mengerti bagaimana cara membuat/menyunting berkas teks di Linux, dan sudah menginstal ADB atau Android SDK"
  1. Tambahkan baris berikut ke dalam file /etc/udev/rules.d/51-android.rules

    SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="2207", MODE="0666", GROUP="plugdev"
  2. Restart udev; sudo restart udev
  3. Tambahkan kode 0x2207 ke dalam file ~/.android/adb_usb.ini
  4. Tancapkan Smartfren AndroMax  Tab 7 ke Ubuntu melalui USB
  5. Periksa dengan perintah $ adb devices

Sekian.

Oh, ya. 2207 adalah vendor ID USB dari Smartfren AndroMax  Tab 7 . Coba jalankan perintah lsusb saat Smartfren AndroMax  Tab 7 tertancap ke Ubuntu, maka akan muncul 2207:0006.

Saturday, September 22, 2012

Update Smartfren AndroMax Tab 7 ke 4.0.4

Saya beli  Smartfren AndroMax Tab 7 atau Skyworth S7 beberapa minggu yang lalu. Secara umum sih tablet ini cukup bagus, sesuai dengan harganya :)

Bagi saya dengan harga Rp1.5jt ada GPS dan modem CDMA/EVDO memang sudah cukup. Sayangnya tidak ada kompas elektronik dan tidak bisa untuk telpon :( Tidak bisa telpon sih tidak masalah, tapi tidak ada kompas elektronik... sayang banget.

Masalah lain yang mengganggu adalah false notification / alert soal low-bat padahal baterai masih banyak, dan Google Calendar tidak mau sinkronisasi.

Dengan update system, dua masalah di atas bablas!!

Berikut langkah-langkahnya:

  1. Aktifkan "Auto check update" di AndroMax

  2. Unduh update.img. File update.img bisa didapatkan di forum kaskus. Ekstrak file zip / rar, ubah ke update.img
  3. Jika download tidak menggunakan AndroMax, copy update.img ke SDCARD. Bisa menggunakan AirDroid jika tidak punya kabel USB. Soalnya dalam paket pembelian kabel ini tidak disertakan.
  4. AndroMax akan memberi alert bahwa update system tersedia dan meminta kita untuk menginstal. Cukup dengan menyentuh "Install" maka system meng-update secara otomatis.


Wednesday, March 16, 2011

Program Pendukung

Pada dasarnya, untuk mengikuti "Belajar Bahasa C" boleh menggunakan program seperti Visual C, Borland C atau yang lain. Namun agar lebih mudah memahami tulisan ini sebaiknya menggunakan program pendukung berupa compiler: GNU Compiler Collection atau gcc. Untuk mengetik program, bisa menggunakan gedit (Linux) atau Notepad++ (Windows) atau penyunting teks lain yang selama ini telah biasa digunakan. Sebagai gambaran, penulis menggunakan Ubuntu Linux 10.04 dg gcc versi 4.4.3 dan gedit.

Lihat! Program-program pendukung yang disarankan adalah program gratis bahkan bebas (free software)!

Mengapa Bahasa C?

Pertanyaan semacam itu selalu muncul saat kita menawarkan sesuatu. Bahasa C adalah bahasa pemrogaman yang artinya ia hanyalah sebuah alat bantu atau bahan mentah. Alasan pemilihan alat atau bahan tentu saja tergantung kepada: hasil yang akan dicapai, kemudahan pembuatan dan ketersediaan.

Hasil Yang Akan Dicapai
Jika akan membuat web maka bahasa yang utama adalah HTML. Bahasa C bisa digunakan sebagai generator HTML. C menjadi salah satu pilihan saat akan membuat software sistem, atau aplikasi. Penggunaan C tidak terbatas pada aplikasi desktop, aplikasi level kontroler atau prosesor pun bisa dibuat menggunakan bahasa ini.

Kemudahan Pembuatan
Ketika hasil yang akan dicapai sudah ditentukan, misalnya aplikasi desktop POS untuk lingkungan sistem operasi Linux, maka bahasa-bahasa seperti perl, assembly, PHP tidak mudah untuk digunakan. Sedangkan C masih menjadi salah satu pilihan.

Ketersediaan
C telah tersedia untuk berbagai platform komputer dan sistem operasi. Pengguna Windows, Linux, MacOS X dan lain-lain bisa dengan mudah mendapatkan alat bantu pemrograman dengan C baik itu yang berbayar maupun yang gratis, baik itu yang berlisensi tertutup maupun yang bebas, baik itu yang visual maupun yang ketik manual.

Thursday, May 6, 2010

What I like and dislike from Lucid Lynx (Ubuntu 10.4)


I like...
  1. Faster on boot and shutdown
  2. More simple GUI than before
  3. Latest Firefox version
  4. Indicator Applet Session's status is work for both Empathy and Pidgin
  5. Left side close window button
  6. All of my laptop hardware is just work out of box

I dislike....
  1. No GIMP, need to be installed
  2. OpenVPN network-manager-plugin is not work well yet
  3. Lesser games
  4. Gwibber



Saturday, September 26, 2009

dia : A program for drawing structured diagrams

Word processor and spreadsheet applications can be used to draw a diagram; flow-chart or whatever diagrams. But we will find dificulties when doing in it because the applications are not designed for this job.

Ubuntu, the most growing GNU/Linux distribution, provide an application named Editor Diagram (dia) as dia-gnome package. The -gnome sufix show this application is developed by GNOME team and to do in GNOME desktop environment.

Just install dia use apt-get command line or Synaptic, or "Add/Remove..."





After installation completed, the application can be found in Applications -> Graphics -> Editor Diagram Dia.

There are more than 30 diagrams every simbols are provided already; flow-chart, jigsaw, logic, ladder, electrics, electronics, Gane and Sarson (DFD) and so on.

dia's working file is saved with .dia suffix and it can be exported to many file formats; DXF, PNG, JPG dan SVG and so on.



Screenshoot


Using Ubuntu Jaunty Jackalope - language-pack-id


Wednesday, May 6, 2009

Problem after update Ubuntu 8.04 Server software

I just update Ubuntu 8.04 Server software by command:

$ sudo apt-get update && sudo apt-get upgrade

The process it self is ok, but my apache web server can not run.

$ sudo /etc/init.d/apache2 restart

Say error in /etc/apache2/sites-enabled/000-default.save

I remove the file then apache work fine again :)

Root without password in Ubuntu

Since I use Hardy Heron, I found that we can get root console / command
prompt without a password.

I do not know, why Ubuntu team do this. But it was help me when I must
enter the admin functions but I do not know the admin user name and
password.

How to get in it?

When system is booting and prompt a GRUB menu, I press ESC key. Then I
select "Recovery mode". After the system show a selection action box, I
select "root". Than I get a sign: #

Sunday, February 8, 2009

Deleting Old Files In Linux

When my scheduled database backup run, I have many old files we do not neet them anymore. So, I have a question for my self: How to remove them automatically just after backup is done?

So, I try to read 'find' command manual. The command is "man find" (without double quotes) if you do not know :) then I found these option:

-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.


-ctime n
File’s status was last changed n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file status change times.

-name pattern
Base of file name (the path with the leading directories
removed) matches shell pattern pattern. The metacharacters
(‘*’, ‘?’, and ‘[]’) match a ‘.’ at the start of the base name
(this is a change in findutils-4.2.2; see section STANDARDS CON‐
FORMANCE below). To ignore a directory and the files under it,
use -prune; see an example in the description of -path. Braces
are not recognised as being special, despite the fact that some
shells including Bash imbue braces with a special meaning in
shell patterns. The filename matching is performed with the use
of the fnmatch(3) library function. Don’t forget to enclose
the pattern in quotes in order to protect it from expansion by
the shell.

-delete
Delete files; true if removal succeeded. If the removal failed,
an error message is issued. If -delete fails, find’s exit sta‐
tus will be nonzero (when it eventually exits). Use of -delete
automatically turns on the -depth option.


So, with options combination I get a command:
$ find . -name 'backup_*.db' -ctime +30 -delete

That is! I put the command in my backup script than run by cron every weeks and my old files will be deleted just after backup is done.

Friday, October 17, 2008

Setup OpenVPN in Ubuntu

To get my work on time schedule, I must bring it as my homework. It is software development. For this purpose, I have to connect my office computer to home computer with VPN.
1st - ISP's Modem
Open firewall or port triggering: 1194 UDP
ThenVirtual Server, forward incoming connection 1194 port to my office computer's IP address.
2dn - Install OpenVPN
Office / Server: Ubuntu 8.04 (Hardy Heron) Server
Home / Client: Ubuntu 8.04 Desktop
Install openvpn in both computers:
sudo apt-get install openvpn
3rd - Configure the server: (see HOWTO for more)
cd /etc/openvpncp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ ./easy-rsa/cd easy-rsa
(optionals)
nano ./vars
Change the values:
export KEY_COUNTRY=ID
export KEY_PROVINCE=KEPRIexport KEY_CITY=BATAMexport KEY_ORG="OpenVPN-TEST"
export KEY_EMAIL="eshabe@gimail.com"
(then):
source ./vars
./clean-all
./build-ca
Pay attention in “Common Name”. Example answer: "myfirstvpn"
./build-key-server server
Pay attention in...
“Common Name” - my answer is “server”
“Sign the certificate? [y/n]” - answer “y”
“1 out of 1 certificate requests certified, commit? [y/n]” - answer “y”
./build-key client1
./build-key client2
./build-key client3
./build-dh
Copy key files:
cd /etc/openvpn
cp easy-rsa/keys/server.crt .
cp easy-rsa/keys/server.key .
cp easy-rsa/keys/ca.crt .
cp easy-rsa/keys/dh1024.pem .
Copy example config file:
gunzip /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
4th - Configure the client
Copy key files:
cd /etc/openvpn
scp eshabe@125.x.x.x:/etc/openvpn/easy-rsa/keys/client1.crt client.crt
scp eshabe@125.x.x.x:/etc/openvpn/easy-rsa/keys/client1.key client.key
scp eshabe@125.x.x.x:/etc/openvpn/easy-rsa/keys/ca.crt ca.crt
Copy example config file:
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf .
Edit config file:
nano client.conf
Change remote value:
remote 125.1.2.3 1194
5th - Try and activate
Try:
(server)
openvpn server.conf
(client)
openvpn client.conf
Yes!! openvpn is ready….
/etc/init.d/openvpn start

Sunday, October 5, 2008

HowTo: No waiting time in Ubuntu's GRUB

By default, Ubuntu display a GRUB menu and give us ten (10) seconds waiting time for user interaction. If you feel this waiting time is disturbing, you can remove the waiting time by edit the GRUB menu. Set 'timeout' value to 0 (zero).

From Terminal, type:

sudo nano /boot/grub/menu.lst

Change timeout value.

And, do not forget to activate hiddenmenu option. Why? By activating the option, although the timeout is 0 second, we can enter to the GRUB menu by pressing ESC key.

Save the file!

Create 'tar' file from a list

Creating a 'tar' file is simple, but creating a 'tar' file from some files have different paths/directories is another case.

Example, when I want to create a tar file from path /home/eshabe/mydocs, I can use command: tar cvf mydoc.tar /home/eshabe/mydocs

But when I want to create a tar file from files:
/home/eshabe/mydocs/howto-create-tar-file-from-a-list
/etc/apache2/site-enables/000-default
/home/eshabe/mydocs/yes/i/am
/home/eshabe/.gnome2
...
?

I can create a tar file from command line: tar cvf mydoc.tar /home/eshabe/...

Another way is create a shell (sh) script to read a list file then create a tar file:

#!/bin/sh
# Create a 'tar' file from a list


n_program=`basename $0`
v_program=1.0.0d1
p_program=eshabe

t_program='2003.08.12'


RUNNAME='./shb-tarlist-run'

info_program ()
{
cat <<>
$n_program v$v_program
by: $p_program - $t_program
----------------------------------------------------------------------------
Function : create a tar file from a list file
Command : $nama_program LIST_FILE FILE.tar

LIST_FILE = a file contains list of files or directories
FILE.tar = result

pesan_program

}

if [ $# != 2 ]
then
info_program
exit
fi

printf "tar cvf $2 " > $RUNNAME
awk '{
printf "%s ", $0
}' $1 >> $RUNNAME

chmod a+x $RUNNAME
$RUNNAME
rm $RUNNAME

echo Done.