Skip to main content

Posts

Utilizing Ref Attribute for Referring HTML or React Elements

For accessing the DOM node of an HTML element or referring a React element, we can utilize the ref attribute. In React, we can utilize React.crateRef() function or React.useRef() hook for generating an object that has access to the referred DOM node. Several cases may be faced while we are developing React application. 1) Referring HTML Element . class RefHtml extends React.Component { constructor(props){ super(props); this.textInput = React.createRef(); } render() { return ( <div> <input type="text" ref={this.textInput} /> <button onClick={()=>{this.textInput.current.focus();}}>Focus</button> </div> ); } } 2) Referring React Element (Class Component) . class ReferredElement extends React.Component { constructor(props){ super(props); this.state = {status: "inactive"}; } setActiveState() { this.setState({status: "active"}); } render() {

Serving Single-Page React App with Docker

If you build a single-page application using React while your app only gets backend data through API access, it will be convenient to utilize the Create-React-App toolchain. For serving your app to the public, you actually just need to serve the generated static files. Serving static files can be easier when you utilize a container for shipping a web server. Initiate react project then build the app. npx create-react-app my-app cd my-app npm run build Create Nginx server configuration for your app site.conf . server { listen 80; server_name my-app.localhost; index index.html; root /app; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; try_files $uri $uri/ index.html =404; } Create a Dockerfile for building containerized web server. # syntax=docker/dockerfile:1 FROM nginx:latest WORKDIR /app COPY ./build . COPY ["./site.conf", "/etc/nginx/conf.d/"] Build the image and run the container. docker build -t my-servic

Create HTTP/2 Client-Server on Node.js

Node.js has support for building HTTP2 communication. HTTP2 has better efficiency compared to HTTP1.1 as described in my earlier post . In this example, we will build a client-server program that utilizes the HTTP2 module. Create server application server.js . const http2 = require('http2'); const server = http2.createServer(); server.on('stream', (stream, headers) => { stream.respond({ status: 200, 'content-type': 'text/html' }); stream.end('<html><head><title>Hello</title></head><body><p>Hello World</p></body></html>') }); server.listen(6000); Create client application client.js . const http2 = require('http2'); const client = http2.connect('http://localhost:6000'); const request = client.request({ ':path': '/' }); let str = ''; request.on('data', (chunk)=>{ str+=chunk; }); request.on('end',

Film Thriller, Horror, dan Misteri Asia Terbaik

Dulu saya sudah pernah menulis beberapa film misteri yang menurut saya bagus di " Film Misteri Asia Terbaik ". Ini adalah beberapa film lainnya yang sangat cocok ditambahkan ke dalam daftar. 1. The Wailing (2016) Beberapa peristiwa kematian dan pembunuhan terjadi di sebuah desa. Seorang polisi setempat mulai menyelidiki kasus-kasus tersebut. Seorang kakek yang tinggal sendiri di gunung dicurigai sebagai penyebabnya. Namun, dugaan baru muncul bahwa ada makhluk lain yang menghantui yang mampu mencelakai dukun yang sedang dimintai bantuan untuk menyelesaikan masalah. Siapa yang benar dan siapa penyebab kasus-kasus di desa itu terjawab di akhir film. 2. Bedevilled (2010) Seorang perempuan berlibur ke tempat tinggal masa kecilnya di desa di sebuah pulau. Dia bertemu dengan teman perempuannya di masa kecil yang masih menetap di desa itu yang telah mengalami banyak diskriminasi oleh warga desa itu. Akibat berbagai kejadian dan besarnya rasa kecewa, sang teman berubah menjadi seorang

Create Multi-stage Dockerfile for Development and Production

By utilizing container technology like Docker, we can have an identical environment for development and production. But, working in a development environment requires us to be able to change the source codes directly. We can define multi-stage procedures in the Dockerfile and specific commands to run the container. For example, we have a Node.js program that will be shipped using a container. 1. Create a Dockerfile with stages for development and production. # syntax=docker/dockerfile:1 FROM node:14.17.1 as base WORKDIR /app COPY ["package.json", "package-lock.json", "./"] FROM base as development ENV NODE_ENV=development RUN npm ci COPY . . CMD ["nodemon", "-L", "app.js"] FROM base as production ENV NODE_ENV=production RUN npm ci --production COPY . . CMD ["node", "app.js"] In this example, the program for development is run using nodemon therefore we need to install nodemon first by npm i -D node

Film Action dan Misteri Asia Terbaik

 Ini adalah beberapa film action dan misteri asia yang bagus menurut saya.  1. New World (2013) Sekelompok polisi ditugaskan menyamar sebagai bagian dari kelompok mafia untuk mengungkap skandal korupsi yang ada. Namun, hubungan yang kemudian terbangun kuat di dalamnya, membuat seorang polisi meragukan siapa yang benar, siapa temannya yang sesungguhnya, dan siapa yang harus dibela. 2. A Hard Day (2014) Film ini menceritakan seorang polisi yang mengalami sebuah kecelakaan saat mengendarai mobilnya yang kemudian malah menggiringnya ke sebuah kasus besar yang tidak terduga dan membuatnya harus berhadapan dengan musuh yang menyeramkan. Benar-benar hari yang berat. 3. Alive (2020) Ini adalah film dengan tema zombie. Ada seorang pemuda yang terperangkap di dalam komplek apartemennya ketika serangan zombie datang. Dia sempat frustasi karena tidak adanya pertolongan, namun ternyata ada survivor lain yang akhirnya dapat membantu dia untuk menyelamatkan diri dan tetap hidup. Salah satu aktris dal