Skip to content

Instantly share code, notes, and snippets.

View irfanfadilah's full-sized avatar
⚔️
Coding For Fun

Irfan Fadilah irfanfadilah

⚔️
Coding For Fun
View GitHub Profile
@irfanfadilah
irfanfadilah / og_image.js
Created April 8, 2024 13:33
Dynamic OpenGraph Image on Cloudflare Workers
import { ImageResponse } from 'workers-og'
export default {
async fetch(request) {
let param = request.url.split('/').pop() || '@_irfanfadilah'
if (param.length > 50) {
param = 'Text Too Long!'
}
@irfanfadilah
irfanfadilah / redis-cache-server.txt
Last active November 5, 2023 14:06
Setup Simple Redis Cache Server
1. Install Redis
2. Start and Enable:
- sudo systemctl start redis-server
- sudo systemctl enable redis-server
3. Update Config:
- bind 0.0.0.0
- protected-mode no
- maxmemory 100mb
- maxmemory-policy allkeys-lfu
4. Set ACL and disable default user in Config:
@irfanfadilah
irfanfadilah / keybindings.json
Created December 21, 2020 20:16
VSCode Keyboard Shortcuts
// Place your key bindings in this file to override the defaultsauto[]
[
{
"key": "ctrl+alt+left",
"command": "-workbench.action.moveEditorToPreviousGroup"
},
{
"key": "ctrl+alt+right",
"command": "-workbench.action.moveEditorToNextGroup"
},
@irfanfadilah
irfanfadilah / .bash_aliases
Last active December 15, 2022 03:09
Ultimate Bash Aliases
# Bash
alias bo="nano ~/.bashrc"
alias bu="source ~/.bashrc"
alias ba="nano ~/.bash_aliases"
# Kubectl
kupods() { kubectl get pods --namespace=$1; }
kubash() { kubectl exec $2 --namespace=$1 -it bash; }
kulogs() { kubectl logs --follow $2 --namespace=$1; }
kudesc() { kubectl describe pods --namespace=$1 $2; }
@irfanfadilah
irfanfadilah / settings.json
Last active February 18, 2020 02:11
Visual Studio Code - Preferences
{
"editor.tabSize": 2,
"editor.smoothScrolling": true,
"editor.minimap.enabled": false,
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true,
"workbench.startupEditor": "none",
"editor.copyWithSyntaxHighlighting": false,
"editor.matchBrackets": "never",
@irfanfadilah
irfanfadilah / .hyper.js
Last active December 14, 2022 07:36
Hyper Terminal - Preferences
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.
module.exports = {
config: {
// choose either `'stable'` for receiving highly polished,
// or `'canary'` for less polished but more frequent updates
updateChannel: 'stable',
@irfanfadilah
irfanfadilah / simple-image-upload.js
Created January 23, 2017 04:58
Simple Validation and Preview for Image Upload (JavaScript)
var _URL = window.URL || window.webkitURL;
$("#article_image").change(function(){
var file, img, reader;
if ((file = this.files[0])) {
img = new Image();
img.onload = function(){
if ( (this.width < 960) || (this.height < 300) ) {
alert("Image must be larger than 960x300 pixels!")
} else {
@irfanfadilah
irfanfadilah / Preferences.sublime-settings
Last active November 17, 2020 03:21
Sublime Text 3 - Preferences
{
"color_scheme": "Packages/Material Theme/schemes/Material-Theme-Darker.tmTheme",
"default_line_ending": "unix",
"drag_text": false,
"ensure_newline_at_eof_on_save": true,
"font_size": 10,
"ignored_packages": ["Vintage"],
"line_padding_bottom": 1.5,
"line_padding_top": 1.5,
"material_theme_accent_scrollbars": true,
@irfanfadilah
irfanfadilah / dnsmasq.txt
Last active October 9, 2018 11:58
Rails Subdomain Development with DNSMasq
Ubuntu:
sudo apt-get install dnsmasq
sudo gedit /etc/dnsmasq.conf
add: address=/rails.env/127.0.0.1
sudo service dnsmasq restart
Mac:
brew install dnsmasq
@irfanfadilah
irfanfadilah / dailymotion_api_live_event.rb
Created January 26, 2016 07:30
DailyMotion API Snippet for Live Event (Broadcast and Stream)
client_id = "xxxxxxxxxxxxxxxxxxxx"
client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
redirect_uri = "http://localhost:3000/callback/dailymotion"
# Ask user permission
get = "https://www.dailymotion.com/oauth/authorize?response_type=code&client_id=#{client_id}&redirect_uri=#{redirect_uri}&scope=manage_videos"
# Get access_token & refresh_token