Wednesday, May 17, 2017

Different States of an Android Activity

/images/forum/upload/2014-12-19/5a00eeefae97a8d127f621fdc5ad2ff7.png

 @Override
    protected void onStart() {
        super.onStart();
        Log.i(TAG, "onStart");
    }


    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG, "onResume");
    }


    @Override
    protected void onPause() {
        super.onPause();
        Log.i(TAG, "onPause");
    }


    @Override
    protected void onStop() {
        super.onStop();
        Log.i(TAG, "onStop");
    }


    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(TAG, "onRestart");
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(TAG, "onDestroy");
    }


    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Log.i(TAG, "onSaveInstanceState");
    }


    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        Log.i(TAG, "onRestoreInstanceState");
    }

Wednesday, May 10, 2017

An app idea for education - past year collections.

1.       Past year collections
a.       Manage past year collection integrate with student performance
b.      For example:
                                                               i.      Each questions got the specific log/tracker for each student
1.       Track the comprehension (1-10)
2.       Record if students want to review the question next time or
3.       Sharable with their friends / facebook / teachers
4.       Tagging
5.       Notes
6.       Comments
7.       It’s not like we provide the students to answer on textbox, but this was like a revision apps (a book collection of past years) – they able to see the answers but we can manage them for example, ask them either they understand or not the questions. So we track their ability or comprehension.
                                                             ii.      From the logs, we do analysis on their weakness / strength – we help them which one need to focus in order to get consistence result.

c.       We can do a very simple CMS to our content department for example, they just scan the part of the questions. We also provide the WYSWYG – type

Thursday, April 27, 2017

Chaining Javascript promises

var firstMethod = function() {
   var promise = new Promise(function(resolve, reject){
      setTimeout(function() {
         console.log('first method completed');
         resolve({data: '123'});
      }, 2000);
   });
   return promise;
};
 
 
var secondMethod = function(someStuff) {
   var promise = new Promise(function(resolve, reject){
      setTimeout(function() {
         console.log('second method completed');
         resolve({newData: someStuff.data + ' some more data'});
      }, 2000);
   });
   return promise;
};
 
var thirdMethod = function(someStuff) {
   var promise = new Promise(function(resolve, reject){
      setTimeout(function() {
         console.log('third method completed');
         resolve({result: someStuff.newData});
      }, 3000);
   });
   return promise;
};
 
firstMethod()
   .then(secondMethod)
   .then(thirdMethod);
 

Thursday, April 6, 2017

Additional Mathematics Syllabus

Download AddMath Notes
Topik Subtopik
1 Fungsi 1.1 Hubungan
1.2 Fungsi
1.3 Fungsi Gubahan
1.4 Fungsi Songsang
2 Persamaan Kuadratik 2.1 Persamaan Kuadratik dan Punca-puncanya
2.2  Penyelesaian Persamaan Kuadratik
2.3 Jenis Punca Persamaan Kuadratik
3 Fungsi Kuadratik 3.1 Fungsi Kuadratik dan Grafnya
3.2 Nilai Maksimum dan Minimum Fungsi Kuadratik
3.3 Melakar Graf Fungsi Kuadratik
3.4 Ketaksamaan Kuadratik
4 Persamaan Serentak 4.1 Persamaan Serentak dalam Dua Pembolehubah : Satu Persamaan  Linear dan Satu Persamaan  Tidak Linear
5 Indeks dan Logaritma 5.1 Indeks dan Hukum Indeks
5.2 Logaritma dan Hukum Logaritma
5.3 Penukaran Asas Logaritma
5.4 Menyelesaikan Persamaan Melibatkan Indeks dan Logaritma
6 Geometri Koordinat 6.1 Jarak di antara Dua Titik
6.2 Pembahagian Tembereng Garis
6.3 Luas Poligon
6.4 Persamaan Garis Lurus
6.5 Garis Selari dan Garis Serenjang
6.6 Persamaan Lokus yang Melibatkan Jarak di antara Dua  Titik
7 Statistik 7.1 Sukatan Kecenderungan Memusat 
7.2 Sukatan Serakan
8 Sukatan Membulat 8.1 Radian
8.2 Panjang Lengkok Bulatan
8.3 Luas Sektor
10 Pembezaan 9.1 Konsep Pembezaan
9.2 Terbitan Pertama Fungsi Polinomial
9.3 Nilai Maksimum dan Nilai Minimum
9.4 Kadar Perubahan
9.5 Perubahan Kecil dan Penghampiran
9.6 Terbitan Kedua
11 Penyelesaian Segitiga 10.1 Petua Sinus
10.2 Petua Kosinus
10.3 Luas Segitiga
12 Nombor Indeks 12.1 Nombor Indeks
12.2 Indeks Gubahan

Friday, March 31, 2017

Pintu-pintu REZEKI

Solat lima waktu secara berjemaah
Doa
Solat Dhuha
Istiqamah Baca Al-qurĂ¡n (Al-Waqi`ah)
Rezeki yang ditetapkan
Rezeki yang tak disangka-sangka
Bantu Agama Allah
Iman
Istighfar
Sedekah
Jalin silaturahim
Usaha
Syukur
Nikah
Anak-anak

Tips untuk Skor AddMath

Kertas 1


Kertas 1 ada 25 soalan yang wajib dijawab..
biasanya pattern soalan sama saja.

Soalan no.1 biasanya dari Chapter 1-Function

Soalan no.2 Chapter 2-Quadratic Equation

dan seterus-seterusnya lah.
..(ada juga satu chapter keluar lebih dari 2 soalan)




Empat Chapter ini

 (biasanya tak keluar dalam Paper 1 sebab chapter
 ni soalan pilihan Paper 2)

-Solution Of Triangle

-Index Number

-Motion Along A Straight Line

-Linear Programming



Cadangan


1. Jangan tinggalkan kosong- jawab semua
soalan sehabis baik mengikut kemampuan anda

(sepatutnya tiada masalah untuk 10 soalan pertama
kerana beberapa chapter telah diajar dalam matematik moden juga..)



2. Gunakan scientific calculator yang ada mode equation
(dicadangkan Casio MS570)

- bertujuan untuk menyemak factorization dengan lebih
 mudah kerana factorization untuk quadratic equation

digunakan dalam banyak soalan(*tapi ingat-markah tidak
diberikan sekiranya jalan kerja tidak ditunjukkan-

(calculator untuk tujuan penyemakkan)

- untuk mencari nilai binomial probability distribution
-nilai X dengan lebih mudah tanpa menggunakan buku sifir

4 angka (walaubagaimanapun buku sifir disediakan semasa peperiksaan



3. Markah yang diperuntukkan ada dinyatakan dihujung
setiap soalan..yang terdiri dari 2,3 dan 4 markah. Jawab soalan
 berpandukan markah yang diberi.



4. Formula telah diberikan di hadapan kertas soalan.
.(hampir semua formula)..walaubagaimanapun ia akan
 menjadi hiasan saja kelau anda tidak tahu menggunakan
atau tidak tahu makna simbol..penting untuk anda "mesra"
 dengan formula-formula ini dengan membuat seberapa
 banyak latihan



5. Sekiranya ada dinyatakan dalam soalan contohnya :
 Without using scientific calculator..maksudnya anda
 diminta untuk menunjukkan jalan kerja penuh untuk
 menjawab soalan itu..walau bagaimanapun..anda boleh
menggunakan mesin kira untuk tujuan semakan..



6. Pastikan anda mendapat sekurang-kurangnya
25markah (30/80) untuk kertas 1

7. Secara amnya Kertas 1 sangat membantu anda untuk
 lulus Add Math..pelajar yang biasa mendapat markah
 (60/80 dan ke atas) biasanya boleh mendapat
 A1 atau A2 untuk Add Math, semasa SPM sebenar..(mengikut pengalaman)

Kertas 2


Terdapat 3 Bahagian soalan dalam Kertas 2
..Bahagian A, B dan C (semua sekali 15 soalan..wajib jawab 12)

Anda wajib menjawab semua soalan Bahagian A ((40 markah)
pilih 4 daripada 5 soalan Bahagian B (40 markah)
pilih 2 daripada 4 soalan Bahagian C (20 markah)

sekiranya anda sangat lemah dalam add math
pastikan anda fokuskan kepada soalan-soalan berikut

* Bahagian A -silmultionous equation (biasanya 5 hingga 6 markah-semak factorization guna scintific calculator anda)

* Bahagian B- Linear Law (biasanya soalan no 7)
(buat jadual (sekurang-kurang nya dua tempat perpuluhan )dan
plot graf-5markah..jawab soalan 5 markah)

* Trigonometric Functions (cuba buat graf trigo kerana
graf trigo tidaklah sesusah yg selalu
digambarkan)

* Probability Distributions -pattern soalan biasanya sama saja

Bahagian C - bagi pelajar saya.. saya menyarankan
 mereka memilih tajuk Index Number dan Solution Of Triangle
untuk bahagian ini..kerana..Index Number adalah topik yg mudah.
.dan solution of triangle juga
tajuk yg tidak terlalu sukar..berbanding dengan
Linear Programing(mengambil masa untuk
menjawab..mengintepretasi soalan kepada graf).
.Motion Along a Straight Line (perlu mahir tajuk
differentiation dan integration..dan pelajar
selalu tidak dapat menafsir tajuk dengan baik untk topik
ini)

# PERHATIAN-Untuk Bahagian B soalan-soalan dari
 topik lain yang selalu diuji ialah Coordinate Geometry,
Statistic, Circular Measures, Vector, Differentiation dan Integration

Daripada cadangan saya tadi anggaran markah untuk
 topik2 terpilih tersebut ialah 70/180 (jumlah kertas 1 dan 2)
 peluang untuk anda lulus adalah sangat cerah sekali..
jika anada dapat menambah 10 markah lagi.
.peluang untuk kredit berada di depan mata)

1.Segala cadangan di atas adalah atas pemerhatian
 dan pengalaman (kursus teknik menjawab) yang telah
saya ikuti@alami sendiri..sekiranya anda mempunyai
 guru2 pakar yang dapat memberikan ilmu atau
 strategi menjawab yang lebih baik saya sangat
 mengalu-alukan anda berkongsi dengan saya

2. Sekiranya anda telah pun mempunyai strategi menjawab
 yang lebih baik...dan cadangan di atas tidak memberikan
banyak input malah mengelirukan..ABAIKAN SAJA

3. Sekiranya anda rasa ia membantu dan memerlukan lebih
dari yang ditulis diatas anda boleh bertanya -
akan saya jawab sekiranya mampu...

Sunday, March 26, 2017

List of chapters from Tahun 1 to Tingkatan 5

SELECT 
s.chapter_id, s.subject_id,

 CASE
 WHEN t.edu_year_id=1 THEN 'Tahun 1'
 WHEN t.edu_year_id=2 THEN 'Tahun 2'
 WHEN t.edu_year_id=3 THEN 'Tahun 3'
 WHEN t.edu_year_id=4 THEN 'Tahun 4'
 WHEN t.edu_year_id=5 THEN 'Tahun 5'
 WHEN t.edu_year_id=6 THEN 'Tahun 6'
 WHEN t.edu_year_id=7 THEN 'Tingkatan 1'
 WHEN t.edu_year_id=8 THEN 'Tingkatan 2'
 WHEN t.edu_year_id=9 THEN 'Tingkatan 3'
 WHEN t.edu_year_id=10 THEN 'Tingkatan 4'
 WHEN t.edu_year_id=11 THEN 'Tingkatan 5'
 ELSE 'lain-lain' END as `edu_year`, t.title as Subject, s.title as chapter_title
FROM chapters s
JOIN subjects t ON s.subject_id=t.subject_id

ORDER BY t.edu_year_id ASC, s.chapter_id asc

Tuesday, March 14, 2017

List of algorithms

Algorithm for Structure marking

/*
 * Useful references:
 * https://en.wikipedia.org/wiki/Levenshtein_distance
 * https://en.wikipedia.org/wiki/Vladimir_Levenshtein
 *
 */
namespace App\Libraries;


class ContentMatcher
{

    /*
     *  Will be used independently by any modules
        Returning value : Percentage of matching
        Options
        Case censitive
        Ordered keyword
        Ignore penghubung kata (default)
        Ignore space
        Language : English only, BM only, Any

     */
    /*
     * Return Percentage of matching
     */

    private $cached_word_permutation = [];
    private $non_ordered_keyword_result = [];

    public function evaluate($input_string = '', $arr_scheme = array(), $array_preposition_scheme = array(), $option = array())
    {
        #Trim the input
        $input = trim($input_string);

        #Ignore space, by default not ignore space
        if (isset($option['ignore_space']) && $option['ignore_space'] == 1) {
            $input = str_replace(' ', '', $input_string);
        }

        #Ignore preposition
        if (isset($option['ignore_preposition']) && $option['ignore_preposition'] == 1) {
            $filtered_words = $this->ignore_preposition($array_preposition_scheme, $input);
        } else {
            #By default ignore preposition
            $filtered_words = explode(" ", $input_string);
        }

        #For non ordered keyword
        if (isset($option['ordered_keyword']) && $option['ordered_keyword'] == 0) {
            $this->pc_permute($filtered_words, $arr_scheme);
            $key_result_ordered = array_keys($this->cached_word_permutation, max($this->cached_word_permutation));
            $result = $this->non_ordered_keyword_result[$key_result_ordered[0]];
        } else {
            #By default was ordered
            $result = $this->closest_word($filtered_words, $arr_scheme);
        }


        //P_TODO: How to integrate? Please review
        #Language
        if (isset($option['language']) && $option['language'] == 'EN') {
            //English
        } elseif (isset($option['language']) && $option['language'] == 'BM') {
            //BM
        } else {
            //Any
        }

        //Result
        $output_result['result'] = $result;

        //Option
        $output_result['options'] = $option;

        //Input
        $output_result['input']['input_string'] = $input_string;
        $output_result['input']['arr_scheme'] = $arr_scheme;
        $output_result['input']['array_preposition_scheme'] = $array_preposition_scheme;



        return $output_result;
    }


    //Get all permutation of array
    private function pc_permute($items, $words, $perms = array())
    {

        if (empty($items)) {
            $elements = $perms;
            $merged = array_merge($elements);
        } else {
            for ($i = count($items) - 1; $i >= 0; --$i) {
                $newitems = $items;
                $newperms = $perms;
                list($foo) = array_splice($newitems, $i, 1);
                array_unshift($newperms, $foo);
                $this->pc_permute($newitems, $words, $newperms);
            }
        }

        if (isset($elements)) {
            $this->cached_word_permutation[] = $this->closest_word($elements, $words)['percentage_correct_%'];
            $this->non_ordered_keyword_result[] = $this->closest_word($elements, $words);
        }
    }


    private function ignore_preposition($arr_scheme_preposition = array(), $str_input_string = '')
    {
        $arr_input_string = explode(" ", $str_input_string);

        if (count($arr_scheme_preposition) < count($arr_input_string)) {
            $arr_without_preposition = array_diff($arr_scheme_preposition, $arr_input_string);
        } else {
            $arr_without_preposition = array_diff($arr_input_string, $arr_scheme_preposition);
        }
        return $arr_without_preposition;
    }


    private function closest_word($input_string, $words, &$percent = null)
    {
        $input = implode(" ", $input_string);
        $shortest = -1;
        foreach ($words as $word) {

            $word = trim($word);
            $lev = levenshtein($input, $word);

            if ($lev == 0) {
                $closest = $word;
                $shortest = 0;
                break;
            }

            if ($lev <= $shortest || $shortest < 0) {
                $closest = $word;
                $shortest = $lev;
            }
        }

        $percent = 1 - levenshtein($input, $closest) / max(strlen($input), strlen($closest));

        $output_result['input'] = $input;
        $output_result['exact'] = $shortest == 0 ? 1 : 0;
        $output_result['closest'] = $closest;
        $output_result['percentage_correct_%'] = round($percent * 100, 2);

        return $output_result;
    }


}
To test
 

namespace App\Http\Controllers;

use App\Libraries\ContentMatcher;
use Illuminate\Http\Request;

use App\Http\Requests;

class test extends Controller
{
    public function index()
    {
        $check = new ContentMatcher();


        $input_string = '35';
        $arr_scheme = array('Daya tolakan menggerakkan duit syiling','daya tolakan','Daya tolakan','RM 35','35 je','3.5 je');
        $array_preposition_scheme = array("yang", "bahawa", "untuk", "oleh itu", "oleh kerana", "agar", "meskipun", "sekiranya", "semoga", "supaya", "kalau", "andaikata", "kendatipun", "hingga", "jika", "jikalau", "semasa", "sementara", "setelah", "sewaktu", "ketika", "tatkala", "walaupun", "malahan");

        $options = array(
            'case_sensitive'     => 0,
            'ordered_keyword'    => 1,
            'ignore_preposition' => 0,
            'ignore_space'       => 0,
            'language'           => 'BM'
        );
        $result = $check->evaluate($input_string,$arr_scheme,$array_preposition_scheme,$options);
        pre($result);

    }
}

Sunday, February 26, 2017

Buat satu-satu mende biar siap terus

Tak guna kalo buat satu-satu mende separuh jalan je..contohnya buat website..kalo nak buat, buat sampai siap jangan separuh-separuh.

Bile siap penuh, boleh jadi folio, bleh publish, orang bleh gune walaupun sikit.

Tapi kalo dok siap, orang dokleh gune pahtu duk putuh ase sokmo...


Buat timeframe, set target bile bleh siap..dan ape perlu buat..

Buat sampai baru siap baru kemah!!

Tq.

Friday, February 24, 2017

Laravel Way to get Agent

Ciri-ciri perkerja yang baik

Kriteria utama:
1. boleh buat table sendiri
2. pikup laju
3. boleh buat kerja waktu kritikal
4. multiple task
5. pandai aws - setup server sendiri
6. less mistake
7. buat kerja laju dan mengikut timeline
8. high commitment
9. hasil kerja seperti yang diminta


lain-lain2
- smart
- tough
- sikap baik dengan semua orang
- kurang cuti

Wednesday, January 25, 2017

Steps to debug in Web Programming


  1. Check your internet connection 
    • The top unnoticeable experience if you are in critical situations. Just check internet connection before continue next debug process.
  2. Check to the server storage capacity 
  3. Check the limitation like Pusher
  4. Check folder permission.
    • if you are using Laravel, then folder Framework need to be writabble else Laravel would not work.
  5. Check log
    • Every languages got logs, you may see the error based on log
    • In order to prevent the problems, need a schedule everyday to check the log. Prevent before getting worst!
  6. Run Unit Test / Test Case
  7. Last but not least, check your code.
#happyprogramming
#debugbasedonmypersonalexperience
#noerror
#lesserror
#preventerror

Tuesday, January 10, 2017

Report Analysis

SELECT COUNT(s.report_id) AS total, t.type_name, group_concat(s.content_id) as content_ids
FROM rpt_content_main s
LEFT JOIN rpt_content_type t ON t.type_id = s.report_type_id
GROUP BY s.report_type_id

Thursday, January 5, 2017

Idea to be implement in mobile apps

Stuff finder in supermarket
On demand place finder
Dictionary Terengganu