Skip to content

gdagstn/alamak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alamak

alamak catches your errors and lets a Pixel Pal (patent pending) tell you all about it.

The name comes from the Singlish/Malay expression "alamak!", which is an exclamation that follows a surprising/unsettling event, or a minor nuisance, according to the vibe.

Install

As usual, install throught devtools:

devtools::install_github("gdagstn/alamak")

Use

You may think that in order to use alamak you need to know how to code. The opposite is true: not knowing how to code will let alamak shine in all its glory.

Wrap your call into a call to alamak(). If a warning or an error occurs, a Pixel Pal (patent pending) appears on the screen and tells you what they think about you and your situation.

library(alamak)
alamak(your_function(), pixelpal = "Jerry")

Alternatively, and if you are using R 4.0 and above, you can use the |> (pipe) operator (or the %>% magrittr pipe for versions below). Note that sometimes the function call on the left has to be enclosed in parentheses to work:

sum(a, 3) |> alamak(pixpal = "Lenny")
sum(a, 3) %>% alamak(pixpal = "Oniji")

# This also works but needs parentheses
(a + 3) |> alamak(pixpal = "Buster")

alamak() displays compressed Pixel Pals by default. Compression saves space, but in some terminals it does not work well. You can disable it by adding compress = FALSE to the alamak() arguments.

The Rstudio console default theme (TextMate) has a line height that doesn't render "pixels" properly. To fix this you can edit the .rstheme file by adding this element:

#rstudio_console_output {
    line-height: 1.2 !important;
}

alamak is quite dumb and should not be used in professional settings, unless that's your thing.

Pixel Pals

There are 5 Pixel Pals (patent pending) available:

Jerry, a parrot who doesn't like you very much:

Jerry the parrot

Buster, a cool lemon:

Buster the cool lemon

Lenny, a supportive velociraptor who is also great with kids:

Lenny the raptor

Oniji, an 18th century Japanese kabuki actor who only speaks in haiku:

Oniji the actor

E10N, a no-nonsense robot from the not so distant future

E10N the robot

You can create another Pixel Pal (patent pending) yourself! If you have a 16x16 (can be bigger but may distort the text on the screen) PNG file with transparency you can load it. As a reference, consider that every "pixel" is actually two whitespaces with a colored background, so a 32x32 picture will take up 64 spaces in size in the terminal.

You only need to make a list with the following elements:

  • crayon: the result of a call to makePixelPal() where the argument is the path to a PNG file
  • messages: a nested list containing two other lists:
    • Error: a character vector of error messages
    • Warning: a character vector of warning messages

You can choose whether you want the Pixel Pal to be compressed or not.

new_pixelpal = list("crayon" = makePixPal("path/to/picture.png", compress = TRUE),
                    "messages" = list(
                    "Error" = c("The first possible message", 
                                "The second possible message", 
                                "And so on", 
                                "You know the drill"),
                     "Warning" = c("A warning message",
                                   "Another warning message")
                                  )
                        )

then use it with alamak

alamak(your_function(), new_pixelpal)

Acknowledgements

  • Gábor Csárdi for the crayon package
  • Simon Urbanek for the png package
  • Trevor L. Davis for suggestions on compression using Unicode Blocks

About

alamak catches your errors and lets a pixel pal tell you all about it.

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages