Trafi: Be a Jakartan Like a Local

A friend of mine told me about a nifty app: Trafi. It provides us complete routes information of public transportation in some big cities, including Jakarta. It helps me a lot as a newbie newcomer in this mega city. And I’m so grateful for my friend who told me that app.

Screenshot_Trafi_1

Realtime position of trans jakarta bus displayed in Trafi route

The information it provides includes the routes and schedules of KRL (Jakarta Commuter Line), Trans Jakarta (busway), Medium buses (Kopaja, Metromini), as well as angkot (angkutan kota / common public transportation). And if –for some reason– there are no route available for your destination, it will return walking route instead.

Screenshot_Trafi_2

Details of route displaying bus stops

The schedule estimation doesn’t always give you the right time. So, don’t expect it tell you the exact time of arrival. Be prepare for the worst thing, and spare some time for your convenient. But, most of the time, it can predict the close departure and arrival time of KRL and Trans Jakarta but not angkot. And it’s handy especially for strangers, newcomers or travelers (and backpackers) who have no acquaintance in this city to traveling to local destination.

Advertisements

Installing KDEConnect Indicator on Budgie Desktop

So, I missed a crucial info in my previous post about the switch of my desktop from KDE to Budgie. The KDE “flavor” that I meant was KDE connect indicator, as well as its context menu in Dolphin file manager to send files to Android. Actually it’s something that retains me to stay loyal using KDE desktop for quite some time. It’s a nifty app for me, as I can get every notification from my phone right away without touching it.

When I decided to move to Budgie, I also looked for similar apps that I used to have in KDE, including this KDE connect. Fortunately, there has been some projects that support KDE connect for Budgie, or Gnome in common. And among them, I chose indicator-kdeconnect applet by Bajoja in Github. (The repo might will move to Gitlab soon 🙂 )

The project has provided install instruction for Fedora. Here is the snippet:

on Fedora:
-> sudo dnf install gtk3-devel
-> sudo dnf install libappindicator-gtk3-devel
-> sudo dnf install cmake
-> sudo dnf install vala-devel
-> sudo dnf install python3-requests-oauthlib
-> sudo dnf install nautilus-python (if you use Nautilus)
            nemo-python (if you use Nemo)
            caja-python (if you use Caja)

Obviously you should install kdeconnect 1.0.0 or up to use the features

compile:
    mkdir build
    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr
    make
sudo make install

After finishing the compilation process, and running the binary, I got the KDE connect indicator in the panel.

kdeconnect-indicator-building

Compile process of indicator-kdeconnect in Budgie desktop

Of course I have installed the KDE connect binary and made sure it’s running, in order to have the context menu in Dolphin to send files.

kdeconnect-budgie

Android files are displayed in Dolphin

Everything of KDE connect is working fine, including multimedia controller, remote input, as well as copy-paste text into and from device. Although for the latter, I haven’t found the corresponding feature like KDE’s clipper for copied texts in Budgie.

It’s Budgie desktop in Fedora 28. Yeah, actually it’s quite pretty neat, and lightweight!

I think I have to switch desktop in this Fedora installation in my laptop, because it feels quite laggy with KDE, although when I boot to openSUSE, it’s not so. I’ve realized that the best distro that makes great KDE configurations is openSUSE, not Fedora. I’m sorry to say that, but that’s what I got so far. Fedora, I’m sure, is great in Gnome 3 support, as it is the default desktop for Fedora Workstation. But, I’m not too interested to give Gnome 3 a try as for now.

So, instead of Gnome 3, I got interested to Budgie desktop of Solus project. I was wondering its lightweight as often discussed on @fedoraid Telegram group, especially by bro @alunux. And actually, he is the one –maybe the only as well– who provides a COPR repo of Budgie desktop for Fedora. And of course I install it from there. Thanks buddy @alunux. 😀 Keep it on!

Budgie desktop in KDE flavor

Go-Jek and Tuyul: A Tale of Digital Age

This post is the sequel of the previous post about Go-Jek, where I have explained what it is. As for “tuyul”, you may haven’t got it, right? Actually it’s the name of a kind of ghost (in South East Asian archipelago) of mischievous thief in a form of small child or baby, and it’s bald-headed.

You may begin puzzled with this post title, after reading that definition of “tuyul” (or “toyol” in Malay). Yeah, an app of ride-sharing service is completely nothing to do with mythical creatures. But, that ghost, now has transformed into digital creatures. Its job remains unchanged: stealing money. Of course not the real money we usually use to buy some goods.

So, the “tuyul” here is a term they call for the fraud they do by faking their current location. Technically, Go-Jek drivers would obtain passengers who are in the nearby location.  Since the mechanism to obtain the passenger is to as quickly as possible grasp the orders, there is a fierce competition among the drivers. So, to obtain more passengers, they have to stand by in a crowded place where is potential enough that the passengers likely will order a ride. While, there are of course other drivers waiting for passengers as well. Some of them, then, come up with that fraudulent behaviour: make use of that bald-headed mischievous thief.

Actually, I keep on thinking of the moment when a Go-Jek driver got mad of me last night. That’s why I write this post. I ordered a ride with Go-Jek app in the late night. I suspected the driver was deceiving his real location with the “tuyul”. I just didn’t want to wait longer for the pick-up, because I saw weirdness, then. I threatened him by telling –via chat in the app– that I would cancel the order. I didn’t know that the cancelation was a big deal for him.

That naiveness drove me crazy all this day, and I quite worry if the driver may take revenge of me. I keep on thinking why on earth I got so sick of fraudulent. But of course I don’t know whether that driver using “tuyul” or not. It’s just my own prejudice. O God, forgive me!

I just didn’t understand either, why that driver got very mad of me due to that threat. I understand that it’s been late, and yeah, life is hard. Actually though, I still want to take ride and continue my order, if he arrive no longer than I was worry of. But, let bygones be bygones. And let it be a lesson for me. I’m really sorry, bro, if you read this.

Baraka

Let’s talk about the fraud again, and why I got so sick of it. I think, such fraud is unfair, isn’t it? Not only for passengers, but also for other drivers. Think of it! The passenger who orders a ride, would wait for pick-up much longer, if the real location of driver is fake. And for other drivers, honest one, who don’t use fraudulent and still want to stand-by in the real location, even it’s in the sun and sweating, they are cheated by their own fellows. It’s so painful, you know.

I remembered the lecture of Sharia Micro-Economics in the last week. The lecturer, Pak Hafidz told us about barakah (blessings) as an aspect to achieve maslahah (welfare, benefit) in Islamic economics.1 The formulation of maslahah is:

M = Π + B

where M is Maslahah, Π is total revenue (in terms of production), B is Barakah (you may read another formulation interpretation in the footnote2)

It’s reasonable that everyone wants to maximize the income / revenue of his/her work or production. And it’s legal, as long as it’s conducted in a correct way. Islam also encourage us to take maximum advantage in the production or selling. But, Islam has some guidelines and rules to achieve that: maslahah.

Everyone can gain the maximum revenue, in any way. But if it doesn’t include barakah, then it would not achieve maslahah. Instead, it may cause harmful impact. Just like the “tuyul” we are talking about.

It can’t be denied that if we apply barakah, it would increase total cost or effort. For instance, the innocent Go-Jek drivers would need more efforts and sacrifice, i.e to stand by waiting for passenger, perhaps in a uncomfortable place as well. But they would not do harm to other drivers as well as passengers. They don’t grabbed other drivers’ rights, and the passengers don’t need to wait any longer for pick-up. And “tuyul” is in contrast.

However, it’s the reality, that there are many people do fraud for the sake of their personal gain. They don’t take into account from where their money come from. May God gives them guidance. And may you and I always have baraka in every our activities.


  1.  http://1000daya.blogspot.co.id/2010/11/role-of-maslahah-in-defining-goals-of.html 
  2.  http://makalahegi.blogspot.co.id/2012/09/mencari-maslahah-dengan-ekonomi-syariah.html 

Go-Jek and Fake GPS (and the Driver Behaviour)

Go-Jek, if you haven’t heard before, is a unicorn start-up in Indonesia. It is the first startup of Indonesian origin to be classified as a transport system company.1 You may have known about Uber or Lyft in other countries, or perhaps Grab. Go-Jek, with Go-Ride and Go-Car, is a such service.

I have just got an awkward experience with it, just before I wrote this post. Actually I didn’t want to publicize this, since I was quite tired of my travel, and as it may lead to another effect, I don’t know. Disclaimer, I’m not a regular Go-Jek user, since in my app order history, I have only ordered 12 times (successful one) in this year. I wrote this in the perspective of not-so-often user of Go-Jek service. So, I don’t know much about how it works, how they pay the drivers, etc. Go-Jek, for me, is an interesting thing to observe. Because it is a tech-base service –something that I concern about– and it has economic impact in society –my field of study in college.

The experience I got, was actually a miscommunication. The driver was angry as I told him –in the chat– that I’d like to cancel the order. Actually I was not so serious about that, but not joking either. I wrote that in the chat, because I hate waiting. I suspected him (I didn’t recall his name) using a sort of fake GPS app, or they called it “tuyul”. What I’m sure is that while I’m waiting for the driver to my location, the app shows the current location of the driver. So that I can approximate how long he will likely arrive. But, what I saw in the app, was that the bike icon was just near the location I was waiting. “It’s weird,” I thought. I just got remembered about the news I read in an online media,2 that Go-Jek is still tyring to eradicate those “tuyuls” in their platform. From their perspective, “tuyul” is so disadvantageous for both drivers and passengers. I was googling around and found some articles about how harmful is “tuyul” for Go-Jek.3456 And there’s also a testimony from Go-Jek driver as well.7

Actually, I expected a kind reaction of the driver. But, I forgot that I’m currenty lost JOG and A 😀 I mean JOG from Jogjakarta and the A letter of vehicles license plate. You know, in Jogjakarta they have AB on their first character of vehicles license plate, and in Jakarta it is only B. Three weeks ago, I lived in Jogja, by the way. So I sort of haven’t totally moved on. 😀 I assume “JOG” as hospitality, that Jakartans lost somewhere.

I didn’t guess at all, that the driver would so angry of “order cancelation”. Fortunately, the next driver was willingly explain it to me, all those stuffs I just got. And I also got a perspective about “tuyul” from drivers view. So, basically, I didn’t know that the “cancelation” would impact the drivers income, in this case bonus fee from Go-Jek. I’m really sorry about that. And the surprising thing –at least for me– is that “tuyul” is sort of a common practice in the platform.8

I understand now, that’s why Go-Jek is developing a system to eradicate those “tuyul”.2 And I’m now aware that this is not Jogjakarta. 🙂


  1.  https://en.wikipedia.org/wiki/GO-JEK 
  2.  http://jabar.tribunnews.com/2018/03/22/go-jek-kembangkan-sistem-untuk-deteksi-para-tuyul 
  3.  http://antaranews.id/2018/02/06/aplikasi-tuyul-modal-driver-go-jek/ 
  4.  https://megapolitan.kompas.com/read/2018/02/02/19480181/curhat-pengemudi-ojek-online-soal-kecurangan-pakai-tuyul 
  5.  https://www.liputan6.com/tekno/read/3236067/go-jek-akan-depak-driver-yang-antar-tuyul 
  6.  https://inet.detik.com/law-and-policy/d-3829552/go-jek-driver-bawa-tuyul-bisa-dipecat 
  7.  https://kumparan.com/abdul-latif1510127292540/aplikasi-tuyul-dan-mereka-yang-dirugikan 
  8. that’s all for now. I have to get rest tonight, prepare for tomorrow: Monday! 

Setting up Magento Local Development in openSUSE

Screenshot_20180301_103321

Finally, I managed to install Magento in my local environment of openSUSE. It’s quite tricky to get it up and running. It’s mainly due to filesystem permissions issue, as well as Apache virtual host configuration. I don’t have many experience with Apache, so it took more time to configure the virtual host. Because I prefer LEMP stack, and since a couple of months ago, I use Docker for local development environment instead.

Actually, I have successfully installed it in Fedora as well. But, I delete the installation due to the low disk capacity. The overall steps I did to eventually get Magento served in my localhost are:

  1. Downloading Magento from its official website, and I had to log in first, I downloaded the latest version (2.3)
  2. Installing the prerequisites as described in Magento dev docs, I got a little trouble to fulfill the minimum requirements, i.e. PHP version and extensions. openSUSE Tumbleweed has PHP v 7.2 in the main repo, but Magento didn’t support this version, so I used other repo to install v 7.1. But the issue hasn’t stopped, as that repo didn’t have php-mcrypt package. So I had to download the RPM from somewhere (likely rpmfind.net) which had the nearly compatible version.
  3. Configuring Apache in localhost, where I struggled to get the right configuration
  4. Extracting the Magento tarball and setting filesystem permissions. Actually this step was the hardest phase, although I had followed the instruction from official Magento website.
  5. Running the installation step. Since I didn’t get the right configuration of filesystem permissions, so that the front end installer didn’t show up, I used the Magento command line installer module instead. It’s quite tricky as well, actually. But it worked.
  6. Setting up PHP session directory permission manually. As I put the Magento source files in my home partition, and Apache run as wwwrun user, it cannot access the PHP session directory to write a new session. Actually Magento can make use of other session handler system like memcached and redis, but I didn’t find the corresponding packages in the custom zypper repo I mentioned before.

This is the final result of the installation of Magento in my openSUSE.

Magento dashboard

Screenshot_20180301_223633

my command line history

Installing openSUSE Krypton: an always-updated KDE distro

opensuse grub boot options

I think this is the most reasonable decision for me to install openSUSE (again in another device) in triple-boot with Fedora and Windows. Since I cannot abandon Fedora just like that, for it has created so many awesome memories. LOL, I’m joking. Actually I still have an on-going work in Fedora that I have no intention to move it to openSUSE. Besides, the LVM partition contents of Fedora where my data resides couldn’t be displayed by YaST when I installed openSUSE with Krypton Live ISO. So, I couldn’t just replace the Fedora root partition with openSUSE and then mount the separated home partition.

Screenshot_20180217_203552

The most time-consuming process is partitioning. I had to decide which partition should I “sacrifice” for openSUSE. I didn’t want resize existing partition and created one from it. So, the other option was to replace Fedora, but it’s kind of hard for me. Fortunately, there was a not-so-important NTFS partition and a “Windows recovery” partition that were fairly enough to use. So I came up with deleting both partition for the installation.

I was using Krypton live ISO which only 1 GB in size, unlike the official Tumbleweed ISO that has 4++ GB size. I thought that in such size, it would install only the essential software. But actually, since YaST asked for internet connection, it downloaded updates up to 4 GB! And during the download process, WiFi disconnected, which stopped the process.

Screenshot_20180218_032642After reconnecting a few times, eventually the download process continued. But, there were still some problems. There were some packages that failed to download. I was sure that during the installation, there were updates in the repo as well. As Krypton is always-updated KDE build, which means every single Git push, there will be updates available. So I skipped a few packages, and the installation could be finished. But, after I restarted the laptop and booted up to openSUSE, I got IceWM desktop instead. Yeah, it’s because the essential plasma-desktop and plasma-session were failed to download, or has been updated then.

Fortunately, YaST software installer recorded what missed out from the installation process. It suggested me to download the missing packages as soon as I open it for the first time. So after finishing the installation, I relogin, and finally KDE was here. Frankly, the desktop feels smoother than my Fedora. I wonder what causes it. Whether it’s relatively new installation or my Fedora KDE has been bloated with background programs. Let’s see if openSUSE will still like this until some time onward. 🙂