Skip to content

Instantly share code, notes, and snippets.

View forabi's full-sized avatar
🎯
Focusing

M-Fawaz Orabi forabi

🎯
Focusing
View GitHub Profile
@forabi
forabi / Webpack 2.0.7-beta vs Rollup
Last active January 28, 2020 08:54
Webpack 2 vs Rollup
❯ rollup --version
rollup version 0.25.3
❯ time rollup -c ./rollup.js
rollup -c ./rollup.js 4.65s user 0.22s system 118% cpu 4.131 total
❯ time webpack
Hash: ebb00bbccd954c114d3c
Version: webpack 2.0.7-beta
Time: 3623ms
@forabi
forabi / canvas.ts
Last active December 18, 2019 08:15
Configuring Webpack and TypeScript for relative module imports
// src/store/reducers/workspace/canvas.ts
import { handleActions } from 'utils/store';
/// ...

Keybase proof

I hereby claim:

  • I am forabi on github.
  • I am forabi (https://keybase.io/forabi) on keybase.
  • I have a public key ASDGvN6idKxnfVCTRh4nPxlJTKJUBPQkv1z4VUa44CNdkgo

To claim this, I am signing this object:

@forabi
forabi / pdfcount.sh
Created August 1, 2015 11:29
Get total page count for all PDF files in the current working directory. Requires pdfinfo
#!/bin/bash
num_pages=0;
for file in *.pdf; do
f_pages=$(pdfinfo "$file" 2>/dev/null | grep Pages | cut -d ":" -f 2 | sed -e 's/^[ \t]*//')
if [[ -z $f_pages ]]; then
echo "Error in $file" && exit 1;
fi
num_pages=$(( num_pages + $f_pages ))
done
echo $num_pages;
import java.io.*;
import java.util.*;
import javax.comm.*;
public class SimpleWrite {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "Hello, world!\n"; // الجملة يلي بدنا نكتبها ع المنفذ
static SerialPort serialPort;
static OutputStream outputStream;
import java.io.*;
import java.util.*;
import javax.comm.*;
/* الكلاس بتعتمد واجهة Runnable مشان نقدر نشغلها بـThread لحالها>
/ SerialPortEventListener على ما يبدو جاية من حزمة javax.comm
/ بتخلينا نستمع لأي تغيرات على منفذ تسلسلي،
/ يعني لما بصير أي شي على المنفذ، فينا نعمل أي شي،
/ هي بس شغلتا تخبرنا شو صار. */
public class SimpleRead implements Runnable, SerialPortEventListener {
@forabi
forabi / auto_rtl.js
Last active April 11, 2016 17:50
Fix text direction for RTL articles on Pocket and file previews on GitHub and GitLab
// ==UserScript==
// @name Auto-RTL
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Fixes layout direction (RTL/LTR) for text on various websites
// @author You
// @match https://gitlab.com/*
// @match https://github.com/*
// @match http*://getpocket.com/beta/read/*
// @match http*://getpocket.com/read/*
@forabi
forabi / rename.js
Last active December 30, 2015 07:29
var fs = require('fs');
var path = require('path');
fs.readdir(process.cwd(), function(err, files){
var newNames = {};
files.forEach(function(file){
console.log(file);
if (file.match(/.+.txt/i)){
console.log('Found text file', file);
fs.readFile(path.join(process.cwd(), file), 'utf8', function(err, data){
newNames[file] = [];
@forabi
forabi / ar.json
Created August 29, 2011 19:58 — forked from cramforce/de.json
lang.json
{
"locale": "ar",
"text": {
"#authors": [
{
"name": "Muhammad Fawwaz Orabi",
"screen-name": "forabi"
}
],
"tweet": {
@forabi
forabi / 99-arabic.conf
Created June 14, 2015 18:20
Substitute Linux default font family for Arabic with Helvetica World. Save as /etc/fonts/conf.d/99-arabic.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
<fontconfig>
<match>
<test name="lang" compare="contains">
<string>ar</string>
</test>
<test name="family" compare="not_eq">
<string>monospace</string>