HNHacker News
TopNewBestAskShowJobs

nullobject

260 karma · joined May 16, 2012

Hello. I'm a software developer living in Byron Bay, Australia.
submissionscomments
nullobject··on SuperRT – Realtime Raytracing on the SNES
Sure. I wrote the Tecmo and CAVE cores for MiSTer, and it's a long road to a complex core like an arcade game, or in this case, a ray tracer.

If you're just starting out, then you've gotta begin with the basics: blinking a few LEDs, etc. From there you can progress to more and more complex circuits as you learn to code in VHDL or Verilog.

I'd recommend buying a couple of 2nd hand books on VHDL and/or Verilog to get familiar with the syntax. There are some good free books too:

http://freerangefactory.org/pdf/df344hdh4h8kjfh3500ft2/free_...

This little book is great if you're interested in how to build video game hardware for FPGA:

https://gumroad.com/8bitworkshop#JGZkq

I also have a repo of examples I wrote for the DE10 Nano:

https://github.com/nullobject/de10-nano-examples

nullobject··on VexRiscv is a quadcore, Linux-capable RISC-V softcore for FPGA
Nice. I was just looking through your ray-tracer code :)

It looks like a really nice abstraction. I've been working on the MiSTer project, writing arcade cores for the Cyclone V in VHDL.

I've made a huge effort to keep things clean, but SpinalHDL could be a great way to tame some of the code.

Will start blinking some LEDs and see how it goes...

nullobject··on VexRiscv is a quadcore, Linux-capable RISC-V softcore for FPGA
This project looks amazing.

For folks writing in SpinalHDL, is anyone using Quartus? Or are you using a fully open-source toolchain? i.e. What is your workflow?

I'm interested in trying out SpinalHDL, but I'm not sure how to integrate it into what I'm doing.

nullobject··on New Lenovo ThinkPad Range with Ryzen 4000 and 4000 Pro Mobile
Running 20.04 on X1E G2 without issues here.
nullobject··on New Lenovo ThinkPad Range with Ryzen 4000 and 4000 Pro Mobile
I just switched to the X1E after using Mac for the past 20 years. I'm running Ubuntu 20.04.

It's an amazing machine: excellent build quality, screen, and variety of ports. The only thing I can complain about is the battery life, which isn't great.

nullobject··on If a MacBook Pro runs hot or shows high kernel CPU, try charging it on the right
I recentely ordered the X1 Extreme v2 and I am rediculously excited. It's my first non-Apple laptop in 20 years.
nullobject··on If a MacBook Pro runs hot or shows high kernel CPU, try charging it on the right
Regolith is what pulled me away from MacOS. Very minimal, elegant, and super productive.
nullobject··on Hands-on Scala Programming
This looks great, looking forward to reading it.
nullobject··on Show HN: PCBs with Full-Color Graphics
Looks amazing, well done.
nullobject··on IPFS Project Roadmap
This is exciting. I would love to make it to the 1st IPFS Camp in June.
nullobject··on Show HN: A game of Risk
The maps are randomly generated. Sometimes they are small, sometimes they are large.
nullobject··on Show HN: A game of Risk
There's a link to the code from the game, but here it is for anyone who missed it:

https://github.com/nullobject/risk

nullobject··on Show HN: A Tetris clone written in ES6 using React
Thanks!

It's nice that react is just a view library, so you are free to choose the rest of your stack to best suit your app (i.e. a game).

The only thing I would point out is that you should use immutable data structures, so that you don't re-render parts of your view unnecessarily. There are ways to handle this without immutable data structures (i.e. componentShouldUpdate), but it's more of a pain IMHO.

nullobject··on Show HN: A Tetris clone written in ES6 using React
I removed that button, you can now click anywhere on the modal to dismiss it.
nullobject··on Show HN: A Tetris clone written in ES6 using React
Sure. I'll have to read up on how that stuff works, but I'm keen to make my version as playable as possible.
nullobject··on Show HN: A Tetris clone written in ES6 using React
I have a credits section on the help screen. I'd be happy to add anybody in there who contributes a patch.
nullobject··on Show HN: A Tetris clone written in ES6 using React
Thanks, I'll create an issue for it.
nullobject··on Show HN: A Tetris clone written in ES6 using React
OMG, that video is nuts. I'm assuming that is being controlled by a human in real-time?
nullobject··on Show HN: A Tetris clone written in ES6 using React
Not yet, sorry. Maybe someone will send me a PR ;)
nullobject··on Show HN: A Tetris clone written in ES6 using React
There's a link to the code from the help and game over screens, but here it is for anyone who missed it: https://github.com/nullobject/tetris
nullobject··on FKit: Everyday Functional Programming in JavaScript
Thanks moberemk. I'm trying to take what lodash/underscore started to the next logical step with FKit.
nullobject··on Rewiring the JavaScript Console in CodePen
You're mostly right.

The console var is assigned the result of an immediately-invoked anonymous function (http://benalman.com/news/2010/11/immediately-invoked-functio...).

The result of this function is an object which contains the console functions (log, warn, error, etc). Moreover, these functions only exist inside the scope of the anonymous function, so the only way to access them is through the returned object. This prevents the global namespace from being polluted.

So when you call console.log('hello'), you're applying one of those functions in the object returned by the anonymous function.

nullobject··on Rewiring the JavaScript Console in CodePen
Thanks, hope you find it useful.
nullobject··on Convert github issues into pull requests
Nice, it's a shame this isn't supported in the GitHub web interface.
nullobject··on Hello Haskell, Goodbye Scala
The course material is still available, although you'll need to sign up for a Coursera account. It also looks like they're running another course in March 2013.

https://class.coursera.org/progfun-2012-001/class/index