It's christmas
This commit is contained in:
parent
fc93251476
commit
690b2a109b
5 changed files with 1000 additions and 289 deletions
BIN
assets/bgs/watertile-blueish.gif
Normal file
BIN
assets/bgs/watertile-blueish.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
29
assets/js/snowstorm-min.js
vendored
Executable file
29
assets/js/snowstorm-min.js
vendored
Executable file
|
@ -0,0 +1,29 @@
|
|||
/** @license
|
||||
|
||||
DHTML Snowstorm! JavaScript-based snow for web pages
|
||||
Making it snow on the internets since 2003. You're welcome.
|
||||
-----------------------------------------------------------
|
||||
Version 1.44.20131208 (Previous rev: 1.44.20131125)
|
||||
Copyright (c) 2007, Scott Schiller. All rights reserved.
|
||||
Code provided under the BSD License
|
||||
http://schillmania.com/projects/snowstorm/license.txt
|
||||
*/
|
||||
var snowStorm=function(g,f){function k(a,d){isNaN(d)&&(d=0);return Math.random()*a+d}function x(){g.setTimeout(function(){a.start(!0)},20);a.events.remove(m?f:g,"mousemove",x)}function y(){(!a.excludeMobile||!D)&&x();a.events.remove(g,"load",y)}this.excludeMobile=this.autoStart=!0;this.flakesMax=128;this.flakesMaxActive=64;this.animationInterval=33;this.useGPU=!0;this.className=null;this.excludeMobile=!0;this.flakeBottom=null;this.followMouse=!0;this.snowColor="#fff";this.snowCharacter="•";this.snowStick=
|
||||
!0;this.targetElement=null;this.useMeltEffect=!0;this.usePixelPosition=this.usePositionFixed=this.useTwinkleEffect=!1;this.freezeOnBlur=!0;this.flakeRightOffset=this.flakeLeftOffset=0;this.flakeHeight=this.flakeWidth=8;this.vMaxX=5;this.vMaxY=4;this.zIndex=0;var a=this,q,m=navigator.userAgent.match(/msie/i),E=navigator.userAgent.match(/msie 6/i),D=navigator.userAgent.match(/mobile|opera m(ob|in)/i),r=m&&"BackCompat"===f.compatMode||E,h=null,n=null,l=null,p=null,s=null,z=null,A=null,v=1,t=!1,w=!1,
|
||||
u;a:{try{f.createElement("div").style.opacity="0.5"}catch(F){u=!1;break a}u=!0}var B=!1,C=f.createDocumentFragment();q=function(){function c(b){g.setTimeout(b,1E3/(a.animationInterval||20))}function d(a){return void 0!==h.style[a]?a:null}var e,b=g.requestAnimationFrame||g.webkitRequestAnimationFrame||g.mozRequestAnimationFrame||g.oRequestAnimationFrame||g.msRequestAnimationFrame||c;e=b?function(){return b.apply(g,arguments)}:null;var h;h=f.createElement("div");e={transform:{ie:d("-ms-transform"),
|
||||
moz:d("MozTransform"),opera:d("OTransform"),webkit:d("webkitTransform"),w3:d("transform"),prop:null},getAnimationFrame:e};e.transform.prop=e.transform.w3||e.transform.moz||e.transform.webkit||e.transform.ie||e.transform.opera;h=null;return e}();this.timer=null;this.flakes=[];this.active=this.disabled=!1;this.meltFrameCount=20;this.meltFrames=[];this.setXY=function(c,d,e){if(!c)return!1;a.usePixelPosition||w?(c.style.left=d-a.flakeWidth+"px",c.style.top=e-a.flakeHeight+"px"):r?(c.style.right=100-100*
|
||||
(d/h)+"%",c.style.top=Math.min(e,s-a.flakeHeight)+"px"):a.flakeBottom?(c.style.right=100-100*(d/h)+"%",c.style.top=Math.min(e,s-a.flakeHeight)+"px"):(c.style.right=100-100*(d/h)+"%",c.style.bottom=100-100*(e/l)+"%")};this.events=function(){function a(c){c=b.call(c);var d=c.length;e?(c[1]="on"+c[1],3<d&&c.pop()):3===d&&c.push(!1);return c}function d(a,b){var c=a.shift(),d=[f[b]];if(e)c[d](a[0],a[1]);else c[d].apply(c,a)}var e=!g.addEventListener&&g.attachEvent,b=Array.prototype.slice,f={add:e?"attachEvent":
|
||||
"addEventListener",remove:e?"detachEvent":"removeEventListener"};return{add:function(){d(a(arguments),"add")},remove:function(){d(a(arguments),"remove")}}}();this.randomizeWind=function(){var c;c=k(a.vMaxX,0.2);z=1===parseInt(k(2),10)?-1*c:c;A=k(a.vMaxY,0.2);if(this.flakes)for(c=0;c<this.flakes.length;c++)this.flakes[c].active&&this.flakes[c].setVelocities()};this.scrollHandler=function(){var c;p=a.flakeBottom?0:parseInt(g.scrollY||f.documentElement.scrollTop||(r?f.body.scrollTop:0),10);isNaN(p)&&
|
||||
(p=0);if(!t&&!a.flakeBottom&&a.flakes)for(c=0;c<a.flakes.length;c++)0===a.flakes[c].active&&a.flakes[c].stick()};this.resizeHandler=function(){g.innerWidth||g.innerHeight?(h=g.innerWidth-16-a.flakeRightOffset,l=a.flakeBottom||g.innerHeight):(h=(f.documentElement.clientWidth||f.body.clientWidth||f.body.scrollWidth)-(!m?8:0)-a.flakeRightOffset,l=a.flakeBottom||f.documentElement.clientHeight||f.body.clientHeight||f.body.scrollHeight);s=f.body.offsetHeight;n=parseInt(h/2,10)};this.resizeHandlerAlt=function(){h=
|
||||
a.targetElement.offsetWidth-a.flakeRightOffset;l=a.flakeBottom||a.targetElement.offsetHeight;n=parseInt(h/2,10);s=f.body.offsetHeight};this.freeze=function(){if(a.disabled)return!1;a.disabled=1;a.timer=null};this.resume=function(){if(a.disabled)a.disabled=0;else return!1;a.timerInit()};this.toggleSnow=function(){a.flakes.length?(a.active=!a.active,a.active?(a.show(),a.resume()):(a.stop(),a.freeze())):a.start()};this.stop=function(){var c;this.freeze();for(c=0;c<this.flakes.length;c++)this.flakes[c].o.style.display=
|
||||
"none";a.events.remove(g,"scroll",a.scrollHandler);a.events.remove(g,"resize",a.resizeHandler);a.freezeOnBlur&&(m?(a.events.remove(f,"focusout",a.freeze),a.events.remove(f,"focusin",a.resume)):(a.events.remove(g,"blur",a.freeze),a.events.remove(g,"focus",a.resume)))};this.show=function(){var a;for(a=0;a<this.flakes.length;a++)this.flakes[a].o.style.display="block"};this.SnowFlake=function(c,d,e){var b=this;this.type=c;this.x=d||parseInt(k(h-20),10);this.y=!isNaN(e)?e:-k(l)-12;this.vY=this.vX=null;
|
||||
this.vAmpTypes=[1,1.2,1.4,1.6,1.8];this.vAmp=this.vAmpTypes[this.type]||1;this.melting=!1;this.meltFrameCount=a.meltFrameCount;this.meltFrames=a.meltFrames;this.twinkleFrame=this.meltFrame=0;this.active=1;this.fontSize=10+10*(this.type/5);this.o=f.createElement("div");this.o.innerHTML=a.snowCharacter;a.className&&this.o.setAttribute("class",a.className);this.o.style.color=a.snowColor;this.o.style.position=t?"fixed":"absolute";a.useGPU&&q.transform.prop&&(this.o.style[q.transform.prop]="translate3d(0px, 0px, 0px)");
|
||||
this.o.style.width=a.flakeWidth+"px";this.o.style.height=a.flakeHeight+"px";this.o.style.fontFamily="arial,verdana";this.o.style.cursor="default";this.o.style.overflow="hidden";this.o.style.fontWeight="normal";this.o.style.zIndex=a.zIndex;C.appendChild(this.o);this.refresh=function(){if(isNaN(b.x)||isNaN(b.y))return!1;a.setXY(b.o,b.x,b.y)};this.stick=function(){r||a.targetElement!==f.documentElement&&a.targetElement!==f.body?b.o.style.top=l+p-a.flakeHeight+"px":a.flakeBottom?b.o.style.top=a.flakeBottom+
|
||||
"px":(b.o.style.display="none",b.o.style.bottom="0%",b.o.style.position="fixed",b.o.style.display="block")};this.vCheck=function(){0<=b.vX&&0.2>b.vX?b.vX=0.2:0>b.vX&&-0.2<b.vX&&(b.vX=-0.2);0<=b.vY&&0.2>b.vY&&(b.vY=0.2)};this.move=function(){var c=b.vX*v;b.x+=c;b.y+=b.vY*b.vAmp;b.x>=h||h-b.x<a.flakeWidth?b.x=0:0>c&&b.x-a.flakeLeftOffset<-a.flakeWidth&&(b.x=h-a.flakeWidth-1);b.refresh();l+p-b.y+a.flakeHeight<a.flakeHeight?(b.active=0,a.snowStick?b.stick():b.recycle()):(a.useMeltEffect&&(b.active&&3>
|
||||
b.type&&!b.melting&&0.998<Math.random())&&(b.melting=!0,b.melt()),a.useTwinkleEffect&&(0>b.twinkleFrame?0.97<Math.random()&&(b.twinkleFrame=parseInt(8*Math.random(),10)):(b.twinkleFrame--,u?b.o.style.opacity=b.twinkleFrame&&0===b.twinkleFrame%2?0:1:b.o.style.visibility=b.twinkleFrame&&0===b.twinkleFrame%2?"hidden":"visible")))};this.animate=function(){b.move()};this.setVelocities=function(){b.vX=z+k(0.12*a.vMaxX,0.1);b.vY=A+k(0.12*a.vMaxY,0.1)};this.setOpacity=function(a,b){if(!u)return!1;a.style.opacity=
|
||||
b};this.melt=function(){!a.useMeltEffect||!b.melting?b.recycle():b.meltFrame<b.meltFrameCount?(b.setOpacity(b.o,b.meltFrames[b.meltFrame]),b.o.style.fontSize=b.fontSize-b.fontSize*(b.meltFrame/b.meltFrameCount)+"px",b.o.style.lineHeight=a.flakeHeight+2+0.75*a.flakeHeight*(b.meltFrame/b.meltFrameCount)+"px",b.meltFrame++):b.recycle()};this.recycle=function(){b.o.style.display="none";b.o.style.position=t?"fixed":"absolute";b.o.style.bottom="auto";b.setVelocities();b.vCheck();b.meltFrame=0;b.melting=
|
||||
!1;b.setOpacity(b.o,1);b.o.style.padding="0px";b.o.style.margin="0px";b.o.style.fontSize=b.fontSize+"px";b.o.style.lineHeight=a.flakeHeight+2+"px";b.o.style.textAlign="center";b.o.style.verticalAlign="baseline";b.x=parseInt(k(h-a.flakeWidth-20),10);b.y=parseInt(-1*k(l),10)-a.flakeHeight;b.refresh();b.o.style.display="block";b.active=1};this.recycle();this.refresh()};this.snow=function(){var c=0,d=null,e,d=0;for(e=a.flakes.length;d<e;d++)1===a.flakes[d].active&&(a.flakes[d].move(),c++),a.flakes[d].melting&&
|
||||
a.flakes[d].melt();c<a.flakesMaxActive&&(d=a.flakes[parseInt(k(a.flakes.length),10)],0===d.active&&(d.melting=!0));a.timer&&q.getAnimationFrame(a.snow)};this.mouseMove=function(c){if(!a.followMouse)return!0;c=parseInt(c.clientX,10);c<n?v=-2+2*(c/n):(c-=n,v=2*(c/n))};this.createSnow=function(c,d){var e;for(e=0;e<c;e++)if(a.flakes[a.flakes.length]=new a.SnowFlake(parseInt(k(6),10)),d||e>a.flakesMaxActive)a.flakes[a.flakes.length-1].active=-1;a.targetElement.appendChild(C)};this.timerInit=function(){a.timer=
|
||||
!0;a.snow()};this.init=function(){var c;for(c=0;c<a.meltFrameCount;c++)a.meltFrames.push(1-c/a.meltFrameCount);a.randomizeWind();a.createSnow(a.flakesMax);a.events.add(g,"resize",a.resizeHandler);a.events.add(g,"scroll",a.scrollHandler);a.freezeOnBlur&&(m?(a.events.add(f,"focusout",a.freeze),a.events.add(f,"focusin",a.resume)):(a.events.add(g,"blur",a.freeze),a.events.add(g,"focus",a.resume)));a.resizeHandler();a.scrollHandler();a.followMouse&&a.events.add(m?f:g,"mousemove",a.mouseMove);a.animationInterval=
|
||||
Math.max(20,a.animationInterval);a.timerInit()};this.start=function(c){if(B){if(c)return!0}else B=!0;if("string"===typeof a.targetElement&&(c=a.targetElement,a.targetElement=f.getElementById(c),!a.targetElement))throw Error('Snowstorm: Unable to get targetElement "'+c+'"');a.targetElement||(a.targetElement=f.body||f.documentElement);a.targetElement!==f.documentElement&&a.targetElement!==f.body&&(a.resizeHandler=a.resizeHandlerAlt,a.usePixelPosition=!0);a.resizeHandler();a.usePositionFixed=a.usePositionFixed&&
|
||||
!r&&!a.flakeBottom;if(g.getComputedStyle)try{w="relative"===g.getComputedStyle(a.targetElement,null).getPropertyValue("position")}catch(d){w=!1}t=a.usePositionFixed;h&&(l&&!a.disabled)&&(a.init(),a.active=!0)};a.autoStart&&a.events.add(g,"load",y,!1);return this}(window,document);
|
666
assets/js/snowstorm.js
Executable file
666
assets/js/snowstorm.js
Executable file
|
@ -0,0 +1,666 @@
|
|||
/** @license
|
||||
* DHTML Snowstorm! JavaScript-based snow for web pages
|
||||
* Making it snow on the internets since 2003. You're welcome.
|
||||
* -----------------------------------------------------------
|
||||
* Version 1.44.20131208 (Previous rev: 1.44.20131125)
|
||||
* Copyright (c) 2007, Scott Schiller. All rights reserved.
|
||||
* Code provided under the BSD License
|
||||
* http://schillmania.com/projects/snowstorm/license.txt
|
||||
*/
|
||||
|
||||
/*jslint nomen: true, plusplus: true, sloppy: true, vars: true, white: true */
|
||||
/*global window, document, navigator, clearInterval, setInterval */
|
||||
|
||||
var snowStorm = (function(window, document) {
|
||||
|
||||
// --- common properties ---
|
||||
|
||||
this.autoStart = true; // Whether the snow should start automatically or not.
|
||||
this.excludeMobile = true; // Snow is likely to be bad news for mobile phones' CPUs (and batteries.) Enable at your own risk.
|
||||
this.flakesMax = 128; // Limit total amount of snow made (falling + sticking)
|
||||
this.flakesMaxActive = 64; // Limit amount of snow falling at once (less = lower CPU use)
|
||||
this.animationInterval = 33; // Theoretical "miliseconds per frame" measurement. 20 = fast + smooth, but high CPU use. 50 = more conservative, but slower
|
||||
this.useGPU = true; // Enable transform-based hardware acceleration, reduce CPU load.
|
||||
this.className = null; // CSS class name for further customization on snow elements
|
||||
this.excludeMobile = true; // Snow is likely to be bad news for mobile phones' CPUs (and batteries.) By default, be nice.
|
||||
this.flakeBottom = null; // Integer for Y axis snow limit, 0 or null for "full-screen" snow effect
|
||||
this.followMouse = true; // Snow movement can respond to the user's mouse
|
||||
this.snowColor = '#fff'; // Don't eat (or use?) yellow snow.
|
||||
this.snowCharacter = '•'; // • = bullet, · is square on some systems etc.
|
||||
this.snowStick = true; // Whether or not snow should "stick" at the bottom. When off, will never collect.
|
||||
this.targetElement = null; // element which snow will be appended to (null = document.body) - can be an element ID eg. 'myDiv', or a DOM node reference
|
||||
this.useMeltEffect = true; // When recycling fallen snow (or rarely, when falling), have it "melt" and fade out if browser supports it
|
||||
this.useTwinkleEffect = false; // Allow snow to randomly "flicker" in and out of view while falling
|
||||
this.usePositionFixed = false; // true = snow does not shift vertically when scrolling. May increase CPU load, disabled by default - if enabled, used only where supported
|
||||
this.usePixelPosition = false; // Whether to use pixel values for snow top/left vs. percentages. Auto-enabled if body is position:relative or targetElement is specified.
|
||||
|
||||
// --- less-used bits ---
|
||||
|
||||
this.freezeOnBlur = true; // Only snow when the window is in focus (foreground.) Saves CPU.
|
||||
this.flakeLeftOffset = 0; // Left margin/gutter space on edge of container (eg. browser window.) Bump up these values if seeing horizontal scrollbars.
|
||||
this.flakeRightOffset = 0; // Right margin/gutter space on edge of container
|
||||
this.flakeWidth = 8; // Max pixel width reserved for snow element
|
||||
this.flakeHeight = 8; // Max pixel height reserved for snow element
|
||||
this.vMaxX = 5; // Maximum X velocity range for snow
|
||||
this.vMaxY = 4; // Maximum Y velocity range for snow
|
||||
this.zIndex = 0; // CSS stacking order applied to each snowflake
|
||||
|
||||
// --- "No user-serviceable parts inside" past this point, yadda yadda ---
|
||||
|
||||
var storm = this,
|
||||
features,
|
||||
// UA sniffing and backCompat rendering mode checks for fixed position, etc.
|
||||
isIE = navigator.userAgent.match(/msie/i),
|
||||
isIE6 = navigator.userAgent.match(/msie 6/i),
|
||||
isMobile = navigator.userAgent.match(/mobile|opera m(ob|in)/i),
|
||||
isBackCompatIE = (isIE && document.compatMode === 'BackCompat'),
|
||||
noFixed = (isBackCompatIE || isIE6),
|
||||
screenX = null, screenX2 = null, screenY = null, scrollY = null, docHeight = null, vRndX = null, vRndY = null,
|
||||
windOffset = 1,
|
||||
windMultiplier = 2,
|
||||
flakeTypes = 6,
|
||||
fixedForEverything = false,
|
||||
targetElementIsRelative = false,
|
||||
opacitySupported = (function(){
|
||||
try {
|
||||
document.createElement('div').style.opacity = '0.5';
|
||||
} catch(e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}()),
|
||||
didInit = false,
|
||||
docFrag = document.createDocumentFragment();
|
||||
|
||||
features = (function() {
|
||||
|
||||
var getAnimationFrame;
|
||||
|
||||
/**
|
||||
* hat tip: paul irish
|
||||
* http://paulirish.com/2011/requestanimationframe-for-smart-animating/
|
||||
* https://gist.github.com/838785
|
||||
*/
|
||||
|
||||
function timeoutShim(callback) {
|
||||
window.setTimeout(callback, 1000/(storm.animationInterval || 20));
|
||||
}
|
||||
|
||||
var _animationFrame = (window.requestAnimationFrame ||
|
||||
window.webkitRequestAnimationFrame ||
|
||||
window.mozRequestAnimationFrame ||
|
||||
window.oRequestAnimationFrame ||
|
||||
window.msRequestAnimationFrame ||
|
||||
timeoutShim);
|
||||
|
||||
// apply to window, avoid "illegal invocation" errors in Chrome
|
||||
getAnimationFrame = _animationFrame ? function() {
|
||||
return _animationFrame.apply(window, arguments);
|
||||
} : null;
|
||||
|
||||
var testDiv;
|
||||
|
||||
testDiv = document.createElement('div');
|
||||
|
||||
function has(prop) {
|
||||
|
||||
// test for feature support
|
||||
var result = testDiv.style[prop];
|
||||
return (result !== undefined ? prop : null);
|
||||
|
||||
}
|
||||
|
||||
// note local scope.
|
||||
var localFeatures = {
|
||||
|
||||
transform: {
|
||||
ie: has('-ms-transform'),
|
||||
moz: has('MozTransform'),
|
||||
opera: has('OTransform'),
|
||||
webkit: has('webkitTransform'),
|
||||
w3: has('transform'),
|
||||
prop: null // the normalized property value
|
||||
},
|
||||
|
||||
getAnimationFrame: getAnimationFrame
|
||||
|
||||
};
|
||||
|
||||
localFeatures.transform.prop = (
|
||||
localFeatures.transform.w3 ||
|
||||
localFeatures.transform.moz ||
|
||||
localFeatures.transform.webkit ||
|
||||
localFeatures.transform.ie ||
|
||||
localFeatures.transform.opera
|
||||
);
|
||||
|
||||
testDiv = null;
|
||||
|
||||
return localFeatures;
|
||||
|
||||
}());
|
||||
|
||||
this.timer = null;
|
||||
this.flakes = [];
|
||||
this.disabled = false;
|
||||
this.active = false;
|
||||
this.meltFrameCount = 20;
|
||||
this.meltFrames = [];
|
||||
|
||||
this.setXY = function(o, x, y) {
|
||||
|
||||
if (!o) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (storm.usePixelPosition || targetElementIsRelative) {
|
||||
|
||||
o.style.left = (x - storm.flakeWidth) + 'px';
|
||||
o.style.top = (y - storm.flakeHeight) + 'px';
|
||||
|
||||
} else if (noFixed) {
|
||||
|
||||
o.style.right = (100-(x/screenX*100)) + '%';
|
||||
// avoid creating vertical scrollbars
|
||||
o.style.top = (Math.min(y, docHeight-storm.flakeHeight)) + 'px';
|
||||
|
||||
} else {
|
||||
|
||||
if (!storm.flakeBottom) {
|
||||
|
||||
// if not using a fixed bottom coordinate...
|
||||
o.style.right = (100-(x/screenX*100)) + '%';
|
||||
o.style.bottom = (100-(y/screenY*100)) + '%';
|
||||
|
||||
} else {
|
||||
|
||||
// absolute top.
|
||||
o.style.right = (100-(x/screenX*100)) + '%';
|
||||
o.style.top = (Math.min(y, docHeight-storm.flakeHeight)) + 'px';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
this.events = (function() {
|
||||
|
||||
var old = (!window.addEventListener && window.attachEvent), slice = Array.prototype.slice,
|
||||
evt = {
|
||||
add: (old?'attachEvent':'addEventListener'),
|
||||
remove: (old?'detachEvent':'removeEventListener')
|
||||
};
|
||||
|
||||
function getArgs(oArgs) {
|
||||
var args = slice.call(oArgs), len = args.length;
|
||||
if (old) {
|
||||
args[1] = 'on' + args[1]; // prefix
|
||||
if (len > 3) {
|
||||
args.pop(); // no capture
|
||||
}
|
||||
} else if (len === 3) {
|
||||
args.push(false);
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
function apply(args, sType) {
|
||||
var element = args.shift(),
|
||||
method = [evt[sType]];
|
||||
if (old) {
|
||||
element[method](args[0], args[1]);
|
||||
} else {
|
||||
element[method].apply(element, args);
|
||||
}
|
||||
}
|
||||
|
||||
function addEvent() {
|
||||
apply(getArgs(arguments), 'add');
|
||||
}
|
||||
|
||||
function removeEvent() {
|
||||
apply(getArgs(arguments), 'remove');
|
||||
}
|
||||
|
||||
return {
|
||||
add: addEvent,
|
||||
remove: removeEvent
|
||||
};
|
||||
|
||||
}());
|
||||
|
||||
function rnd(n,min) {
|
||||
if (isNaN(min)) {
|
||||
min = 0;
|
||||
}
|
||||
return (Math.random()*n)+min;
|
||||
}
|
||||
|
||||
function plusMinus(n) {
|
||||
return (parseInt(rnd(2),10)===1?n*-1:n);
|
||||
}
|
||||
|
||||
this.randomizeWind = function() {
|
||||
var i;
|
||||
vRndX = plusMinus(rnd(storm.vMaxX,0.2));
|
||||
vRndY = rnd(storm.vMaxY,0.2);
|
||||
if (this.flakes) {
|
||||
for (i=0; i<this.flakes.length; i++) {
|
||||
if (this.flakes[i].active) {
|
||||
this.flakes[i].setVelocities();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.scrollHandler = function() {
|
||||
var i;
|
||||
// "attach" snowflakes to bottom of window if no absolute bottom value was given
|
||||
scrollY = (storm.flakeBottom ? 0 : parseInt(window.scrollY || document.documentElement.scrollTop || (noFixed ? document.body.scrollTop : 0), 10));
|
||||
if (isNaN(scrollY)) {
|
||||
scrollY = 0; // Netscape 6 scroll fix
|
||||
}
|
||||
if (!fixedForEverything && !storm.flakeBottom && storm.flakes) {
|
||||
for (i=0; i<storm.flakes.length; i++) {
|
||||
if (storm.flakes[i].active === 0) {
|
||||
storm.flakes[i].stick();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.resizeHandler = function() {
|
||||
if (window.innerWidth || window.innerHeight) {
|
||||
screenX = window.innerWidth - 16 - storm.flakeRightOffset;
|
||||
screenY = (storm.flakeBottom || window.innerHeight);
|
||||
} else {
|
||||
screenX = (document.documentElement.clientWidth || document.body.clientWidth || document.body.scrollWidth) - (!isIE ? 8 : 0) - storm.flakeRightOffset;
|
||||
screenY = storm.flakeBottom || document.documentElement.clientHeight || document.body.clientHeight || document.body.scrollHeight;
|
||||
}
|
||||
docHeight = document.body.offsetHeight;
|
||||
screenX2 = parseInt(screenX/2,10);
|
||||
};
|
||||
|
||||
this.resizeHandlerAlt = function() {
|
||||
screenX = storm.targetElement.offsetWidth - storm.flakeRightOffset;
|
||||
screenY = storm.flakeBottom || storm.targetElement.offsetHeight;
|
||||
screenX2 = parseInt(screenX/2,10);
|
||||
docHeight = document.body.offsetHeight;
|
||||
};
|
||||
|
||||
this.freeze = function() {
|
||||
// pause animation
|
||||
if (!storm.disabled) {
|
||||
storm.disabled = 1;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
storm.timer = null;
|
||||
};
|
||||
|
||||
this.resume = function() {
|
||||
if (storm.disabled) {
|
||||
storm.disabled = 0;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
storm.timerInit();
|
||||
};
|
||||
|
||||
this.toggleSnow = function() {
|
||||
if (!storm.flakes.length) {
|
||||
// first run
|
||||
storm.start();
|
||||
} else {
|
||||
storm.active = !storm.active;
|
||||
if (storm.active) {
|
||||
storm.show();
|
||||
storm.resume();
|
||||
} else {
|
||||
storm.stop();
|
||||
storm.freeze();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.stop = function() {
|
||||
var i;
|
||||
this.freeze();
|
||||
for (i=0; i<this.flakes.length; i++) {
|
||||
this.flakes[i].o.style.display = 'none';
|
||||
}
|
||||
storm.events.remove(window,'scroll',storm.scrollHandler);
|
||||
storm.events.remove(window,'resize',storm.resizeHandler);
|
||||
if (storm.freezeOnBlur) {
|
||||
if (isIE) {
|
||||
storm.events.remove(document,'focusout',storm.freeze);
|
||||
storm.events.remove(document,'focusin',storm.resume);
|
||||
} else {
|
||||
storm.events.remove(window,'blur',storm.freeze);
|
||||
storm.events.remove(window,'focus',storm.resume);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.show = function() {
|
||||
var i;
|
||||
for (i=0; i<this.flakes.length; i++) {
|
||||
this.flakes[i].o.style.display = 'block';
|
||||
}
|
||||
};
|
||||
|
||||
this.SnowFlake = function(type,x,y) {
|
||||
var s = this;
|
||||
this.type = type;
|
||||
this.x = x||parseInt(rnd(screenX-20),10);
|
||||
this.y = (!isNaN(y)?y:-rnd(screenY)-12);
|
||||
this.vX = null;
|
||||
this.vY = null;
|
||||
this.vAmpTypes = [1,1.2,1.4,1.6,1.8]; // "amplification" for vX/vY (based on flake size/type)
|
||||
this.vAmp = this.vAmpTypes[this.type] || 1;
|
||||
this.melting = false;
|
||||
this.meltFrameCount = storm.meltFrameCount;
|
||||
this.meltFrames = storm.meltFrames;
|
||||
this.meltFrame = 0;
|
||||
this.twinkleFrame = 0;
|
||||
this.active = 1;
|
||||
this.fontSize = (10+(this.type/5)*10);
|
||||
this.o = document.createElement('div');
|
||||
this.o.innerHTML = storm.snowCharacter;
|
||||
if (storm.className) {
|
||||
this.o.setAttribute('class', storm.className);
|
||||
}
|
||||
this.o.style.color = storm.snowColor;
|
||||
this.o.style.position = (fixedForEverything?'fixed':'absolute');
|
||||
if (storm.useGPU && features.transform.prop) {
|
||||
// GPU-accelerated snow.
|
||||
this.o.style[features.transform.prop] = 'translate3d(0px, 0px, 0px)';
|
||||
}
|
||||
this.o.style.width = storm.flakeWidth+'px';
|
||||
this.o.style.height = storm.flakeHeight+'px';
|
||||
this.o.style.fontFamily = 'arial,verdana';
|
||||
this.o.style.cursor = 'default';
|
||||
this.o.style.overflow = 'hidden';
|
||||
this.o.style.fontWeight = 'normal';
|
||||
this.o.style.zIndex = storm.zIndex;
|
||||
docFrag.appendChild(this.o);
|
||||
|
||||
this.refresh = function() {
|
||||
if (isNaN(s.x) || isNaN(s.y)) {
|
||||
// safety check
|
||||
return false;
|
||||
}
|
||||
storm.setXY(s.o, s.x, s.y);
|
||||
};
|
||||
|
||||
this.stick = function() {
|
||||
if (noFixed || (storm.targetElement !== document.documentElement && storm.targetElement !== document.body)) {
|
||||
s.o.style.top = (screenY+scrollY-storm.flakeHeight)+'px';
|
||||
} else if (storm.flakeBottom) {
|
||||
s.o.style.top = storm.flakeBottom+'px';
|
||||
} else {
|
||||
s.o.style.display = 'none';
|
||||
s.o.style.bottom = '0%';
|
||||
s.o.style.position = 'fixed';
|
||||
s.o.style.display = 'block';
|
||||
}
|
||||
};
|
||||
|
||||
this.vCheck = function() {
|
||||
if (s.vX>=0 && s.vX<0.2) {
|
||||
s.vX = 0.2;
|
||||
} else if (s.vX<0 && s.vX>-0.2) {
|
||||
s.vX = -0.2;
|
||||
}
|
||||
if (s.vY>=0 && s.vY<0.2) {
|
||||
s.vY = 0.2;
|
||||
}
|
||||
};
|
||||
|
||||
this.move = function() {
|
||||
var vX = s.vX*windOffset, yDiff;
|
||||
s.x += vX;
|
||||
s.y += (s.vY*s.vAmp);
|
||||
if (s.x >= screenX || screenX-s.x < storm.flakeWidth) { // X-axis scroll check
|
||||
s.x = 0;
|
||||
} else if (vX < 0 && s.x-storm.flakeLeftOffset < -storm.flakeWidth) {
|
||||
s.x = screenX-storm.flakeWidth-1; // flakeWidth;
|
||||
}
|
||||
s.refresh();
|
||||
yDiff = screenY+scrollY-s.y+storm.flakeHeight;
|
||||
if (yDiff<storm.flakeHeight) {
|
||||
s.active = 0;
|
||||
if (storm.snowStick) {
|
||||
s.stick();
|
||||
} else {
|
||||
s.recycle();
|
||||
}
|
||||
} else {
|
||||
if (storm.useMeltEffect && s.active && s.type < 3 && !s.melting && Math.random()>0.998) {
|
||||
// ~1/1000 chance of melting mid-air, with each frame
|
||||
s.melting = true;
|
||||
s.melt();
|
||||
// only incrementally melt one frame
|
||||
// s.melting = false;
|
||||
}
|
||||
if (storm.useTwinkleEffect) {
|
||||
if (s.twinkleFrame < 0) {
|
||||
if (Math.random() > 0.97) {
|
||||
s.twinkleFrame = parseInt(Math.random() * 8, 10);
|
||||
}
|
||||
} else {
|
||||
s.twinkleFrame--;
|
||||
if (!opacitySupported) {
|
||||
s.o.style.visibility = (s.twinkleFrame && s.twinkleFrame % 2 === 0 ? 'hidden' : 'visible');
|
||||
} else {
|
||||
s.o.style.opacity = (s.twinkleFrame && s.twinkleFrame % 2 === 0 ? 0 : 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.animate = function() {
|
||||
// main animation loop
|
||||
// move, check status, die etc.
|
||||
s.move();
|
||||
};
|
||||
|
||||
this.setVelocities = function() {
|
||||
s.vX = vRndX+rnd(storm.vMaxX*0.12,0.1);
|
||||
s.vY = vRndY+rnd(storm.vMaxY*0.12,0.1);
|
||||
};
|
||||
|
||||
this.setOpacity = function(o,opacity) {
|
||||
if (!opacitySupported) {
|
||||
return false;
|
||||
}
|
||||
o.style.opacity = opacity;
|
||||
};
|
||||
|
||||
this.melt = function() {
|
||||
if (!storm.useMeltEffect || !s.melting) {
|
||||
s.recycle();
|
||||
} else {
|
||||
if (s.meltFrame < s.meltFrameCount) {
|
||||
s.setOpacity(s.o,s.meltFrames[s.meltFrame]);
|
||||
s.o.style.fontSize = s.fontSize-(s.fontSize*(s.meltFrame/s.meltFrameCount))+'px';
|
||||
s.o.style.lineHeight = storm.flakeHeight+2+(storm.flakeHeight*0.75*(s.meltFrame/s.meltFrameCount))+'px';
|
||||
s.meltFrame++;
|
||||
} else {
|
||||
s.recycle();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.recycle = function() {
|
||||
s.o.style.display = 'none';
|
||||
s.o.style.position = (fixedForEverything?'fixed':'absolute');
|
||||
s.o.style.bottom = 'auto';
|
||||
s.setVelocities();
|
||||
s.vCheck();
|
||||
s.meltFrame = 0;
|
||||
s.melting = false;
|
||||
s.setOpacity(s.o,1);
|
||||
s.o.style.padding = '0px';
|
||||
s.o.style.margin = '0px';
|
||||
s.o.style.fontSize = s.fontSize+'px';
|
||||
s.o.style.lineHeight = (storm.flakeHeight+2)+'px';
|
||||
s.o.style.textAlign = 'center';
|
||||
s.o.style.verticalAlign = 'baseline';
|
||||
s.x = parseInt(rnd(screenX-storm.flakeWidth-20),10);
|
||||
s.y = parseInt(rnd(screenY)*-1,10)-storm.flakeHeight;
|
||||
s.refresh();
|
||||
s.o.style.display = 'block';
|
||||
s.active = 1;
|
||||
};
|
||||
|
||||
this.recycle(); // set up x/y coords etc.
|
||||
this.refresh();
|
||||
|
||||
};
|
||||
|
||||
this.snow = function() {
|
||||
var active = 0, flake = null, i, j;
|
||||
for (i=0, j=storm.flakes.length; i<j; i++) {
|
||||
if (storm.flakes[i].active === 1) {
|
||||
storm.flakes[i].move();
|
||||
active++;
|
||||
}
|
||||
if (storm.flakes[i].melting) {
|
||||
storm.flakes[i].melt();
|
||||
}
|
||||
}
|
||||
if (active<storm.flakesMaxActive) {
|
||||
flake = storm.flakes[parseInt(rnd(storm.flakes.length),10)];
|
||||
if (flake.active === 0) {
|
||||
flake.melting = true;
|
||||
}
|
||||
}
|
||||
if (storm.timer) {
|
||||
features.getAnimationFrame(storm.snow);
|
||||
}
|
||||
};
|
||||
|
||||
this.mouseMove = function(e) {
|
||||
if (!storm.followMouse) {
|
||||
return true;
|
||||
}
|
||||
var x = parseInt(e.clientX,10);
|
||||
if (x<screenX2) {
|
||||
windOffset = -windMultiplier+(x/screenX2*windMultiplier);
|
||||
} else {
|
||||
x -= screenX2;
|
||||
windOffset = (x/screenX2)*windMultiplier;
|
||||
}
|
||||
};
|
||||
|
||||
this.createSnow = function(limit,allowInactive) {
|
||||
var i;
|
||||
for (i=0; i<limit; i++) {
|
||||
storm.flakes[storm.flakes.length] = new storm.SnowFlake(parseInt(rnd(flakeTypes),10));
|
||||
if (allowInactive || i>storm.flakesMaxActive) {
|
||||
storm.flakes[storm.flakes.length-1].active = -1;
|
||||
}
|
||||
}
|
||||
storm.targetElement.appendChild(docFrag);
|
||||
};
|
||||
|
||||
this.timerInit = function() {
|
||||
storm.timer = true;
|
||||
storm.snow();
|
||||
};
|
||||
|
||||
this.init = function() {
|
||||
var i;
|
||||
for (i=0; i<storm.meltFrameCount; i++) {
|
||||
storm.meltFrames.push(1-(i/storm.meltFrameCount));
|
||||
}
|
||||
storm.randomizeWind();
|
||||
storm.createSnow(storm.flakesMax); // create initial batch
|
||||
storm.events.add(window,'resize',storm.resizeHandler);
|
||||
storm.events.add(window,'scroll',storm.scrollHandler);
|
||||
if (storm.freezeOnBlur) {
|
||||
if (isIE) {
|
||||
storm.events.add(document,'focusout',storm.freeze);
|
||||
storm.events.add(document,'focusin',storm.resume);
|
||||
} else {
|
||||
storm.events.add(window,'blur',storm.freeze);
|
||||
storm.events.add(window,'focus',storm.resume);
|
||||
}
|
||||
}
|
||||
storm.resizeHandler();
|
||||
storm.scrollHandler();
|
||||
if (storm.followMouse) {
|
||||
storm.events.add(isIE?document:window,'mousemove',storm.mouseMove);
|
||||
}
|
||||
storm.animationInterval = Math.max(20,storm.animationInterval);
|
||||
storm.timerInit();
|
||||
};
|
||||
|
||||
this.start = function(bFromOnLoad) {
|
||||
if (!didInit) {
|
||||
didInit = true;
|
||||
} else if (bFromOnLoad) {
|
||||
// already loaded and running
|
||||
return true;
|
||||
}
|
||||
if (typeof storm.targetElement === 'string') {
|
||||
var targetID = storm.targetElement;
|
||||
storm.targetElement = document.getElementById(targetID);
|
||||
if (!storm.targetElement) {
|
||||
throw new Error('Snowstorm: Unable to get targetElement "'+targetID+'"');
|
||||
}
|
||||
}
|
||||
if (!storm.targetElement) {
|
||||
storm.targetElement = (document.body || document.documentElement);
|
||||
}
|
||||
if (storm.targetElement !== document.documentElement && storm.targetElement !== document.body) {
|
||||
// re-map handler to get element instead of screen dimensions
|
||||
storm.resizeHandler = storm.resizeHandlerAlt;
|
||||
//and force-enable pixel positioning
|
||||
storm.usePixelPosition = true;
|
||||
}
|
||||
storm.resizeHandler(); // get bounding box elements
|
||||
storm.usePositionFixed = (storm.usePositionFixed && !noFixed && !storm.flakeBottom); // whether or not position:fixed is to be used
|
||||
if (window.getComputedStyle) {
|
||||
// attempt to determine if body or user-specified snow parent element is relatlively-positioned.
|
||||
try {
|
||||
targetElementIsRelative = (window.getComputedStyle(storm.targetElement, null).getPropertyValue('position') === 'relative');
|
||||
} catch(e) {
|
||||
// oh well
|
||||
targetElementIsRelative = false;
|
||||
}
|
||||
}
|
||||
fixedForEverything = storm.usePositionFixed;
|
||||
if (screenX && screenY && !storm.disabled) {
|
||||
storm.init();
|
||||
storm.active = true;
|
||||
}
|
||||
};
|
||||
|
||||
function doDelayedStart() {
|
||||
window.setTimeout(function() {
|
||||
storm.start(true);
|
||||
}, 20);
|
||||
// event cleanup
|
||||
storm.events.remove(isIE?document:window,'mousemove',doDelayedStart);
|
||||
}
|
||||
|
||||
function doStart() {
|
||||
if (!storm.excludeMobile || !isMobile) {
|
||||
doDelayedStart();
|
||||
}
|
||||
// event cleanup
|
||||
storm.events.remove(window, 'load', doStart);
|
||||
}
|
||||
|
||||
// hooks for starting the snow
|
||||
if (storm.autoStart) {
|
||||
storm.events.add(window, 'load', doStart, false);
|
||||
}
|
||||
|
||||
return this;
|
||||
|
||||
}(window, document));
|
|
@ -13,6 +13,18 @@
|
|||
<link rel="stylesheet" href="../style.css" type="text/css">
|
||||
<link rel="icon" type="image/x-icon" href="../favicon.ico">
|
||||
<a rel="me" href="https://noc.social/@fijxu"></a>
|
||||
<script src="../assets/js/snowstorm-min.js"></script>
|
||||
<script>
|
||||
snowStorm.snowColor = '#ffffff'; // blue-ish snow!?
|
||||
snowStorm.flakesMaxActive = 96; // show more snow on screen at once
|
||||
snowStorm.useTwinkleEffect = false;
|
||||
snowStorm.animationInterval = 33;
|
||||
snowStorm.freezeOnBlur = false;
|
||||
snowStorm.followMouse = false;
|
||||
snowStorm.usePositionFixed = false;
|
||||
snowStorm.vMaxX = 3;
|
||||
snowStorm.vMaxY = 3;
|
||||
</script>
|
||||
<style>
|
||||
.lol {
|
||||
width: 300vh;
|
||||
|
@ -37,33 +49,28 @@
|
|||
<a href="https://zzls.xyz/trafficstats">Internet Traffic Stats</a> |
|
||||
<a href="https://blog.zzls.xyz/en">Blog</a>
|
||||
</div>
|
||||
s
|
||||
<div class="content">
|
||||
<h1 class="tilttext">>.></h1>
|
||||
<p class="lastupdate">Last Updated: 2023-12-07</p>
|
||||
<p class="lastupdate">12-07 Changelog: Now I offer more ways to contact me, not only matrix. Server specs was
|
||||
updated and IDK what more. I am getting really tired of modifying 2 webpages at the same time (The Spanish and
|
||||
English translation) so I guess I will port this site to Hugo some day... This is not very fun to do</p>
|
||||
<p class="lastupdate">12.23 : Now there is a page with the status of all services at <a href="https://status.zzls.xyz/">https://status.zzls.xyz</a></p>
|
||||
<p>
|
||||
<p class="lastupdate">12-16 Changelog: Privacy Policy has been updated!!! And a <a class="rainbowtext">IRC Bouncer</a> service is now available</p>
|
||||
<p>
|
||||
Hiiiiiii, I am dedicated on
|
||||
hosting privacy related services and other types of services mainly for South
|
||||
America and the rest of the internet. Very few people in South
|
||||
America care about
|
||||
their privacy (for mere ignorance and convenience) so here I am,
|
||||
making it easier for those people who want to
|
||||
start taking care of their personal data. Obviously, if you are from another country, such as the United States or from another region, feel free to use them, as long as they work for you, it's all good :D.
|
||||
Hiiiiiii, I am dedicated on
|
||||
hosting privacy related services and other types of services mainly for South
|
||||
America and the rest of the internet. Very few people in South
|
||||
America care about
|
||||
their privacy (for mere ignorance and convenience) so here I am,
|
||||
making it easier for those people who want to
|
||||
start taking care of their personal data. Obviously, if you are from another country, such as the United States or from another region, feel free to use them, as long as they work for you, it's all good :D.
|
||||
</p>
|
||||
<h2>Services list</h2>
|
||||
<p style="font-size: small; color: burlywood;">⚠️ <i>Before you consider
|
||||
using my services on a daily
|
||||
basis, the ones marked with <a class="selfhosted">(Self-Hosted)</a>
|
||||
may be
|
||||
go down at any time because they are
|
||||
they are hosted with my own home internet. I don't rent dedicated
|
||||
servers for these services (because I am not
|
||||
able to afford it xD).</i>
|
||||
using my services on a daily
|
||||
basis, the ones marked with <a class="selfhosted">(Self-Hosted)</a>
|
||||
may be
|
||||
go down at any time because they are
|
||||
they are hosted with my own home internet. I don't rent dedicated
|
||||
servers for these services (because I am not
|
||||
able to afford it xD).</i>
|
||||
</p>
|
||||
<h4>Privacy Oriented Ones:</h4>
|
||||
<ul>
|
||||
|
@ -72,66 +79,66 @@ s
|
|||
🇨🇱 (<a href="http://librex.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion/">Tor</a>)
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p class="rainbowtext">
|
||||
"A
|
||||
metasearch engine that gets
|
||||
results from other engines, and strips away all of the tracking parameters and Microsoft/globohomo bullshit
|
||||
they add" <a href="https://git.lolcat.ca/lolcat/4get">Source Code</a> </p>
|
||||
"A
|
||||
metasearch engine that gets
|
||||
results from other engines, and strips away all of the tracking parameters and Microsoft/globohomo bullshit
|
||||
they add" <a href="https://git.lolcat.ca/lolcat/4get">Source Code</a> </p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<a class="THEYGLOW" style="color: greenyellow;" href="https://4getus.zzls.xyz">4get</a> @
|
||||
🇺🇸 (<a href="http://4getus.zzls2vhse6jeahgdz5snle37dnngmbeh4jgug5xvsdpmlchaw3ieonid.onion/">Tor</a>)
|
||||
<p>
|
||||
The same as above but in the united states. It could be more
|
||||
stable because it is in a VPS, but it has more
|
||||
probability of getting rate limited as well...
|
||||
The same as above but in the united states. It could be more
|
||||
stable because it is in a VPS, but it has more
|
||||
probability of getting rate limited as well...
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a style="color: greenyellow;"></a><a href="https://matrix.zzls.xyz">Matrix
|
||||
Homeserver</a> @ 🇨🇱 <a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
Matrix server running <a href="https://github.com/matrix-org/synapse">Synapse</a>, using a
|
||||
NVME,
|
||||
PostgreSQL and a good CPU. It has support for Spaces, Threading and
|
||||
other experimental features. <b>You can request an account contacting me <a href="../contact/">here</a></b>
|
||||
Matrix server running <a href="https://github.com/matrix-org/synapse">Synapse</a>, using a
|
||||
NVME,
|
||||
PostgreSQL and a good CPU. It has support for Spaces, Threading and
|
||||
other experimental features. <b>You can request an account contacting me <a href="../contact/">here</a></b>
|
||||
<p>It also has mautrix-whatsapp integration, which is a bot for sending and receiving messages from Whatsapp in
|
||||
Matrix.</p>
|
||||
Matrix.</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://search.zzls.xyz">SearxNG</a> @ 🇨🇱
|
||||
<p>
|
||||
A metasearch
|
||||
engine which aggregates results from more than 70
|
||||
search services.
|
||||
A metasearch
|
||||
engine which aggregates results from more than 70
|
||||
search services.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://inv.zzls.xyz">Invidious</a> @ 🇨🇱 (<a
|
||||
href="http://inv.zzls.i2p/?i2paddresshelper=6s3qhqcyth644rlssv2sajluvrx632uaucsmnwaowglg6hocxjfa.b32.i2p">I2P</a>)
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
An alternative
|
||||
frontend for Youtube, feel free to register.
|
||||
</p>
|
||||
href="http://inv.zzls.i2p/?i2paddresshelper=6s3qhqcyth644rlssv2sajluvrx632uaucsmnwaowglg6hocxjfa.b32.i2p">I2P</a>)
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
An alternative
|
||||
frontend for Youtube, feel free to register.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://ri.zzls.xyz">Rimgo</a>
|
||||
@ 🇨🇱 (<a href="http://rimgo.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion/">Tor</a>)
|
||||
(<a
|
||||
href="http://rimgo.zzls.i2p/?i2paddresshelper=p57356k2xwhxrg2lxrjajcftkrptv4zejeeblzfgkcvpzuetkz2a.b32.i2p">I2P</a>)
|
||||
<p>
|
||||
A Imgur
|
||||
proxy that load images faster than the original imgur webpage.
|
||||
<a href="https://codeberg.org/video-prize-ranch/rimgo">Source Code</a>
|
||||
</p>
|
||||
href="http://rimgo.zzls.i2p/?i2paddresshelper=p57356k2xwhxrg2lxrjajcftkrptv4zejeeblzfgkcvpzuetkz2a.b32.i2p">I2P</a>)
|
||||
<p>
|
||||
A Imgur
|
||||
proxy that load images faster than the original imgur webpage.
|
||||
<a href="https://codeberg.org/video-prize-ranch/rimgo">Source Code</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://pbin.zzls.xyz">Privatebin</a> @ 🇨🇱 <a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
A
|
||||
pastebin where the server has 0 knowledge about the pastes, all the
|
||||
data is encrypted in the client side.
|
||||
A
|
||||
pastebin where the server has 0 knowledge about the pastes, all the
|
||||
data is encrypted in the client side.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -140,100 +147,100 @@ s
|
|||
<li>
|
||||
<a style="color: greenyellow;">IRC Bouncer</a> @ 🇺🇸
|
||||
<p>
|
||||
An IRC Bouncer that allows you to stay connected on IRC networks without losing messages. If you want an account and instructions on how to use it, talk to me <a href="../contact/index-en.html">here</a>
|
||||
A IRC bouncer that works Un bouncer IRC que sirve para mantenerte conectado en redes IRC sin perder los mensajes.
|
||||
Si quieres una cuenta e
|
||||
instrucciones de uso, háblame por <a href="./contact/index.html">aquí</a>
|
||||
An IRC Bouncer that allows you to stay connected on IRC networks without losing messages. If you want an account and instructions on how to use it, talk to me <a href="../contact/index-en.html">here</a>
|
||||
A IRC bouncer that works Un bouncer IRC que sirve para mantenerte conectado en redes IRC sin perder los mensajes.
|
||||
Si quieres una cuenta e
|
||||
instrucciones de uso, háblame por <a href="./contact/index.html">aquí</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://ayaya.beauty">ayaya.beauty</a> @ 🇨🇱 <a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
A
|
||||
temporal media uploader using <a href="https://github.com/nokonoko/uguu">Uguu</a>. It allows you to
|
||||
upload files up to <b>512MiB</b> (yes, 512MiB) and they are deleted
|
||||
automatically in 7 days.
|
||||
A
|
||||
temporal media uploader using <a href="https://github.com/nokonoko/uguu">Uguu</a>. It allows you to
|
||||
upload files up to <b>512MiB</b> (yes, 512MiB) and they are deleted
|
||||
automatically in 7 days.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a style="color: greenyellow;"></a><a href="https://git.zzls.xyz">Forgejo</a>
|
||||
@ 🇨🇱 <a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
A git
|
||||
server where you can host
|
||||
your personal projects or make mirrors of other git repositories
|
||||
with the intention of archiving them.
|
||||
A git
|
||||
server where you can host
|
||||
your personal projects or make mirrors of other git repositories
|
||||
with the intention of archiving them.
|
||||
</p>
|
||||
</li>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://logs.zzls.xyz">Twitch Logs</a> @ 🇺🇸
|
||||
<p>
|
||||
A bunch of
|
||||
logs
|
||||
from twitch streams (mainly spanish ones), currently using about
|
||||
~400GiB of storage
|
||||
A bunch of
|
||||
logs
|
||||
from twitch streams (mainly spanish ones), currently using about
|
||||
~400GiB of storage
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://count.ayaya.beauty">Moe Counter</a> @ 🇨🇱
|
||||
<p>
|
||||
A
|
||||
Gelbooru
|
||||
like counter that you can embed in your webpage to count the visitors
|
||||
of the page
|
||||
A
|
||||
Gelbooru
|
||||
like counter that you can embed in your webpage to count the visitors
|
||||
of the page
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Servers specifications</h2>
|
||||
<p>You can find more information about the servers/computers running this
|
||||
kind of services here -> <a href="../srvspecs">yes, here</a></p>
|
||||
kind of services here -> <a href="../srvspecs">yes, here</a></p>
|
||||
<h2>Q&A</h2>
|
||||
<h4>Your services are running behind <a style="color:coral">Cloudflare?</a></h4>
|
||||
<p>No</p>
|
||||
<p>And here is the reason why</p>
|
||||
<p>People shouldn't use Cloudflare for privacy related services, it
|
||||
defeats the whole concept of online
|
||||
privacy and freedom since Cloudflare is a man in the middle and can
|
||||
decrypt all the data between the user and the
|
||||
server. And nobody wants a hundred of Cloudflare captchas shit just to
|
||||
access a site, that is supposed to stop bad
|
||||
bots, not humans.
|
||||
defeats the whole concept of online
|
||||
privacy and freedom since Cloudflare is a man in the middle and can
|
||||
decrypt all the data between the user and the
|
||||
server. And nobody wants a hundred of Cloudflare captchas shit just to
|
||||
access a site, that is supposed to stop bad
|
||||
bots, not humans.
|
||||
<h4>How I can ensure you are not collecting any data?</h4>
|
||||
<p>The NGINX configs and other configs are available
|
||||
<a href="https://git.zzls.xyz/Fijxu/etc-configs">here</a>, they are on
|
||||
different branches so explore whatever you want, if you find something
|
||||
that is not very privacy respecting into the Privacy Oriented services
|
||||
configs, contact me via matrix:
|
||||
<a href="https://matrix.to/#/@fijxu:zzls.xyz">@fijxu:zzls.xyz</a>
|
||||
(I'am always available there, it's not dead).
|
||||
<a href="https://git.zzls.xyz/Fijxu/etc-configs">here</a>, they are on
|
||||
different branches so explore whatever you want, if you find something
|
||||
that is not very privacy respecting into the Privacy Oriented services
|
||||
configs, contact me via matrix:
|
||||
<a href="https://matrix.to/#/@fijxu:zzls.xyz">@fijxu:zzls.xyz</a>
|
||||
(I'am always available there, it's not dead).
|
||||
</p>
|
||||
<h4>How I can TRUST YOU?</h4>
|
||||
<!-- TOO EXTREMIST LMAO -->
|
||||
<!-- <p>Do you trust <b style="color: #4285f4">G</b><b style="color: #ea4335">O</b><b style="color: #fbbc05">O</b><b
|
||||
style="color: #4285f4">G</b><b style="color: #35ae56">L</b><b style="color: #ea4335">E</b> with your data right?
|
||||
style="color: #4285f4">G</b><b style="color: #35ae56">L</b><b style="color: #ea4335">E</b> with your data right?
|
||||
So there is not
|
||||
problem in trusting a random person of internet that fights for online
|
||||
privacy rather than a big corporation selling your personal data for
|
||||
advertisement purposes right?
|
||||
</p> -->
|
||||
<p>
|
||||
</p> -->
|
||||
<p>
|
||||
I am a single person on the internet that focus on online privacy. I don't own any business, company or anything like that and my objetive is not about making money.
|
||||
</p>
|
||||
<p>I mainly thought of hosting the services only for myself and not leaving them public, but doing that doesn't make any sense at all since all the traffic that comes in and out from X service (Like Invidious) will come from a single person, me. Doing this is like just using a VPN.</p>
|
||||
<p>So I said to myself "I should make this services public for anyone interested on privacy like me" and so I did it.</p>
|
||||
<blockquote cite="https://cock.li/" style="font-family: monospace; font-style: italic;">
|
||||
Administering a mail host is sort of like being a nurse; there's a
|
||||
brief
|
||||
period at the start when the thought of seeing people's privates might
|
||||
be vaguely titillating in a theoretical sense, but that sort of thing
|
||||
doesn't last long when it's up against the daily reality of shit,
|
||||
piss,
|
||||
blood, and vomit. Now that I think about it, administering a mail host
|
||||
is exactly like being a nurse, only people die slightly less often.
|
||||
</blockquote>
|
||||
<!-- BELLOW COMMENTED TEXT IS JUST BULLSHIT (but true) -->
|
||||
<!-- <h4>Why are your privacy oriented services running on Chile and not US?</h4>
|
||||
</p>
|
||||
<p>I mainly thought of hosting the services only for myself and not leaving them public, but doing that doesn't make any sense at all since all the traffic that comes in and out from X service (Like Invidious) will come from a single person, me. Doing this is like just using a VPN.</p>
|
||||
<p>So I said to myself "I should make this services public for anyone interested on privacy like me" and so I did it.</p>
|
||||
<blockquote cite="https://cock.li/" style="font-family: monospace; font-style: italic;">
|
||||
Administering a mail host is sort of like being a nurse; there's a
|
||||
brief
|
||||
period at the start when the thought of seeing people's privates might
|
||||
be vaguely titillating in a theoretical sense, but that sort of thing
|
||||
doesn't last long when it's up against the daily reality of shit,
|
||||
piss,
|
||||
blood, and vomit. Now that I think about it, administering a mail host
|
||||
is exactly like being a nurse, only people die slightly less often.
|
||||
</blockquote>
|
||||
<!-- BELLOW COMMENTED TEXT IS JUST BULLSHIT (but true) -->
|
||||
<!-- <h4>Why are your privacy oriented services running on Chile and not US?</h4>
|
||||
<p>Because of the <span class="THEYGLOW">3 letter agencies</span> (yes,
|
||||
they <span class="THEYGLOW">glow</span> a lot) that exists on the US,
|
||||
also i don't want everything running on the same country where i host
|
||||
|
@ -246,29 +253,29 @@ s
|
|||
by a long time, that services will not be available, but that happens
|
||||
rarely.
|
||||
</p> -->
|
||||
<h4>Do you have any donations link?</h4>
|
||||
<p><a href="../donate">Yes</a>.</p>
|
||||
<h2 style="text-align: center;">buh</h2>
|
||||
<p style="text-align: center;">Suggestions and thank you messages go here.</p>
|
||||
<iframe src="https://lol.zzls.xyz" title="xD" style="width: 100%; height: 1080px; border: none;"></iframe>
|
||||
<h4>Do you have any donations link?</h4>
|
||||
<p><a href="../donate">Yes</a>.</p>
|
||||
<h2 style="text-align: center;">buh</h2>
|
||||
<p style="text-align: center;">Suggestions and thank you messages go here.</p>
|
||||
<iframe src="https://lol.zzls.xyz" title="xD" style="width: 100%; height: 1080px; border: none;"></iframe>
|
||||
</div>
|
||||
<footer>
|
||||
<div class="banners">
|
||||
<a href="https://spyware.neocities.org/articles/discord_es.html"><img src="../assets/discord.gif"
|
||||
alt="Discord?, No Thanks"></a>
|
||||
alt="Discord?, No Thanks"></a>
|
||||
<a href="https://commonterms.org/"><img src="../assets/notread.gif" alt="Do you read TOS right?"></a>
|
||||
<a href="https://absurdismworld.cc/0x40/"><img src="../assets/rave.gif" alt="RAVIN'"></a>
|
||||
<img src="../assets/seedyourtorrents.gif" alt="Sharing is caring <3">
|
||||
<img src="../assets/nftbutton.gif" alt="NFTs? wtf">
|
||||
<a><img src="../assets/08831.gif" alt="OOOOO"></a>
|
||||
<a href="https://inv.zzls.xyz/watch?v=1pMDdKV8wCw"><img src="../assets/right2repair.gif"
|
||||
alt="I support Right To Repair (Not like Apple)"></a>
|
||||
alt="I support Right To Repair (Not like Apple)"></a>
|
||||
<!-- <p style="margin: auto;"> -->
|
||||
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License"
|
||||
style="border-width: 0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"></a>
|
||||
style="border-width: 0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"></a>
|
||||
<a href="https://jigsaw.w3.org/css-validator/check/referer">
|
||||
<img style="border:0;width:88px;height:31px" src="https://jigsaw.w3.org/css-validator/images/vcss"
|
||||
alt="Valid CSS!">
|
||||
alt="Valid CSS!">
|
||||
</a>
|
||||
<!-- </p> -->
|
||||
</div>
|
||||
|
|
363
index.html
363
index.html
|
@ -6,19 +6,32 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Wuuuuu~</title>
|
||||
<meta name="description"
|
||||
content="Alojando servicios de privacidad online para el internet, y mas mierdas que me interesan">
|
||||
content="Alojando servicios de privacidad online para el internet, y mas mierdas que me interesan">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="keywords" content="Privacy Services, Invidious, 4get, Matrix Federation">
|
||||
<link rel="stylesheet" href="/style.css" type="text/css">
|
||||
<link rel="icon" type="image/x-icon" href="./favicon.ico">
|
||||
<a rel="me" href="https://noc.social/@fijxu"></a>
|
||||
<!-- https://www.schillmania.com/projects/snowstorm/ -->
|
||||
<script src="./assets/js/snowstorm-min.js"></script>
|
||||
<script>
|
||||
snowStorm.snowColor = '#ffffff'; // blue-ish snow!?
|
||||
snowStorm.flakesMaxActive = 96; // show more snow on screen at once
|
||||
snowStorm.useTwinkleEffect = false;
|
||||
snowStorm.animationInterval = 33;
|
||||
snowStorm.freezeOnBlur = false;
|
||||
snowStorm.followMouse = false;
|
||||
snowStorm.usePositionFixed = false;
|
||||
snowStorm.vMaxX = 3;
|
||||
snowStorm.vMaxY = 3;
|
||||
</script>
|
||||
<style>
|
||||
.lol {
|
||||
width: 300vh;
|
||||
height: auto;
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
.lol {
|
||||
width: 300vh;
|
||||
height: auto;
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
@ -38,36 +51,32 @@
|
|||
</div>
|
||||
<div class="content">
|
||||
<h1 class="tilttext">>.></h1>
|
||||
<p class="lastupdate">Ultima Actualización: 2023-12-16</p>
|
||||
<p class="lastupdate">Registro de Cambios 12-07: Ahora ofrezco mas opciones para contactarme, no solo matrix. Las
|
||||
especificaciones de los servidores han sido actualizadas y no se que otra cosa más. Ya me estoy cansando de tener
|
||||
que modificar 2 paginas al mismo tiempo (La española y la traduccion en Ingles) asi que creo que portare este
|
||||
sitio a Hugo algún día... Hacer esto ya no es divertido.</p>
|
||||
<p class="lastupdate">12-16 Changelog: La Política de Privacidad fue actualizada!!! Y un <a class="rainbowtext">Bouncer IRC</a> ahora esta disponible</p>
|
||||
<p class="lastupdate">Ultima Actualización: 2023-12-23</p>
|
||||
<p class="lastupdate">12.23 : Ahora hay una pagina para ver el estado de todos los servicios aquí: <a href="https://status.zzls.xyz/">https://status.zzls.xyz</a></p>
|
||||
|
||||
<p>
|
||||
Holaalalalalalal, me dedico a alojar servicios
|
||||
enfocados a
|
||||
la
|
||||
privacidad y otros tipos de servicios varios principalmente para
|
||||
Latinoamérica y el resto del internet. A muy poca gente de Latinoamérica
|
||||
le importa su privacidad (por mera ignorancia y
|
||||
conveniencia) asi que aquí estoy yo, haciéndolo todo más
|
||||
fácil para esa gente que quiere empezar a cuidar de
|
||||
sus datos personales ante las grandes empresas que se benefician de ellos. Obviamente, si eres de otro país, como
|
||||
Estados Unidos u de alguna que otra región, siéntete libre
|
||||
de utilizarlos, mientras funcionen para ti, todo bien :D.
|
||||
Holaalalalalalal, me dedico a alojar servicios
|
||||
enfocados a
|
||||
la
|
||||
privacidad y otros tipos de servicios varios principalmente para
|
||||
Latinoamérica y el resto del internet. A muy poca gente de Latinoamérica
|
||||
le importa su privacidad (por mera ignorancia y
|
||||
conveniencia) asi que aquí estoy yo, haciéndolo todo más
|
||||
fácil para esa gente que quiere empezar a cuidar de
|
||||
sus datos personales ante las grandes empresas que se benefician de ellos. Obviamente, si eres de otro país, como
|
||||
Estados Unidos u de alguna que otra región, siéntete libre
|
||||
de utilizarlos, mientras funcionen para ti, todo bien :D.
|
||||
</p>
|
||||
<h2>Lista de servicios</h2>
|
||||
<p style="font-size: small; color: burlywood;">⚠️ <i>Por favor,
|
||||
antes de que pienses usar mis servicios de forma
|
||||
diaria, toma en cuenta que los que están marcados con
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
pueden
|
||||
caerse en cualquier momento porque
|
||||
están alojados con mi propio internet, no arriendo
|
||||
servidores dedicados para estos servicios.
|
||||
(Porque no soy capaz de pagarlo xD)</i>
|
||||
antes de que pienses usar mis servicios de forma
|
||||
diaria, toma en cuenta que los que están marcados con
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
pueden
|
||||
caerse en cualquier momento porque
|
||||
están alojados con mi propio internet, no arriendo
|
||||
servidores dedicados para estos servicios.
|
||||
(Porque no soy capaz de pagarlo xD)</i>
|
||||
</p>
|
||||
<h4>Servicios enfocados a la Privacidad:</h4>
|
||||
<ul>
|
||||
|
@ -76,249 +85,249 @@
|
|||
🇨🇱 (<a href="http://4get.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion/">Tor</a>)
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p class="rainbowtext">"Un
|
||||
metabuscador que
|
||||
obtiene resultados de otros motores y elimina todo
|
||||
el rastreo y la mierda de Microsoft/globohomo que
|
||||
añaden." <a href="https://git.lolcat.ca/lolcat/4get">Codigo fuente</a>
|
||||
metabuscador que
|
||||
obtiene resultados de otros motores y elimina todo
|
||||
el rastreo y la mierda de Microsoft/globohomo que
|
||||
añaden." <a href="https://git.lolcat.ca/lolcat/4get">Codigo fuente</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a class="THEYGLOW" style="color: greenyellow;" href="https://4getus.zzls.xyz">4get</a> @
|
||||
🇺🇸 (<a href="http://4getus.zzls2vhse6jeahgdz5snle37dnngmbeh4jgug5xvsdpmlchaw3ieonid.onion/">Tor</a>)
|
||||
<p>
|
||||
Lo mismo que el anterior pero en estados unidos.
|
||||
Podría ser más estable porque está en un VPS, pero
|
||||
tiene más probabilidad de conseguir "rate limit"
|
||||
también.
|
||||
Lo mismo que el anterior pero en estados unidos.
|
||||
Podría ser más estable porque está en un VPS, pero
|
||||
tiene más probabilidad de conseguir "rate limit"
|
||||
también.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a style="color: greenyellow;"></a><a href="https://matrix.zzls.xyz">Matrix</a> @ 🇨🇱
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>Servidor
|
||||
de Matrix que usa <a href="https://github.com/matrix-org/synapse">Synapse</a>,
|
||||
con un NVME, PostgreSQL y un buen CPU. Es compatible con
|
||||
Spaces, Threading y otras funciones
|
||||
experimentales. <b>Si quieres una cuenta, háblame por <a href="./contact/">aquí</a></b>
|
||||
de Matrix que usa <a href="https://github.com/matrix-org/synapse">Synapse</a>,
|
||||
con un NVME, PostgreSQL y un buen CPU. Es compatible con
|
||||
Spaces, Threading y otras funciones
|
||||
experimentales. <b>Si quieres una cuenta, háblame por <a href="./contact/">aquí</a></b>
|
||||
<p>Tambien integra mautrix-whatsapp, un bot con el cual puedes enviar y recibir mensajes de whatsapp en Matrix
|
||||
</p>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://search.zzls.xyz">SearxNG</a> @ 🇨🇱 (<a
|
||||
href="http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion/">Tor</a>)
|
||||
<p>
|
||||
Un metabuscador
|
||||
que agrega resultados de más de 70
|
||||
servicios de búsqueda.
|
||||
<a href="https://github.com/searxng/searxng">Código
|
||||
Fuente</a>,
|
||||
<a href="https://searx.space">Otras Instancias</a>
|
||||
</p>
|
||||
href="http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion/">Tor</a>)
|
||||
<p>
|
||||
Un metabuscador
|
||||
que agrega resultados de más de 70
|
||||
servicios de búsqueda.
|
||||
<a href="https://github.com/searxng/searxng">Código
|
||||
Fuente</a>,
|
||||
<a href="https://searx.space">Otras Instancias</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://inv.zzls.xyz">Invidious</a> @ 🇨🇱 (<a
|
||||
href="http://inv.zzls.i2p/?i2paddresshelper=6s3qhqcyth644rlssv2sajluvrx632uaucsmnwaowglg6hocxjfa.b32.i2p">I2P</a>)
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
Un
|
||||
front-end alternativo a YouTube.
|
||||
Siéntete libre de usar las descargas y registrarte.
|
||||
</p>
|
||||
href="http://inv.zzls.i2p/?i2paddresshelper=6s3qhqcyth644rlssv2sajluvrx632uaucsmnwaowglg6hocxjfa.b32.i2p">I2P</a>)
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
Un
|
||||
front-end alternativo a YouTube.
|
||||
Siéntete libre de usar las descargas y registrarte.
|
||||
</p>
|
||||
</li>
|
||||
<!-- <li><s>
|
||||
<a href="https://librex.zzls.xyz">LibreX</a>
|
||||
@ 🇨🇱 (<a href="http://librex.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion/">Tor</a>)
|
||||
(<a
|
||||
href="http://librex.zzls.i2p/?i2paddresshelper=huurwog32tny663wkglrhozfoyqyqmsuxjbd7dtudccx44awjda.b32.i2p/">I2P</a>)
|
||||
<a class="selfhosted">(Self-Hosted)</a> ⎯ "Metabuscador
|
||||
libre de frameworks y javascript que
|
||||
respeta tu privacidad". Usa google y
|
||||
otros motores de búsqueda
|
||||
para obtener los resultados, asi que ninguna de tu
|
||||
información es revelada a hacia los motores de
|
||||
búsqueda, se podría decir que actúa como un proxy. <a href="https://github.com/hnhx/librex">Codigo
|
||||
Fuente</a></s> INSTANCIA MUERTA, ME ABURRI DE ALOJAR LIBREY XD.
|
||||
</li> -->
|
||||
<li>
|
||||
<a href="https://ri.zzls.xyz">Rimgo</a> @ 🇨🇱 (<a
|
||||
href="http://rimgo.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion/">Tor</a>)
|
||||
<a href="https://librex.zzls.xyz">LibreX</a>
|
||||
@ 🇨🇱 (<a href="http://librex.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion/">Tor</a>)
|
||||
(<a
|
||||
href="http://rimgo.zzls.i2p/?i2paddresshelper=p57356k2xwhxrg2lxrjajcftkrptv4zejeeblzfgkcvpzuetkz2a.b32.i2p">I2P</a>)
|
||||
<p>
|
||||
Un proxy de Imgur que es capaz de cargar
|
||||
las imágenes mucho mas rápido que la pagina de Imgur
|
||||
ocultando tu IP.
|
||||
<a href="https://codeberg.org/video-prize-ranch/rimgo">Código
|
||||
Fuente</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://pbin.zzls.xyz">Privatebin</a> @ 🇨🇱
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
href="http://librex.zzls.i2p/?i2paddresshelper=huurwog32tny663wkglrhozfoyqyqmsuxjbd7dtudccx44awjda.b32.i2p/">I2P</a>)
|
||||
<a class="selfhosted">(Self-Hosted)</a> ⎯ "Metabuscador
|
||||
libre de frameworks y javascript que
|
||||
respeta tu privacidad". Usa google y
|
||||
otros motores de búsqueda
|
||||
para obtener los resultados, asi que ninguna de tu
|
||||
información es revelada a hacia los motores de
|
||||
búsqueda, se podría decir que actúa como un proxy. <a href="https://github.com/hnhx/librex">Codigo
|
||||
Fuente</a></s> INSTANCIA MUERTA, ME ABURRI DE ALOJAR LIBREY XD.
|
||||
</li> -->
|
||||
<li>
|
||||
<a href="https://ri.zzls.xyz">Rimgo</a> @ 🇨🇱 (<a
|
||||
href="http://rimgo.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion/">Tor</a>)
|
||||
(<a
|
||||
href="http://rimgo.zzls.i2p/?i2paddresshelper=p57356k2xwhxrg2lxrjajcftkrptv4zejeeblzfgkcvpzuetkz2a.b32.i2p">I2P</a>)
|
||||
<p>
|
||||
Un proxy de Imgur que es capaz de cargar
|
||||
las imágenes mucho mas rápido que la pagina de Imgur
|
||||
ocultando tu IP.
|
||||
<a href="https://codeberg.org/video-prize-ranch/rimgo">Código
|
||||
Fuente</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://pbin.zzls.xyz">Privatebin</a> @ 🇨🇱
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
Un
|
||||
pastebin donde el servidor tiene 0 conocimiento sobre
|
||||
los pastes, todos los
|
||||
datos están encriptados en el lado del cliente usando
|
||||
AES-256.
|
||||
</p>
|
||||
</li>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h4>Servicios Varios:</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<a style="color: greenyellow;">IRC Bouncer</a> @ 🇺🇸
|
||||
<p>
|
||||
Un bouncer IRC que sirve para mantenerte conectado en redes IRC sin perder los mensajes.
|
||||
Si quieres una cuenta e
|
||||
instrucciones de uso, háblame por <a href="./contact/index.html">aquí</a>
|
||||
Un bouncer IRC que sirve para mantenerte conectado en redes IRC sin perder los mensajes.
|
||||
Si quieres una cuenta e
|
||||
instrucciones de uso, háblame por <a href="./contact/index.html">aquí</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://ayaya.beauty">ayaya.beauty</a> @ 🇨🇱
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
Un subidor multimedia temporal
|
||||
que usa <a href="https://github.com/nokonoko/uguu">Uguu</a>,
|
||||
permite
|
||||
subir archivos de hasta 512MB como máximo con una
|
||||
duración de 7 Dias.
|
||||
Un subidor multimedia temporal
|
||||
que usa <a href="https://github.com/nokonoko/uguu">Uguu</a>,
|
||||
permite
|
||||
subir archivos de hasta 512MB como máximo con una
|
||||
duración de 7 Dias.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a style="color: greenyellow;"></a><a href="https://git.zzls.xyz">Forgejo</a> @ 🇨🇱
|
||||
<a class="selfhosted">(Self-Hosted)</a>
|
||||
<p>
|
||||
Un
|
||||
servidor git donde puedes alojar
|
||||
tus proyectos personales o hacer mirrors de otros
|
||||
repositorios git con la intención de archivarlos.
|
||||
<i>Ya era publico hace un tiempo, pero ahora decido
|
||||
destacarlo en la pagina web</i>
|
||||
Un
|
||||
servidor git donde puedes alojar
|
||||
tus proyectos personales o hacer mirrors de otros
|
||||
repositorios git con la intención de archivarlos.
|
||||
<i>Ya era publico hace un tiempo, pero ahora decido
|
||||
destacarlo en la pagina web</i>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://logs.zzls.xyz">Logs de Twitch</a> @ 🇺🇸
|
||||
<p>
|
||||
Un montón de logs de varios streamers de
|
||||
habla hispana, + de 400GiB de logs (en conjunto de todos
|
||||
los canales dentro del listado) existen
|
||||
actualmente.
|
||||
Un montón de logs de varios streamers de
|
||||
habla hispana, + de 400GiB de logs (en conjunto de todos
|
||||
los canales dentro del listado) existen
|
||||
actualmente.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://logs.spanix.team">Logs de Twitch
|
||||
(Spanixbot)</a> @ 🇺🇸
|
||||
<p>
|
||||
Logs que son usados por el
|
||||
bot
|
||||
<a href="https://spanix.team">Spanixbot</a>, hecho por
|
||||
<a href="https://twitch.tv/ZonianMidian">ZonianMidian</a>.
|
||||
Logs que son usados por el
|
||||
bot
|
||||
<a href="https://spanix.team">Spanixbot</a>, hecho por
|
||||
<a href="https://twitch.tv/ZonianMidian">ZonianMidian</a>.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://count.ayaya.beauty">Moe counter</a> @ 🇨🇱
|
||||
<p>
|
||||
Un contador de visitas como "Gelbooru" que
|
||||
puedes integrar a tu pagina web a archivos markdown para
|
||||
hacer un recuento de la cantidad de visitas.
|
||||
Un contador de visitas como "Gelbooru" que
|
||||
puedes integrar a tu pagina web a archivos markdown para
|
||||
hacer un recuento de la cantidad de visitas.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Servers!!!</h2>
|
||||
<p>Puedes encontrar información acerca de los servidores que se
|
||||
usan para alojar los servicios que proveo aquí
|
||||
-> <a href="../srvspecs">si, aquí</a> (SOLO EN INGLES)</p>
|
||||
usan para alojar los servicios que proveo aquí
|
||||
-> <a href="../srvspecs">si, aquí</a> (SOLO EN INGLES)</p>
|
||||
<h2>Preguntas y Respuestas</h2>
|
||||
<h4>Tus servicios están corriendo detrás de <a style="color:coral">Cloudflare?</a></h4>
|
||||
<p><b>No</b></p>
|
||||
<p>Aqui esta la razon:</p>
|
||||
<p>No se debería usar Cloudflare para servicios
|
||||
relacionados con la privacidad, ya que
|
||||
invalida todo el concepto de privacidad y libertad en
|
||||
online. Cloudflare puede des-encriptar todo el trafico
|
||||
entre el usuario y el servidor y eso no es privado ni
|
||||
seguro. Al alojar varios servicios enfocados en la privacidad hay gente que prefiere utilizar
|
||||
navegadores
|
||||
con JavaScript desactivado o extensiones para solo permitir JavaScript "libre" y Cloudflare siempre usa
|
||||
e
|
||||
injecta codigo JavaScript en las paginas para analíticas y otras mierdas . Ademas que nadie quiere los
|
||||
captchas de mierda
|
||||
y pantallas de carga de más de 5 segundos solo por
|
||||
cloudflare.</p>
|
||||
relacionados con la privacidad, ya que
|
||||
invalida todo el concepto de privacidad y libertad en
|
||||
online. Cloudflare puede des-encriptar todo el trafico
|
||||
entre el usuario y el servidor y eso no es privado ni
|
||||
seguro. Al alojar varios servicios enfocados en la privacidad hay gente que prefiere utilizar
|
||||
navegadores
|
||||
con JavaScript desactivado o extensiones para solo permitir JavaScript "libre" y Cloudflare siempre usa
|
||||
e
|
||||
injecta codigo JavaScript en las paginas para analíticas y otras mierdas . Ademas que nadie quiere los
|
||||
captchas de mierda
|
||||
y pantallas de carga de más de 5 segundos solo por
|
||||
cloudflare.</p>
|
||||
<p> Creo que en toda mi vida he gastado al rededor de unas 2
|
||||
horas gracias a los captchas de cloudflare que a
|
||||
veces son infinitos y demasiado molestos. Se supone que
|
||||
tienen que filtrar bots, no personas.</p>
|
||||
horas gracias a los captchas de cloudflare que a
|
||||
veces son infinitos y demasiado molestos. Se supone que
|
||||
tienen que filtrar bots, no personas.</p>
|
||||
<h4>Como puedo asegurarme de que no estas guardando datos
|
||||
personales?</h4>
|
||||
<p>
|
||||
La configuraciones de NGINX y otras configuraciones de
|
||||
los servidores están
|
||||
<a href="https://git.zzls.xyz/Fijxu/etc-configs">aca</a>,
|
||||
están en diferentes "ramas" asi que explora lo que
|
||||
quieras, si encuentras que algo no es de tu gusto dentro
|
||||
de las configuraciones, háblame por <a href="./contact/">aquí</a>
|
||||
La configuraciones de NGINX y otras configuraciones de
|
||||
los servidores están
|
||||
<a href="https://git.zzls.xyz/Fijxu/etc-configs">aca</a>,
|
||||
están en diferentes "ramas" asi que explora lo que
|
||||
quieras, si encuentras que algo no es de tu gusto dentro
|
||||
de las configuraciones, háblame por <a href="./contact/">aquí</a>
|
||||
</p>
|
||||
<!-- <b> - Como puedo <span style="color: red">CONFIAR EN TI</span>?</b>
|
||||
<p>
|
||||
> Confías en <b style="color: #4285f4">G</b><b style="color: #ea4335">O</b><b style="color: #fbbc05">O</b><b
|
||||
style="color: #4285f4">G</b><b style="color: #35ae56">L</b><b style="color: #ea4335">E</b>,
|
||||
<b>INSTAGRAM</b> y otros servicios con tus datos personales, cierto? Asi que no debería haber problema en
|
||||
confiar en una persona independiente que lucha por la privacidad online a preferir a una gran empresa que se
|
||||
lucra de la venta de datos personales cierto?
|
||||
</p>
|
||||
<blockquote cite="https://cock.li/" style="margin-bottom: 1px;">
|
||||
Administrar un host de correo es algo así como ser enfermera.
|
||||
Hay un breve período al principio cuando la idea de ver las partes privadas de la gente podría
|
||||
ser vagamente excitante en un sentido teórico, pero ese tipo de cosas
|
||||
no dura mucho cuando se enfrenta a la realidad diaria de mierda, orina,
|
||||
sangre y vómito. Ahora que lo pienso, administrar un host de correo
|
||||
es exactamente como ser enfermera, sólo que la gente muere un poco menos a menudo.
|
||||
</blockquote>
|
||||
<p style="text-align: center;font-size:0.5em;">
|
||||
Traducido del Ingles al Español
|
||||
</p> -->
|
||||
|
||||
<!-- <b>
|
||||
- Porque los servicios enfocados a la privacidad están en Chile y no Estados Unidos?</b>
|
||||
<p>
|
||||
> Confías en <b style="color: #4285f4">G</b><b style="color: #ea4335">O</b><b style="color: #fbbc05">O</b><b
|
||||
style="color: #4285f4">G</b><b style="color: #35ae56">L</b><b style="color: #ea4335">E</b>,
|
||||
<b>INSTAGRAM</b> y otros servicios con tus datos personales, cierto? Asi que no debería haber problema en
|
||||
confiar en una persona independiente que lucha por la privacidad online a preferir a una gran empresa que se
|
||||
lucra de la venta de datos personales cierto?
|
||||
> Debido a las "<span class="THEYGLOW">agencias de 3 letras</span>" (Sí,
|
||||
ellos <span class="THEYGLOW">brillan</span> demasiado) que existen en estados unidos, ademas, tampoco quiero
|
||||
alojar todo en el mismo país donde ya alojo otros servicios. Sobre los servicios auto alojados, estos son
|
||||
mucho mas seguros y confiables ya que están en mi casa, asi que tengo control total sobre ellos, y si sale
|
||||
algo mal, no necesito contactar a algún tipo de soporte. Lo único malo es que si se me corta el internet por
|
||||
un largo periodo de tiempo, esos servicios no estarán disponibles hasta que vuelva el internet, pero eso
|
||||
para muy pocas veces.
|
||||
</p>
|
||||
<blockquote cite="https://cock.li/" style="margin-bottom: 1px;">
|
||||
Administrar un host de correo es algo así como ser enfermera.
|
||||
Hay un breve período al principio cuando la idea de ver las partes privadas de la gente podría
|
||||
ser vagamente excitante en un sentido teórico, pero ese tipo de cosas
|
||||
no dura mucho cuando se enfrenta a la realidad diaria de mierda, orina,
|
||||
sangre y vómito. Ahora que lo pienso, administrar un host de correo
|
||||
es exactamente como ser enfermera, sólo que la gente muere un poco menos a menudo.
|
||||
</blockquote>
|
||||
<p style="text-align: center;font-size:0.5em;">
|
||||
Traducido del Ingles al Español
|
||||
</p> -->
|
||||
|
||||
<!-- <b>
|
||||
- Porque los servicios enfocados a la privacidad están en Chile y no Estados Unidos?</b>
|
||||
<p>
|
||||
> Debido a las "<span class="THEYGLOW">agencias de 3 letras</span>" (Sí,
|
||||
ellos <span class="THEYGLOW">brillan</span> demasiado) que existen en estados unidos, ademas, tampoco quiero
|
||||
alojar todo en el mismo país donde ya alojo otros servicios. Sobre los servicios auto alojados, estos son
|
||||
mucho mas seguros y confiables ya que están en mi casa, asi que tengo control total sobre ellos, y si sale
|
||||
algo mal, no necesito contactar a algún tipo de soporte. Lo único malo es que si se me corta el internet por
|
||||
un largo periodo de tiempo, esos servicios no estarán disponibles hasta que vuelva el internet, pero eso
|
||||
para muy pocas veces.
|
||||
</p>
|
||||
|
||||
SI LEES ESTO, ESTO ESTA COMENTADO PORQUE SUENA MUY AUTISTA PARA LA GENTE DE LATINO AMERICA Y ESTA MAS ENFOCADO A LOS USUARIOS DE HABLA INGLESA XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD-->
|
||||
<h4>Tienes un link para poder donar?</h4>
|
||||
<p><a href="./donate/">Si</a>.</p>
|
||||
<h2 style="text-align: center;">buh</h2>
|
||||
<p style="text-align: center;">Sugerencias y mensajes de agradecimiento van aca.</p>
|
||||
<iframe src="https://lol.zzls.xyz" title="xD" style="width: 100%; height: 1080px; border: none;"></iframe>
|
||||
SI LEES ESTO, ESTO ESTA COMENTADO PORQUE SUENA MUY AUTISTA PARA LA GENTE DE LATINO AMERICA Y ESTA MAS ENFOCADO A LOS USUARIOS DE HABLA INGLESA XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD-->
|
||||
<h4>Tienes un link para poder donar?</h4>
|
||||
<p><a href="./donate/">Si</a>.</p>
|
||||
<h2 style="text-align: center;">buh</h2>
|
||||
<p style="text-align: center;">Sugerencias y mensajes de agradecimiento van aca.</p>
|
||||
<iframe src="https://lol.zzls.xyz" title="xD" style="width: 100%; height: 1080px; border: none;"></iframe>
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div class="banners">
|
||||
<a href="https://spyware.neocities.org/articles/discord_es.html"><img src="./assets/discord.gif"
|
||||
alt="Discord?, No Thanks"></a>
|
||||
alt="Discord?, No Thanks"></a>
|
||||
<a href="https://commonterms.org/"><img src="./assets/notread.gif" alt="Do you read TOS right?"></a>
|
||||
<a href="https://absurdismworld.cc/0x40/"><img src="./assets/rave.gif" alt="RAVIN'"></a>
|
||||
<img src="./assets/seedyourtorrents.gif" alt="Sharing is caring <3">
|
||||
<img src="./assets/nftbutton.gif" alt="NFTs? wtf">
|
||||
<a><img src="./assets/08831.gif" alt="OOOOO"></a>
|
||||
<a href="https://inv.zzls.xyz/watch?v=1pMDdKV8wCw"><img src="./assets/right2repair.gif"
|
||||
alt="I support Right To Repair (Not like Apple)"></a>
|
||||
alt="I support Right To Repair (Not like Apple)"></a>
|
||||
<!-- <p style="margin: auto;"> -->
|
||||
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License"
|
||||
style="border-width: 0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"></a>
|
||||
style="border-width: 0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"></a>
|
||||
<a href="https://jigsaw.w3.org/css-validator/check/referer">
|
||||
<img style="border:0;width:88px;height:31px" src="https://jigsaw.w3.org/css-validator/images/vcss"
|
||||
alt="Valid CSS!">
|
||||
alt="Valid CSS!">
|
||||
</a>
|
||||
<!-- </p> -->
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue