Kernel vs process memory layout Updated +Created
The Linux Kernel reserves two zones of virtual memory:
  • one for kernel memory
  • one for programs
The exact split is configured by CONFIG_VMSPLIT_.... By default:
  • on 32-bit:
    • the bottom 3/4 is program space: 00000000 to BFFFFFFF
    • the top 1/4 is kernel memory: C0000000 to FFFFFFFF, like this:
      ------------------ FFFFFFFF
      Kernel
      ------------------ C0000000
      ------------------ BFFFFFFF
      
      
      Process
      
      
      ------------------ 00000000
  • on 64-bit: currently only 48-bits are actually used, split into two equally sized disjoint spaces. The Linux kernel just assigns:
    • the bottom part to processes 00000000 00000000 to 008FFFFF FFFFFFFF
    • the top part to the kernel: FFFF8000 00000000 to FFFFFFFF FFFFFFFF, like this:
      ------------------ FFFFFFFF
      Kernel
      ------------------ C0000000
      
      
      (not addressable)
      
      
      ------------------ BFFFFFFF
      Process
      ------------------ 00000000
Kernel memory is also paged.
E. Coli K-12 MG1655 operon thrLABC Updated +Created
We can find it by searching for the species in the BioCyc promoter database. This leads to: biocyc.org/group?id=:ALL-PROMOTERS&orgid=ECOLI.
By finding the first operon by position we reach: biocyc.org/ECOLI/NEW-IMAGE?object=TU0-42486.
That page lists several components of the promoter, which we should try to understand!
After the first gene in the codon, thrL, there is a rho-independent termination. By comparing:we understand that the presence of threonine or isoleucine variants, L-threonyl and L-isoleucyl, makes the rho-independent termination become more efficient, so the control loop is quite direct! Not sure why it cares about isoleucine as well though.
TODO which factor is actually specific to that DNA region?
Hell Updated +Created
Group of Lie type Updated +Created
In the classification of finite simple groups, groups of Lie type are a set of infinite families of simple lie groups. These are the other infinite families besides te cyclic groups and alternating groups.
A decent list at: en.wikipedia.org/wiki/List_of_finite_simple_groups, en.wikipedia.org/wiki/Group_of_Lie_type is just too unclear. The groups of Lie type can be subdivided into:
The first in this family discovered were a subset of the Chevalley groups by Galois: , so it might be a good first one to try and understand what it looks like.
TODO understand intuitively why they are called of Lie type. Their names , seem to correspond to the members of the classification of simple Lie groups which are also named like that.
But they are of course related to Lie groups, and as suggested at Video "Yang-Mills 1 by David Metzler (2011)" part 2, the continuity actually simplifies things.
Hermitian matrix Updated +Created
Heroku Updated +Created
This feels good.
One problem though is that Heroku is very opinionated, a likely like other PaaSes. So if you are trying something that is slightly off the mos common use case, you might be fucked.
Another problem with Heroku is that it is extremely difficult to debug a build that is broken on Heroku but not locally. We needed a way to be able to drop into a shell in the middle of build in case of failure. Otherwise it is impossible.
Deployment:
git push heroku HEAD:master
View stdout logs:
heroku logs --tail
PostgreSQL database, it seems to be delegated to AWS. How to browse database: stackoverflow.com/questions/20410873/how-can-i-browse-my-heroku-database
heroku pg:psql
Drop and recreate database:
heroku pg:reset --confirm <app-name>
All tables are destroyed.
Restart app:
heroku restart
B Reactor Updated +Created
Reactor of the Hanford site of the produced the plutonium used for Trinity and Fat Man.
This was the first full scale nuclear reactor in the world, and was brought up slowly to test it out.
Video 1.
Hanford B Reactor tour by Studio McGraw
. Source. 2016.
How the K-ary tree is used in x86 Updated +Created
x86's multi-level paging scheme uses a 2 level K-ary tree with 2^10 bits on each level.
Addresses are now split as:
| directory (10 bits) | table (10 bits) | offset (12 bits) |
Then:
  • the top 10 bits are used to walk the top level of the K-ary tree (level0)
    The top table is called a "directory of page tables".
    cr3 now points to the location on RAM of the page directory of the current process instead of page tables.
    Page directory entries are very similar to page table entries except that they point to the physical addresses of page tables instead of physical addresses of pages.
    Each directory entry also takes up 4 bytes, just like page entries, so that makes 4 KiB per process minimum.
    Page directory entries also contain a valid flag: if invalid, the OS does not allocate a page table for that entry, and saves memory.
    Each process has one and only one page directory associated to it (and pointed to by cr3), so it will contain at least 2^10 = 1K page directory entries, much better than the minimum 1M entries required on a single-level scheme.
  • the next 10 bits are used to walk the second level of the K-ary tree (level1)
    Second level entries are also called page tables like the single level scheme.
    Page tables are only allocated only as needed by the OS.
    Each page table has only 2^10 = 1K page table entries instead of 2^20 for the single paging scheme.
    Each process can now have up to 2^10 page tables instead of 2^20 for the single paging scheme.
  • the offset is again not used for translation, it only gives the offset within a page
One reason for using 10 bits on the first two levels (and not, say, 12 | 8 | 12 ) is that each Page Table entry is 4 bytes long. Then the 2^10 entries of Page directories and Page Tables will fit nicely into 4Kb pages. This means that it faster and simpler to allocate and deallocate pages for that purpose.
C7.4 Oxford physics course Updated +Created
Interesting presentation cycle at Merton BTW: www.arturekert.org/teaching/merton
Artur looks like a cool teacher.
Cataclysm DDA save scum Updated +Created
Tested as of Cataclysm: Dark Days Ahead 0.E-3-1, seems possible built-in:
  • Disable autosave on settings
  • Quisave (Esc + 9)
  • To restore the save, just close the game window directly before clicking Yes or No on the "Watch the last moments of your life" dialog.
A less risky save scum can be achieved with rsync:
rsync -av ~/.local/share/cataclysm-dda/save/ ~/.local/share/cataclysm-dda/save.bak/
and after you die:
rsync -av ~/.local/share/cataclysm-dda/save.bak/ ~/.local/share/cataclysm-dda/save/
Cambridge Quantum Computing Updated +Created
In 2015, they got a 50 million investment from Grupo Arcano, led by Alberto Chang-Rajii, who is a really shady character who fled from justice for 2 years:Merged into Quantinuum later on in 2021.
Page faults Updated +Created
What if Process 1 tries to access 0x00003000, which is not present?
The hardware notifies the software via a Page Fault Exception.
When an exception happens, the CPU jumps to an address that the OS had previously registered as the fault handler. This is usually done at boot time by the OS.
This could happen for example due to a programming error:
int *is = malloc(1);
is[2] = 1;
but there are cases where it is not a bug, for example in Linux when:
  • the program wants to increase its stack.
    It just tries to accesses a certain byte in a given possible range, and if the OS is happy it adds that page to the process address space, otherwise, it sends a signal to the process.
  • the page was swapped to disk.
    The OS will need to do some work behind the processes back to get the page back into RAM.
    The OS can discover that this is the case based on the contents of the rest of the page table entry, since if the present flag is clear, the other entries of the page table entry are completely left for the OS to to what it wants.
    On Linux for example, when present = 0:
    • if all the fields of the page table entry are 0, invalid address.
    • else, the page has been swapped to disk, and the actual values of those fields encode the position of the page on the disk.
In any case, the OS needs to know which address generated the Page Fault to be able to deal with the problem. This is why the nice IA32 developers set the value of cr2 to that address whenever a Page Fault occurs. The exception handler can then just look into cr2 to get the address.
Basic TLB operation Updated +Created
After a translation between linear and physical address happens, it is stored on the TLB. For example, a 4 entry TLB starts in the following state:
  valid  linear  physical
  -----  ------  --------
> 0      00000   00000
  0      00000   00000
  0      00000   00000
  0      00000   00000
The > indicates the current entry to be replaced.
And after a page linear address 00003 is translated to a physical address 00005, the TLB becomes:
  valid  linear  physical
  -----  ------  --------
  1      00003   00005
> 0      00000   00000
  0      00000   00000
  0      00000   00000
and after a second translation of 00007 to 00009 it becomes:
  valid  linear  physical
  -----  ------  --------
  1      00003   00005
  1      00007   00009
> 0      00000   00000
  0      00000   00000
Now if 00003 needs to be translated again, hardware first looks up the TLB and finds out its address with a single RAM access 00003 --> 00005.
Of course, 00000 is not on the TLB since no valid entry contains 00000 as a key.
Cavity magnetron Updated +Created
Apparently, DC current comes in, and microwaves come out.
TODO: sample power efficiently of this conversion and output spectrum of this conversion on some cheap device we can buy today.
Video 1.
Magnetron, How does it work? by Lesics (2020)
Source.
Video 2.
Device that Won WW2 by Curious Droid
. Source.
L-Amino acid Updated +Created
The common ones.
Large Magellanic Cloud Updated +Created
One of the brightest natural objects in the sky, and by far the brightest not in the Milky Way! This is partly because it is relatively close to us.
How can I be as great by Justine Musk Updated +Created
www.quora.com/How-can-I-be-as-great-as-Bill-Gates-Steve-Jobs-Elon-Musk-or-Sir-Richard-Branson/answer/Justine-Musk is a fantastic ansewr by Justine Musk, Elon Musk's ex-fife, to the question:
How can I be as great as Bill Gates, Steve Jobs, Elon Musk or Sir Richard Branson?
One of her key thesis is Many successful people are neurodiverse:
These people tend to be freaks and misfits who were forced to experience the world in an unusually challenging way. They developed strategies to survive, and as they grow older they find ways to apply these strategies to other things, and create for themselves a distinct and powerful advantage. They don't think the way other people think. They see things from angles that unlock new ideas and insights. Other people consider them to be somewhat insane.
Largest known ranks of an elliptic curve over the rational numbers Updated +Created
web.math.pmf.unizg.hr/~duje/tors/rankhist.html gives a list with Elkies (2006) on top with:
TODO why this non standard formulation?

There are unlisted articles, also show them or only show them.