nipp
nipp copied to clipboard
🎒 Programmable portable App hosted on URL: https://nipp.nwtgck.org
Nipp
Mini Application Hosted on URL https://nwtgck.github.io/nipp
Nipp is inspired by itty.bitty.
Purpose
The main purpose is to keep code safe in URL. Even if the service is shutdown, the code stays alive in URL. You don't lose time and efforts to write a code. You can save a code as a bookmark easily.
Features
- 🎒 Portable
- Application is hosted only on URL!
- ⚡ Real-time response
- All computation is done on client!
- ☁️ No-server side execution
- Nipp site is static hosted.
- Your code are not sent to the web server
- PWA - Progressive Web Apps
Quick Start
Try on https://nwtgck.github.io/nipp/#Simple_Word_Count//K9YrLsjJLNFQV1DX1CvOrEoFAA==, which counts the number of words!
Then, you can create your own apps!
Example Apps
- Text Length: https://nwtgck.github.io/nipp/#Text_Length//K9YrzqxKBQA=
- Word Count: https://nwtgck.github.io/nipp/#Simple_Word_Count//K9YrLsjJLNFQV1DX1CvOrEoFAA==
- Tetris: https://nwtgck.github.io/nipp/#Tetris/es2017/bU/bSuNQF...
- Summer Wars World Clock: https://nwtgck.github.io/nipp/#/es2017/1Y9va1vJFcZfR59...
- 2048 Game: https://nwtgck.github.io/nipp/#/func_es2017,lzma/XQAAA...
(NOTE: The original source of World Clock is located at https://shimz.me/blog/d3-js/4360. Thank you very much, SHIMIZU-san!)
(NOTE: The original source of 2048 Game is located at gabrielecirulli/2048. Thank you very much, the creators!)
Ruby
Default language of Nipp is Ruby because Ruby makes us comfortable to write program!
Nipp is highly powered by Opal, which is a transpiler to JavaScript. Thank you very much, Opal project!
Also JavaScript Not Only Ruby
Nipp is not only for Ruby. JavaScript is also available. Here is Tetris on Nipp!
Try on https://nwtgck.github.io/nipp/#Tetris/es2017/bU/bSuNQF... The Tetris program is from an Japanese article - Commentary of Only 565 Bytes Tetris Programming.
URL Structure
Here is a structure of Nipp URL.
nwtgck.github.io/nipp/#<Page Title>
/<Options>
/<Compressed Code>
-
<Page Title>
is title of your app -
<Options>
can bees2017
,lzma
,es2017,lzma
,lzma,es2017
or etc. -
<Compressed Code>
is code compressed by deflate (no header, no checksum) or LZAM for now and encode it by Base64
Note that <Page Title>
, <Options>
and <Compressed Code
> are under URL fragment #
. This means your code is not send to Nipp web server!
Options
-
es2017
: Use ES2017 (default: Ruby(Opal)) -
func_es2017
: Use ES2017 but evaluated by(new Function(...))()
noteval()
, so output is always empty but faster -
lzma
: Compress code by using LZMA (default: deflate) -
click_run
: Click to run not real-time evaluation -
promise_wait
: Wait for Promise evaluation in output
PWA - Progressive Web Apps
Nipp runs even offline! Note that Nipp is available in flight mode ✈️.
Examples of promise_wait
- Promise Example: https://nwtgck.github.io/nipp/#Promise_Example/es2017,...
- Get body by jQuery: https://nwtgck.github.io/nipp/#Get_body_by_jQuery/es20...
- You can load any JavaScript from CDN