26 ms·
Here are two rando ideas from an occasionally burned out fellow coder: 1. FPGAs. Get your software turned into sorta-hardware. Very fast, and now, very cheap.
by tlack 6y ago
Here are two rando ideas from an occasionally burned out fellow coder:
1. FPGAs. Get your software turned into sorta-hardware. Very fast, and now, very cheap.
2. Reinforcement learning. Teaching a machine to optimally play a game - any game. Very complex rabbit hole, but surprisingly easy to dip your toe in. See my previous comment: https://news.ycombinator.com/item?id=24693277 https://news.ycombinator.com/item?id=24693277
- rajeshp1986 6y agoThanks. I liked your RL post. Will follow those links and try to play with it. Could you also provide more context about FPGA? what are some application areas and what can we use them for? Does it need any prior hardware knowledge?
- tlack 6y agoFPGAs are good at fast signal processing of diverse sorts. Example in industry are are cable modems (en/decode wideband signal), set-top boxes (decode/decrypt media), precision optical equipment, hardware-assisted algorithms (compression, crypto), military, ... Anything complex enough to require a CPU and some logic, but single-purpose and requiring high bandwidth. Well, you'll need to understand the basics of things like pins, and how I/O works, and I'm sure some fundamentals. Perhaps a 1 month journey through Arduino too. But FPGAs are programmed in a C-ish language called Verilog (or VHDL) which sort of insulates you from the specifics to some degree. Given my current interests, I'd probably try to translate a machine learning model into a Verilog program or something along those lines. But that's a combination of two complex things. Maybe a good first project would be "make a really fast webserver" by embedding a webserver + TCP/IP stack into an FPGA. Or a really fast compressed columnar database engine. Good luck! t
- PaulHoule 6y agoIf you just want to make "electronic devices" I'd suggest a low-end Arduino device. For $20 you get something that can turn a relay or program an addressable LED light strip or communicate with the computer in your car. There is an IDE to program it that is not too different from what you use on a regular computer. There are FPGA devices that can take the place of an Arduino or Raspberry Pi that cost from $50 to $500 that have custom programmable logic instead of a microprocessor. In the 1970s, Steve Wozinak designed a Pong game programmed in about 40 logic gates that would change the color of the pixel as the beam scanned across the TV. Today you could connect that $50 FPGA to an HDMI port and make a video game out of logic gates the way Woz did, the tools are specialized compared to normal programming but better than what Woz had to work with. With a more expensive FPGA you could make something like a Nintendo GameBoy Color by cutting and pasting an open source and/or commercial microprocessor design into the FPGA together with your dream logic. --- Me the hardware I get into is "printing" in that I make some kind of art print every day. That could be sending shutterfly photos to family, using a receipt printer to print anime art, printing 4x6 cards with information graphics, etc. I fell into it by chance but understand now that it's a bridge between the world of digital images that I work in and often play in and the world of physical objects, things I can touch and share with people.
- PaulHoule 6y agoGame-playing is fun in general. This trick https://en.wikipedia.org/wiki/Monte_Carlo_tree_search https://en.wikipedia.org/wiki/Monte_Carlo_tree_search is part of how AlphaGo works but you could get it to play a mean game of Hex or just many other games without the neural network