Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View thanh4890's full-sized avatar
🏠
Working from home

Thanh Nguyen Dac thanh4890

🏠
Working from home
View GitHub Profile
@thanh4890
thanh4890 / zsh-plugins.txt
Created November 28, 2023 06:34
zsh plugins
zsh-autosuggestions
zsh-syntax-highlighting
@thanh4890
thanh4890 / Shopee.js
Last active November 27, 2023 16:37
Ecommerce statistics
var totalOrders = 0;
var totalSpent = 0;
var pulling = true;
var offset = 0;
function getStatistics() {
var orders = [];
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/letsencrypt/live/camelot.ai/fullchain.pem"; //REPLACE THE DOMAIN NAME WITH YOURS
ssl_certificate_key "/etc/letsencrypt/live/camelot.ai/privkey.pem"; //REPLACE THE DOMAIN NAME WITH YOURS
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
@thanh4890
thanh4890 / payjp_checkout.js
Last active November 11, 2019 10:06 — forked from mori-dev/payjp_checkout.js
PAY.JP の Checkout 用の React.js コンポーネント
// @flow
import React, { Component } from 'react'
import { findDOMNode } from 'react-dom'
class PayjpCheckout extends Component {
constructor(props: Object) {
super(props);
this.windowAlertBackUp = window.alert;
this.script = document.createElement('script');

NTC

  • Mô tả qua life cycle React
  • Tại sao phải dùng Redux? Giải thích và thuyết phục cho 1 người mới?
  • Sẽ in ra thế nào?
    console.log(1)
    for (var i = 1; i < 4; i++) {
      console.log(i)
    }
    

console.log(10)

@thanh4890
thanh4890 / botanalytics.md
Last active September 27, 2018 10:48
Chat bot analytics
chatbase dashbot botanalytics
Pricing Free or contact for Enterprise Free or contact for Enterprise Free or contact for Enterprise
Demo Demo Demo Demo
Usage Easy Fairly easy Hard
Active users (monthly, weekly, daily)
sessions (Daily sessions, Daily sessions per user, Session time per user, User msgs per session)
Retention Cohorts
Rich Filtering
Transcripts (messages)
//script check scroll to block then load mkt form
var contactUsFormBlock = document.getElementsByClassName('section-contact-us-form')[0];
var Mkt1092LoadCount = 0;
window.addEventListener('scroll', function () {
if (Mkt1092LoadCount === 0) {
var hT = contactUsFormBlock.offsetTop,
hH = contactUsFormBlock.offsetHeight,
wH = window.innerHeight,
wS = this.pageYOffset;
<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
.bd-loading {
display: none;
}
<style>
<link rel="preload" href="style.css">