0
Katamari HackCopied from http://kathack.com/
https://github.com/remarkablemark/katamari-hack
Copyright Alex Leone, David Nufer, David Truong, 2011-03-11.
3
0
0
0
PrivnoteSend notes that will self-destruct after being read.
Blog post: https://b.remarkabl.org/3EEm4JD
GitHub repository: https://b.remarkabl.org/37Dpsbu
How to build a Privnote clone
This article goes over how to build a Privnote clone. See blog post or repository.
Privnote
Privnote is a web service that allows you to send secret notes that self-destruct after being read.
In its FAQ, it says that it's both private and secure. For that to be true, the note needs to be encrypted before it's send to the server and saved to the database.
When you create a note, Privnote sends a POST request with the data and returns a link:
https://privnote.com/path#secret
The path is the database key or id of the encrypted note. The secret is the encryption key used on the client-side before the data is sent to the server.
The reason why the secret is on the hash fragment is because fragment identifiers are not sent to the server. As a result, this prevents Privnote from reading or decrypting your note on the server.
Clone
For my clone, I created a Node.js Express server. It renders a form where you can enter and submit text:
Before the note is sent to the server, the text is encrypted using crypto-js's AES algorithm with a randomly generated secret:
// client.js
const textarea = document.querySelector('textarea');
const form = document.querySelector('form');
const ciphertext = window.CryptoJS.AES.encrypt(
textarea.value,
generateSecret()
);
textarea.value = ciphertext;
form.submit();
The encrypted note is saved to the database with an id generated by nanoid:
// server.js
server.post('/', (request, response, next) => {
const noteId = nanoid();
const encryptedNote = request.body.note;
await db.set(noteId, encryptedNote);
// ...
});
The note URL is returned and the hash fragment is appended on the client.
When the note link is opened, the encrypted note is retrieved, deleted, and returned from the server:
// server.js
server.get('/:noteId', (request, response, next) => {
const encryptedNote = await db.get(request.params.noteId);
await db.delete(request.params.noteId);
response.render('index.html', { encryptedNote });
});
Then on the client, the encrypted note is decrypted using the secret from the hash fragment:
// client.js
const secret = window.location.hash.slice(1);
const bytes = window.CryptoJS.AES.decrypt(textarea.value, secret);
const decryptedNote = bytes.toString(window.CryptoJS.enc.Utf8);
textarea.value = decryptedNote;
`0
inversionInversion is a platformer where 2 players must come together to win.
Inversion
Inversion
Inversion is a 2D platformer puzzle game where two players must come together to win.
This game was made during the Global Game Jam 2022, in which the theme was duality. The game was bootstrapped from phaser-platformer. Read the blog post.
Play the game on:
remarkablegames
Newgrounds
Itch.io
Credits
benox3 - Programmer, Level Designer, Artist
remarkablemark - Programmer, Level Designer
emex - Composer
mikewesthad - Tilemaps in Phaser 3
0x72 - 16x16 Industrial Tileset39
1
0
Asteroids
asteroids
Asteroids game from p5.play example.
The original game was broken so I made improvements. See repository.
Changelog
Bug Fixes
HTML, CSS, JS
An algorithm for checking if Python list contains a Pythagorean triple.
Python
How to capture live video with p5.js.
Inspired by the wiki "Beyond the canvas: Capture Live Video".
For live video capture to work, open Repl.it in
HTML, CSS, JS
Fizz buzz solved in Python.
Write a function takes a single input, a number, and prints out 1 through the number. If the number being printed is divi
Python
Bouncing DVD Logo
Bouncing DVD Logo
The site is built with:
HTML/CSS/JS
p5.js
Code
Repl.it demo
GitHub repository
Explanation
Initialize the va
HTML, CSS, JS
Chassteven372 This logo of the DVD reminds me of the old-time of the early age of my life. Now the audience is moving towards new technologies like https://masterbundles.com/best-ocean-google-slides-and-powerpoint-themes/ to use the new themes on the PowerPoint. You can add up the multiple themes whenever you need.1 year ago
Bouncing DVD Logo
Bouncing DVD Logo
Built with:
HTML/CSS/JS
p5.js
GitHub repository
HTML, CSS, JS
A URL shortener is a service that converts a long URL to a short URL. When a user goes to the short URL, the server redirects to the long URL. An exam
Node.js
Add ` element with the autoplay` attribute enabled:
Stream the video media using MediaDevices.getUserMedia():
// script.js
var constraints = { video
HTML, CSS, JS
Web repl that compiles React JSX in the browser. Useful for prototyping.
Inspired by:
Babel Repl
HTML, CSS, JS
Web repl that compiles ES6+ code in the browser. Useful for prototyping.
See similar repls:
Babel Repl (React)
HTML, CSS, JS
Click the button to load a random repl!
The repl list is currently curated from the profile page of the top contributors on the homepage.
I used rep
HTML, CSS, JS
Phaser 3 template copied from phaser-template.
The game is inspired by the tutorial 'Making your first Phaser 3 game'.
phaser-template
Since the ga
HTML, CSS, JS
An audio interface built using HTML5, JavaScript, and CSS.
The underlying library used for creating music in the browser is Tone.js.
This was hacked
HTML, CSS, JS