fahri.id Open in urlscan Pro
2606:50c0:8003::153  Public Scan

Submitted URL: https://anydevtools.com/
Effective URL: https://fahri.id/
Submission: On July 22 via api from US — Scanned from US

Form analysis 0 forms found in the DOM

Text Content

Fahri NH
Posts Tags Categories About English EnglishBahasa



Fahri NH


Cancel
PostsTagsCategoriesAbout English EnglishBahasa




WELCOME TO MY BLOG

Read my posts in English or Bahasa


BUILDING AN OFFLINE-FIRST REACT WEB APP USING WATERMELONDB IN PHOENIX (ELIXIR)

Fahri  published on 2020-04-29 included in  categories React Phoenix

We will build a web application that supports local db synced with remote db.
This post is a continuation from the previous post: How to Build WatermelonDB
Sync Backend in Elixir.

Read more...
 WatermelonDB, Offline First App


HOW TO BUILD WATERMELONDB SYNC BACKEND IN ELIXIR

Fahri  published on 2020-04-24 included in  categories Elixir Phoenix
WatermelonDB is a reactive database for React frontend application that supports
data synchronization. This tutorial explains the concept and shows step by step
how to build sync backend using Phoenix (Elixir)
Read more...
 WatermelonDB, Sync Backend


GENERATE SEQUENTIAL UUIDV4 IN ELIXIR

Fahri  published on 2020-04-19 included in  category Elixir

The idea is simple. Sequential UUIDv4 (128 bit) consists of unix timestamp (32
bit) + random bytes (96 bit)

Read more...
 UUIDv4


FILE DOWNLOADING IN HEADLESS CHROME USING CHROMEDRIVER AND HOUND

Fahri  published on 2019-09-16 included in  category Elixir

Recently, I am making a simple Elixir application performing some actions to a
website in an automated way.

The automated testing tool is a perfect candidate to be used to help to build
application like that. I use Hound as browser automation library and Chrome as a
controlled browser. For the browser driver, I use ChromeDriver.

Read more...
 Headless Chrome, ChromeDriver, Hound


HOW TO UPDATE POMERA DM100 FIRMWARE

Fahri  published on 2017-11-22 included in  category Gear

Pomera DM100 is a distraction-free digital writing tool. Think mini laptop with
only text editor application loaded.

It comes from Japan. It means its manual is in all Japanese. It becomes hard
when you want to do the crucial procedure (like upgrading firmware) AND Google
Translate doesn’t help you much.

I can only follow some steps in its updating guide web page and the rest of
important steps in PDF are not translatable by Google Translate.

In the end, I have successfully updated my Pomera DM100 to the latest firmware.

Here are the steps:

Read more...
 Pomera DM100


JAVA: HOW TO AUTODETECT THE CHARSET ENCODING OF A TEXT FILE AND REMOVE BYTE
ORDER MARK (BOM)

Fahri  published on 2017-11-08 included in  category Java


TLDR;

Required dependencies (pom.xml) :

<dependency>
    <groupId>com.ibm.icu</groupId>
    <artifactId>icu4j</artifactId>
    <version>60.1</version>
</dependency>
<dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.6</version>
</dependency>


Autodetect the charset encoding of a text file or input stream then ‘remove’
(skip) Byte Order Mark (BOM) while reading based on detected charset :

File inputFile = new File("/Users/fahri/Downloads/UNKNOWN_TEXT.txt");

BOMInputStream bomInputStream = new BOMInputStream(new BufferedInputStream(new FileInputStream(inputFile)),
        ByteOrderMark.UTF_8, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_32BE, ByteOrderMark.UTF_32LE);

System.out.println("HAS BOM : " + bomInputStream.hasBOM());

CharsetDetector detector = new CharsetDetector();
detector.setText(bomInputStream);

CharsetMatch charsetMatch = detector.detect();
System.out.println("CHARSET MATCH : " + charsetMatch.getName());

BufferedReader br = new BufferedReader(new InputStreamReader(bomInputStream, charsetMatch.getName()));
for (String line = br.readLine(); line != null; line = br.readLine()) {
    System.out.println(line);
}
br.close();


Read more...
 BOM, Byte Order Mark, Charset Encoding
Powered by Hugo | Theme - DoIt
2022 Fahri