I love the creativity of the hack, especially when he sync'd the video position with the scrubber. Respect.
I also love the guy's vaguely deranged, Adult Swim -inspired commentary. I went from hater to fan in about 30 seconds, once I realized that he must idolize Tim Heidecker. Again, respect.
However, what I love the most is how the video was composited and edited. What tools do you use to pull that together without slaving over every detail? It looks deceptively low-budget but there's a lot of really subtle details in the way he zooms in on the URL, tweens and flips his video around that make the whole thing feel like a Tim and Eric special feature.
I'd love to know how to produce that sort of result on a meaningfully short timeline.
Heyyyy thanks glad you enjoyed it! I was surprised to wake up and see this on Hacker News today.
Thought I'd comment on the video editing:
It is all pretty low tech. I use Adobe Premiere to edit and mostly just animate transform, scale, and crop effects to achieve everything. Like for the zooms you pointed out I double up a layer of the screencap and then crop and scale. It's a bit painstaking at times.
Another little part is when I do the screen recording I set my desktop background to an image with a colored box area of 1280x720. This is the area I know will be "on screen". So I have the windows I want to pull in during the video just outside this area. Then I crop to this box in editing. I think this is better looking than just capturing the whole desktop, and I like the live feel.
I'm enjoying evolving this style... I sometimes have thoughts of making some kind of gross homemade video compositing tool in JS. But I haven't gotten there yet...
Everything about this is great, I'm not a big video watcher but I just sat through that whole thing it was gold. The selfie direction flips, the interjections from you in another setting instead of chopping the video (both funny but also a nicer way to do it honestly). The concepts you're showing. All really good. Keep it up I'll be watching!
Thanks for the tips and tricks. If you ever made a video on how you make videos, I'd be first in line to watch that.
I haven't looked at Premiere since the bad old days before it traded places with Final Cut as the default choice for editing. These days, I spend most of my time on Ubuntu and use Kdenlive for my very minimal requirements.
The one thing you have that is much harder to teach is great comic timing. I suspect that it will serve you well in many aspects of your life. I don't know if you've been polishing your fast five, but if you ever have an opportunity to try your hand at standup, I'd encourage you to go for it.
Check out ShareX, it can easily capture a subset of your screen, and you can hold a modifier (I forget which) to snap to common video resolutions / aspect ratios.
Youtube poops and endless music video memes are some of the best things to come out of the meme culture. Because folk culture is now truly ‘multimedia’ and we have a horde of people for whom hyperactive video and sound editing is second nature. Now just to wait for when it becomes mainstream and commoditized like graphics editing.
I'm hoping for about the same fate for knowledge visualization techniques—might see it happen soon enough now that ‘data science’ is in vogue.
A nice side effect of it being so commonplace now is that most youtubers are doing their own editing, meaning the jokes and queues are very authentic to their personality and intent, vs having to be inserted after the fact by a separate professional who just wants to get the job done. See for example shows like Laymen Gaming or Girlfriend Reviews, both of which are full of Arrested Development style cutaway gags.
> meaning the jokes and queues are very authentic to their personality and intent
I think that's less a thing than we maybe think. I think the medium crafts the message and even the messenger. There are certainly YouTube like "patterns" and I see a lot of channels eventually devolve into them. Time and again over time I see something I like and then they ever so slightly creep towards the YouTube drama stuff, and before you know it they're doing "reaction videos" and even if their other content is still active it just doesn't feel as authentic anymore.
Not to say I entirely disagree, but I do think the medium has a great deal of influence and IMO that impacts "authenticity" and etc.
This makes me think of that editing 'style' where Youtubers will edit out every single pause for breath, so not only do you see their head snapping about every 2 or 3 seconds, you're practically listening to one massive sentence. To me it feels awful and it ends up making me feel tense.
Like anything though, it only takes one or two people to do it before it catches on and everyone starts emulating it.
It's just humour. AMP is obviously trash unless you're a Google shill, and this project isn't exactly productive. But at the same time I do honestly believe the world would be better off if AMP developers resigned themselves to building useless stuff like this instead of AMP.
I created a small library for Ruby/Rails that aliased a few methods with emojis. You could remove database objects by using the gun emoji, or trim a string with the scissors emoji.
IMO, it's not a "bad idea". Code is meant to be read, not written. If it renders the code more readable, then that's a win. But obviously, whether those symbols actually make the code more readable is debatable.
> whether those symbols actually make the code more readable is debatable.
In general, it would be rather silly to use greek letters for variable names. Yet sometimes, they tend to make numerical code much more readable when you are copying a mathematical formula verbatim.
Compare using "πθ" versus "M_PI*theta" several times on the same formula, for example.
yes, I want to use them in C. It is possible with clang but, unfortunately, not with gcc. I also want to be able to type them into TeX, both in math mode and in text mode, without much fuss.
\theta doesn't seem that bad. Typing something like \kissyface or \poop seems better than clicking around or typing a numeric code, albeit with the usual name guessing problem.
On OS X, and I assume others, you can add items to be automatically replaced, so something like "!t" could become a unicode theta if you want.
Purescript does the same thing (some people like using Unicode symbols for “forall” and function arrows) and it’s also led to amusing github goofs: https://github.com/i-am-tom/purescript-prelewd
In the book Diamond Age by Neal Stephenson the future working class are functionally illiterate so everything is communicated by emoji. Funny, but also a little bit frightening.
Agreed... though, I'd imagine the mostly us-ascii centric programming model might be harder for some foreign languages. The worst, for me, as an example is when I see a special non-us character for JS examples as the assigned variable for a library.
edit: on the flip side, it's pretty cool for passphrases (where allowed)
The most-used emojis are designed as a language of emotions, making them ill-suited for most programming projects. But that doesn't mean that there aren't emojis that would be very useful in programming. Emojis just aren't used because we lack good input methods for them (outside of smartphones)
I remember a few years back a common hackathon project was to use lex and yacc to make emoji languages. It was always cool to see what people do with that. Maybe there will be an APL or something with emoji.
That was literally the first thing they did! They stopped, thought about whether or not they should, and then did! And now we have animated url emojis and an island filled with dinosaurs and what could possibly go wro
This page will wreck your browser history. The post explains the rationale at the end, but frankly speaking there should have been the warning for each checkbox.
Your comment made me realize that there are people who curate their browser history (other than just removing problematic stuff). Not criticizing, just never considered that was something anyone cared about.
If you curate your browser history, this is an easy fix. This is more of a problem for people like me who occasionally check their browser history because they want to revisit a site they were on recently.
Not tackling the same problem but in the spirit of removing things and Firefox, you can bring up a url in the address bar, press down arrow, press Delete, and it'll go away
It only deletes that very specific url though, like foo.com, however foo.com/bar will still exist
I’m on mobile. The checkboxes had no effect, the code run on its own by default. And I gave up on trying to go back to Lobsters by using the Back button.
It actually just updates window.location.hash instead, which does cause a flood of history entries (looks like just one per distinct animation state, though, at least in Chrome). See the "One Last Thing" section near the bottom of the article for the rationale. See the inline code snippets in the article, or view source for wavyurl.com to see the actual code used.
This is very cute and all but... you know... don't actually do this! Please. Even if you make it so that it doesn't break the back button or history, URLs are things that people copy and paste and send to people. They are put into Word-documents, bookmarks and archive.org. It's not a place for dynamic animations.
URLs should be static, simple, and as short as is reasonable.
While in the video he's updating the location hash (which breaks the backbutton), one can implement this using history.replaceState[1] to keep the back button working normally. He also mentions parsing the animated URL the figure out how far the video was loaded. So if you want you can use the animation in terms of navigation. Or alternatively just put the animation behind a separator and have your router ignore the animation part.
This would preserve both the back button as well as bookmarking! Note that this video is more of the hacking nature what fun things can we do with the URL bar, he stated a number of times that it's more cool than actually useful.
In the article it does state that the history API could be used and why it wasn't.
The first point about updating the whole URL is easy to render moot: when you push new state using the history API, replicate the effect of location.hash by making sure you only change the hash part.
The second part is the sticky one for the "ain't this cool" factor: the throttle in some browsers effectively limits constant animation to 3fps. This isn't an issue for things like the video progress example though: that only needs to update once per second. If you made a library to wrap this idea for easy reuse you could easily implement change detection and other rapid change throttling to smooth things out (so short bursts of many updates work, but longer bursts don't cause a complete stop until ~30s has passed) rather than having to implement these for each use of the technique. ("if" and "you could", because who in their right mind actually would?!)
I'm pretty sure Chrome has different behavior with Dev Tools open and Dev Tools closed, and also with what it does with code posted in the console and code run as part of the page.
So just because it is not throttled when run in the console doesnt necessary imply it wont throttle as part of a regular page as well.
We need this. The whole Internet is on the brink of destruction and animated URLs are going to save it. And ISPs are giving a discount on connections with animated URLs.
Because it manipulated the hash component directly.
By using the "replaceState" method of the history API [1] you could avoid polluting the browser's history.
For the Chrome part in any case it doesn't match my experience: under linux Chrome will happily update the url up to every 20ms (50Hz). At higher frequency it will throttle it saying that otherwise the UI would hang.
The limit on Safari (which I cannot test) can be annoying in fact, but not as much as an URL updating 20 times per second :-)
By the way I also find the other reason for not using the History API to be a non-issue, since you can just use the location object to build the whole url from scratch, if you really want to
var n = 0;
function loop() {
location.hash = f[Math.floor((Date.now()/100)%f.length)];
if (n++ > f.length) {
n = 0;
window.history.go(-f.length);
}
setTimeout(loop, 50);
}
This actually doesn't work properly and jumps back too far sometimes because the URLs move with time and not a counter, but you get the idea.
One downside is that it basically renders the back button useless. I ran the examples you provided (which were great fun!) and when I tried to get back to hackernews I realized each step in the animation had been added to my browser history
I didn't really look at the code, mostly because I just found the idea interesting as I hadn't considered it. Kind of surprised that it's not using the history api to replace the hash.
I realize everyone hates videos on HN and probably scrolled right past it, but this guy is hysterical. Worth watching the first couple minutes at least.
It's probably possible to do fast enough if the site is nearly empty (just with a window.location.href script tag). But it would definitely trigger a full page rerender.
Probably yes. In browser history updates, browsers will trigger a regular page navigation if the domain changes.
I suppose with keep-alive, all sub/top domains in the same TLS certificate, and immutable far-future caches, one could pull off an animation at ~5 fps.
Well no one was expecting emojis, so let the old guys have some fun as well? Have had this idea for a long time, but by now it remained only as a concept. Someone hacked the access to my notes, or maybe certain ideas are universally silly-genius?:)
The combination of animations on the URL and emojis looks great! And i think some of the use-cases, like progress indicators or simple spinners can be pretty legitimate (though maybe it's just my cute-hack-friendly mind thinking this :P)
I didn't know about `location.hash =` not being rate-limited like history.replaceState() is! Knowing this would have been useful when (ab)using this idea to make a playable game on the URL (https://epidemian.github.io/snake). I stumbled upon Chrome's rate-limit quite a few times (now it seem to have been raised). Thanks!
After visiting the site using Firefox the history contains hundreds of those URLs with emojis. Also, the "back" button is completely broken because of this. Interesting way to prevent user from leaving the site.
Clever hack, but impractical; ruins history, back button, and urls are usually pretty long meaning the loading bar will not be visible or partially visible.
Another perfect example of the childish activities of the web today. Remember the days when postings were about serious technical advancements and not random hobbyist activities?
I remember when it was about animated "under construction" gifs on millions of pages across the likes of geocities, and everyone self-publishing... until the social networks came... MySpace allowed for customized css which had a lot of user activity... then facebook normalized it all.
While I do appreciate the clean aesthetics most of the time... I really do like to see the creative individuals gets some things in.
Additional ideas mentioned include animated favicons and titles... I'd throw in that an audio waveform with music would be cool too.
I also love the guy's vaguely deranged, Adult Swim -inspired commentary. I went from hater to fan in about 30 seconds, once I realized that he must idolize Tim Heidecker. Again, respect.
However, what I love the most is how the video was composited and edited. What tools do you use to pull that together without slaving over every detail? It looks deceptively low-budget but there's a lot of really subtle details in the way he zooms in on the URL, tweens and flips his video around that make the whole thing feel like a Tim and Eric special feature.
I'd love to know how to produce that sort of result on a meaningfully short timeline.