https://desenvolvimentoparaweb.com/css/unidades-css-rem-vh-vw-vmin-vmax-ex-ch/
https://www.devmedia.com.br/como-usar-a-propriedade-position-css/24451
https://www.devmedia.com.br/dicas-para-trabalhar-com-a-propriedade-float-do-css/28365
const fs = require('fs'); | |
const path = require('path') | |
filePath = process.argv[2] | |
extension = '.' + process.argv[3] | |
fs.readdir(filePath, function(err, lsContent){ | |
if (err) return console.error(err) | |
lsContent = lsContent.filter(lsContent => path.extname(lsContent) == extension); | |
for (let i = 0; i < lsContent.length; i++){ |
// Some invalid JSON will be available on process.argv[2]. | |
// Build a function called `parsePromised` that creates a promise,performs `JSON.parse` in a `try`/`catch` block, and fulfills or rejects the promise depending on whether an error is thrown.**Note:** your function should synchronously return the promise! | |
// Build a sequence of steps like the ones shown above that catchesany thrown errors and logs them to the console. | |
JSONdata = process.argv[2] | |
function parsePromise(data) { | |
return new Promise(function(fulfill, reject){ | |
try{ | |
parsedData = JSON.parse(data) |
// Get random anime quotes by sending 'quote' | |
// requires nodeJS v >= 16 | |
const Discord = require('discord.js'); | |
const axios = require('axios'); | |
const client = new Discord.Client({ intents: ['GUILDS', 'GUILD_MESSAGES']}); | |
async function getAnimeQuote(){ | |
let res = await axios.get('https://animechan.vercel.app/api/random'); | |
quote = res.data.quote |
const L = parseInt(process.argv[2]); | |
const H = parseInt(process.argv[3]); | |
const T = process.argv[4]; | |
/* exemplo: node asciiArt.js 5 5 ESSE_CODIGO_TA_RUIM | |
##### #### #### ##### #### # #### ##### #### # ##### # #### # # ##### # # | |
# # # # # # # # # # # # # # # # # # # # # ## ## | |
#### # # #### # # # # # # # # # # # ##### #### # # # # # # | |
# # # # # # # # # # # # # # # # # # # # # # # # | |
##### #### #### ##### #### # #### ##### #### # # # # # # ##### ##### # # |
// single line comments use a double slash | |
(* multi line comments use (* . . . *) pair | |
-end of multi line comment- *) | |
// ======== "Variables" (but not really) ========== | |
// The "let" keyword defines an (immutable) value | |
let myInt = 5 | |
let myFloat = 3.14 | |
let myString = "hello" //note that no types needed |
let cards = [0..5] | |
let hand = [] | |
let drawCard (tuple: int list * int list) = | |
let deck = fst tuple // lembre-se que fst é da forma fst() | |
let draw = snd tuple | |
let firstCard = deck.Head | |
printfn "%i" firstCard | |
let hand = |
// ref from https://www.alicemaz.com/writing/program.html | |
// it gets easier to reason about structs being only a definition of how much space we need to allocate for a "composite" data type. | |
typedef struct Android Android; | |
struct Android { | |
char *name; | |
char *secret_name; | |
unsigned int kills; | |
bool on_mission; | |
}; |
#!/bin/bash | |
# ------------------- Install GTK dracula theme ------------------- | |
sudo apt install gnome-tweaks --noconfirm | |
mkdir .themes | |
cd tmp | |
wget https://github.com/dracula/gtk/releases/download/v3.0/Dracula.tar.xz | |
tar -xf Dracula.tar.xz -C ../.themes | |
gsettings set org.gnome.desktop.interface gtk-theme "Dracula" | |
gsettings set org.gnome.desktop.wm.preferences theme "Dracula" |
Given a hashed password $2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom
, we have only one hint: the password has four letters, all lowercase.
There are a lot of hashes out there. A good way to start is to look at the hashed pass and try to find some kind of pattern. Here, the key is the first 4 characters of the hash.
There is a page where you can look at example hashes: https://hashcat.net/wiki/doku.php?id=example_hashes
Noticed something? We are looking for the bcrypt $2*$, Blowfish (Unix). Our $2y$
matches this pattern. So we are looking for a bcrypt hash. We also can grasp that the hash was generated using a factor of 12 (it is the number that comes after the first four characters).
First, it is important to know how the proccess works. Hashing is a process essentially different from encryption - you can only do it once. It means that we cannot really recover the plaintext of a hashed