HNHacker News
TopNewBestAskShowJobs

plugnburn

-13 karma · joined March 4, 2016

Web developer, Linuxoid and Ukrainian nationalist.

You can downvote me as much as you can but you will still not be able to escape the truth.

The most interesting projects are the ones that can fit into a gist, so check them out: http://gist.github.com/plugnburn/

submissionscomments
plugnburn··on Show HN: Open-source StackOverflow-like service
"Server-side HTML generation"... literally each word in this phrase shows how bad things are now in 99% of websites and - what's even worse - we still have to somehow follow these things for some sucky search engine bots that still don't run JS (yandex and other crap).

Let's begin from the end: generation. With a proper presentation layer, we wouldn't have to generate anything. We have data (from the server and/or local in-browser storage) and presentation modules, and we just feed data right into these modules on demand.

Next: HTML. In an ideal situation, we wouldn't touch any raw HTML string at all. Presentation modules, in effect, are responsible for DOM rendering of the page parts they are in charge of. And proper partial rendering usually doesn't involve innerHTML and other raw hacks (well, maybe for quickly clearing element contents, it will do). No escaping hell and other "fun" things.

Next: server-side. Screw all the dogmatic rules that the presentation layer must run on a server. The server should be responsible for handling all non-view logic providing the API for the client to communicate with (from simple AJAX/REST to something more complex like WebSockets) and serving our scripts and assets as fast as possible with proper caching headers, that's all.

This model, if applied wisely, will just make everything easier. I'm in the process of writing an article on it. But as I see Angular in this stack, this particular implementation doesn't show any sign of wisdom. :) Kill the overkill and keep it simple, stupid.

plugnburn··on Show HN: Open-source StackOverflow-like service
Why would anyone disable it these days?
plugnburn··on Show HN: Open-source StackOverflow-like service
Are you on GPRS? Cause the page loads fine even on 7Mbit 3G (HSPA).

The problem is it's still quite raw and full of demo-stuff. Not in the way it loads.

Although... yes, isn't Angular a bit overkill here?

plugnburn··on Show HN: A small low-level C library for Quaternions (+ Usage example/sample)
Wow. Just wow. Not that I would need this IRL but it still deserves a thumbs-up in a way that this numeric type is not forgotten.

Unfortunately, we lack even complex number support in most languages standard math APIs, let alone quaternions. But when it's time to port this type, I'll definitely look here.

plugnburn··on Show HN: XT.js – a DOM construction/templating nano-library, 323 bytes minified
Nice one too. The concept of mine is entirely different though: to never deal with raw HTML strings, just logical blocks such as arrays and objects describing elements and their attributes and contents. With XT, I never need to escape content or attribute values manually because they are passed through appropriate DOM API, not inserted in raw state.

That was one of the goals but I'm writing a complete article on XT.js and XS.js right now, so I'll cover these aspects in it. But thanks for sharing your efforts! Starred on GitHub.

plugnburn··on Show HN: numLaunchpad – a WebAudio-based drum pad
My laptop has no separate number pad but its keyboard has a mode in which some keys are remapped as numpad keys.

Sorry, it's a live-only demo for Samples.js, recording (and export) would require more in-depth Web Audio API usage, timing etc. Probably someday I'll extend this idea and release another, more feature-packed tool. Not in this one.

plugnburn··on Show HN: Unowordo(2) – What Would You Add or Change?
Ability for a user to link Twitter account to automatically tweet the stories they vote for.
plugnburn··on Obama at SXSW: ‘Absolutist view’ on digital privacy cannot prevail
There still are some encryption schemes that can be run with nothing more than a pencil and paper. See SMSPP for example: https://gist.github.com/plugnburn/6b50ceee3a89893a9e48

You can also use straddling checkerboards if you can do some very simple math.

plugnburn··on Obama at SXSW: ‘Absolutist view’ on digital privacy cannot prevail
Why doesn't a cheapest Android smartphone with a 3G modem (say Alcatel 4009D) fit?

Because it's not 4G? Well, here's the real tradeoff: security, comfort, cheapness. Pick two.

plugnburn··on Obama at SXSW: ‘Absolutist view’ on digital privacy cannot prevail
Here in Ukraine, we have the same problem. If you publicly don't agree with the government's policy of tightening the nuts, you may face a prison term under any fabricated accusations, including "work for russian spies". Because "extremism" word isn't fashionable here since 2013-2014, all true Ukrainian patriots now get called "kremlin agents" by our corrupt government.
plugnburn··on Obama at SXSW: ‘Absolutist view’ on digital privacy cannot prevail
Absolutist view on Obama cannot prevail. Absolutist view on WWII cannot prevail. Absolutist view on current world order cannot prevail.

Continue?

Though absolutist view on our privacy, digital included, MUST prevail.

plugnburn··on Show HN: numLaunchpad – a WebAudio-based drum pad
Some explanations:

- works everywhere where standard Web Audio API is supported;

- based on Samples.js (https://gist.github.com/plugnburn/75ce136bea973d8767e0) and is a reference demo for it;

- supports loading custom 16-bit 44KHz WAV samples (or whatever format is supported in your particular browser).

Controls: numpad (1 to 9 digits) on PC, taps on touch devices.

Have fun!

plugnburn··on Show HN: Upload any file
So that's my feedback: at least remove the ability to upload PHP files onto Updrop. And then disable PHP for upload folder altogether.
plugnburn··on Show HN: Upload any file
So Updrop wasn't made by you and you hired a dev to create it?
plugnburn··on Show HN: Upload any file
I'm not interested in any paid work. I'm trying to say that your entire server is vulnerable to hacker attacks right now. It seems strange that you posted a vulnerable website on Hacker (!) News...

Or do I need to post my message on the index page of your site for you to get how critical the vulnerability is? If so, which one? Updrop.it, torrbin.com or noteworthyfacts.com?

plugnburn··on Show HN: Upload any file
Well, I found what the server side is written in.

In fact, I found everything about your server.

Why? Because you, sir, do not know a thing about server security and configuration - this is the file I managed to upload: http://updrop.it/uploads/info.php

I will not hack your server but someone else definitely will, so you have to either close this hole ASAP (disable PHP file uploading) or take the service down.

plugnburn··on Show HN: Upload any file
Nice idea, nice design, horrible code behind it.

Just a look at rtu.js made me cry. Never mix logic and presentation. Especially in such security-crucial projects.

I don't know what is the server side written in but it seems horrible too: I managed to upload the same file twice and returned a link in the same directory but with different names (boomer.mid and boomer(1).mid). So it's possible to flood all the server space with the same file unlimited amount of time. This is definitely a security issue. Also, a name mustn't change over time: my (or anyone else's) next boomer.mid upload mustn't become boomer(2).mid.

I haven't tried it yet but I hope server-side filetype validation is also present? Otherwise the server is going to have big troubles over time...

plugnburn··on A minimalist concatenative, homoiconic, panmorphic language
Quite interesting (I was into esoteric programming about 2 or 3 years ago). Have three questions:

- Is there any standard library (for common input/output/math etc)? Haven't found how to do 2 + 2 in Om.

- Is there any way to include other Om files as subprograms?

- Are there any alternative implementations present/planned? (for instance, JS/Ruby/Python ports)

plugnburn··on Ask HN: How can I use my skills as an engineer to help stop Trump?
Why would you?

Web-based but untraditional: Make a website to offer russia to exchange him for Zhirinovsky.

plugnburn··on Show HN: Unowordo(2) – What Would You Add or Change?
2 words: add auto-tweeting.
plugnburn··on Show HN: XS.js - an ultra-small CSS rule builder in 10 lines of JS
Some explanations:

- this is a companion to previously announced XT.js, but for dynamic CSS construction;

- ES5 compatible;

- no at-rule support at this point (as we are on JS, .matchMedia FTW, and dynamic @keyframes building is too specific task to multiply the size twice and more);

- due to engine limitations we have to already insert the <style> element into <head> before we can even start appending rules, so, unlike XT.js, a reference to already inserted <style> is returned.

plugnburn··on Show HN: CSJS – modular, scoped CSS with ES6
Challenge accepted! I plan to make a simpler dynamic CSS construction library (similar to XT.js - https://news.ycombinator.com/item?id=11260471 - which constructs DOM fragments) that's both smaller and targeted for ES5.
plugnburn··on Microsoft embeds nagware into IE patch
Faildows and Infernet Exploiter users must suffer. Period.
plugnburn··on PCE.js Mac Plus Emulator Running Mac OS System 7
I wonder if we could run a browser inside this thing. Imagine: a browser in a system emulated in an Emscripten-based emulator running in a browser...
plugnburn··on Show HN: Psto: a single package.json to run your single-post web page in no time
Explanation: this is a follow up on Keith Cirkel's series of articles about using just NPM as a build system, and I decided to take this madness to an absolute level.

Start with a single package.json and end up with a ready single-post web page in less than 2 minutes... of course, if you already have a post formatted in Markdown. :)

Surge.sh deployment included.

plugnburn··on Show HN: XT.js – a DOM construction/templating nano-library, 323 bytes minified
Some explanations:

1. Yes, I'm aware of Microjungle but still don't get why does it weigh twice bigger and above. 323 bytes of XT.js is NOT gzipped size.

2. This library is VERY strict to the syntax. Any mistake - flow ruined.

3. You know how to deal with DocumentFragments, right?

4. No serverside planned, sorry.

5. Yes, it's already used in production.

plugnburn··on Xterm(1) now UTF-8 by default on OpenBSD
Some things are traditionally measured in inches even worldwide, like screen diagonals or pipe diameters or, as you have noticed, mil grids. But in any other cases, seeing those feet, yards, miles and pounds in some internet resources presumably made for _international_ audience annoys the heck out of me. In our country (tip: Ukraine), not any ruler or tape measure even has inch marks, yet they are optional here when centimetres are a must. But as soon as I see a video about something "that's 36.5 feet tall", I have to run a conversion to find out what is it in metres. Pretty much the same as the case with some foreign and non-universal character encoding (when everything I see is just garbled letters and/or squares).

P.S. And yes, my ruler is made from aluminium, not aluminum.

plugnburn··on Microsoft will release a custom Debian Linux
Finally M$ Linux comes true. So we must prepare to viruses, antiviruses, "defenders" and other whole infrastructure industry that lives on creating problems out of nothing and then heroically solving them.
plugnburn··on Xterm(1) now UTF-8 by default on OpenBSD
So I see 2 steps here: dropping UTF-16 altogether (well, already, because there are plenty of extended codepoints above 0xFFFF), and when approaching the 31-bit limit - inventing something like "zero-width codepoint joiner" to compose codes of arbitrary length.

For example, in a hypothetical alien language, a hypothetical character "rjou" would have a code 0x2300740457 (all the previous codes are exhausted). We can't express this with a single code, so actually we split it into 2-byte parts and write "#" (0x0023), joiner, "t" (0x0074), joiner and "ї" (cyrillic letter yi, 0x0457). As we have a joiner between these codes, we know that we must interpret and display them not as a "#tї" sequence but as a single alien "rjou" character. I think you get the idea.

plugnburn··on Xterm(1) now UTF-8 by default on OpenBSD
That's not quite a correct analogy because modern systems allow you to do things without mouse. Still there are some individuals that obviously strive to take those possibilities away and make a mouse like a tyre. I'm really happy it's not the case yet.
← PreviousPage 4 of 5Next →