Started in 1987 and written in Pascal, by the French from Pierre and Marie Curie University, the French are really strong in numerical analysis.
Ciro wasn't expecting it to be as old. Ported to C++ in 1992.
The fact that French wrote it can be seen in the documentation, for example doc.freefem.org/tutorials/index.html uses file extension
mycode.edp
instead of mycode.pde
where dep
stands for "Équation aux dérivées partielles".Besides the painful build, using FreeFem is relatively simple, as can be seen from the examples on the website.
They do use a domain-specific language on the examples, which appears to be the main/only interface, which is a bad thing, Ciro would rather have a Python API as the "main API", which is more the approach taken by the FEniCS Project, but so be it. This domain-specific language business means that you always stumble upon basic stuff you want to do but can't, and then you have to think about how to share data between the simulation and the plotting. The plotting notably is super complex and they can't implement all of what people want, upstream examples often offload that to gnuplot. This is potentially a big advantage of FEniCS Project.
It nice though that they do have some graphics out of the box, as that allows to quickly debug common problems.
Uses variational formulation of a partial differential equation, which is not immediately obvious to beginners? The introduction doc.freefem.org/tutorials/poisson.html gives an ultra quick example, but your are mostly on your own with that.
On Ubuntu 20.04, the
freefem
is a bit out-of-date (3.5.8, there isn't even a tag for that in the GitHub repo, and refs/tags/release_3_10 is from 2010!) and fails to run the examples from the website. It did work with the example package though, but the output does not have color, which makes me sad :-)sudo apt install freefem freefem-examples
freefem /usr/share/doc/freefem-examples/heat.pde
So let's just compile the latest v4.6 it from source, on Ubuntu 20.04:
sudo apt build-dep freefem
git clone https://github.com/FreeFem/FreeFem-sources
cd FreeFem-sources
# Post v4.6 with some fixes.
git checkout 3df0e2370d9752801ac744b11307b14e16743a44
# Won't apply automatically due to tab hell.
# https://superuser.com/questions/607410/how-to-copy-paste-tab-characters-via-the-clipboard-into-terminal-session-on-gnom
git apply <<'EOS'
diff --git a/3rdparty/ff-petsc/Makefile b/3rdparty/ff-petsc/Makefile
index dc62ab06..13cd3253 100644
--- a/3rdparty/ff-petsc/Makefile
+++ b/3rdparty/ff-petsc/Makefile
@@ -204,7 +204,7 @@ $(SRCDIR)/tag-make-real:$(SRCDIR)/tag-conf-real
$(SRCDIR)/tag-install-real :$(SRCDIR)/tag-make-real
cd $(SRCDIR) && $(MAKE) PETSC_DIR=$(PETSC_DIR) PETSC_ARCH=fr install
-test -x "`type -p otool`" && make changer
- cd $(SRCDIR) && $(MAKE) PETSC_DIR=$(PETSC_DIR) PETSC_ARCH=fr check
+ #cd $(SRCDIR) && $(MAKE) PETSC_DIR=$(PETSC_DIR) PETSC_ARCH=fr check
test -e $(DIR_INSTALL_REAL)/include/petsc.h
test -e $(DIR_INSTALL_REAL)/lib/petsc/conf/petscvariables
touch $@
@@ -293,7 +293,6 @@ $(SRCDIR)/tag-tar:$(PACKAGE)
-tar xzf $(PACKAGE)
patch -p1 < petsc-hpddm.patch
ifeq ($(WIN32DLLTARGET),)
- patch -p1 < petsc-metis.patch
endif
touch $@
$(PACKAGE):
EOS
autoreconf -i
./configure --enable-download --enable-optim --prefix="$(pwd)/../FreeFem-install"
./3rdparty/getall -a
cd 3rdparty/ff-petsc
make petsc-slepc
cd -
./reconfigure
make -j`nproc`
make install
cd ../FreeFem-install
PATH="${PATH}:$(pwd)/bin" ./bin/FreeFem++ ../FreeFem-sources/examples/tutorial/
Ciro's initial build experience was a bit painful, possibly because it was done on a relatively new Ubuntu 20.04 as of June 2020, but in the end it worked: github.com/FreeFem/FreeFem-sources/issues/141
The main/only dependency appears to be PETSc which is used by default, which is a good sign, as that library appears to automatically parallelize a single input to several backends (single CPU, MPI, GPU) so you know things will scale up as you reach simulations.
The problem is that it compiling such a complex dependency opens up much more room for hard to solve compilation errors, and takes a lot more time.
This is the most extreme and final form of Peer tutoring, it's natural final consequence given the Internet Age.
Section type:
sh_type == SHT_STRTAB
.Common name: "section header string table".
The section name
.shstrtab
is reserved. The standard says:This section holds section names.
This section gets pointed to by the
e_shstrnd
field of the ELF header itself.String indexes of this section are are pointed to by the
sh_name
field of section headers, which denote strings.This section does not have outputs:
SHF_ALLOC
marked, so it will not appear on the executing program.readelf -x .shstrtab hello_world.o
Hex dump of section '.shstrtab':
0x00000000 002e6461 7461002e 74657874 002e7368 ..data..text..sh
0x00000010 73747274 6162002e 73796d74 6162002e strtab..symtab..
0x00000020 73747274 6162002e 72656c61 2e746578 strtab..rela.tex
0x00000030 7400 t.
The data in this section has a fixed format: www.sco.com/developers/gabi/2003-12-17/ch4.strtab.html
If we look at the names of other sections, we see that they all contain numbers, e.g. the
.text
section is number 7
.Then each string ends when the first NUL character is found, e.g. character
12
is \0
just after .text\0
.Ciro Santilli is against affirmative action university entry quotas that reserve spaces e.g. for students from discriminated races or poor families. Instead, he believes that affirmative action should take place on earlier stages of education as described at: free gifted education.
Notably, Brazil has implemented a very heavy university entry quota system after Ciro had left university there: www.bbc.co.uk/news/business-23862676
This is of course easy for a white male from a privileged background to say, and infinite debate has already been had on this matter, but here goes again.
First, in defense to the personal attack, Ciro raises the fact that he has dedicated large chunks (all?) of his life to open source software and knowledge in general, which Ciro believes is the only way to actually make the world fairer to poor countries. His money (time) is where his mouth is.
One good argument in favor of the Brazilian quota system, is that the kids who enter university because of quotas do just as well as those who don't.
Ciro has actually believes that this is possible, and offers the following possible explanation: most of pre-university knowledge is useless, and university selection system is crap, and Ciro wants to destroy it with a system in which anyone can learn university stuff from home.
Both the top end of the quota and non-quota kids are basically equally capable of doing useful stuff therefore.
Only a tiny fraction of what you learn in high school is useful for university or your career.
And possibly more importantly than knowledge, Ciro saw many of his colleagues (basically all of which were from relatively privileged backgrounds) "do badly" in university, because of lack of motivation, because they had chosen a course only to find that they were not interested in it because the existing high school educational system is crap and does not help them find what they love and because it costs you several years of your life to change your choice in most universities (long live École Polytechnique).
Maybe the fact that poor kids know that they are fucked if they fail, and so they have to succeed at any cost, might also help with motivation. Which is a terrible terrible thing, because only those who have to leeway to take risks end up taking them and making the the next big thing.
Ciro believes instead that only once kids have learnt university level stuff in their area of interest for free on the Internet should they go through selection based on that specific and much more concentrated useful knowledge.
And this competition must only be used to distribute resources which you can't learn from fucking computers:
- laboratories. Actually, one of Ciro's most important advices to kids nowadays is: when in doubt, choose the course that has the most experimental work
- one to one mentorship on advanced master thesis/PhD level projects
Once this point knowledge is reached however, it starts to become unclear if a single "everyone takes the same test to avoid discrimination" test is feasible anymore, and we start entering the much more relevant (and potentially discriminatory) "I am a teacher trying to advance the state of the art, and I need a person mildly skilled in the art to do some slave labor for me", which is PhDs selection work.
If quota are in place, what will happen is that parents of the rich kids will start investing less in education, and possibly just put their kids in high schools, and do home schooling instead. This would therefore reduce the total investments the country makes in education!
Outside of the obvious technical evolution proposed, Ciro is a huge proponent of free gifted education. Or closely related, creating scholarships that focus on poor students. The entry requirements should be the same, but once you qualify, everyone should have enough money to lead a decent life during their studies.
Then let those kids pass exactly the same university entry exams, and watch them crush the average privileged kids.
This advice is similar to what is mentioned at: what poor countries have to do to get richer. When you don't have money to do everything, you must select a few good bets and focus on them. You can't pay a lot to every public school teacher, so you must select a few select places that need it the most. As those smart bets pay off, you start to have more and more money to expand the system further.
For an example with context, have a look at E. Coli K-12 MG1655 and the second protein of the genome, e. Coli K-12 MG1655 gene thrA.
Nope, it is not a Greek letter, notably it is not a lowercase delta. It is just some random made up symbol that looks like a letter D. Which is of course derived from delta, which is why it is all so damn confusing.
I think the symbol is usually just read as "D" as in "d f d x" for .
UniProt for example describes YaaX as "Uncharacterized protein YaaX".
As function is discovered, they then change it to a better name, e.g. to names such as the E. Coli K-12 MG1655 transcription unit thrLABC proteins all of which have a clear name due to threonine.
There are many other
y???
as of 2021! Though they do tend to be smaller molecules.Founding CEO of Oxford Quantum Circuits.
As mentioned at www.investmentmonitor.ai/tech/innovation/in-conversation-with-oxford-quantum-circuits-ilana-wisby she is not the original tech person:Did they mean Oxford Sciences Enterprises? There's nothing called "Oxford Science and Innovation" on Google. Yes, it is just a typo oxfordscienceenterprises.com/news/meet-the-founder-ilana-wisby-ceo-of-oxford-quantum-circuits/ says it clearly:
she was finally headhunted by Oxford Science and Innovation to become the founding CEO of OQC. The company was spun out of Oxford University's physics department in 2017, at which point Wisby was handed "a laptop and a patent".
I was headhunted by Oxford Sciences Enterprises to be the founding CEO of OQC.
oxfordquantumcircuits.com/story mentions that the core patent was by Dr. Peter Leek: www.linkedin.com/in/peter-leek-00954b62/
Unlisted articles are being shown, click here to show only listed articles.