
Research
SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.
lecture
Advanced tools
Lecture is a way to present a slideshow through the terminal. All slides are written in Ruby. There is an example in the examples folder, found here.
❯ gem install lecture
❯ lecture #{slides.rb}
At the top of your slides.rb file you can use the configure method to configure
settings within Lecture.
configure do |lecture|
lecture.section_footer_text = "───"
end
Configurable settings include:
When writing your slides.rb file you have four slide types available.
A center slide centers every line on the screen horizontally and vertically.
center <<~SLIDE
Hello
This is a slide
SLIDE

A block slide preserves the text formatting, but centers the slide as a whole on the screen.
block <<~SLIDE
The lines in this block of text are
not centered
SLIDE

A section slide has a title and draws a centered string of text above and below the title (default: " § ").
It can be configured with the section_header_text and section_footer_text keys.
Sections allow you to group slides in your Ruby slide deck, and can yield to a block to promote slide organization.
section("This is a section") do
center("This is a centered slide inside a section")
end

A code slide contains source code and has syntax highlighting.
The code method requires a second keyword argument with the name of the programming language.
The syntax highlighting style can be configured with the pygment_style key. Styles can be found here, default is paraiso-dark.
code(%(
class PostsController < ApplicationController
def index
@posts = Post.all
end
end
), lexer: :ruby)

You have a variety of string colors and modes available when creating slides. To get a list of colors and modes you can use: Lecture.available_colors and Lecture.available_modes.
center <<~SLIDE
#{'Slide'.bold}
This is a #{'slide'.green}
SLIDE
You can also use ANSI escape sequences and unicode characters to spice up your slides.
After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/npezza93/lecture.
The gem is available as open source under the terms of the MIT License.
Inspired by fxn/tkn
FAQs
Unknown package
We found that lecture 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
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.

Company News
Socket is proud to join the OpenJS Foundation as a Silver Member, deepening our commitment to the long-term health and security of the JavaScript ecosystem.

Security News
npm now links to Socket's security analysis on every package page. Here's what you'll find when you click through.