commit c34f7c83f0865a732d028f3dbc248e98c80b8a81 Author: root Date: Sat Oct 5 11:19:01 2024 +0300 init diff --git a/1.jpg b/1.jpg new file mode 100644 index 0000000..9acf8a2 Binary files /dev/null and b/1.jpg differ diff --git a/2.jpg b/2.jpg new file mode 100644 index 0000000..560f2b8 Binary files /dev/null and b/2.jpg differ diff --git a/3.jpg b/3.jpg new file mode 100644 index 0000000..eb0d537 Binary files /dev/null and b/3.jpg differ diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..e6fa7fe --- /dev/null +++ b/about/index.html @@ -0,0 +1,40 @@ + + + + + + + tanyesil - about + + + + + + + + +
+

About tanyesil.com

+

im studying Architecture in METU but i have always + been a huge nerd! this website is a collection of my projects + spread across many computers that were never inteded to be servers +

+

btc address = {bc1qzufuwhqqgcza5tmut4p578wdu0fwl624knlrtr}; monero address = {49BfmCuhCJWMF5QsmPooxWeZkJxUzERvziWUk8Hu2XZzP3u2dHYb5vuNiWu8ho4TFPhCzx8wUPweVdqpJ69zmmTy5kmkpDd};

+
+

© 2024 Tan Yesilkaya - Powered by Alpine Linux, NixOS and love

+
+
+ + diff --git a/background.gif b/background.gif new file mode 100644 index 0000000..5ab510e Binary files /dev/null and b/background.gif differ diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 0000000..8f1eb0a --- /dev/null +++ b/blog/index.html @@ -0,0 +1,38 @@ + + + + + + + tanyesil - about + + + + + + + + +
+

this site is under construction
uwu
in the mean + time here is a good song while you wait +
  • You Were Our Star
  • +

    +
    +

    © 2024 Tan Yesilkaya - Powered by Alpine Linux, NixOS and love

    +
    +
    + + diff --git a/contact/index.html b/contact/index.html new file mode 100644 index 0000000..51097fb --- /dev/null +++ b/contact/index.html @@ -0,0 +1,42 @@ + + + + + + + tanyesil - about + + + + + + + + +
    +

    contacting tanyesil

    +

    here is how you can contact me:

    +

    tanyesilkaya(at)gmail.com +
    tanyesil(at)cumallover.me
    ^this is my prefered mail

    +

    mail me if you have found something cool on the world wide web and if you'd like to add a little gem to my collection!!

    +

    btc address = {bc1qzufuwhqqgcza5tmut4p578wdu0fwl624knlrtr}; + monero address = {49BfmCuhCJWMF5QsmPooxWeZkJxUzERvziWUk8Hu2XZzP3u2dHYb5vuNiWu8ho4TFPhCzx8wUPweVdqpJ69zmmTy5kmkpDd}; +
    hon this one is longer so it must be better

    +
    +

    © 2024 Tan Yesilkaya - Powered by Alpine Linux, NixOS and love

    +
    +
    + + diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000..3beb0c6 Binary files /dev/null and b/favicon.png differ diff --git a/gems/index.html b/gems/index.html new file mode 100644 index 0000000..519cb1d --- /dev/null +++ b/gems/index.html @@ -0,0 +1,56 @@ + + + + + + + tanyesil + + + + + + +
    +

    TanYesil's Other Gems

    +

    these are the stuff i found was interesting enough to share but not so cool to be on the front page

    + + + +

    make sure you pet the cat before you head out

    + +
    + + diff --git a/gems/kakoune/index.html b/gems/kakoune/index.html new file mode 100644 index 0000000..d129588 --- /dev/null +++ b/gems/kakoune/index.html @@ -0,0 +1,49 @@ + + + + + + + tanyesil + + + + + +
    +

    Kakoune is The Best!

    +

    kakoune is the best text editor that you + shouldn't use unless
    you know who you are.

    +
    + obligatory link to "arch is the best", + Watch on YouTube, + Watch on a Privacy respecting mirror, +

    this video inspired me to switch to kakoune + as my text editor. it is what i used to write this website from scratch. just like how and why people use arch linux, kakoune has the allusive effect + of making you feel superior because you happened to use, read or know about + something that nobody (that you meet) has ever used, read, or known about. + aside from that the kakoune experience is limiting unlike helix or nvim it + comes with little in the box and you have to use copious amounts of plugins + to get the same level of polish. Without that, it is still very good at what it is doing + maybe too good... +

    + +
    + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..0f94510 --- /dev/null +++ b/index.html @@ -0,0 +1,79 @@ + + + + + + + tanyesil + + + + + + +
    +

    TanYesil's Collection of

    +
    + Little Gems! +
    + +

    welcome to my website, this is a hub for things i host and
    things i find worthy enough to share

    + +
    +

    Gallery

    + + +
    +

    make sure you pet the cat before you head out

    + +
    + + diff --git a/index.html.old b/index.html.old new file mode 100644 index 0000000..f26d426 --- /dev/null +++ b/index.html.old @@ -0,0 +1,79 @@ + + + + + +Site Under Maintenance + + + +
    +

    --- THIS WEBSITE IS RIDING THE INFORMATION SUPERHIGHWAY TO IMPROVEMENT ---

    +
    +
    +

    BRB... Upgrading Our Flux Capacitor!

    +
    +

    Greetings, Net Traveler! Our site is currently undergoing some radical improvements. We're tuning our modems and cranking up the bandwidth for a better surfing experience. Hang tight, we'll be back before you can say "World Wide Web"!

    +

    — The Totally Tubular Tanyesil

    +
    +
    + + + + diff --git a/oneko-webring.js b/oneko-webring.js new file mode 100644 index 0000000..3dedb27 --- /dev/null +++ b/oneko-webring.js @@ -0,0 +1,300 @@ +// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat License (sometimes called MIT Licensed) +// oneko.js: https://github.com/adryd325/oneko.js (webring variant) + +(function oneko() { + const isReducedMotion = + window.matchMedia(`(prefers-reduced-motion: reduce)`) === true || + window.matchMedia(`(prefers-reduced-motion: reduce)`).matches === true; + + if (isReducedMotion) return; + + const nekoEl = document.createElement("div"); + + let nekoPosX = 32; + let nekoPosY = 32; + + let mousePosX = 0; + let mousePosY = 0; + + // please use data-neko="true" on your A elements that link to another site with oneko-webring.js instead of this + // this is deprecated and will eventually be removed + const nekoSites = [ + "localhost", + ]; + + try { + const searchParams = location.search + .replace("?", "") + .split("&") + .map((keyvaluepair) => keyvaluepair.split("=")); + // This is so much repeated code, I don't like it + tmp = searchParams.find((a) => a[0] == "catx"); + if (tmp && tmp[1]) nekoPosX = parseInt(tmp[1]); + tmp = searchParams.find((a) => a[0] == "caty"); + if (tmp && tmp[1]) nekoPosY = parseInt(tmp[1]); + tmp = searchParams.find((a) => a[0] == "catdx"); + if (tmp && tmp[1]) mousePosX = parseInt(tmp[1]); + tmp = searchParams.find((a) => a[0] == "catdy"); + if (tmp && tmp[1]) mousePosY = parseInt(tmp[1]); + } catch (e) { + console.error("oneko.js: failed to parse query params."); + console.error(e); + } + + function onClick(event) { + let target; + if (event.target.tagName === "A" && event.target.getAttribute("href")) { + target = event.target; + } else if ( + event.target.tagName == "IMG" && + event.target.parentElement.tagName === "A" && + event.target.parentElement.getAttribute("href") + ) { + target = event.target.parentElement; + } else { + return; + } + let newLocation; + try { + newLocation = new URL(target.href); + } catch (e) { + return; + } + if ( + (nekoSites.includes(newLocation.host) && newLocation.pathname == "/") || + target.dataset.neko + ) { + newLocation.searchParams.append("catx", Math.floor(nekoPosX)); + newLocation.searchParams.append("caty", Math.floor(nekoPosY)); + newLocation.searchParams.append("catdx", Math.floor(mousePosX)); + newLocation.searchParams.append("catdy", Math.floor(mousePosY)); + event.preventDefault(); + window.location.href = newLocation.toString(); + } + } + document.addEventListener("click", onClick); + + let frameCount = 0; + let idleTime = 0; + let idleAnimation = null; + let idleAnimationFrame = 0; + + const nekoSpeed = 10; + const spriteSets = { + idle: [[-3, -3]], + alert: [[-7, -3]], + scratchSelf: [ + [-5, 0], + [-6, 0], + [-7, 0], + ], + scratchWallN: [ + [0, 0], + [0, -1], + ], + scratchWallS: [ + [-7, -1], + [-6, -2], + ], + scratchWallE: [ + [-2, -2], + [-2, -3], + ], + scratchWallW: [ + [-4, 0], + [-4, -1], + ], + tired: [[-3, -2]], + sleeping: [ + [-2, 0], + [-2, -1], + ], + N: [ + [-1, -2], + [-1, -3], + ], + NE: [ + [0, -2], + [0, -3], + ], + E: [ + [-3, 0], + [-3, -1], + ], + SE: [ + [-5, -1], + [-5, -2], + ], + S: [ + [-6, -3], + [-7, -2], + ], + SW: [ + [-5, -3], + [-6, -1], + ], + W: [ + [-4, -2], + [-4, -3], + ], + NW: [ + [-1, 0], + [-1, -1], + ], + }; + + function init() { + nekoEl.id = "oneko"; + nekoEl.ariaHidden = true; + nekoEl.style.width = "32px"; + nekoEl.style.height = "32px"; + nekoEl.style.position = "fixed"; + nekoEl.style.pointerEvents = "none"; + nekoEl.style.imageRendering = "pixelated"; + nekoEl.style.left = `${nekoPosX - 16}px`; + nekoEl.style.top = `${nekoPosY - 16}px`; + nekoEl.style.zIndex = Number.MAX_VALUE; + + let nekoFile = "./oneko.gif" + const curScript = document.currentScript + if (curScript && curScript.dataset.cat) { + nekoFile = curScript.dataset.cat + } + nekoEl.style.backgroundImage = `url(${nekoFile})`; + + document.body.appendChild(nekoEl); + + document.addEventListener("mousemove", function (event) { + mousePosX = event.clientX; + mousePosY = event.clientY; + }); + + window.requestAnimationFrame(onAnimationFrame); + } + + let lastFrameTimestamp; + + function onAnimationFrame(timestamp) { + // Stops execution if the neko element is removed from DOM + if (!nekoEl.isConnected) { + return; + } + if (!lastFrameTimestamp) { + lastFrameTimestamp = timestamp; + } + if (timestamp - lastFrameTimestamp > 100) { + lastFrameTimestamp = timestamp + frame() + } + + window.requestAnimationFrame(onAnimationFrame); + } + + function setSprite(name, frame) { + const sprite = spriteSets[name][frame % spriteSets[name].length]; + nekoEl.style.backgroundPosition = `${sprite[0] * 32}px ${sprite[1] * 32}px`; + } + + function resetIdleAnimation() { + idleAnimation = null; + idleAnimationFrame = 0; + } + + function idle() { + idleTime += 1; + + // every ~ 20 seconds + if ( + idleTime > 10 && + Math.floor(Math.random() * 200) == 0 && + idleAnimation == null + ) { + let avalibleIdleAnimations = ["sleeping", "scratchSelf"]; + if (nekoPosX < 32) { + avalibleIdleAnimations.push("scratchWallW"); + } + if (nekoPosY < 32) { + avalibleIdleAnimations.push("scratchWallN"); + } + if (nekoPosX > window.innerWidth - 32) { + avalibleIdleAnimations.push("scratchWallE"); + } + if (nekoPosY > window.innerHeight - 32) { + avalibleIdleAnimations.push("scratchWallS"); + } + idleAnimation = + avalibleIdleAnimations[ + Math.floor(Math.random() * avalibleIdleAnimations.length) + ]; + } + + switch (idleAnimation) { + case "sleeping": + if (idleAnimationFrame < 8) { + setSprite("tired", 0); + break; + } + setSprite("sleeping", Math.floor(idleAnimationFrame / 4)); + if (idleAnimationFrame > 192) { + resetIdleAnimation(); + } + break; + case "scratchWallN": + case "scratchWallS": + case "scratchWallE": + case "scratchWallW": + case "scratchSelf": + setSprite(idleAnimation, idleAnimationFrame); + if (idleAnimationFrame > 9) { + resetIdleAnimation(); + } + break; + default: + setSprite("idle", 0); + return; + } + idleAnimationFrame += 1; + } + + function frame() { + frameCount += 1; + const diffX = nekoPosX - mousePosX; + const diffY = nekoPosY - mousePosY; + const distance = Math.sqrt(diffX ** 2 + diffY ** 2); + + if (distance < nekoSpeed || distance < 48) { + idle(); + return; + } + + idleAnimation = null; + idleAnimationFrame = 0; + + if (idleTime > 1) { + setSprite("alert", 0); + // count down after being alerted before moving + idleTime = Math.min(idleTime, 7); + idleTime -= 1; + return; + } + + let direction; + direction = diffY / distance > 0.5 ? "N" : ""; + direction += diffY / distance < -0.5 ? "S" : ""; + direction += diffX / distance > 0.5 ? "W" : ""; + direction += diffX / distance < -0.5 ? "E" : ""; + setSprite(direction, frameCount); + + nekoPosX -= (diffX / distance) * nekoSpeed; + nekoPosY -= (diffY / distance) * nekoSpeed; + + nekoPosX = Math.min(Math.max(16, nekoPosX), window.innerWidth - 16); + nekoPosY = Math.min(Math.max(16, nekoPosY), window.innerHeight - 16); + + nekoEl.style.left = `${nekoPosX - 16}px`; + nekoEl.style.top = `${nekoPosY - 16}px`; + } + + init(); +})(); +// @license-end diff --git a/oneko.gif b/oneko.gif new file mode 100644 index 0000000..a009c2c Binary files /dev/null and b/oneko.gif differ diff --git a/oneko.js b/oneko.js new file mode 100644 index 0000000..2212934 --- /dev/null +++ b/oneko.js @@ -0,0 +1,2937 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<<<<<<< oneko.js +<<<<<<< oneko.js + fork-oneko.js/oneko.js at main · rozbrajaczpoziomow/fork-oneko.js · GitHub +======= + oneko.js/oneko.js at main · tylxr59/oneko.js · GitHub +>>>>>>> oneko.js.1 +======= + oneko.js/oneko.js at main · tylxr59/oneko.js · GitHub +>>>>>>> oneko.js.1 + + + + + + + + + + + +<<<<<<< oneko.js +<<<<<<< oneko.js + + + + +======= + + + + +>>>>>>> oneko.js.1 +======= + + + + +>>>>>>> oneko.js.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + +<<<<<<< oneko.js +<<<<<<< oneko.js + +======= + +>>>>>>> oneko.js.1 +======= + +>>>>>>> oneko.js.1 + + + + + +<<<<<<< oneko.js +<<<<<<< oneko.js + + + + +======= + + + + +>>>>>>> oneko.js.1 +======= + + + + +>>>>>>> oneko.js.1 + + + + + + + + + + + + + + + + + + + + + +<<<<<<< oneko.js +<<<<<<< oneko.js + + + +======= + + + +>>>>>>> oneko.js.1 +======= + + + +>>>>>>> oneko.js.1 + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + Skip to content + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + + + + +
    + + + + + + + + + +
    +
    +
    + + + + + + + + + +
    + + +
    + +
    + +
    + + + + / + + fork-oneko.js +======= +======= +>>>>>>> oneko.js.1 + + / + + oneko.js +<<<<<<< oneko.js +>>>>>>> oneko.js.1 +======= +>>>>>>> oneko.js.1 + + + Public +
    + + forked from adryd325/oneko.js + + + +
    + +
    + + +
    +
    + +
    +
    + + + + +
    + + + + + + +
    + + + + + + + + + + + + + + + +>>>>>> oneko.js.1 +======= + initial-path="/tylxr59/oneko.js/blob/main/oneko.js" +>>>>>>> oneko.js.1 + style="display: block; min-height: calc(100vh - 64px)" + datta-attempted-ssr="true" + data-ssr="true" + data-lazy="false" + data-alternate="false" +> + +<<<<<<< oneko.js +<<<<<<< oneko.js + +
    +======= +======= +>>>>>>> oneko.js.1 + +

    Latest commit

     

    History

    History
    282 lines (249 loc) · 6.8 KB

    oneko.js

    File metadata and controls

    282 lines (249 loc) · 6.8 KB
    +<<<<<<< oneko.js +>>>>>>> oneko.js.1 +======= +>>>>>>> oneko.js.1 +
    + + + + +
    + +
    + +
    +
    + +
    + +
    +

    Footer

    + + + + +
    +
    + + + + + © 2024 GitHub, Inc. + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + + diff --git a/portfolio/index.html b/portfolio/index.html new file mode 100644 index 0000000..7ffe8d9 --- /dev/null +++ b/portfolio/index.html @@ -0,0 +1,38 @@ + + + + + + + tanyesil - about + + + + + + + + +
    +

    this site is under construction
    uwu
    in the mean + time here is a good song while you wait +
  • You Were Our Star
  • +

    +
    +

    © 2024 Tan Yesilkaya - Powered by Alpine Linux, NixOS and love

    +
    +
    + + diff --git a/style.css b/style.css new file mode 100644 index 0000000..359ba2d --- /dev/null +++ b/style.css @@ -0,0 +1,198 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Courier New', monospace; + color: #00FFAA; +} + +body { + background: url('../background.gif') center center fixed; + background-size: cover; + display: flex; + justify-content: center; + align-items: center; + height: auto; +} +.site-header { width: 100%; padding: 10px 0; background-color: rgba(0, 0, 0, 0.85); +position: fixed; top: 0; z-index: 10; text-align: center; overflow-x: auto; } +.nav ul { list-style: none; display: flex; justify-content: center; gap: 20px; } +.nav a { text-decoration: none; color: #00FFAA; font-size: 1.2rem; text-shadow: 1px 1px 2px #000; padding: 10px; } +.nav a:hover { color: #FF00FF; } + +.container { + text-align: center; + padding: 2rem; + border: 2px solid #00FFAA; + width: 85%; + max-width: 800px; + border-radius: 60px; + background: linear-gradient(45deg, #000033, #500033); + box-shadow: 0px 0px 20px 5px #00FFAA; + margin-top: 60px; + margin-bottom: 100px;. + overflow-y: auto; +} + +.title { + font-size: 2.5rem; + color: #00FFAA; + text-shadow: 2px 2px 5px #FF00FF; + height: auto; + margin-top: 1rem; +} + +.intro { + margin: 10px 0; + color: #FFF; +} + +.glitch { + position: relative; + font-size: 2rem; + color: #00FFAA; + background-color: #222; + border: 1px solid #00FFAA; + display: inline-block; + padding: 10px; + animation: glitch 1.5s infinite; + border-radius: 5px; +} + +.glitch span { + position: absolute; + top: 0; + left: 2px; + color: #FF00FF; + clip: rect(0, 900px, 0, 0); + animation: glitch-top 2s infinite linear alternate-reverse; +} +.content-area { + margin-top: 30px; +} +.gallery { + margin-bottom: 30px; + width: 100% +} +.content-area h2, .gallery h2, .blog h2 { + color: #FF00FF; + text-shadow: 2px 2px 5px #000; + font-size: 2rem; +} +.image-grid { + margin-top: 10px; + width: auto; + /* display: flex; */ + gap: 15px; + justify-content: center; +} +.image-grid img { + width: 200px; + height: 200px; + border: 2px solid #00FFAA; + object-fit: cover; + box-shadow: 0 0 10px #FF00FF; + transition: 0.3s ease-in; +} + +.image-grid img:hover { + border: 2px solid #FFAAFF; + box-shadow: 0 0 10px #00FFAA; +} +.image-grid a { + +} +.blog { + padding-top: 0px; +} + +.blog-post { + margin-top: 10px; + margin-bottom: 20px; +} +.blog-post h4 { + font-size: 1.3rem; + padding-bottom: 5px; + padding-top: 5px; + color: #00FFAA; +} +.blog-post h3 { + font-size: 1.8rem; + color: #00FFAA; + padding-bottom: 5px; + padding-top: 5px; +} +.blog-post-spacer { padding: 3px; } +.blog-post p, .gallery p { + color: #FFF; + padding: 3px; +} + +.blog a { + text-decoration: none; + margin-top: 10px; + margin-bottom: 10px; + background-color: rgba(34, 34, 34, 0.85); + color: inherit; /* Inherit the text color from the parent */ + display: block; /* Make the anchor tag take up the full space */ + transition: 0.3s; + border-radius: 10px; + border: 1px solid #00FFAA; +} + +.blog a:hover { + background-color: rgba(255, 0, 170, 0.2); /* Change background color on hover */ + box-shadow: 0 0 10px #00FFAA; /* Add glow on hover */ + cursor: pointer; /* Change cursor to pointer */ +} +@keyframes glitch { + 0% { transform: translate(0); } + 20% { transform: translate(-2px, 2px); } + 40% { transform: translate(-2px, -2px); } + 60% { transform: translate(2px, 2px); } + 80% { transform: translate(2px, -2px); } + 100% { transform: translate(0); } +} + +@keyframes glitch-top { + 0% { clip: rect(0, 999px, 0, 0); } + 10% { clip: rect(0, 999px, 15px, 0); } + 20% { clip: rect(0, 999px, 5px, 0); } + 30% { clip: rect(0, 999px, 10px, 0); } + 40% { clip: rect(0, 999px, 0, 0); } +} + +.retro-button { + display: inline-block; + margin: 15px; + padding: 10px 20px; + background-color: #00FFAA; + border: 2px solid #FF00FF; + color: #000; + font-size: 1.2rem; + text-decoration: none; + text-shadow: 1px 1px 2px #000; + transition: background 0.3s, border 0.3s; + border-radius: 5px; +} + +.retro-button:hover { + background-color: #FF00FF; + border-color: #00FFAA; + color: #FFF; + box-shadow: 0 0 10px #FF00FF; +} + +.footer { + margin-top: 20px; + font-size: 0.9rem; + color: #FFF; +} + +.footer a { + transition: 0.3s; + color: #FF00FF; +} +.footer a:hover { + color: #00FFAA; +} diff --git a/supersecret/index.html b/supersecret/index.html new file mode 100644 index 0000000..109fc74 --- /dev/null +++ b/supersecret/index.html @@ -0,0 +1,42 @@ + + + + + + + tanyesil + + + + + +
    +

    You sure are nosy... try to hack these

    + +

    How the frick do you center a div????

    + +
    + +