Skip to content

Instantly share code, notes, and snippets.

Creating a custom ESXi install ISO for HPE gen7 servers

Avoids broken smx driver that is present in the HPE 6.5 U3 image.

All below powershell commands must be run in a VMWare PowerCLI (version 6.5) session

  1. Download the HPE PreGen9 Custom Image for ESXi 6.5 U3 Offline Bundle from https://customerconnect.vmware.com/downloads/details?downloadGroup=OEM-ESXI65U3-HPE&productId=614

  2. Download the smx provider:
    wget https://vibsdepot.hpe.com/sdx/downloads/nov2016/gen9v4/esxi-600-vibs/hpe-smx-provider/hpe-smx-provider-600.03.11.00.9-2768847.vib

  3. Add the original 6.5 iso as a depot:

meta:
id: hs17
file-extension: hs17
endian: be
seq:
- id: packet
type: ccsds_packet
repeat: expr
repeat-expr: 6
@lokkju
lokkju / nodes-command.sh
Last active April 1, 2020 08:49
Run a command on all nodes in a hadoop cluster
# ssh -A hadoop@<masternode>
# SCRIPT=<yourscriptfile.sh>
declare nodes=`yarn node -list 2> /dev/null | grep internal | cut -d' ' -f1 | cut -d: -f1`
for node in $nodes
do
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hadoop@$node 'bash -s' < $SCRIPT
done
@lokkju
lokkju / DatesUntilImplicits.scala
Last active January 29, 2020 21:43
Java 8/scala backport of datesUntil for iterating through dates
import java.time.temporal.{ChronoUnit, Temporal, TemporalAmount}
import java.time.{Duration, Period}
import scala.concurrent.duration.FiniteDuration
object DatesUntilImplicits {
implicit class DatesUntilExtensions[T <: Temporal with Comparable[_]](val start: T) {
def datesUntil(end: T, step: TemporalAmount): Iterator[T] = {
Iterator.iterate(start) {
_.plus(step).asInstanceOf[T]

for Nvidia GPU

wget https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.168_418.67_linux.run

sudo sh cuda_10.1.168_418.67_linux.run

Un-check the "Driver" block and then select "Install" and hit "Enter".

┌──────────────────────────────────────────────────────────────────────────────┐

@lokkju
lokkju / fare_rules.yaml
Created November 11, 2019 16:35
Examples of querying kiwi.com's flight API (and returning results based on earned elite qualifying mileage for American Airlines)
AA:
codes:
F: {award_mod: 1.0, bonus_mod: 1.0, qm_mod: 3.0, eqd_mod: .40, eqs_mod: 1.0, name: First}
A: {award_mod: 1.0, bonus_mod: 1.0, qm_mod: 2.0, eqd_mod: .40, eqs_mod: 1.0, name: First}
J: {award_mod: 1.0, bonus_mod: 1.0, qm_mod: 3.0, eqd_mod: .40, eqs_mod: 1.0, name: Business}
R: {award_mod: 1.0, bonus_mod: .75, qm_mod: 2.0, eqd_mod: .35, eqs_mod: 1.0, name: Business}
D: {award_mod: 1.0, bonus_mod: .50, qm_mod: 2.0, eqd_mod: .30, eqs_mod: 1.0, name: Business}
I: {award_mod: 1.0, bonus_mod: 0.0, qm_mod: 2.0, eqd_mod: .20, eqs_mod: 1.0, name: Business}
W: {award_mod: 1.0, bonus_mod: 0.0, qm_mod: 1.5, eqd_mod: .20, eqs_mod: 1.0, name: Premium Economy}
P: {award_mod: 1.0, bonus_mod: 0.0, qm_mod: 1.5, eqd_mod: .20, eqs_mod: 1.0, name: Premium Economy}
@lokkju
lokkju / rotating_vigenere_decoder.py
Last active October 7, 2018 20:47
rotating vigenere decoder for adversary group
from itertools import count
from string import ascii_letters
_cidx = dict(zip(ascii_letters, count(1)))
def decipher(key,enc,rot):
"""
Deciphers Vigenere cipher with the given key and rotated alphabet
Parameters:
curl "https://www.ethernodes.org/network/1/data?draw=1&columns%5B0%5D%5Bdata%5D=id&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=host&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=port&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=country&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=clientId&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=tr
package org.apache.spark.sql.catalyst.expressions
import org.apache.spark.sql._
import org.apache.spark.sql.catalyst._
import org.apache.spark.sql.catalyst.analysis._
import org.apache.spark.sql.catalyst.expressions.aggregate._
import org.apache.spark.sql.types._
import scala.collection.mutable
def time[R](block: => R): R = {
val t0 = System.nanoTime()
val result = block // call-by-name
val t1 = System.nanoTime()
println("Elapsed time: " + (t1 - t0) + "ns")
result
}