Rasakan Kecepatan Firefox Quantum Versi Beta

Hari ini, tim pengembang Firefox mengumumkan versi Beta dari Firefox Quantum, versi terbaru dari Firefox yang diklaim memiliki kinerja jauh lebih cepat dari versi-versi sebelumnya. Bagaimana bisa lebih cepat? Kalau sebelumnya Firefox menggunakan hanya satu CPU core, sekarang Firefox Quantum memanfaatkan multiple CPU core yang sekarang lumrah dijumpai di berbagai mesin baik desktop maupun mobile.

Kalau mau lebih yakin, silakan lakukan uji menggunakan Speedometer 2.0

Advertisements

Server harus sering-sering ditengok

Awalnya sih tidak ada rasa curiga babarblas, karena memang ketika diakses, si website ya keliatan normal-normal saja. Dan semalam saya coba untuk upload sebuah file, dan hasilnya error 524 timeout (cloudflare). Dugaan saya langsung ke redis, karena memang beberapa saat terakhir ini yang sering bermasalah ada di redisnya.

Sudah coba restart, ternyata tidak ada masalah dengan redis, rqworker juga sudah direstart, bahkan timeout di rq_queues juga sudah ditambah, dari 360 ke 3600. Entaah kenapa, saya coba restart gunicorn dan gunicorn failed to start, katanya failed import module autocomplete_light, padahal si module itu ada di sana, nongkrong dengan manisnya.

Coba uninstall dan install, tetep saja, dan entah setelah restart gunicorn yang keberapa, kok tiba2 saja si aplikasi mau jalan lagi…. what the heck???

Membuat Pagination di Flask + MongoDB

Pertama, kita butuh flask extension yang bernama flask-paginate

https://pythonhosted.org/Flask-paginate/

Kemudian tambahkan baris berikut di route yang mau di-paginasi, misal search result:

from flask_paginate import Pagination, get_page_parameter

@app.route("/search/<keyword>")
def search(keyword):
	page = request.args.get(get_page_parameter(), type=int, default=1)
	per_page = 3
	offset = (page - 1) * per_page
	data = db.product.find({'$text': {'$search': keyword}}, {'score':
		{'$meta':
		'textScore'}}).sort([('score', {'$meta': 'textScore'})]).skip(offset).limit(per_page)

	pagination = Pagination(page=page,
		per_page=per_page,
		total=data.count(),
		css_framework='bootstrap3',
		search=False,
		record_name='products')

	keyword_title = keyword.replace('-', ' ').title()
	return render_template("search.html",
		keyword_title=keyword_title,
		data=data,
		pagination=pagination
	)

Selanjutnya di template search.html:

{% for i in data %}
<p>{{ i['title'] }}</p>
{% endfor %}

{{ pagination.info }}
{{ pagination.links }}

Langkah-langkahnya adalah:

  1. Menentukan per_page (limit di mongo)
  2. Menentukan offset (skip kalau di mongo)
  3. Membuat query ke mongo
  4. Membuat object paginasi
  5. Menampilkan data paginasi

Scraping Tokopedia Menggunakan Python Feedparser

Kali ini saya akan mencontohkan bagaimana kita bisa membuat scraper Tokopedia hanya dengan memanfaatkan Feed URL. Tokopedia memiliki Feed URL untuk setiap kategori yang mereka punya, sebagai contoh kategori Fashion Anak, URL nya adalah:

https://www.tokopedia.com/feed?sc=78

Dengan memanfaatkan library feedparser di Python, kita bisa dengan mudah melakukan scraping terhadap produk-produk terbaru dari Tokopedia. Berikut ini contoh kode-nya:

import feedparser
url = "https://www.tokopedia.com/feed?sc=78"
data = feedparser.parse(url)
data = data['entries']

# selanjutnya tinggal looping, misal kita ingin mendapatkan title:

for i in data:
    print(i['title'])

Jika ingin dikembangkan lagi, kita dapat menggabungkan kode di atas dengan web framework misal Flask atau Django, mongodb untuk menyimpan data, lakukan markup terhadap harga, dan BOOM! Jadilah sebuah aplikasi web dropship instan!!!

Preview Web Dropship Tokopedia Instan

Screen Shot 2017-08-09 at 12.25.04 PM