npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@mattb.tech/eretti

v0.5.1

Published

A tool for using any device as a distraction free e-typewriter.

Downloads

4

Readme

eRetti

TODO

  • Try setting up nodogsplash
  • Photo of setup
  • Make video of usage
  • Usage guide
  • Setup script that installs software etc.

Items Required

  • Raspberry Pi 3 B+
  • USB Power pack and cable
  • MicroSD card and adapter to plug into laptop
  • Ethernet cable (to get started only)
  • Laptop (all instructions here for Mac OS X laptop)

Setup

Tiny Core Install

First we need to install the base Tiny Core Linux system onto the MicroSD card. When I plug the SD card into my laptop it comes in as /dev/disk3, but please be aware that it may come up as something else on your system. If you blindly follow the commands below you will wipe /dev/disk3 on your system.

For the commands below to work you need to click to "eject" the MicroSD card you've plugged in to your laptop, otherwise it will complain: dd: /dev/disk3: Resource busy.

$ cd `mktemp -d`
$ wget http://www.tinycorelinux.net/11.x/armv7/test_releases/RPi/piCore-11.0beta1a.zip
$ unzip piCore-11.0beta1a.zip
$ sudo dd bs=4m if=piCore-11.0beta1a.img of=/dev/disk3

First Boot

Put the SD card in the Raspberry Pi, and boot it for the first time by connecting it to a USB power pack (or other USB power source). Connect up an Ethernet cable to get on the Internet as well.

You should be able to SSH into the machine after a few seconds. The password will be piCore.

$ ssh tc@box

First things first run...

tc@box:~$ filetool.sh -b

This will backup the current content of the system onto the SD card, which means the newly generated SSH keys will be the same next time you connect, avoiding grizzly security warnings.

Setting up partitions

Then we want to enter the interactive mode of fdisk to fiddle around with the partitions. We are aiming to (1) expand the size of the second partition which will store the software and (2) create another partition just to store our writing.

tc@box:~$ sudo fdisk -u /dev/mmcblk0

Start by entering p. This will output something like this...

Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk0p1    43,4,3      1023,37,5         8192     195692     187501 91.5M  6 FAT16
/dev/mmcblk0p2    1023,37,5   1023,37,5       195693     351943     156251 76.2M 83 Linux

Note down the StartLBA of /dev/mmcblk0p2 as we're going to need it later.

Next we want to delete the second partition. Enter d and then 2. Then we want to create a new primary partition in its place. Enter n, p and then 2. Then for the "First sector" enter the StartLBA number we noted down earlier. Enter +1024M giving us a generous 1Gb of storage space for our application.

We use a "linux" format for this second partition by entering t then 2 then 83.

Again, we'll want to enter p to see the work we've done so far. This time note down the EndLBA of /dev/mmcblk0p2.

We follow a similar process to create the third partition. Enter n, p, and then 3. For the "First sector" enter the EndLBA we've noted down plus one. We can accept the default for the end sector to go to the end of our SD card.

To make it easy to get the writing off on multiple machines we want to make this partition easily readable. We make it FAT32 to do so. Enter t, 3, b.

With all this done we want to enter w to write the changes.

Reboot before the next steps.

tc@box:~$ sudo reboot

Once you've SSH'd back in.

tc@box:~$ sudo resize2fs /dev/mmcblk0p2
tc@box:~$ sudo mkfs.vfat -F 32 -n eRetti /dev/mmcblk0p3

Setup our output filesystem to mount on boot

tc@box:~$ echo "mkdir /mnt/kindlewriter && mount -t vfat /dev/mmcblk0p3 /mnt/kindlewriter -o rw,umask=000" >> /opt/bootlocal.sh
tc@box:~$ filetool.sh -b

Install Prerequisites

Install tcz using tce-load

tc@box:~$ tce-load -wi screen firmware-rpi-wifi wifi wireless_tools libnl

Install node

tc@box:~$ wget https://nodejs.org/dist/v14.3.0/node-v14.3.0-linux-armv7l.tar.xz
tc@box:~$ tar xf node-v14.3.0-linux-armv7l.tar.xz
tc@box:~$ PATH=$PATH:~/node-v14.3.0-linux-armv7l/bin

Hostapd hasn't been built for TinyCoreLinux 11.x, but we can use the build for TinyCoreLinux 10.x.

tc@box:~$ wget http://www.tinycorelinux.net/10.x/armv7/tcz/hostapd.tcz http://www.tinycorelinux.net/10.x/armv7/tcz/hostapd.tcz.dep http://www.tinycorelinux.net/10.x/armv7/tcz/hostapd.tcz.md5.txt -P /mnt/mmcblk0p2/tce/optional/
tc@box:~$ echo "hostapd.tcz" >> /mnt/mmcblk0p2/tce/onboot.lst

Install Software

Now that we've got those prerequisites sorted, we can install the eRetti software

tc@box:~$ npm install @mattb.tech/kindle-writer
tc@box:~$ node_modules/.bin/kindle-writer-install-home

After running the second command, the system will always start directly into a screen session running the eRetti server.

To configure the device as a Wifi Access Point...

tc@box:~$ echo "/home/tc/start_wifi.sh &" >> /opt/bootlocal.sh

Save all your changes

tc@box:~$ filetool.sh -b

Upgrading

You can grab the latest version just by reinstalling @mattb.tech/kindle-writer. SSH in, start a new window in screen with Ctrl+a Ctrl+c and then run

tc@box:~$ npm install @mattb.tech/kindle-writer
tc@box:~$ node_modules/.bin/kindle-writer-install-profile
tc@box:~$ filetool.sh -b

Name

"eRetti" is a terrible portmanteau of eReader and Olivetti (a brand of typewriter).