Skip to content

Instantly share code, notes, and snippets.

View lovasoa's full-sized avatar
🎯
Focusing

Ophir LOJKINE lovasoa

🎯
Focusing
View GitHub Profile
@lovasoa
lovasoa / collatz.rs
Created May 29, 2020 15:20
3n+1 conjecture in generic rust
use num::{Integer};
use std::ops::{MulAssign, DivAssign, AddAssign};
struct Collatz<T>(T);
impl<T> Iterator for Collatz<T>
where T: Integer + MulAssign + DivAssign + AddAssign + Clone,
{
type Item = T;
fn next(&mut self) -> Option<T> {
@lovasoa
lovasoa / naoned.as
Last active March 28, 2020 12:30
Naoned viewer image URL computation
public function on_complete_load_xml(param1:Event) : void
{
var _loc3_:* = undefined;
var _loc4_:* = undefined;
var _loc7_:* = undefined;
var _loc8_:* = undefined;
var _loc9_:* = undefined;
var _loc10_:MovieClip = null;
is_authorize_mainclip = true;
var _loc2_:XML = new XML(param1.target.data);
@lovasoa
lovasoa / co2_emissions_by_energy_source.csv
Created March 4, 2020 20:47
co2 emission by energy source.csv
Source Emissions in grams per KWH
BIOMASS 230
FOSSIL_GAS 490
FOSSIL_HARD_COAL 820
FOSSIL_OIL 820
HYDRO_PUMPED_STORAGE 51
HYDRO_RUN_OF_RIVER_AND_POUNDAGE 24
HYDRO_WATER_RESERVOIR 24
SOLAR 27
WASTE 500
@lovasoa
lovasoa / download_regards.py
Created March 2, 2020 19:48
Téléchargement en masse d'images HD depuis le site regards.monuments-nationaux.fr
import requests
import re
s = requests.Session()
s.headers.update({'User-Agent': 'M'})
for n in range(91563, 91563+1000):
u = f'https://regards.monuments-nationaux.fr/fr/asset/id/{n}/x/idFeatureFrom/798/thumbIndex/0/mosaicCount/177/ajax/1/format/json'
h = s.get(u).json()['html']
title = re.search('<h1 title="([^"]+)"', h).group(1)
@lovasoa
lovasoa / cached_field.rs
Created February 18, 2020 18:26
A macro for cached computed fields in rust. Generates a function that checks the cached value of a field, and computes it if it's is not present.
use std::fmt::Debug;
#[derive(Debug)]
struct S {
x: Option<u32>,
y: u32,
}
/// Generates a funtion named $field the returns the existing value for
/// $field in self if it's not None, and otherwise computes it in
"""
Solution to https://gist.github.com/lovasoa/a4efdd4f30cc0ee4cd9f0563fb7ec64e
execute with:
mkfifo fifo
python3 crack.py < fifo | python3 challenge.py | tee fifo
"""
password = ""
for i in range(64):
@lovasoa
lovasoa / advent.js
Created December 5, 2019 16:53
Advent of code 2019 VM
function exec(a,b){
let pgm = document.body.innerText.split(',').map(x=>parseInt(x));
pgm[1] = a; pgm[2] = b;
for(let p=0; ; p+= 4){
if(pgm[p]==1) pgm[pgm[p+3]] = pgm[pgm[p+1]] + pgm[pgm[p+2]];
else if(pgm[p]==2) pgm[pgm[p+3]] = pgm[pgm[p+1]] * pgm[pgm[p+2]];
else if(pgm[p]==99) break;
else throw new Error("invalid opcode "+pgm[p]);
}
return pgm[0];
@lovasoa
lovasoa / challenge.py
Last active February 2, 2020 05:44
Cybersecurity challenge: will you be able to extract the SECRET by running this script ?
#!/usr/bin/env python3
import random
SECRET = ''.join(random.choice("0123456789") for i in range(64))
class Sandbox:
def ask_age(self):
self.age = input("How old are you ? ")
self.width = input("How wide do you want the nice box to be ? ")
-- Run online at: https://repl.it/repls/WeeSlightExams
-- hackernews thread: https://news.ycombinator.com/item?id=21543377
solve funcs = filter (matches funcs) (possibilities funcs)
matches funcs truths = truths == zipWith (($).($truths).flip) funcs [0..]
possibilities [] = [[]]
possibilities (x:xs) = concatMap (sequence [(True:), (False:)]) (possibilities xs)
all_of = ((and.).)
one_of = ((or.).)
@lovasoa
lovasoa / get_tile_counts.js
Last active October 29, 2019 23:58
zoomify viewer initialization function
function get_tile_counts(width, height, tile_width, tile_height, numtiles) {
var level_count = 0, level_widths=[], level_heights=[], level_tile_count=[], level_tile_count_x=[], level_tile_count_y=[];
var imageW = width;
var imageH = height;
var tileWidth = tile_width;
var tileHeight = tile_height;
width = imageW;
height = imageH;
while (width > tileWidth || height > tileHeight) {