HN user

mambodog

4,836 karma
Posts79
Comments665
View on HN
jamesfriend.com.au 1y ago

Try HyperCard

mambodog
2pts0
old.reddit.com 1y ago

Grok 3 claims its system prompt includes censorship about Musk/Trump

mambodog
192pts84
github.com 5y ago

AppleScript Raytracer

mambodog
1pts0
jamesfriend.com.au 5y ago

Fast Macintosh emulation in the browser using SharedArrayBuffer

mambodog
2pts0
systrom.com 6y ago

Predicting Coronavirus Cases

mambodog
1pts0
cloud.google.com 7y ago

Inclusive ML guide – AutoML

mambodog
2pts0
motherboard.vice.com 8y ago

You Can Now Play the First LGBTQ Computer Game, for the First Time

mambodog
2pts0
wincent.com 9y ago

Searching for the Holy Grail

mambodog
1pts0
jamesfriend.com.au 9y ago

A First Reason React App for JavaScript Developers

mambodog
85pts42
www.quora.com 9y ago

What research papers should a digital product designer consider reading?

mambodog
3pts0
css-tricks.com 9y ago

When Does a Project Need React?

mambodog
33pts30
developers.google.com 9y ago

Intervening against document.write()

mambodog
1pts0
motherboard.vice.com 11y ago

​Your Porn Is Watching You

mambodog
9pts1
github.com 11y ago

OS X JavaScript for Automation Cookbook

mambodog
1pts0
botherer.org 11y ago

A Thing About #GamerGate

mambodog
2pts0
www.techdirt.com 11y ago

Proposed Terror Law: Australia's Entire Internet Monitored with One Warrant

mambodog
7pts1
www.theregister.co.uk 11y ago

Australia's metadata debate is an utter shambles

mambodog
1pts0
liveuamap.com 12y ago

Live map of Ukraine unrest

mambodog
7pts0
github.com 12y ago

Show HN: Coffee-React (JSX in CoffeeScript)

mambodog
2pts1
github.com 12y ago

Show HN: React JSX Transformer for Coffeescript

mambodog
3pts0
github.com 12y ago

Browserify handbook

mambodog
154pts68
arstechnica.com 12y ago

After Eich resigns, conservatives slam Mozilla–and call for boycott

mambodog
7pts2
jamesfriend.com.au 12y ago

Run Mac OS System 7 in your browser

mambodog
385pts100
www.kotaku.com.au 13y ago

Significant Number Of Euclideon Staff Let Go, 'Infinite Detail' Still Exists

mambodog
1pts0
www.guardian.co.uk 13y ago

India's Rice Revolution

mambodog
10pts1
alias.sh 13y ago

Thank You to the Hacker News Community

mambodog
47pts13
alias.sh 13y ago

Alias.sh: for finding, sharing and storing bash aliases

mambodog
96pts53
gbracha.blogspot.com 13y ago

Debug Mode Is The Only Mode

mambodog
8pts0
www.facebook.com 14y ago

ABC TV (Australia) Facebook Timeline of entire 80 year history

mambodog
2pts0
ciracar.com 14y ago

Build a house for less than $5000

mambodog
280pts103

he doesn’t want experts, he wants people who will be subservient to him. expertise would get in the way of that, because experts would likely understand that he has no idea what he’s talking about, and not respect his dictates. see: everyone who knew how things worked at twitter.

'authenticity' in the sense of content made by normal people without any strong goals other than 'some other people might like that' (and for some, maybe eventually getting some income from monetization) rather than highly produced content with the goal of reaching the largest possible audience and extracting the largest possible amount of money from that, which is what reels feels like. if you want to see that type of 'more authentic' content, tiktok's approach to populating your feed will be much more responsive to that than instagram's. there also seem to be a lot more people creating content on tiktok aimed at that level.

DOOM CAPTCHA 2 years ago

just to be that guy

          Module.onEnemyKilled();Module.onEnemyKilled();Module.onEnemyKilled()
probably should run part of the game on the server if you want to prevent bypassing the captcha easily

modular synthesis isn't named 'modular' in reference to 'modulation', it's in reference to synth 'modules', which are units of functionality from which you can build a synthesizer. for example with an oscillator module, a couple of envelope modules, a gain module and a filter module you can build a typical monophonic subtractive synthesizer.

the ‘search box’ is not good at finding stations so i can check when the next train is coming. i typed in ‘34th st’ and it returned a bunch of addresses, none of which are in manhattan. this is probably because you require me to type ‘34 st’ exactly (no ‘th’) instead. if you can’t fuzzy match this, this search box is just unusable.

i also tried looking at ‘nearby stations’ and while standing on the 34th st A platform it didn’t list the 34th st subway station at all, just a bunch of bus stops.

please let me just look at a station list instead.

I did the browser port of BasiliskII which this wraps (https://jamesfriend.com.au/projects/basiliskii) as well as the port of PCE (another Macintosh emulator) used on archive.org.

I see a lot of people asking why someone would distribute an Electron-wrapped version of a program you could run natively, and I see it as an extension of the the same reason why I ported these emulators to the browser in the first place: accessibility. While you can install BasiliskII natively, it's a bit of a pain, especially if you are not super technical. If you find a binary floating around online it may not work for your OS version. Wrapping it in Electron is one way to ameliorate the OS compatibility issue; Chromium has been battle-tested across many OS versions. Ideally BasiliskII would have a better OS compatibility story (as well as being more portably distributable with data files) but, like many open source projects, it doesn't have a lot of maintainer-time to make this happen.

If you're using SSR (or static generation) for the initial pageload, you can continue to do so. The payloads can just be used to update the page when the user performs subsequent interactions.

Additionally, you can always fall back to clickable links if you really want to support subsequent interactions for users with no JS, if you've built the routing infrastructure for that

can you describe the threat vector here? how exactly could it be used to do that? keeping in mind the cross origin limitations mentioned in the spec, and that the timing resolution is no different to JS timestamp methods already available to code run in this context

If you want to try out the HyperCard application for yourself (for example, to see its editing tools) you can do so in the browser here:

https://jamesfriend.com.au/projects/tryhypercard/

For Mac users, you can also easily run it on your local machine: https://jamesfriend.com.au/running-hypercard-stack-2014

Also, if you're taken by the HyperCard aesthetic, you be interested in this interactive artwork created in HyperCard (which I contributed technical assistance to): https://www.upprojects.com/projects/commissions/formality/

Rose-8 on Mac OS 9 6 years ago

The author mentions that they didn't have a debugger and couldn't get MacsBug to work inside the emulator. A useful technique here is to use the emulator itself as the debugger: most emulators have features for setting breakpoints and single stepping through emulation and directly reading memory values from the emulated system's memory (by absolute memory address). For example, here is the documentation for 'hardware'-level debugging in the PCE emulator: https://github.com/jsdf/pce/blob/pcejs/doc/monitor.txt

One 'nice' thing about working with old architectures like classic Macintosh is that there is basically no abstraction between the software and the hardware, so manipulating the behavior of the emulated hardware becomes a powerful debugging tool.

This appears to be using my port of the PCE emulator[1]. It's also used on the Internet Archive, which has a collection of HyperCard stacks which you can run in the browser[2].

I have a short tutorial[3] for running HyperCard stacks locally which might be interesting to anyone who has some stacks lying around on their filesystem, or who just wants to play around with Mac OS 9.

[1] https://jamesfriend.com.au/pce-js/

[2] https://archive.org/details/hypercardstacks

[3] https://jamesfriend.com.au/running-hypercard-stack-2014

How did you extract concerns from class components and reuse them previously? Easy and hygienic extraction and composability of concerns literally is something new enabled by Hooks that was not offered by class components.

You're also misrepresenting what the docs say about replacing class components. They're saying that you don't need to replace class components just for the sake of using 'the new thing'. However if there was some concern you wanted to extract from a class component that you could not previously, you absolutely could adapt it to use hooks, and then extract and reuse that concern in another component.

How is this different to using a React component installed from npm? You can look inside them if you want to, but don't have to. That is the goal of abstraction.

If you want to have no abstraction and show all state in your component, just don't extract any into Custom Hooks. Then it's really not very different to a class component.

Here is a visual example of how hooks move all the parts of a single concern into a single block of code which, in a class component, would be littered across lifecycle methods: https://twitter.com/threepointone/status/1056594421079261185

Grouping these parts this way means they can be trivially extracted as a Custom Hook[1] (analogous to a 'mixin' or 'trait' in OOP).

By extracting this concern into a Custom Hook it can easily be reused by different components, as well as composed by other Custom Hooks. This was previously possible using Higher Order Components, Render Props and the (really old) React Mixins concept, but Hooks addresses problems with each of these previous approaches.

If you want to know more about how Hooks improves over these previous approaches, see my previous comment: https://news.ycombinator.com/item?id=19074469

[1] https://reactjs.org/docs/hooks-custom.html