I kid you not, I spent a full working day debugging this exact same issue (taking a pointer to a vector element, before adding more elements).
Very obvious if you understand how C++ and vectors work, yet it took me forever to realize, and it was miserable…
Heh, you can run into this even if you understand how iterator invalidation works. Once you see the bug it's easy to understand, but finding it might not be…
SMT, SAT, etc are absolutely AI. In fact, Machine Learning is just another field inside AI (albeit a famous and successful one).
As someone that got his PhD doing his research in "classical" AI, it's surprising that nowadays most people think that AI is just machine learning.
+1. I am always surprised that they used to do (and of course still must do) proper full-on formal verification of e.g. train track scheduling systems, so train accidents, and consequently 100s of deaths don't just happen because "sorry for the bug, ver 1.2 fixes it" -- but people are happy to sit into a Tesla going at 120km/h and allow a well-tested, but not formally verified deep learning system to make decisions. BTW, I know it's not formally verified, because formally verifying deep learning systems is a currently very much unsolved problem for anything but toy examples.
Hot take: If SMT, SAT are too simple to be given the coveted badge of AI, then Machine learning should be called as glorified curve-fitting?
I feel that everyone is amazed by the results provided by the good examples of Machine Learning, as only those get popular. The spectacular failures and completely absurd results which reveal that ML is not having any semantic understanding of the problem are completely glossed over.
The vast majority of international MIT students are graduate students. Except for business students (i.e. MBA, executive MBA and similar), graduate students in research programs do not pay a dime to MIT. Their tuition + stipend for living expenses is paid by research or TA fellowships. I.e. they either work as either research or teaching assistants to receive this money. MIT receives part of the fellowship money as an "overhead" tax, but this is exactly what happens for domestic graduate students.
Notably, in the case of MIT these fellowships are provided to both M.S. and PhD students. I believe that Stanford M.S. students do not get such fellowships and hence need to pay for their tuition.
Source: got my PhD at MIT as an international F1 student.
That’s just direct economic analysis. Graduate students are incredibly valuable to the universities because they generate research which can be used to either directly apply for grants and federal/commercial awards, or which can be used to just add to the university’s reputation (which, in turn, affects their chances of getting a grant or money award, as they have a reputation of expertise). Even if the direct money being paid by these students is zero, I’m sure all universities (not just MIT and Harvard) care deeply about where their graduate students go; that’s a lot of good grey matter going to waste, and universities are in the business of converting grey matter directly into money!
This. I would also love to know what connectors I should use for my hobby projects.
I’m also designing my first PCB board and something as simple as choosing connectors is daunting...
Through-hole .100 headers. Always. Unless you have a REALLY good reason otherwise. (weatherproofing, signal integrity, compatibility with existing solution, etc.)
First, if you have a small number of pins (up to about 4-6), a 2x2 or 2x3 .100 header isn't that much larger than any alternative. Compare this: https://www.tag-connect.com/product/tc2030-fp-footprint to a 2x2 of .100 headers. It's actually bigger, and now you need a special cable instead of that bag of .100" jumper wires you have.
If you have something like 20 genuinely used pins (not 6 active and 14 unused), okay, you may need a different connector. But are you really sure about this? 20 pins communicating simultaneously has signal integrity needs and small connectors have WAY more coupling than .100" spacing.
Second, through-hole is always way more stable than no-through hole. Once you give your smaller pitch connector through holes, is it really smaller than .100"?
Third, manufacturers have no problems with .100" headers. Smaller pitches may increase the cost of your board. Try costing out a board that can mount and route a modern USB-C connector which has both surface mount and through-hole at small pitch. You're probably going to get a cost bump.
Fourth, you can buy really long .100" headers which allow you to conect to them and put a scope probe underneath. That's really convenient for debugging.
So, go through-hole .100" header until you've got a good reason otherwise.
Good advice, except for debugging (SWD). For that I would definitely go with Tag-Connect (see my article at https://partsbox.io/blog/choosing-a-debug-programming-connec...). Main reasons: 1) my boards are space-limited, 2) I really enjoy using a single debug connector for all my boards (and many third-party boards as well), 3) I really like the idea of having a debug connector that costs $0 on the board.
As for other connectors: for Li-Ion batteries I use JST-PH connectors, standardizing on the pinout used by AdaFruit for batteries they sell.
For any custom "future extension" type connectors with I2C or SPI: 0.1" header holes. I can use them to either solder wires or place pin headers if needed.
I agree overall but that's a weird comparison with the tag connect. It's not meant to be small, it's meant to avoid soldering a header down to the target board for programming. It's useful for Z-height or cost savings, not for XY savings.
I can solder a set of pins (or pogo pins) on a .100 spacing and mate into the .100 header holes. Or I can offset the .100 holes very slightly so they friction grab a .100 2x2 male header in the holes.
I have a bunch of male and female header and wires, but now I'm looking at whether to buy right-angle header because I will have a couple of boards that are close together and having straight-up pins on the bottom board gets awkward.
Then I start looking into various kinds of connectors, and wonder if I'm overthinking it.
If it's your first project, stick with common 0.1" headers unless you need something very specific (small, high pin count, etc). You can buy locking versions if needed.
This is the type of connector most commonly used in hobby electronics, such as on the Arduino and Raspberry Pi. 0.1" is the 'pitch', the distance between pins. I picked a 1x4 (meaning <rows> x <pins> or <rows> x <pins per row>) version, but they come in many different pin and row counts.
The version above is very simple, just bare pins that would get soldered to a PCB. There are many that come with additional 'features' that could be useful. For instance, you could get a locking header that has a tab to retain the connection against vibration or tugging. Or you can get a key or shroud that forces the connector to be inserted in the correct orientation. They also come in versions that support soldering directly to a PCB, vertically or at a right angle, or connecting to wires directly.
Honest question, I assume playing with this is completely illegal in the US??
I guess you can get in real trouble if you are catched faking GPS signals? Does anyone know what are the regulations for something like this?
The FCC rules for Amateur radio which is defined in Part 97 clearly states that an amateur may not disrupt radio location services. The frequency for the GPS Signals, high UHF is not close to any privileges available, amateur operators included. In short, don't do this unless you're testing / putting out very low power. Better yet, get an RF enclosure.
The FCC would have absolutely no problem at all throwing around at least 5-digit fines for doing these things.
Beyond that, though, GPS is still considered military technology. The state department could very well come after you for exporting military tech were you to even make a blog post about it while based-in or having any ties to the US. They really don't fuck around with this stuff.
I got to play with a real GPS simulator a few years back for a school project (visiting the local defense contractor to verify some equipment) the narrow part of which was testing an unlocked (height and velocity restrictions disabled) GPS receiver as it would work in LEO.
You can get a Part 5 experimental license, although a likely condition of getting such a license would be taking steps to ensure that your work doesn't interfere with devices outside of a small designated test area. Alternatively, you can do all the GPS experimentation you want inside of a shielded chamber without asking permission from anyone.
Yes, very illegal. Which makes me remember to ask: how did Todd Humphreys get permission to transmit a spoofed signal [1] in the middle of a thriving metropolis, within a couple of miles of an airport?