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


> This is a complete fabrication and lie. As bad as it gets. Iran never said it is going to wipe another country. What they said is explained clearly in detail here [1].

It's not, Iran has been saying it very publicly:

https://www.theguardian.com/world/2005/oct/27/israel.iran

https://en.radiofarda.com/a/iran-general-salami-threatens-to...

you should be able to read Farsi, so check these 2 example out of many:

https://cdn.yjc.ir/files/fa/news/1396/4/5/6417989_951.jpg

https://newsmedia.tasnimnews.com/Tasnim/Uploaded/Image/1396/...

https://www.google.com/search?q=%D8%B1%D9%88%D8%B2%D8%B4%D9%...

These photos show the counters installed in every city in Iran, counting down how many down days left to destroy Israel. eg wipe it off the map.


If the most powerful actor in Iran is proposing a peaceful referendum, wouldn't you agree that this is some very mixed messaging then?

https://www.tehrantimes.com/news/424343/Ayatollah-Khamenei-R...


UPDATE: spelling.


There are more then a million Israeli Arabs who enjoy full citizenship rights. I fact, they enjoy more rights then the average Israeli, being able to enter West Bank freely.


> I fact, they enjoy more rights then the average Israeli, being able to enter West Bank freely.

I wouldn't go that far. Yes, Israeli Arabs technically have full rights. Yes, technically speaking they might be able to go to places non-Arabs "can't".

But that's being really "technically correct". I think for day-to-day living, Israeli Arabs effectively have a worse time living in Israeli than Israeli Jews (e.g. there is at least some racism, unfortunately, there are certainly differences in funding in e.g. Arab schools vs Jewish schools from what I know, etc).


Update: Spelling


I usually hear this what-aboutism argument from the people who benefit from current undemocratic regime.

If another country did/do something wrong, that doesn't justify Iran's actions. everyone is responsible for their own action and the reality is current Iranian regime has killed many thousands of it's own citizens.

Iran shutting the plane down and denying for 3 days is not justifiable by any means.

out of curiosity, what is your opinion on 1500 protesters who died during 2019-2020 protests? https://en.wikipedia.org/wiki/2019%E2%80%932020_Iranian_prot...

should we ignore this too because Israel also killed bunch of people?


UPDATE: spelling.


> It is ironic how the number decreased from 1500 to 300 in recent report

even if a single person dies, that matters.

toning it down to 300 doesn't make it look better. each one of them is a human who was killed by Iranian regime.

here is Reuters confirming that number https://www.reuters.com/article/us-iran-protests-specialrepo...


As Iranian I cannot agree with you more. Same goes with Iran. Western mainstream media has become as corrupt as it gets!


Iran a free country? What about women rights? Something very basic you are still missing...


Keep drinking the Kool-Aid!


Very interesting comment. Can you elaborate a little bit more about Xi's ideas? And when would decoupling achieved? By that China is self sufficient?


All I did was read a translation[0] of his speech. But one thing that stood out was the singular goal - of making that reality happen.

[0]: https://palladiummag.com/2019/05/31/xi-jinping-in-translatio...


Very interesting project. Sorry for my ignorance though, where in the industry something like this might be useful?


State machines are a great way to control defects by producing states which are only able to mutate in certain specific pre-defined ways

The defacto example is usually a traffic light. Green is permitted to transition to yellow, but never to red; a state machine makes a bug of that form impossible

Obviously, it's nominally used for more complex stuff, but in general, all of your appliances are state machines. Your microwave especially.


Can you elaborate more on this?


ROS stands for Robotic Operating System. It is a framework of different tools such as an abstraction layer, libraries, and a package manager that makes it easier to program/interface with different robotic systems/components. It basically simplifies a lot of work that you would be doing on your own. While it is extremely useful, it also has some flaws. For example, it is bloated, can be tricky to configure, and can be sometimes difficult in making it do what you want it to.


It's an absolute mess of a software, to get running and if you're not paying attention you'll install 15+GB of packages you won't need.

I've helped some friends with c++ assignments during college and with ROS they had to have dozens of terminal windows open running some command just to get things working.


It's a shame that ROS is getting this sort of reputation. It has it's merits, and is used by most robotics applications I have seen.

It is akin to the python ecosystem, where there is A LOT of good software and packages out there, but there is also A LOT of garbage out there.

The community is nice and supportive, and the framework has really matured recently, with ROS1 being "complete" and ROS2 getting off the ground with a lot of mature features like DDS


This might be a dumb question, but why is it way lighter than the US or anywhere in the world? Why do they need to install so many towers? Is there anything specific about Europe's geography that requires European countries to install that much tower?


I think technology differences play a factor.

CDMA gets longer range than 3/4G, so it's useable in a sparse network so long as it's not trying to service too many people at the same time. I'm guessing the US launched lots of CDMA infrastructure back when it wasn't considered obsolete by most of the world, and hasn't upgraded it's rural cellular networks.

Australia set down all it's "legacy" CDMA stuff over a decade ago, which makes the large dark patches that cover lots of the continent very under-served.


Europe is much more "dense" and many obstacles therefore requiring more towers to cover the same surface area.


Population density is significantly higher in Europe than in the US.


You can serve only so many phones and handle only so much bandwidth from a single cell tower. So they reduce cell sizes and install more towers to keep devices per cell down.


Let me ask another question,

how do we evaluate the accuracy of a model?

Thank you for your time.


Evaluating the accuracy of a model is an unsolved problem with both formal and informal approaches.

Formally: we could ask multiple separate model/proof assistants to generate separate models from the same underlying specification, and then attempt to find discrepancies between their predicted results. This really just punts the responsibility: now we're relying on the accuracy of the abstract specification, rather than the model(s) automatically or manually produced from it. It's also not sound; it just allows us to feel more confident.

Informally: we can have a lot of different people look at the model very closely, and produce test vectors for the model based on human predictions of behavior.


Thank you. Is there any way to statistically evaluate a model? Something like testing a model.


You could generate a set of random vectors that span the entire input space, exercise the system with those vectors, and publish some sort of "accuracy" (e.g. generate random vectors through i.i.d. uniform R.V.s over the input space, evaluate f(input), and use the successes in a hierarchical binomial distribution). Remember that most of the time we try to verify programs by building a model to model _edge cases_; after all the "happy path" of the program is simple to test. Edge cases are, by their nature, rare occurrences. As a trivial example, think of a boolean function f(x, y) = x & y. f evaluates to 0 for every value of (x, y) except (1, 1). If we were to create a model of this function, f_model = 0, f_model would appear to evaluate similarly to f 75% of the time. With a sufficiently large input state space, it would be quite feasible to hide essential edge cases in very small tail probabilities (e.g. < 99.5%).


Is there any introductory course for these kind of stuff?


https://sat-smt.codes/main.html is a good introduction to applying SMT to many kinds of problems.

https://rise4fun.com/ for all sorts of examples of what these sorts of algorithms can solve.

https://www.coursera.org/learn/discrete-optimization is a good introduction to constraint optimization, local search, linear programming, and mixed integer programming.


I’m just starting to investigate using formal analysis in practice and I think a much more practical topic is the symbolic execution frameworks which can analyze programs and feed them to theorem solvers like Z3.

The most useful and accessible symbolic execution package I’ve found so far is KLEE https://klee.github.io/

If anyone else has recommendations for tools or beginner material I’m all ears!


There's some nice literature. I got into the field 15 years ago and there were practically no good textbooks. Things are way better now: https://avigad.github.io/formal_methods_in_education/

Nielson & Nielson have the standard textbook in static program analysis that is used everywhere. But it's quite unfriendly as it's written using abstract algebra. They've recently released two textbooks that are much gentler. Actually, I'd say they are easy going and fun but still retain all the mathematical rigor.

They use program graphs, which are a bit less general but a lot easier to digest. They cover all major techniques, including theorem proving, static analysis, model checking, abstract interpretation, type and effect systems, etc:

- Formal Methods: An Appetizer https://www.springer.com/gp/book/9783030051556

- Program Analysis: An Appetizer https://arxiv.org/abs/2012.10086

There's also a companion website with some F# code. The second book, which seems still unfinished discusses how to implement program analyses using datalog. This speeds up development quite a lot. Otherwise, developing your own static analyzer is a lot of work.

My dream is to implement some kind of framework that enables quick DSL creation along with lightweight formal methods support to verify programs written in each DSL. I think restricted semantics is the key to make formal methods practical. Quoting Alan Perlis, "Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy."


>My dream is to implement some kind of framework that enables quick DSL creation along with lightweight formal methods support to verify programs written in each DSL.

There's work in this area using monads. Specifically, Darais (from Galois) et al show in "Abstracting Definitional Interpreters" how given a definitional interpreter you can easily create all sorts of abstractions using a stack of monad transformers. The best part of it all is that your particular chosen stack remains valid when moved between interpreters of different languages.

Your dream of varied static analysis can be achieved using monad transformers, definitional interpreters written in the required style, and Racket's DSL-creation system.


Thanks. I'm quite familiar with all the work from David Van Horn, including the paper you cited. I also think it's the way forward.


Another option: the "reversing" challenges in infosec Capture The Flag competitions regularly require you to work out which constraints a program has implemented and then plug into Z3 or Angr to find a solution, that might be a fun way to learn.


I'm giving a tutorial in a couple of days. Vids will be up later.

https://github.com/philzook58/z3_tutorial



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

Search: