Photon polarization Updated 2025-07-16
The knowledge that light is polarized precedes the knowledge of the existence of the photon, see polarization of light for the classical point of view.
The polarization state and how it can be decomposed into different modes can be well visualized with the Poincaré sphere.
One key idea about photon polarization is that it carries angular momentum. Therefore, when an electron changes orbitals in the Schrödinger equation solution for the hydrogen atom, the angular momentum (as well as energy) change is carried out by the polarization of the photon!
Video 1.
Quantum Mechanics 9b - Photon Spin and Schrodinger's Cat II by ViaScience (2013)
Source.
From the 2020/2021 Oxford physics course handbooks we can determine the following structure:
Trinity term, the third and final term of each year, contains mostly revision from the previous two terms, after which students take their final exams, which basically account for their entire grade. Trinity is therefore a very tense part of the year for the students. After that they have summer holidays, until coming back for the next year of madness.
The official external course landing page: www.ox.ac.uk/admissions/undergraduate/courses/course-listing/physics. 2021 archive: web.archive.org/web/20221208212856/https://www.ox.ac.uk/admissions/undergraduate/courses/course-listing/physics) In those pages we see the rough structure, except that it does not have the course codes "A1" etc., and some courses are missing.
At web.archive.org/web/20221229021312/https://www2.physics.ox.ac.uk/sites/default/files/2011-06-03/course_v3_pdf_80151.pdf page 11 we can see the global course structure giving the two options, 3 year BA or 4 year Oxford physics masters:
Year 1
(Prelims)
|
|
v
Year 2
(Part A)
|
+-----------+
|           |
v           v
Year 3 BA   Year 3 (MPhys)
(Part B)    (Part B)
|           |
|           |
v           v
BA          Year 4
            (Part C)
            |
            |
            v
            MPhys
Practical courses notes: www-teaching.physics.ox.ac.uk/
Year 1 Updated 2025-07-16
This is a good book. It is rather short, very direct, which is a good thing. At some points it is slightly too direct, but to a large extent it gets it right.
The main goal of the book is to basically to build the Standard Model Lagrangian from only initial symmetry considerations, notably the Poincaré group + internal symmetries.
The book doesn't really show how to extract numbers from that Lagrangian, but perhaps that can be pardoned, do one thing and do it well.
Pin header Updated 2025-07-16
These often come pre-soldered on devboards, e.g. and allow for easy access to GPIO pins. E.g. they're present on the Raspberry Pi 2.
Why would someone ever sell a devboard without them pre-soldered!
Figure 2.
Underside of a Raspberry Pi 2
. Source. At the top of this image we can clearly see how the usually pre-soldered pin header connectors go through the PCB and are soldered on both sides.
Enrico Fermi Updated 2025-07-16
Died of cancer at age 53. Ciro Santilli just can't help but speculate that it is linked to radioactivity exposure.
Paleolithic Updated 2025-07-16
This period is similar to the Quaternary, but it also includes tool usage by close relatives of humans which were not humans yet.
It ends together with the pleistocene.
Parameters of the Standard Model Updated 2025-07-16
The growing number of parameters of the Standard Model is one big source of worry for early 21st century physics, much like the growing number of particles was a worry in the beginning of the 20th (but that one was solved by 2020).
b-money Updated 2025-07-16
When taking a penalty kick in soccer, the kicker must chose left or right.
And before he kicks, the goalkeeper must also decide left or right, because there is no time to see where the ball is going.
Because the kicker is right footed however, he kicker kicks better to one side than the other. So we have four probabilities:
  • goal kick left keeper jumps left
  • goal kick right keeper jumps right
  • goal kick left keeper jumps right. Note that it is possible that this won't be a goal, even though the keeper is nowhere near the ball, as the ball might just miss the goal by a bit.
  • kick right and keeper jumps left. Analogous to above
Personal finance Updated 2025-07-16
  • the American stock market gives 10% / year, which is about 2x over 10 years. It has been the sure-fire best investment on a 10 year horizon for many decades, and should serve as your benchmark.
  • risky diversified investments (e.g. ETFs that track a market index) are basically the best investment if you can keep your money in them in the long term (10 years)
  • risky investments can gown down for a while, and you cannot take your money out then. This effectively means risk is a form of illiquidity
  • investment funds have taxes, which eat into your profit. The best investments are dumb index tracking investments (like an ETF that tracks the stock market) that are simply brainless to manage, and therefore have lowest taxes. No fund has managed to beat the market long term essentially.
  • when you are young, ideally you should invest everything into riskier higher yielding assets like stock. And as you get older, you should move part of it to less risky (and therefore more liquid, but lower yielding) assets like bonds
    The desire to buy a house however complicates this for many people.
ROW_NUMBER Updated 2025-07-16
sqlite3 ':memory:'  'WITH t (i) AS (VALUES (-1), (-1), (-2)) SELECT *, row_number() over () FROM t'
Possible output:
-1|1
-1|2
-2|3
Gives them unique IDs.
With a partition by:
sqlite3 ':memory:'  'WITH t (i) AS (VALUES (-1), (-1), (-2)) SELECT *, row_number() over ( partition by i ) FROM t'
possible output:
-2|1
-1|1
-1|2
activatedgeek/LeNet-5 run on GPU Updated 2025-07-16
By default, the setup runs on CPU only, not GPU, as could be seen by running htop. But by the magic of PyTorch, modifying the program to run on the GPU is trivial:
cat << EOF | patch
diff --git a/run.py b/run.py
index 104d363..20072d1 100644
--- a/run.py
+++ b/run.py
@@ -24,7 +24,8 @@ data_test = MNIST('./data/mnist',
 data_train_loader = DataLoader(data_train, batch_size=256, shuffle=True, num_workers=8)
 data_test_loader = DataLoader(data_test, batch_size=1024, num_workers=8)

-net = LeNet5()
+device = 'cuda'
+net = LeNet5().to(device)
 criterion = nn.CrossEntropyLoss()
 optimizer = optim.Adam(net.parameters(), lr=2e-3)

@@ -43,6 +44,8 @@ def train(epoch):
     net.train()
     loss_list, batch_list = [], []
     for i, (images, labels) in enumerate(data_train_loader):
+        labels = labels.to(device)
+        images = images.to(device)
         optimizer.zero_grad()

         output = net(images)
@@ -71,6 +74,8 @@ def test():
     total_correct = 0
     avg_loss = 0.0
     for i, (images, labels) in enumerate(data_test_loader):
+        labels = labels.to(device)
+        images = images.to(device)
         output = net(images)
         avg_loss += criterion(output, labels).sum()
         pred = output.detach().max(1)[1]
@@ -84,7 +89,7 @@ def train_and_test(epoch):
     train(epoch)
     test()

-    dummy_input = torch.randn(1, 1, 32, 32, requires_grad=True)
+    dummy_input = torch.randn(1, 1, 32, 32, requires_grad=True).to(device)
     torch.onnx.export(net, dummy_input, "lenet.onnx")

     onnx_model = onnx.load("lenet.onnx")
EOF
and leads to a faster runtime, with less user as now we are spending more time on the GPU than CPU:
real    1m27.829s
user    4m37.266s
sys     0m27.562s
Actuator Updated 2025-07-16

Unlisted articles are being shown, click here to show only listed articles.