HN user

pjgalbraith

362 karma

Software engineer from Australia

https://twitter.com/p_galbraith

Posts0
Comments79
View on HN
No posts found.
Map of Metal 2 months ago

Sorry about that. Its definitely a desktop kinda experience anyway.

Map of Metal 2 months ago

Didn't expect to see something I made on HN while my wife is trying to find something to watch on TV.

So about the site in case anyone is interested. I made it with a friend who was studying multimedia. He helped with the data and I did the coding. Took about a week or two.

The site was originally Flash (remember that). But I ported it to HTML5 a few years ago. It still has those Flash vibes I think. Posted the code to GitHub when I ported it. I did this mostly to keep it alive for old times sake.

So about the mobile support. I planned to do it but got sidetracked building a custom WebGL map renderer because phone performance was poor. However I never finished, life finds a way to get in the way and all that... I have some mobile designs lying around.

The other issue was when I first built the site YouTube didn't really play ads much at all, just those little text ads, and you could embed the player really tiny. So it worked better. In the original flash version I actually hid the video player. But that got the site blacklisted from YouTube, I asked a Google engineer on a dev forum to put a word in and they removed the block, very different times, this was back when Google was a different beast, and you could chat to real people online and the dev communities were much smaller.

I have a illustration of a much bigger map in my sketchbook. It has a lot more subgenres and interconnected things like historical events and so on. But it's huge unfolded, like 2x1.5m or something ridiculous.

I miss those days when the web was full of weird and experimental stuff. I grew up with Newgrounds and Geocities, I'm sure it's all still out there buried under a giant pile of SEO optimised refuse.

Performio | Frontend Software Engineer | Remote (Australia) | Full-time

We're on the hunt for a frontend engineer to join our team of product and engineering people spread across Australia (our home base is Melbourne but you can work from anywhere).

What you'll be working on is pretty exciting - we're building with React and TypeScript, including canvas-based interactions and custom domain-specific language editors, we have lots of challenging UI work to do.

We are a well funded, profitable company, with 20 years in ICM, we have a global customer base across Australia, Asia, Europe, and the US in 25+ industries.

Link if interested: https://www.performio.co/careers?gh_jid=4447789006

Nope since the oil is cold and will take a bit to heat (it doesn't act like water does due to the higher temperature it can handle).

For reference it is how wok cooking is done and they use extremely hot pans/burners. If you're using gas switch off the heat for a second.

Nice to see any improvements in this space.

The workflow I've used in the past for this is using the fantastic StableDiffusion 1.5 ControlNet lineart model. See https://x.com/P_Galbraith/status/1716299002969469054 for example.

Probably the ideal workflow would use a reference image via something like IP-Adapter since a simple colour palette wouldn't really give enough control (see https://x.com/P_Galbraith/status/1716405163420963196 for example). Typically you have the character design done in a flat perspective. So it would be nice to have something like an IP-Adapter input as well as a detailed line drawing and a rough paintover.

You would also need to provide a way to give lighting control (i.e. control over light sources and direction) as well as multiple characters etc... for it to be useful in complex compositions.

He does mention a bit more in a hidden comment:

"NTOSKRNL.EXE + debug symbols + IDA helped me understand how the remote break-in is supposed to work. I knew that something in the remote break-in code path before the first debug packet is sent is going to reboot my machine. So I patched "JMP SHORT $" instructions into the relevant code-path. If I placed it before the crash point, the machine hangs. If I placed it after the crash point, the machine reboots. This allowed me to "bisect" where the crash is happening."

-----

Here is a Chat-GPT breakdown of the comment:

NTOSKRNL.EXE: This is the kernel of the Windows NT operating system. When people refer to the "Windows kernel," they're typically talking about this executable.

debug symbols: These are additional pieces of data that describe the internal structures and functions within a binary (like an EXE or DLL). They make it much easier to understand what's going on when analyzing or debugging the binary.

IDA: IDA (Interactive DisAssembler) is a popular disassembler and debugger used by security researchers and reverse engineers to analyze binaries.

how the remote break-in is supposed to work: It sounds like the commenter is trying to understand how a specific feature or vulnerability related to remote debugging (or "remote break-in") operates.

something in the remote break-in code path before the first debug packet is sent: There's a sequence of events or a code path in the kernel related to the remote debugging feature. The problem seems to manifest before the first debug packet is sent over the network.

JMP SHORT $: This is an assembly instruction. The JMP instruction is used to jump to another part of the code. SHORT refers to a short jump, meaning the jump target is relatively close. The $ symbol refers to the current address of the instruction, so "JMP SHORT $" will cause the program to jump to itself, effectively causing an infinite loop.

patched "JMP SHORT $" instructions into the relevant code-path: By inserting this instruction at various points in the code, the commenter created intentional hangs in the system. This helped isolate where the crash occurs.

bisect: This term comes from the world of debugging and means to divide the code into smaller parts to determine where a problem is. In this context, the commenter is using the hang (from the JMP instruction) as an indicator. If they inserted the JMP instruction and the system hangs, it means the crash hasn't occurred yet. If they inserted the JMP instruction and the system reboots, it means the crash already happened. By moving the JMP instruction around, they can get closer to the exact point of the crash.

In essence, the commenter used a mix of reverse engineering tools and clever debugging tricks to narrow down where a crash was occurring in the Windows NT 3.1 kernel when using a remote debugging feature.

Here is a test I did the other day of rough sketch (hand drawn) -> clean line work (AI) -> coloured (AI). This workflow gives 100% control over the output because you can easily adjust the linework in the intermediary step.

https://twitter.com/P_Galbraith/status/1649317290926825473?c...

This is using Stable Diffusion and the Control Net Lineart Model. The coloured version is pretty rough but it was a quick test.

In my opinion Stable Diffusion is vastly superior to Midjourney if you have the skill to provide input to img2img/ControlNet.

I have some other earlier workflow experiments on Youtube if you're interested in this kind of thing https://www.youtube.com/pjgalbraith

Some feedback on workflow:

  - Automatic1111 outpainting works well but you need to enable the outpainting script. I would recommend Outpainting MK2. What the author did was just resize with fill which doesn't do any diffusion on the outpainted sections.
  - There are much better resizing workflows, at a minumum I would recommend using the "SD Upscale Script". However you can get great results by resizing the image to high-res (4-8k) using lanczos then using inpainting to manually diffuse the image at a much higher resolution with prompt control. In this case "SD Upscale" is fine but the inpaint based upscale works well with complex compositions.
  - When training I would typically recommend to keep the background. This allows for a more versitile finetuned model.
  - You can get a lot more control of final output by using ControlNet. This is especially great if you have illustration skills. But it is also great to generate varitions in a different style but keep the composition and details. In this case you could have taken a portrait photo of the subject and used ControlNet to adjust the style (without and finetuning required).
GPT-4 3 years ago

Definitely seems like it's not just GPT-4 that can hallucinate facts.

  5: "Keyser Söze", logo is from Usual Suspects
  6: "descartes", Ceaser cyper
  7: "lucifer", lyrics from Symphony of the Devil
  8: "bletchley park", images translate to w3w location
  9: "conrad", reference to the movie "The Game"
  10: "pineappowl", send "Hi" email to 3.243F6A8885DD3B903D0F@gmail.com
  11: "ambidextrous", the image file name contains planets "susaturnortmarsxedvenusibma" planets removed and reversed
  12: "playback", novel by chandler

First few were easy here's the solution. Haven't got time for this so here's a dump of what I have so far. (SPOILER ALERT)

  1: Update URL to be whiterabbit
  2: "TMA-2", name of monolith in 2001 A Space Odyssey
  3: "palladium", convert decimals in picture to ASCII
  4: change URL to /right/brain
  5: Something to do with "The Usual Suspects" probably

I mean it sounds pretty cool to be able to fork a film and create different iterations and mashups. Maybe if you create a cool enough scene the director will merge your PR back in.