Post filtration purification by Ciro Santilli 35 Updated +Created
After filtration, all DNA should present in the filter, so we cut the paper up with scissors and put the pieces into an Eppendorf: Video 1. "Cutting vacuum pump filter and placing it in Eppendorf".
Video 1.
Cutting vacuum pump filter and placing it in Eppendorf
. Source.
Now that we had the DNA in Eppendorfs, we were ready to continue the purification in a simpler and more standardized lab pipeline fashion.
First we added some small specialized beads and chemicals to the water and shook them Eppendorfs hard in a Scientific Industries Inc. Vortex-Genie 2 machine to break the cell and free the DNA.
Once that was done, we added several reagents which split the solution into two phases: one containing the DNA and the other not. We would then pipette the phase with the DNA out to the next Eppendorf, and continue the process.
In one step for example, the DNA was present as a white precipitate at the bottom of the tube, and we threw away the supernatant liquid: Figure 1. "White precipitate formed with Qiagen DNeasy PowerWater Kit".
Figure 1.
White precipitate formed with Qiagen DNeasy PowerWater Kit
. Source.
At various stages, centrifuging was also necessary. Much like the previous vacuum pump step, this adds extra gravity to speed up the separation of phases with different molecular masses.
In our case, we used a VWR Micro Star 17 microcentrifuge for those steps:
Figure 2.
VWR Micro Star 17 microcentrifuge.
Source.
Figure 3.
VWR Micro Star 17 microcentrifuge loading.
Source.
Then, when we had finally finished all the purification steps, we measured the quantity of DNA with a Biochrom SimpliNano spectrophotometer to check that the purification went well:
Figure 4.
Biochrom SimpliNano spectrophotometer loading sample.
Source.
Figure 5.
Biochrom SimpliNano spectrophotometer result readout.
Source.
And because the readings were good, we put it in our -20 C fridge to preserve it until the second day of the workshop and called it a day:
Figure 6.
Minus 20 fridge storing samples.
Source.
Asia by Ciro Santilli 35 Updated +Created
Stereochemistry by Ciro Santilli 35 Updated +Created
Molecules that are the same if you just look at "what atom is linked to what atom", they are only different if you consider the relative spacial positions of atoms.
Geologic time scale hierarchy by Ciro Santilli 35 Updated +Created
DF_1_PIE by Ciro Santilli 35 Updated +Created
Determines if an executable is a position independent executable (PIE).
Seems to be informational only, since not used by Linux kernel 5.0 or glibc 2.29.
Pangaea by Ciro Santilli 35 Updated +Created
Ubuntu 21.10 does not wake up from suspend by Ciro Santilli 35 Updated +Created
Does not happen every time, only some times. Can't figure out why. Usually happens when has suspended for a longer time.
bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-470/+bug/1946303 sounds like a likely report, Nvidia driver version 470, but can't find those error messages anywhere. The last line of:
journalctl -o short-precise -k -b -1
once was:
PM: suspend entry (deep)
which is when sleep starts.
This suggests that it is not a video bug then, seems that it is not waking up at all? Gotta try to SSH into it. OK. I did SSH into it, and that was fine, so it is just the video that won't start.
PM: suspend exit
bugs.launchpad.net/ubuntu/+source/linux/+bug/1949977 is another possible bug, based on kernel version. I'm running 5.13, which is one of the failing versions on the report. Can't find any interesting dmesg though.
In another crash:
journalctl -o short-precise -k -b -1
had the following interesting lines:
nvidia-modeset: WARNING: GPU:0: Lost display notification (0:0x00000000); continuing.
[24307.640014] NVRM: GPU at PCI:0000:01:00: GPU-18af74bb-7c72-ff70-e447-87d48378ea20
[24307.640018] NVRM: Xid (PCI:0000:01:00): 79, pid=8828, GPU has fallen off the bus.
[24307.640021] NVRM: GPU 0000:01:00.0: GPU has fallen off the bus.
[24328.054022] nvidia-modeset: ERROR: GPU:0: The requested configuration of display devices (LGD (DP-4)) is not supported on this GPU.
[repeats several more times]
[24328.056767] nvidia-modeset: ERROR: GPU:0: The requested configuration of display devices (LGD (DP-4)) is not supported on this GPU.
[24328.056951] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000927c:0:0:0x0000000f
[24328.056955] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000927c:1:0:0x0000000f
[24328.056959] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000927c:2:0:0x0000000f
[24328.056962] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000927c:3:0:0x0000000f
[24328.056983] nvidia-modeset: ERROR: GPU:0: DP-4: Failed to disable DisplayPort audio stream-0
[24328.056992] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000947d:0:0:0x0000000f
and there was a corresponding /var/crash/_usr_sbin_gdm3.0.crash.
Sequelize example by Ciro Santilli 35 Updated +Created
To run examples on a specific database:
  • ./index.js or ./index.js l: SQLite
  • ./index.js p: PostgreSQL. You must manually create a database called tmp and ensure that peer authentication works for it
All examples can be tested on all databases with:
cd sequelize
./test
Overview of the examples:
Raspberry Pi Pico W UART by Ciro Santilli 35 Updated +Created
You can connect form an Ubuntu 22.04 host as:
screen /dev/ttyACM0 115200
When in screen, you can Ctrl + C to kill main.py, and then execution stops and you are left in a Python shell. From there:
  • Ctrl + D: reboots
  • Ctrl + A K: kills the GNU screen window. Execution continues normally
but be aware of: Raspberry Pi Pico W freezes a few seconds after after screen disconnects from UART.
Superconducting qubits are regarded as promising because superconductivity is a macroscopic quantum phenomena of Bose Einstein condensation, and so as a macroscopic phenomena, it is easier to control and observe.
This is mentioned e.g. in this relatively early: physicsworld.com/a/superconducting-quantum-bits/. While most quantum phenomena is observed at the atomic scale, superconducting qubits are micrometer scale, which is huge!
Physicists are comfortable with the use of quantum mechanics to describe atomic and subatomic particles. However, in recent years we have discovered that micron-sized objects that have been produced using standard semiconductor-fabrication techniques – objects that are small on everyday scales but large compared with atoms – can also behave as quantum particles.
Experiment background by Ciro Santilli 35 Updated +Created
PuntSeq is a side project led by a few University of Cambridge PhDs that aims to determine which bacteria are present in the River Cam.
In July 2019, the PuntSeq team got together with the awesome Cambridge Biomakespace, an awesome biology makerspace open to all, to create a two day science outreach activity showing their procedures.
The data collected in this experiment, together with other collection sessions done by the organizers actually led to a publication on eLife: elifesciences.org/articles/61504 "Freshwater monitoring by nanopore sequencing" by Lara Urban et al. (2021), so it is awesome to see that were are actual being part of "real science".
Ciro knows nothing about biology, but since he is very curious about it, he jumped at this opportunity, and decided to document things as well as his limited knowledge would allow.
All participants chipped in some money to help cover the experiment's costs. Ciro suspects that this activity was done partially to help crowdfund the experiment, but it was a worthy investment!
The impressions you get from the experiment as a software engineer will be:
  • OMG, this is so labour intensive, why haven't they automated this
  • OMG, this is frightening, all the 8 hours of work I've just done are present in that tiny plastic tube
  • Amazing! Look at that apparatus! And the bio people are like: I've used this a million times, it's cheap and every lab has one, just work faster and don't break you piece of junk!
PCR by Ciro Santilli 35 Updated +Created
More generic PCR information at: Section "Polymerase chain reaction".
Because it is considered the less interesting step, and because it takes quite some time, this step was done by the event organizers between the two event days, so participants did not get to take many photos.
PCR protocols are very standard it seems, all that biologists need to know to reproduce is the time and temperature of each step.
We did 35 cycles of:
  • 94˚C for 30 seconds
  • 60˚C for 30 seconds
  • 72˚C for 45 seconds
Figure 1.
Marshal Scientific MJ Research PTC-200 Thermal Cycler.
Source.
We added PCR primers for regions that surround the 16S DNA. The primers are just bought from a vendor, and we used well known regions are called 27F and 1492R. Here is a paper that analyzes other choices: academic.oup.com/femsle/article/221/2/299/630719 (archive) "Evaluation of primers and PCR conditions for the analysis of 16S rRNA genes from a natural environment" by Yuichi Hongoh, Hiroe Yuzawa, Moriya Ohkuma, Toshiaki Kudo (2003)
One cool thing about the PCR is that we can also add a known barcode at the end of each primer as shown at Code 1. "PCR diagram".
This means that we bought a few different versions of our 27F/1492R primers, each with a different small DNA tag attached directly to them in addition to the matching sequence.
This way, we were able to:
  • use a different barcode for samples collected from different locations. This means we
    • did PCR separately for each one of them
    • for each PCR run, used a different set of primers, each with a different tag
    • the primer is still able to attach, and then the tag just gets amplified with the rest of everything!
  • sequence them all in one go
  • then just from the sequencing output the barcode to determine where each sequence came from!
Input: Bacterial DNA (a little bit)
... --- 27S --- 16S --- 1492R --- ...

|||
|||
vvv

Output: PCR output (a lot of)
Barcode --- 27S --- 16S --- 1492R
Code 1.
PCR diagram
.
Finally, after purification, we used the Qiagen QIAquick PCR Purification Kit protocol to purify the generated from unwanted PCR byproducts.
Protocols used by Ciro Santilli 35 Updated +Created
Protocols are the biologist term for "recipe".
I found that a lot of biology comes down to this: get the right recipe, follow it well even though you don't understand all the proprietary details, and pray.
Microwave transmission by Ciro Santilli 35 Updated +Created
lujakob/nestjs-realworld-example-app SQLite port by Ciro Santilli 35 Updated +Created
Tried a quick port to SQLite to get rid of annoying local databases for development, but failed, at c1c2cc4e448b279ff083272df1ac50d20c3304fa
npm install sqlite3 --save-dev
and
{
  "type": "sqlite",
  "database": "db.sqlite3",
  "entities": ["src/**/**.entity{.ts,.js}"],
  "synchronize": true
}
then:
npm start
fails with:
DataTypeNotSupportedError: Data type "timestamp" in "ArticleEntity.created" is not supported by "sqlite" database.
Attempt to hack it:
--- a/src/article/article.entity.ts
+++ b/src/article/article.entity.ts
@@ -20,10 +20,10 @@ export class ArticleEntity {
   @Column({default: ''})
   body: string;

-  @Column({ type: 'timestamp', default: () => "CURRENT_TIMESTAMP"})
+  @Column({ default: () => "CURRENT_TIMESTAMP"})
   created: Date;

-  @Column({ type: 'timestamp', default: () => "CURRENT_TIMESTAMP"})
+  @Column({ default: () => "CURRENT_TIMESTAMP"})
   updated: Date;
and after that it seems to run.
I can signup and login, terrible error reporting as usual, make sure to use long enough usernames/passwords.
However, article creation fails with:
Unhandled Rejection (TypeError): Cannot read property 'slug' of undefined
Fluorescent lamp by Ciro Santilli 35 Updated +Created

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