Battlecode by Ciro Santilli 35 Updated +Created
TODO quick summary of game rules? Perhaps: battlecode.org/assets/files/battlecode-guide-xsquare.pdf
Some mechanics:
  • inter agent communication
  • compute power is limited by limiting Java bytecode count execution per bot per cycle
Video 1.
Battlecode Final Tournament 2023
. Source.
Video 2.
Introduction to Battlecode by MIT OpenCourseWare (2014)
Source.
Computer Olympiad by Ciro Santilli 35 Updated +Created
Ah, shame, they are a bit weak.
git rebase 101 by Ciro Santilli 35 Updated +Created
gitk by Ciro Santilli 35 Updated +Created
For the newbs.
Slick? No. But gitk does the job, like any one of the other 100 billion free Git UI viewers out there
gitk master HEAD
https://raw.githubusercontent.com/cirosantilli/media/master/gitk.png
Many IDEs are also implementing this now (e.g. VS Code, Eclipse. Most free IDE GIt implementations are still crap, but that is the future, because you want to edit, view history, edit, view history, commit, edit.
git log --graph by Ciro Santilli 35 Updated +Created
For the strong.
git log --abbrev-commit --decorate --graph --pretty=oneline master HEAD
Output:
* b4ec057 (master) 5
* 0b37c1b 4
| * fbfbfe8 (HEAD -> my-feature) 7
| * 7b0f59d 6
|/
* 661cfab 3
* 6d748a9 2
* c5f8a2c 1
If we also add the --simplify-by-decoration, which you very often want want on a real repository with many commits:
* b4ec057 (master) 5
| * fbfbfe8 (HEAD -> my-feature) 7
|/
* c5f8a2c 1
As we can see, this removes any commit that is neither:
  • under a branch or tag
  • at the intersection of too branches or tags
git rebase moves commits one by one by Ciro Santilli 35 Updated +Created
In order to solve conflicts, you just have to understand what commit you are trying to move where.
E.g. if from:
5 master
|
4 7 my-feature HEAD
| |
3 6
|/
2
|
1
we do:
git rebase master
what happens step by step is first 6 is moved on top of 5:
6on5 HEAD
|
5 master
|
4                 7 my-feature
|                 |
3                 6
|                 |
2-----------------+
|
1
and then 7 is moved on top of the new 6:
7on5 HEAD
|
6on5
|
5 master
|
4                 7 my-feature
|                 |
3                 6
|                 |
2-----------------+
|
1
All good? so OK, let's move the my-feature to the new 7:
7on5 my-feature HEAD
|
6on5
|
5 master
|
4
|
3
|
2
|
1
The key to solve conflicts: see the two conflicting diffs by Ciro Santilli 35 Updated +Created
The key to solve conflicts is:
You have to understand what are the two commits that touched a given line (one from master, one from features), and then combine them somehow.
Or in other words, at every rebase conflict we have something like:
master-commit    feature-commit
|                |
|                |
base-commit------+
|
|
Therefore there are 2 diffs that you have to understand and reconcile:
  • base-commit to master-commit
  • base-commit to feature-commit
Conflict resolution tool by Ciro Santilli 35 Updated +Created
Pipeline stall by Ciro Santilli 35 Updated +Created
Brodmann area by Ciro Santilli 35 Updated +Created
Figure 1.
External 3D view of the Brodmann areas
. Source.
y86.js.org by Ciro Santilli 35 Updated +Created
The good:
  • slick UI! But very hard to read characters, they're way too small.
  • attempts to show state diffs with a flash. But it goes by too fast, would be better if it were more permanent
  • Reverse debugging
The bad:
  • educational ISA
  • unclear what flags mean from UI, no explanation on hover. Likely the authors assume knowledge of the Y86 book.
WebRISC-V by Ciro Santilli 35 Updated +Created
The good:
The bad:
  • Clunky UI
  • circuit diagram doesn't show any state??

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