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