Hacker Newsnew | past | comments | ask | show | jobs | submit | kaik's commentslogin

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…


> finding it might not be…

Valgrind memcheck is your friend.


also asan.


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.


I completely agree.

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.


Is linear regression AI? How about logistic regression? Many people would consider the latter to be ML/AI while the former statistics.

Ultimately, I think the distinction is pretty meaningless.


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.


Sadly, it's not uniquely useful for that either.

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.

Or I can buy a breakout board that does the same thing for $7.00 for 2 rather than $50 per cable like Tag-Connect: https://www.pcbway.com/project/gifts_detail/PogoProg_Model_D...

.100" headers are hard to beat for general effectiveness.


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.


What are locking headers?


A 'header' is a board-to-board or wire-to-board connector:

https://www.digikey.com/product-detail/en/w-rth-elektronik/6...

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.

Here is a locking header:

https://www.digikey.com/product-detail/en/molex/0022232041/W...

If you scroll down to 'mating products' you can find wire-to-board connectors designed to mate with it.


This is a fantastic story. I'm so happy to hear that it worked for you!! Thanks for sharing!


I think this is fantastic. Awesome work. Looking forward to seeing the missing chapters!


That's the first thing I noticed and it made me laugh pretty hard. Such nice editing software haha.


This is sooo cool! Thanks for sharing!!


For some reason, not being a native English speaker I thought this referred to the Baltimore Ravens, and not to the animal of the same name...


Even worse, Raven's is an intelligence test.

https://en.wikipedia.org/wiki/Raven%27s_Progressive_Matrices


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.

Here is a graphic of the spectrum available in the US: https://www.ntia.doc.gov/files/ntia/publications/2003-alloch...



Awesome. Thank you. I didn't realize they had a new version of the chart out now.


Nice graph! Thanks!


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?

[1]http://alcalde.texasexes.org/2012/06/ut-demo-reveals-drones-...


Definitely illegal.


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

Search: