Hacker News new | past | comments | ask | show | jobs | submit | meter's comments login

I’ve been using this for the past few months, and for the most part, I like it. I appreciate that it’s all configured with a single file (no GUI).

One issue: If an app uses native Mac tabs, Aerospace treats each tab as a window, which completely breaks the full screen functionality. Alacritty is one example. It’s really odd.

Edit: there’s an open issue for this: https://github.com/nikitabobko/AeroSpace/issues/68


This past month, I’ve been reevaluating my dev environment and workflow. My goals are to reduce RSI, be more efficient, as well as learn all my tools as deeply as possible. And have fun!

- I’ve ditched VSCode and gone all-in on NeoVim. I’ve spent a bunch of time watching Primeagen, etc., tweaking my vid config and learning how to navigate as efficiently as possible.

- Switched from QWERTY to Colemak-DH to hopefully reduce RSI. I’m at about 70wpm with decent accuracy after 4 weeks. My QWERTY skills are gone. I like Colemak, but we’ll see how I feel in another month or two.

- Finished my custom hot swappable Sofle keyboard, and spent many hours customizing the layout. I think I’m pretty close to feeling comfortable. I’m using home row mods, which I love. Currently using Kailh box whites (clicky). Might switch to Gateron Brown Pros.

- Been going through a “Build your own git” course, to understand git as deeply as possible.


Strongly urge you to acquire a Logitech MX Vertical mouse. It takes a few days to get used to; now you'd have to pry it from my dead hands.


I went down this path and tried various vertical mice, and settled on the MX V for a few months in the pursuit of reducing wrist pain. After about 4-5 months or so, I started getting strong wrist pain again, and switch backed to a standard mouse. At that point I started looking elsewhere, specifically on strengthening my wrists and joints. I've been doing this about 5 times a week for probably 5 months now, and most of my mouse hand wrist pain has subsided: https://www.youtube.com/watch?v=iVum3vWlh4Q


Thanks for the video. I’ll definitely try it out. In my original post, I should’ve emphasized that I’ve also been focusing on strengthening/mobilizing my wrists. It’s only been a month or two of concentrated effort, but I think they’re improving a bit.


Congratulations on learning Colemak! I made that journey myself and haven't regretted it once since. I did have to relearn QWERTY, frustratingly, but luckily it isn't nearly as difficult as learning a layout for the first time, and I can now switch between them relatively easily. (For me, a few years on, I now type at 100-120 WPM on Colemak; I was also at 70 WPM four weeks after starting.)


Thanks!

That’s encouraging to hear that you can switch between the two. Awesome!

I’m afraid to start practicing QWERTY too soon, and risk losing my progress with Colemak. Maybe I’ll attempt it in a few months.


I didn't go back to QWERTY until having had a couple of months of uninterrupted Colemak use, so I don't know what the effects of that would be. But yes, I can now switch between the two :) After a few minutes of 'warm up', I can type about 70 WPM in QWERTY and then go straight back to >100 WPM Colemak. Also, I always use QWERTY on my mobile phone, since 'swipe-typing' doesn't really benefit from having frequently-used letters close to each other nor from having them on the home row.


For my issues, the combination of apple trackpad and a proper ergonomic keyboard with a keywell did it: at first Kinesis Advantage 2, then Glove80. Model 100 is also quite good.


Building custom keyboards is fun, but I might bite the bullet and buy a Glove 80.

I don’t own a 3d printer, so designing a custom Dactyl is not very feasible for me.


oooh the sofle. i'm curious about your layout! been using a Moonlander for a few years and while I like it, it's just too big. ordered a sofle variant recently and I've been thinking about switching back to a dvorak or trying colemak when it arrives.


The Sofle has been decent for me. I’m not the biggest fan of thumb key positions (especially the outer one), but I’m getting used to them.

There are only two thumb keys per side. I’ve had to get a bit creative with my layout. One trick I’ve discovered is Mod-Tap. This lets me use my space bar as a layer key (when held), or a normal “space” when tapped. Two functions on a single key. Awesome.

I’ve also been reading this person’s blog to improve my symbol layer and vim navigation (I’m tempted to try the Engram layout, but I’ll stick with Colemak for now): https://sunaku.github.io/engram-keyboard-layout.html


I used to work for a defense contractor.

There was a 3 month period where I had nothing to do.

I was supposed write firmware for a piece of hardware, but the hardware was broken and wouldn’t even turn on. I was told to wait for the electrical engineers to fix it.

I sat in the lab all day, for 8 hours a day, with no internet access (it was forbidden), pretending to write firmware that I couldn’t test, with no direction on what I should be doing. There was no simulator, no tests, no guidance.

In that time, I would practice my own Leetcode problems in preparation for other jobs. All day long.

About two weeks before I left the company, I received my security clearance. That’s when I realized… they were just killing time until I had my clearance.

All of a sudden, the flood gates were opened, and I learned about a really interesting project. Not interesting enough to keep me though ;)

Six years later, I’ve 3x’d my compensation. And I love my job now (web development).


As a web developer of 17 years, I'm dumbstruck at the idea that you're making three times as much doing this as you did at a damned defense contractor. They must have been totally chumping you.


I've increased my income roughly over 20x over past 20 years, its not impossible. Still doing same 100% employed java dev role as on Day 1. I've moved employers and countries few times, did some consulting too, purpose wasn't the money per se but when choosing your next employer salary is a good general indicator of how well you will be treated.

Started really low since I knew I wanted the job and it would be temporary, didn't have any students loans (Europe baby!), and eventually ended up in position that pays better than 99% of software devs in Europe. Not most rewarding work, but its just work for me, life that matter happens for me when I log out.


If you're a skilled webdev at FANG, ~250k+ is trivial.

Lots of defense contractors will try and pay their fresh meat 80k so they can make more money. Government gets really touchy about hourly rates per person, but has no problem with 'fair' hourly rates for many more people to do the job one person could and should do.


Your instinct is spot on.

I made 76k at the defense contractor.

I made 255k this year (6 years later).


A popular theme in today’s productivity culture is “waking up early.” It’s considered a sign of discipline to wake up at 5am.

5am is reasonable... if you fall asleep at 8:30 or 9 PM.

I wish we’d stop emphasizing early wake-up times, and start emphasizing reasonable bed times. It takes just as much discipline, especially with my phone so easily accessible and the TV so easy to binge.


It would also be great if we’d stop making the 8 hours the gold standard. The amount of sleep a person needs varies a lot and fluctuates over the year and lifetime of the person. It can be as much as 12 or as little as 5.


>It can be as much as 12

If you regularly need 12 hours of sleep every day as base, it sounds like a health issue.


I would be very interested to read any papers where this is mentioned


Fantastic insight. It’s far easier for me to get up at 5:00 AM than to go to bed by 9:00 PM. Or even 10:00 PM.


But it's all relative. What's reasonable is what allows you to get a full night's sleep. I get up at 7:20 am ish, so I wind down before bed accordingly (reserving an hour) expecting to hit the sack at 11:20-11:30 pm. The scheduling of wind-down is an effective deterrent against sleep procrastination, which I find manifests itself more when I'm already sleepy. If I watch tv or game earlier, I won't be in zombie mode, and I'll avoid blue light exposure immediately before bed.


I first attempted this 7 years ago, after I graduated college. I got through the first 2 chapters. It was extremely rewarding. But regrettably, I abandoned it for other side projects.

I picked it up again 3 months ago, and it’s been a blast. I’m on chapter 8, having completed the logic gates, ALU, CPU, assembler, and half of the virtual machine.

Every chapter is overwhelming — in a good way. I keep thinking to myself, “how the hell is this going to work?” And when it does, it’s so satisfying.

As a side project, purely for educational purposes, it’s the most rewarding thing I’ve done. I’ve learned so much. It’s a damn good project. And I’m damn proud of myself for sticking with it.

Highly recommended.


I've done this too, and it also took me multiple (3!) tries to get through the entire thing. I interleaved it last fall/winter with Ben Eater's amazing series on building an 8-bit computer on breadboards. I bought everything over several months from China, then built the subsystems as the parts arrived over the winter. You should do that next! Aside from being (maybe even more) rewarding, it looks damn impressive to see all the flashing LEDs and understand what's happening.


Yes! Ben eater’s content accompanies nand to Tetris so well.

I did the 6502 project in which you assemble a computer system on bread boards (wiring together the clock, cpu, ram, etc).

It helped solidify many of the concepts from nand2tetris. For some reason doing it all physically with real chips and wires made it all a bit more memorable.

I’d love to try his other bread board project in which you assemble all the inner workings of a cpu on bread boards as well — I think this is what you were referring to.


>It helped solidify many of the concepts from nand2tetris. For some reason doing it all physically with real chips and wires made it all a bit more memorable.

Hang on a second, does nand2tetris not involve real chips and wires?


No, nand2tetris is done in virtual environments.

This is largely about accessibility. If it’s tied to hardware, fewer people can do it. Additionally, real hardware means there’s additional opportunity for error due to faults in the hardware or environmental variables.

That said, Nand2Tetris could, in theory, be done with a bunch of 74xx NAND chips on a breadboard.


The Nand2Tetris computer is a bad fit for 74xx chips and breadboards. It's 16 bit, for one thing, which implies a lot of chips and a lot of wires on a lot of breadboards, and the usual current problems that come with that. Better have a good source and an oscilloscope nearby. Also, the virtual design sweeps a lot of important timing issues under the rug, so you need some EE chops to translate it correctly to real hardware.

I know of a few people who managed to get a working Nand2Tetris computer on breadboards, but it took a lot more time and money than they thought it would.

On FPGA, though, it works nicely.


Thanks for the recommendation. I'll definitely look into it!


This and books like Code give me such deep respect for the people who originally figured these things out.


I've read Code and most of Computer Systems, a Programmer's perspective, but doing something by hand would've still been better!!


How did you learn the prerequisite solid state physics knowledge in order to fully understand the background behind the first two chapters?

e.g. The actual mechanism by which an integrated circuit transforms input into useful output. I've never been able to find a solid explanation on how even the simplest real world integrated circuit, such as a TI SN7400, actually does that.


You're making a category error, I think. This books/course doesn't cover physics. It doesn't even cover signal stuff, like stuff about how fast the voltage levels stabilize, or even voltages at all.

It's not "silicon wafer to Tetris" or "pile of protons and neutrons to Tetris" or "transistors to Tetris". You start with nand gates (and later also you get flipflops for free).

This course would work equally well on nand gates made of carved wooden gears, or nand gates made with fluidic logic, or nand gates made by encoding the whole thing into O-gauge hobby railroads.

If that's the level of explanation you seek, this book is incredible.


I vaguely remember someone trying to go the other direction, and teach "Tetris to Quake" but I can't find substantiation that course ever existed, and might have confused it with this article:

http://archive.gamedev.net/archive/reference/articles/articl...

I'd also be interested in anything that extends the stack from where nand2tetris left off, because, while I loved it[1], it felt unsatisfying that can't actually compile to usable binaries for the hardware -- your executable can't usually fit in memory and it doesn't teach you how swapping (or whatever) would get you to that point. It also doesn't cover more common hardware/OS issues like interrupts, or having juggle multiple running programs.

[1] most interesting technical project I've ever completed, with the possible exception of Microcorruption.com.


A “silicon to nand gate” would be a sweet complimentary course. However, probably more difficult to make hands on.


Followed by a prequel "Sand to ingot"


> It's not "silicon wafer to Tetris"...

That is a good point, I had just assumed that information was available somewhere online, but it doesn't seem likely.


Lower-level teaching resources definitely exist! Here are my favorites:

- The Zero to ASIC course (and Tiny Tapeout) [1] explains transistor circuits and teaches you an open source software stack---and you get a chip physically manufactured! You could make the Nand to Tetris computer in actual silicon (if you can get enough transistors).

- To learn how things are manufactured on silicon wafers, get textbooks on microfabrication. A decent starting point is [2]. There's also a good video series [3] for a quick overview.

- To understand how a single transistor or diode works, get textbooks on "semiconductor devices". A good starting point is the free online [4].

[1] https://www.zerotoasiccourse.com/ https://tinytapeout.com/

[2] "Introduction to Microelectronic Fabrication" by Jaeger

[3] https://siliconrun.com/our-films/silicon-run-1/

[4] "Modern Semiconductor Devices for Integrated Circuits" by Chenming Hu, https://www.chu.berkeley.edu/modern-semiconductor-devices-fo...


Thanks for the links, but notably there's a large gap between 'a single transistor or diode' and even the simplest real world microchip, such as the SN7400.

Everything before that stage, down to mining ore out of the ground, is understandable.

And everything after that stage is also understandable, at least to the level of an Intel 386 processor.

The gap is what I believe there are no resources online.


Something like this will at least get you conversant. You only need the first few chapters, and can skip BJTs.

https://archive.org/details/microelectronicc00jaeg/page/n11/...


https://nandgame.com/ has a cmos level towards the end. It doesn’t explain the transistor-level physics but does let you play with things.

The art of electronics book might be a good place to start if you want to learn the physical/electrical layer.


I have only faint memories of my beginner's course on this topic at university, and absolutely no knowledge.

Somehow I remember the word MOSFET.

I think the wikipedia articles about logic gates should provide all necessary cross references.

"Fully understand" is an elusive term though. How do you fully understand the solid-state physics of logic gates if you don't fully understand all of physics, chemistry, maybe even quantum mechanics...

Not meaning to be dismissive though! I love to try to fully understand things and hate having to accept black box logic. But I also have to admit that I've given up on this approach for many things a long time ago.

Skimming the course summary, it sounds as if this "Hardware Description Language" might mark the boundary of what this course is about.

Makes sense, it's not "from physics to NAND", it's "from NAND to Tetris" :)


The term "hardware description language" still gives me nightmares 5 years after my only experience working with them. Was working on my master's in an interdisciplinary CS/MIS/CompEng program for Cybersecurity and needed an elective. "Fundamentals of Computer Architecture" sounded kinda cool.

I walk in on the first day not realizing that while I had done my undergrad in MIS (fun fact: this is a business degree), literally every person in the course was either on the last semester of their undergrad in CompEng or were grad students that already had a BS in CompEng (this school combined some undergrad/grad lectures).

Suddenly i hear the teacher say like "grad students will also need to use an HDL and design a processor compatible with the basic MIPS instruction set." I started at "what's HDL mean?" Teacher responds "If that's a real question then it means: Hurry and Drop this Lecture." Day 1 and I already have the wrong questions for the wrong reasons.

That was a really bad 3.5 months... But it's also proof that if you hate literally everything hard enough, then it is absolutely possible to pull a 100 day "zero to MIPS HDL prototyping" speedrun.


As frustrating as it is to black-box certain domains of knowledge, it’s an incredibly useful mental shortcut when used judiciously.


It's also just plain necessary as human knowledge gets more and more complex. The more time you spend on learning, the less time you have to actually make use of that knowledge. Ars longa, vita brevis.


Aside from his basic 8-bit CPU, Ben Eater goes into how transistors work too: https://www.youtube.com/watch?v=DXvAlwMAxiA . Once you've got transistors, his videos walk you through making gates. Once you've got gates, he switches to the 74xx series and builds a CPU.


The course explicitly states that it’s not a physics, or even really an electronics, course. It doesn’t go into the gritty details of how all this stuff works in the real world, just how once it does work you can string it all together to build a computer and then a virtual machine to run on it.


The book is a great example of how we do pretty much everything with computers today: abstraction. You can definitely learn how a transistor works but this book/course explicitly starts with "you've got a NAND chip - GO!"


Ben Eater does have a handful of early videos on his YouTube page that gave me a much better understanding of what's happening down at the physical and particle level. But at the end of the day, to succeed with this material you just need to understand the theoretically digital function of a transistor, not the physical properties.


btw the sn7400 is already a fairly advanced ic; something like an uln2003 is closer to 'the simplest real world integrated circuit'

probably the best place to start for this, in a top-down sequence, is the art of electronics by horowitz and hill. it explains how transistors and diodes act in §1.6, §2, and §3, initially explaining transistors with the simplified 'current amplifier' model (which already goes beyond the 'transistor switch' model you're thinking of), then quantitatively with the ebers–moll model; they're focused on how to use this information to design working circuits from discrete components you can put together on a circuit board. camenzind's designing analog chips (available free online) goes into how to use this information to design actual chips (not only does nand2tetris get into things like metastability and noise margin, the authors seem to be confused about what a chip even is, thinking you can make a chip by assembling other chips)

but the ebers–moll model is still not solid-state physics knowledge. so far the best overview i've found of that is madou's 'fundamentals of microfabrication and nanotechnology' which has a couple of chapters about solid-state physics, going into the historical development of quantum mechanics. but it's not really a quantum mechanics textbook; it's just an overview that shows where quantum-mechanical knowledge fits into understanding solid-state physics

'the feynman lectures on physics' is the best quantum mechanics textbook i've found so far, but because my knowledge of quantum mechanics is even more minimal, please don't trust my recommendation on this

hope this helps. good luck in your learning voyage!


> btw the sn7400 is already a fairly advanced ic; something like an uln2003 is closer to 'the simplest real world integrated circuit'

If the goal is to explain how logic is implemented in general, skipping bipolar transistors and TTL and jumping directly to MOS may be easier. The behavior of a FET is fairly easy to explain, especially if you don't care about the ohmic region (which you usually don't in logic ICs), and it's straightforward to step from there to a practical implementation of a simple gate like an unbuffered NAND -- the latter of which can be trivially assembled on a breadboard with as little as two FETs and a resistor for a NMOS implementation.


> especially if you don't care about the ohmic region (which you usually don't in logic ICs),

you have to care about the ohmic region to be confident you've safely steered clear of it; at least one fet moves through the ohmic region every time a mos gate's output transitions

rtl is the bipolar equivalent of nmos (see the analog simulation at http://tinyurl.com/ylnljbgz) but you do need base resistors if you're going to try to drive its inputs with voltage sources instead of the outputs of other rtl gates. but you can omit them when the inputs are connected to rtl outputs http://tinyurl.com/ywja8z28

the flip side of that is that, though you need a base resistor to provide a constant logic high to an rtl gate, you can provide a low just by leaving the input open, you don't even need a wire like you do for nmos

bipolar logic is also a lot harder for students to blow up if your lab power supply has a current limit on its output


Some older parts are specifically made to make creating complex PCB-level CMOS gates easy. i.e. https://www.ti.com/lit/ds/symlink/cd4007ub.pdf


I think pretty much every sophomore level microelectronics book starts at basic semiconductor physics, works that into pn junctions, then transistors, then amplifiers, then gates and sequential elements.

A typical choice is Sedra & Smith https://learninglink.oup.com/access/sedra8e

But there is no shortage of choices.


sedra & smith is widely considered an excellent recommendation, but on skimming it, it seems that it does not cover solid-state physics at all or even mention any quantum effects; madou does spend a few chapters on solid-state physics, and of course feynman covers elementary quantum mechanics quite comprehensively. sedra & smith does go into a lot more depth on some aspects of chip design than horowitz & hill or even camenzind. it gives the ebers–moll equation in table 6.2, just not by name, and describes the inner workings of transistors in considerably more detail than the other books

horowitz & hill, camenzind, and feynman are much better written than sedra & smith or madou. the quality of the writing in sedra & smith in particular is quite poor; it contradicts itself every few pages, and often says things that require great effort to interpret as a correct statement, at least in the 7th edition i'm looking at

horowitz & hill also have much nicer schematics than sedra & smith or, especially, camenzind


We did the whole project as part of a class; it was one of the best classes I took in my CompSci program. It was excellent.


Thanks for the anecdote.

As a senior engineer, I struggle sometimes with people critiquing my work. For me, it all comes down to pride and ego. It’s been especially hard the last year, as I’ve been vying for a promotion. I need to work on humbly and joyfully accepting feedback from others.


Just don’t make the mistake of confusing humility and self-deprecation. That can easily become career limiting.


Yes! I completely agree.

I’ve been using AdGuard on iOS, and it’s not the quickest experience. It takes about 10 seconds to get a YouTube video to start. But oddly enough, I actually appreciate this.

10 seconds of peace and quiet, vs. 10 seconds of someone shouting at me about a product I don’t need.


I think it’d be neat to embed USB ports within the wood. The cables could be embedded in the wood using a router, completely out of sight.

Imagine plugging your phone, keyboard, or mouse, directly into the wood. There might be some downsides, but it’d be unique.

I prefer wired keyboards/mice for their reliability. But aesthetically, I don’t like having a bunch of cables spread across my desk.


The downsides are pretty large: you're betting on using those plugs forever. With USB-C that is a better bet than USB-A, but...yeah. Better is the modular/drop-in approach and using through-panel connectors.

Cable hiding is cool, but even with a full wood shop I just attach raceways to things or at most route out a channel that I can attach silicone catches over top of, because the juice isn't worth the squeeze.


Periodically I clean up my cabling including pulling out all the "cables to nowhere" that seem to accumulate over time.

My stereo system is worse. I periodically look at the rats nest of wiring and cables in the back--at least some of it to components that aren't in the rack any more--thinking to do something about it. But I then lie down until the feeling goes away. I know I would break stuff and it will end up being a tedious multiday project to get everything working again without much real benefit.


I definitely feel that. Buying a 3D printer helped a lot with this, for me (and also building custom furniture with the aforementioned cable tracks). I've been able to (for not a lot of money) print raceways and cable ports that keeps my basement rack a lot easier to deal with.


My stereo system is also in a little "TV room." So I don't feel any particular urgency in making it presentable for company. :-)


Also most USB cables I buy these days seem to have a lifespan of 1-2 years before something disconnects somewhere and it needs to be replaced or soldered if you’re patient enough


I don't know if you've heard of DIY Perks, but it sounds like you'd love their style: https://www.youtube.com/watch?v=Perqf0dOGLk


I can empathize with the “friends” part.

When I was in college, I was either studying or running around with friends. The only time I mindlessly scrolled on my phone was when I ate alone in the cafeteria.

Hanging out with close friends, I hardly felt any urge to use my phone. I really miss that.


I love mentoring engineers. It’s been my job for the past 5 years.

But after some introspection, I’ve realized that I love teaching _smart_ people, or at least, people that are engaged and want to learn.

I can’t imagine being a traditional teacher, and having to teach kids that don’t care.

As a side note, some of the sharpest engineers I’ve mentored are interns. Maybe my company is exceptionally good at hiring interns. I swear, it’s been like that for the last 5-6 interns I’ve worked with.


When you’re in intern the meat grinder hasn’t ate you up, yet. Everything is new and exciting. The longer I’ve been in my career the less motivation and the more discipline gets me through learning new technologies.


“I can’t imagine being a traditional teacher, and having to teach kids that don’t care.”

What I’ve seen is igniting that spark and moving folks from not caring to caring (or realizing they can affect change) can be even more rewarding than the other mentoring being discussed


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: