Skip to content

Instantly share code, notes, and snippets.

View lewdev's full-sized avatar

Lewis Nakao lewdev

View GitHub Profile
@lewdev
lewdev / #README.md
Created October 30, 2024 21:11
๐ŸŽฎ Download CSV of Steam Purchases

๐ŸŽฎ Download CSV of Steam Purchases (473b)

Much like my script to Download Steam Library List, I created a similar script to download your list of Steam Purchases as a CSV file.

It's not perfect because you'll have to filter out the refunds and other types of transactions. Someone on reddit requested me to make it and I figured it was something I wanted to do myself so I did.

๐Ÿช Visit Purchase History Page

Your Purchase History

@lewdev
lewdev / index.html
Last active September 29, 2024 07:36
๐Ÿ‘€ Using `Reflect.ownKeys` to see Class function names in `Math`, `Array`, `Set`, etc.
<table><tbody><tr id=o></tr></tbody></table>
<script>
o.innerHTML = [window, Set, Array, Math, Number, RegExp, Date]
.map(M=>`<td><h3>${M.name || M}</h3><br>${Reflect.ownKeys(M).map(a=>JSON.stringify(a)).join`<br>`}</td>`).join``;
</script>
<style>*{vertical-align:top}
@lewdev
lewdev / #README.md
Last active September 23, 2024 04:59
My JS1024 Annual JavaScript Golfing Competition Submission

My JS1024 Annual JavaScript Golfing Competition Submission

I'm happy to have something to submit to the JS1024 2024 competition. I just found out about the competition and realized that I have something to submit even if it's not aligned with the theme. I'm pretty sure I started and finished the project during the competition. See my submission here.

Title: ๐Ÿ— Stacking Game

Short Description: Press Space or tap on mobile! See how high you can go in this stacking game!

My Submission (1020b)

@lewdev
lewdev / #README.md
Last active July 13, 2024 01:52
๐Ÿ•น๏ธ Stacking Game #JavaScript #Canvas

๐Ÿ—๏ธ Stacking Game

Date: June 29, 2024

๐Ÿ•น๏ธ Play Now

Whenever I see a simple game, I start thinking about its mechanics and how it might be implemented.

So then when it seemed like a good small weekend project, I went for it. I got it down to its bare mechanics.

In future iterations, I could add animations, backgrounds, title screen, scoreboard, etc.

@lewdev
lewdev / #README.md
Last active October 26, 2025 23:39
๐Ÿง™โ€โ™‚๏ธ Calculating XP to Level for RPG Games

๐Ÿง™โ€โ™‚๏ธ Calculating XP to Level for RPG Games

I was curious on how level was determined for games and I found an awesome article about it by Jake Lee.

But one important thing was not explained in this article, how is it implemented in JavaScript?!

He has provided implementations in a Google Sheet and Github Gist though. So that may be your preferred method.

The XP and Level formulas in JavaScript

@lewdev
lewdev / address-bar-code-editor-bookmarklet.md
Last active June 12, 2026 01:58
๐Ÿ’ป Address Bar Code Editor Bookmarklet (743b)

๐Ÿ’ป Address Bar Code Editor Bookmarklet (841b)

Copy-paste this into your address bar:

data:text/html,<title>code</title><link rel=icon href='data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 99 99%22><text y=%221em%22 font-size=%2272%22>&%23128187;</text></svg>'><textarea id=d spellcheck=false onkeypress=e=event;k=e.keyCode;(e.ctrlKey&&k==13)||k==10?f.srcdoc=d.value:0 style=resize:none;filter:invert(><p id=o></p>%0d<script>%0do.innerHTML = 0;%0d</script></textarea><iframe id=f></iframe><p id=p style=position:fixed;bottom:1;color:white></p><script>D=0,d.onkeyup=d.onclick=n=>{clearTimeout(D),D=setTimeout(_=>{A=d.selectionStart,B=d.selectionEnd,V=d.value,E=V.substr(0,B).split`\n`,p.innerHTML=`Ln:${E.length}, Col:${E.pop().length+1}, ${A==B?'Pos:'+B:'Sel:'+(B-A)}, Len:${V.length}`},99)}</script><style>*{box-sizing:border-box;margin:0}textarea,iframe{width:50%;height:100%;vertical-align:top}

In the latest iteration my code editor, I've made big practical improvements to

@lewdev
lewdev / #README.md
Last active June 2, 2026 23:45
๐ŸŒฑ Random Seed Methods

๐ŸŒฑ Random Seed Methods

I wanted to see what's out there and here's what I found.

I think this is decent set to study, but I'm mainly interested in the smallest implementation and not worried about if it's computationally random.

@KilledByAPixel (source)

rand = max => Math.sin(++seed)**2 * 1e9 % max
@lewdev
lewdev / #README.md
Last active October 18, 2024 09:42
๐ŸŽฎ๐Ÿ“ƒ Download Steam Library List as a CSV (446b)

๐ŸŽฎ๐Ÿ“ƒ Download Steam Library List as a CSV (446b)

Visit this URL while logged in your steam account: https://store.steampowered.com/account/licenses/

Copy-paste this code and run in your browser's console

Hit F12, click on the "Console" tab and paste it into the prompt)

a=document.createElement`a`;a.href=URL.createObjectURL(new Blob(["Date,Item,Acquisition Method\n"+[...document.querySelectorAll('.account_table tr &gt; td')].reduce((p,e,i)=&gt;(p[~~(i/3)]=(p[~~(i/3)]||"")+'"'+e.innerHTML.trim().replace(/&lt;\/?[^&gt;]+(&gt;|$)/g,"").replace(/\s+/g," ").replace(/"/g,'""').replaceAll(" Remove ","")+'"'+(i%3==2?"":","),p),[]).join`\n`],{type:"text/plain"}));a.click(a.download="steam-games-list.csv");URL.revokeObjectURL(a.href) 
@lewdev
lewdev / #README.md
Last active May 15, 2024 19:50
๐ŸŒŒ Punch it Chewie! #StarWars #MillenniumFalcon

๐ŸŒŒ Punch it Chewie! #StarWars #MillenniumFalcon

To celebrate May 4th, I made the cockpit design of the Millennium Falcon fit within a dweet!

๐Ÿšข Cockpit of the Millennium Falcon (161b) d/31702

B=~~(t*99)%136
x.save(A=300)
x.translate(960,1080)
x.rotate(B*.035)
@lewdev
lewdev / #README.md
Created May 2, 2024 01:13
๐Ÿ‘จโ€๐Ÿ’ป Small CSV Parse & Generate Library

Small Library

I was looking into CSV methods on StackOverflow which didn't have great answers. So I put together some solutions that I'd appreciate.

Here's an answer I made for "JavaScript array to CSV," which didn't have any solid answers.

I found a great solution for parsing CSV so I figured that my work is complete by including a great parseCSV solution I found a while ago by Trevor Dixon.

// Inspired by: https://stackoverflow.com/a/64618766/1675237 & https://stackoverflow.com/a/58034688/1675237