Skip to content

Instantly share code, notes, and snippets.

View ikhattab's full-sized avatar
🎮
.

Ihab Khattab ikhattab

🎮
.
View GitHub Profile
@KATT
KATT / favourite-ts-tricks.md
Last active July 26, 2023 06:16
🧙‍♂️ Favourite non-obvious TS tricks

Record<string, x | undefined>

Represent maps

// rather than 
const map: {[ key: string ]: string} = {
  foo: 'bar',
}

Dev Setup

  1. Homebrew/terminal/bash
  2. OSX Productivity - Window Management/Quick Launcher/Hyperswitch
  3. OSX Settings - Dock/Finder
  4. Web Browser - Extensions - AdBlock, Privacy Badger, OneTab, JSONViewer, Stylus, Vue Devtools, React Devtools
  5. Node.js - nvm
  6. Code Editor - vs code
  7. Code Editor Extensions
  8. Break timer and Flux
xcode-select --install
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew cask install iterm2
# update iterm2 settings -> colors, keep directory open new shell, keyboard shortcuts
brew install bash # latest version of bash
# set brew bash as default shell
brew install fortune
brew install cowsay
brew install git

FWIW: I (@rondy) am not the creator of the content shared here, which is an excerpt from Edmond Lau's book. I simply copied and pasted it from another location and saved it as a personal note, before it gained popularity on news.ycombinator.com. Unfortunately, I cannot recall the exact origin of the original source, nor was I able to find the author's name, so I am can't provide the appropriate credits.


Effective Engineer - Notes

What's an Effective Engineer?

@pizzarob
pizzarob / 01_DropZone.jsx
Last active July 12, 2024 07:05
HTML5 Drag and Drop File Upload React Component
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
const ANIMATION_DURATION = 1000;
class BatchDropZone extends React.Component {
static propTypes = {
@tdd
tdd / Learning and exploring ES6.md
Last active November 10, 2020 09:01
Good resources to learn, discover and explore ES6 in-depth

Learning

  • ES6 Katas - Small, byte-size exercises to discover most aspects of ES6 features by doing interactive, online exercises. Pretty awesome.
  • Learn ES2015 - A great part of Babel's website that takes you through examples of all supported ES6+ features
  • ES6-Features.org - Nice ES6 / ES5 comparisons of many ES6 language features
  • ES6 Features - A single-page tour of code examples for just about every ES6 feature, by Luke Hoban

Exploring in-depth

  • ES6 In Depth - A great series of articles on Mozilla Developer Network (MDN); also available in French through great translation efforts.
@danielgtaylor
danielgtaylor / gist:0b60c2ed1f069f118562
Last active April 2, 2024 20:18
Moving to ES6 from CoffeeScript

Moving to ES6 from CoffeeScript

I fell in love with CoffeeScript a couple of years ago. Javascript has always seemed something of an interesting curiosity to me and I was happy to see the meteoric rise of Node.js, but coming from a background of Python I really preferred a cleaner syntax.

In any fast moving community it is inevitable that things will change, and so today we see a big shift toward ES6, the new version of Javascript. It incorporates a handful of the nicer features from CoffeeScript and is usable today through tools like Babel. Here are some of my thoughts and issues on moving away from CoffeeScript in favor of ES6.

While reading I suggest keeping open a tab to Babel's learning ES6 page. The examples there are great.

Punctuation

Holy punctuation, Batman! Say goodbye to your whitespace and hello to parenthesis, curly braces, and semicolons again. Even with the advanced ES6 syntax you'll find yourself writing a lot more punctuatio

@AhmedSoliman
AhmedSoliman / toString.scala
Created April 26, 2015 15:33
A sample quiz answer on how to create toString without relying on primitive toString method for integers
def customToString(x: Int): String = {
val digits: Array[Char] = Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
def recur(base: Int, digit: Int, accu: List[Char]): List[Char] = {
val newAcc = digits(digit) :: accu
if (base == 0) newAcc
else recur(base / 10, base % 10, newAcc)
}
val absX = math.abs(x)
val toCharList = recur(absX / 10, absX % 10, List.empty)
if (x < 0) ('-' :: toCharList).mkString

2015-01-29 Unofficial Relay FAQ

Compilation of questions and answers about Relay from React.js Conf.

Disclaimer: I work on Relay at Facebook. Relay is a complex system on which we're iterating aggressively. I'll do my best here to provide accurate, useful answers, but the details are subject to change. I may also be wrong. Feedback and additional questions are welcome.

What is Relay?

Relay is a new framework from Facebook that provides data-fetching functionality for React applications. It was announced at React.js Conf (January 2015).

@ericelliott
ericelliott / essential-javascript-links.md
Last active July 30, 2024 20:53
Essential JavaScript Links