Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Marky Markov is an experiment in Markov Chain generation implemented in Ruby. It can be used both from the command-line and as a library within your code.
NOTE: 0.3.0 now uses arrays with multiple entries per word instead of a hash key for each word with the value representing number of occurences. While a less elegant solution, it leads to much faster text generation.
gem install marky_markov
A basic usage of the TemporaryDictionary, which parses strings and files into a temporary dictionary that will not be saved to disk.
require 'marky_markov'
markov = MarkyMarkov::TemporaryDictionary.new
markov.parse_string "These words will be added to the temporary dictionary."
markov.parse_file "filename.txt"
puts markov.generate_n_sentences 5
puts markov.generate_n_words 200
markov.clear! # Clear the temporary dictionary.
Dictionary creates or opens a persistent dictionary at a location defined by its initalizer, and will allow you to build and save a dictionary over multiple runs. to ensure existing files aren't overwritten, the system appends .mmd to the end of the dictionary name.
require 'marky_markov'
markov = MarkyMarkov::Dictionary.new('dictionary') # Saves/opens dictionary.mmd
markov.parse_file "ENV["HOME"]/Documents/largefileindocs.txt"
markov.parse_file "anotherfileyay.txt"
puts markov.generate_n_words 10
puts markov.generate_n_sentences 2
markov.save_dictionary! # Saves the modified dictionary/creates one if it didn't exist.
If you keep looking at generate_n_words or generate_n_sentences and wonder why you can't put a number in there, well, you can!
markov.generate_7_sentences
markov.generate_20_words
The default dictionary depth is two words.
{["I", "hope"] => ["this"], ["hope", "this"] => ["makes"], ["this", "makes"] => ["sense"]}
but it can be set to a depth between 1 and 5 upon dictionary creation,
though really any higher than 3 and it starts to simply print passages
from the source text.
markov = MarkyMarkov::Dictionary.new('dictionary', 3)
creates a dictionary with a depth of three words.
{["I", "hope", "this"] => ["makes"], ["hope", "this", "makes"] => ["sense"]
If you want to delete a dictionary you call it upon the Dictionary class itself while passing in the filename/location.
MarkyMarkov::Dictionary.delete_dictionary!('dictionary')
OR you can pass in a MarkyMarkov::Dictionary object directly.
MarkyMarkov::Dictionary.delete_dictionary!(markov)
marky_markov read textfile.txt
to build your word probability dictionary. You can run the command on different files to continue adding to your dictionary file.
marky_markov speak -c 3
Will use the dictionary to create three sentences. If no number is passed it will default to five sentences..
marky_markov speak -s other-file.txt -c 8
Generates a temporary dictionary based on the source file passed to it and uses that to speak. Here we're loading other-file.txt and restricting the generated text to 8 sentences.
echo "Hello, how are you" | marky_markov
Marky-Markov is compatible with other STDIN/STDOUT command-line applications and can accept STDIN.
marky_markov listen "Bullfighting is difficult on the moon"
You can also supply a string as an argument to generate the text with, though the results are nonsense without a substantial text base to work from.
Usage: marky_markov COMMAND [OPTIONS]
Commands:
speak: Generate Markov Chain sentence (5 sentences by default)
listen [sentence]: Generate Markov Chain sentence from supplied string.
read [file]: Add words to dictionary from supplied text file
Options
-d, --dictionary LOCATION Use custom dictionary location
-c, --sentencecount NUMBER Set number of sentences generated
-s, --source FILE Generate and use temporary dictionary from source text
--reset WARNING: Deletes default dictionary.
-h, --help Display this screen
FAQs
Unknown package
We found that marky_markov demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.