diff --git a/content/2018-05-28-web-apps.md b/content/2018-05-28-web-apps.md index 76b93c9..f737f88 100644 --- a/content/2018-05-28-web-apps.md +++ b/content/2018-05-28-web-apps.md @@ -20,7 +20,7 @@ Things aren't that way anymore. For some reason, the web browser has become the JavaScript happened. That little _scripting_ language invented to, you know, make some hover animation on your page or have dropdowns on your menu bar. Thanks to the introduction of JavaScript (and jQuery especially), developers stopped viewing webpages as Word documents that you can share, and more like canvases. Hover animations are cute and dropdowns are useful. Sure. But when this _scripting_ language starts turning into a _systems_ language (for lack of a better term), you have a problem. When's the last time you used Perl to write an operating system? -Look at the things we do today with JavaScript. We have _full blown frameworks_ that we _compile_ into bundles of _executable code_ in people's browsers. We're basically talking about the equivalent of downloading a binary and executing it on your computer every time you open a _webpage_. Except for a few minor differences. Firstly, it's not really a binary, it's a huge blob of script, which means it must be executed inside some virtual interpreter. For each tab that you're running. Secondly, now you're downloading random scripts from any website that you open, and then [trusting it](https://superlogout.com/) and [running it](https://coinhive.com/). You wouldn't hesitate to click a link, but you'd definitely think twice before installing something from an unknown source into your computer, right? +Look at the things we do today with JavaScript. We have _full blown frameworks_ that we _compile_ into bundles of _executable code_ in people's browsers. We're basically talking about the equivalent of downloading a binary and executing it on your computer every time you open a _webpage_. Except for a few minor differences. Firstly, it's not really a binary, it's a huge blob of script, which means it must be executed inside some virtual interpreter. For each tab that you're running. Secondly, now you're downloading random scripts from any website that you open, and then [trusting it](https://superlogout.com/) and [running it][1]. You wouldn't hesitate to click a link, but you'd definitely think twice before installing something from an unknown source into your computer, right? On top of that, look at these huge frameworks that almost every company is hiring developers for: React, Angular, Vue. These frameworks help JavaScript developers develop "web apps", meaning your JavaScript is now responsible for things the browser should actually be doing for you: two-way data binding, template rendering, and more. Except now, you're downloading a script and running it inside of a virtual interpreter. And because of technologies like Webpack that bundles all your separate code files together (read: static linking), our browsers can't even use the same framework code from site to site. @@ -46,3 +46,5 @@ I'm helping with a project called flubber, which originated as an IRC bouncer, b And of course, I've disabled JavaScript in my browser. \ thanks for reading! + +[1]: https://web.archive.org/web/20190429040938/https://coinhive.com/ diff --git a/content/pages/about.md b/content/pages/about.md index a7ec671..146b696 100644 --- a/content/pages/about.md +++ b/content/pages/about.md @@ -9,11 +9,12 @@ In an effort to rely on less services, I started doing a lot of self-hosting and If you want my resume, contact me through one of these means: ## contact -- Matrix: [@michael:iptq.io](https://matrix.to/#/@michael:iptq.io) - Discord: **iptq#8440** - Email: (I sign all my Git commits with this email) -- PGP Key: [hosted on Keybase](https://keybase.io/michaelz/pgp_keys.asc?fingerprint=2a323c176e16b8c25ade02d447033f6c0a02f24a) +- PGP Key: [hosted on Keybase][1] ## setup My setup can be found [here](/pages/setup). + +[1]: https://keybase.io/michaelz/pgp_keys.asc?fingerprint=925ecc02890d5cdae26180d4bda47a31a3c8ee6b diff --git a/content/pages/setup.md b/content/pages/setup.md index ed79dd0..7f72aca 100644 --- a/content/pages/setup.md +++ b/content/pages/setup.md @@ -45,7 +45,7 @@ I use the trial version of [Sublime Text 3](http://www.sublimetext.com/) on my p ### passwords -For passwords, I'm using [pass](https://www.passwordstore.org/), which is a GPG-encrypted password store. The passwords are checked into a git repository in order to maintain consistency between multiple devices (I'm using [Android Password Store](https://github.com/zeapo/Android-Password-Store) on my phone). Then, I bind `$mod+p` to a [rofi script](https://git.iptq.io/michael/dotfiles/src/branch/master/.local/scripts/passmenu) so I can access them easily. +For passwords, I'm using [pass](https://www.passwordstore.org/), which is a GPG-encrypted password store. The passwords are checked into a git repository in order to maintain consistency between multiple devices (I'm using [Android Password Store](https://github.com/zeapo/Android-Password-Store) on my phone). Then, I bind `$mod+p` to a [rofi script][#] so I can access them easily. ### music @@ -53,7 +53,7 @@ On my personal computer, I'm using [mpd](https://www.musicpd.org/), the music pl ### screenshot -I'm using a [custom screenshot tool](https://git.iptq.io/michael/leanshot), written by myself using Rust. The advantage of this over something like scrot or maim would be the ability to first freeze the screen before selecting a region. +I'm using a [custom screenshot tool][2], written by myself using Rust. The advantage of this over something like scrot or maim would be the ability to first freeze the screen before selecting a region. ## my phone @@ -78,8 +78,11 @@ And a slew of other non-free apps that have pretty specific uses, though I think The stack for this website looks like: -- The [source code](https://iptq.io/projects/blog) is written as a set of Gutenberg config files. +- The [source code][1] is written as a set of Gutenberg config files. - This is then transpiled into static HTML + resources using [Zola](https://getzola.org/), a static site generator written with Rust. - Changes are deployed using Git hooks. - Static files are served from a web root using [nginx](https://nginx.org/en/) through a virtual host. - And here it is! + +[1]: https://git.iptq.io/michael/blog +[2]: https://github.com/iptq/leanshot