Skip to content

Instantly share code, notes, and snippets.

View anoopelias's full-sized avatar

Anoop Elias anoopelias

View GitHub Profile
@anoopelias
anoopelias / Rust101_Session3.md
Last active March 11, 2024 12:47
Rust101_Session3

Rust 101 - Session 3

Recap

Ownership

fn main() {
    let nums = vec![2, 4, 6];
 let nums2 = nums;
@anoopelias
anoopelias / kqueue.go
Created March 4, 2023 16:41
Redis set/get implementation in Go using kqueue
package main
import (
"fmt"
"strings"
"syscall"
)
func main() {
@anoopelias
anoopelias / non-block.go
Created March 4, 2023 15:22
Redis set/get implementation in Go using non-blocking io
package main
import (
"fmt"
"strings"
"syscall"
)
func main() {
@anoopelias
anoopelias / goroutines.go
Last active March 4, 2023 10:48
Redis set/get implementation in Go using goroutines
package main
import (
"bufio"
"fmt"
"net"
"strconv"
"strings"
)
@anoopelias
anoopelias / TypeClasses.md
Last active December 7, 2021 23:42
What is the fuzz about Type Classes? #scala

Assume you have a couple of classes,

case class Person(name: String, age: Int)
case class Employee(person: Person, salary: Double)

Lets say for some reason,

  • You don't want to change this source, but
  • You should be able to add features save(person) and save(employee), and
  • You need clearly separate implementations for both the types,
@anoopelias
anoopelias / Readme.md
Last active August 12, 2019 04:37
Firefox WebExtensions API `search.get()` throws an error when invoked from Ubuntu distribution

Prerequisites

Firefox 68.0.1 (64bit) installed from Ubuntu distribution,

Steps to reproduce

  1. Copy the files manifest.json and background.js in to a folder
  2. Run $ web-ext run
  3. In address bar type about:debugging. Temporary extensions 'Test Extension' will be loaded.
  4. Click 'Debug'
@anoopelias
anoopelias / Manifest.md
Last active January 20, 2019 08:24
Using Manifest to get around with type erasure in scala

Typically, you can't use a 'new' operator on a generic type. This is because of type erasure.

scala> def create[T] = new T
<console>:7: error: class type required but T found
   def create[T] = new T
                       ^

Scala gives a way of getting around this problem, with the Manifest class.

scala> def create[T](implicit m:Manifest[T]) = m.erasure.newInstance

Keybase proof

I hereby claim:

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

To claim this, I am signing this object:

use std::cmp::max;
fn largest2(arr: [i32; 5]) -> i32 {
arr.iter().fold(0, |num, &x| {
max(num, x)
})
}
fn largest3(arr: [i32; 5]) -> i32 {
arr.iter().fold(0, max) // Do Not compile!
@anoopelias
anoopelias / EulerPath_small.txt
Last active December 28, 2015 02:49
Algorithms II - Job Interview Question
10
14
9 3
2 5
6 5
9 8
0 3
4 7
2 1
0 6