Topics Top articles New articles Updated articles Top users New users New discussions Top discussions New comments+ New article
Program the Raspberry Pi Pico W with MicroPython from Thonny by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
Install on Ubuntu 22.04:
python3 -m pip install --user adafruit-ampy
How to run a MicroPython script from a file on the Raspberry Pi Pico W from the command line? by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
The first/only way Ciro could find was with ampy: stackoverflow.com/questions/74150782/how-to-run-a-micropython-host-script-file-on-the-raspbery-pi-pico-from-the-host/74150783#74150783 That just worked and it worked perfectly!
python3 -m pip install --user adafruit-ampy
ampy --port /dev/ttyACM0 run blink.py
TODO: possible with rshell?
Some of the contributions are subjectively self evaluated based on:
- How many significant lines changed (no indentation changes, moves, mass refactoring, trivial tests, etc.):
0 only trivial changes 1 < 20 2 < 150 3 150
- How hard it was to make it. 4 algorithmic lines are harder than 100 web development/documentation lines.
Once the ball starts rolling, these are people who should be contacted.
Basically anything under educational charitable organization counts.
It is also worth having a look under the Wikipedia page for open educational resources: en.wikipedia.org/wiki/Open_educational_resources
Basically everything that applies to the blogs section also applies here, but university lecture notes are so important to us that they deserve a bit more talk.
It is arguable that this is currently the best way to learn any university subject, and that it can already be used to learn any subject.
We basically just want to make the process more efficient and enjoyable, by making it easier:
- to find what you want based on an initial subject hit across the best version of any author
- and to publish your own stuff with one click, and get feedback if people like it or not, and improvement suggestions like you do you GitHub
One major problem with lecture notes is that, as the name suggests, they are merely a complement to the lecture, and don't contain enough detail for you to really learn solely from them without watching the lecture.
The only texts that generally teach in enough depth are actual books, which are almost always commercial.
So in a sense, this project can be seen as a path to upgrade free lecture notes into full blown free books, from which you can learn from scratch without any external material.
And a major way in which we believe this can be done is through the reuse of sections of lecture notes by from other universities, which greatly reduces the useless effort of writing things from scratch.
The intended mental picture is clear: the topics feature docs.ourbigbook.com/#ourbigbook-web-topics will is intended to act as the missing horizontal topic integration across lecture notes of specific universities, e.g:
MIT calculus course UCLA calculus course
* Calculus <---> * Calculus
* Limit <---> * Limit
* Limit of a function
* Limit of a series <---> * Limit of a series
* Derivative <---> * Derivative
* L'Hôpital's rule
* Integral <---> * Integral
One important advantage of lecture notes is that since they are written by the teacher, they should match exactly what "students are supposed to learn to get good grades", which unfortunately is a major motivation for student's learning weather we want it or not.
One big open question for this project is to what extent notes written for lectures at one university will be relevant to the lectures at another university?
Is it possible to write notes in a way that they are naturally reusable?
It is our gut feeling that this is possible. But it almost certainly requires an small intentional effort on the part of authors.
The question then becomes whether the "become famous by getting your content viewed in other universities" factor is strong enough to attract users.
And we believe that it might, it just might be.
Stack Exchange solves to a good extent the use cases:points of view. It is a big open question if we can actually substantially improve it.
- I have a very specific question, type it on Google, find top answers
- I have an answer, and I put it here because it has a much greater chance of being found due to the larger PageRank than my personal web page will ever have
Major shortcoming are mentioned at idiotic Stack Overflow policies:
- Scope restrictions can lead to a lot of content deletion: closing questions as off-topicThis greatly discourages new users, who might still have added value to the project.On our website, anyone can post anything that is legal in a given country. No one can ever delete your content if it is legal, no matter their reputation.
- Although you can answer your own question, there's no way to write an organized multi-page book with Stack Exchange due to shortcomings such as no table of contents, 30k max chars on answer, huge risk of deletion due to "too broad"
- Absolutely no algorithmic attempt to overcome the fastest gun in the West problem (early answers have huge advantage over newer ones): meta.stackoverflow.com/questions/404535/closing-an-old-upvoted-question-as-duplicate-of-new-unvoted-questions/404567#404567
- Native reputation system:
- if the living ultimate God of
C++
upvotes you, you get10
reputation - if the first-day newb of
Java
upvotes you, you also get10
reputation
- if the living ultimate God of
- Randomly split between sites like Stack Overflow vs Super User, with separate user reputations, but huge overlaps, and many questions that appears as dupes on both and never get merged.
- Possible edit wars, just like Wikipedia, but these are much less common since content ownership is much clearer than in Wikipedia however
Political parties in the United States by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
A Microsoft format for flashing microcontrollers by copying files to a magic filesystem mounted on host, e.g. as done on the Micro Bit and Raspberry Pi Pico.
2D wave equation on a circular domain by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
Although it is impossible to understand without examples in mind, try to get familiar with the manuals as soon as possible.
Intel describes paging in the Intel Manual Volume 3 System Programming Guide - 325384-056US September 2015 Chapter 4 "Paging".
Specially interesting is Figure 4-4 "Formats of CR3 and Paging-Structure Entries with 32-Bit Paging", which gives the key data structures.
Multiple addresses translate to a single physical address by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
The same linear address can translate to different physical addresses for different processes, depending only on the value inside
cr3
.Both linear addresses
00002 000
from process 1 and 00004 000
from process 2 point to the same physical address 00003 000
. This is completely allowed by the hardware, and it is up to the operating system to handle such cases.This often in normal operation because of Copy-on-write (COW), which be explained elsewhere.
Such mappings are sometime called "aliases".
64 bits is still too much address for current RAM sizes, so most architectures will use less bits.
x86_64 uses 48 bits (256 TiB), and legacy mode's PAE already allows 52-bit addresses (4 PiB). 56-bits is a likely future candidate.
12 of those 48 bits are already reserved for the offset, which leaves 36 bits.
If a 2 level approach is taken, the best split would be two 18 bit levels.
But that would mean that the page directory would have
2^18 = 256K
entries, which would take too much RAM: close to a single-level paging for 32 bit architectures!Therefore, 64 bit architectures create even further page levels, commonly 3 or 4.
x86_64 uses 4 levels in a
9 | 9 | 9 | 9
scheme, so that the upper level only takes up only 2^9
higher level entries.The 48 bits are split equally into two disjoint parts:
----------------- FFFFFFFF FFFFFFFF
Top half
----------------- FFFF8000 00000000
Not addressable
----------------- 00007FFF FFFFFFFF
Bottom half
----------------- 00000000 00000000
A 5-level scheme is emerging in 2016: software.intel.com/sites/default/files/managed/2b/80/5-level_paging_white_paper.pdf which allows 52-bit addresses with 4k pagetables.
Pinned article: ourbigbook/introduction-to-the-ourbigbook-project
Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
We have two killer features:
- topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculusArticles of different users are sorted by upvote within each article page. This feature is a bit like:
- a Wikipedia where each user can have their own version of each article
- a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it. - local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
- to OurBigBook.com to get awesome multi-user features like topics and likes
- as HTML files to a static website, which you can host yourself for free on many external providers like GitHub Pages, and remain in full control
- Internal cross file references done right:
- Infinitely deep tables of contents:
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact