Compare commits

...

26 Commits

Author SHA1 Message Date
f92cf0c343 [Slide] 3D print 2025-10-29 01:35:45 +01:00
c2bbd1795d write ansible 2025-10-29 01:35:45 +01:00
ae70d14a3e remove unicode from joyous bash
Unicode breaks the pandoc compiler (because LaTeX is shit).
2025-10-29 01:35:45 +01:00
85cfc60d48 [Slide] Selfhosting 2025-10-29 01:35:45 +01:00
19017cfbb1 [Slide] Kombucha 2025-10-29 01:35:45 +01:00
ba3caa5bcf [Slide] DeGoogle 2025-10-29 01:35:45 +01:00
1b2e77d610 [Slide] rss 2025-10-29 01:35:45 +01:00
cd21983232 add joyous bash 2025-10-29 01:35:45 +01:00
7ecfcb6a6c refactor makefile 2025-10-29 01:35:45 +01:00
4c81a3b3cb note speedy compiles 2025-10-29 01:35:45 +01:00
1a444120e0 place arch install instructions 2025-10-29 01:35:45 +01:00
979dff793d fix robocop 2025-10-29 01:35:45 +01:00
6c5a00b18d Added dependencies for Debian in README 2025-10-29 01:35:45 +01:00
e13dbe316b update readme 2025-10-29 01:35:45 +01:00
1c73f70782 reconfigure makefile 2025-10-29 01:35:45 +01:00
498b078199 dependency ladder example 2025-10-29 01:35:45 +01:00
611ace277a PS: more Makefiles 2025-10-29 01:35:45 +01:00
6915e520f3 typo 2025-10-29 01:35:45 +01:00
162270d5db note python makefile 2025-10-29 01:35:45 +01:00
790d22a6bc ending notes 2025-10-29 01:35:45 +01:00
f11c7c82b6 finish examples 2025-10-29 01:35:45 +01:00
3b5ce34285 place example makefiles 2025-10-29 01:35:45 +01:00
2738c7daa9 add basic makefile examples 2025-10-29 01:35:45 +01:00
7435e1a5c4 fix typo in algebragrupe slides 2025-10-29 01:35:45 +01:00
a1c8976817 add algebera slides and link to decentrala slide 2025-10-29 01:35:45 +01:00
2a9ef0820c ekonomija update 2025-10-29 01:35:24 +01:00
71 changed files with 2261 additions and 86 deletions

1
.gitignore vendored
View File

@@ -1,4 +1,3 @@
*.pdf *.pdf
*.epub *.epub
Makefile
*.xcf *.xcf

19
Makefile Normal file
View File

@@ -0,0 +1,19 @@
help: ## Print the help message
$(info Make a single pdf by hitting the tab key a lot)
@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
sort | \
column -s ':' -t
# Search should not include slides separated by '***', as those are for mdp, not pandoc.
markdown != find slides/ -maxdepth 2 -type f -name "*.md" -exec grep -LF '***' '{}' ';'
pdfs = $(patsubst %.md, %.pdf, $(markdown))
$(pdfs): %.pdf: %.md
pandoc -t beamer -V theme:Warsaw -i $< -o $@
.PHONY: pdfs
pdfs: $(pdfs) ## Generate all pdfs (try `make -j pdfs`)
.PHONY: clean
clean: ## Delete all pdfs
$(RM) $(pdfs)

View File

@@ -1,5 +1,20 @@
# Radionice # Radionice
First run ./configure to generate a Makefile using folders in this directory Usage: `make`
## Dependecies:
### For Debian:
```bash
sudo apt update
sudo apt install pandoc
sudo apt install tikzit
```
### For Arch:
```bash
pacman -Sy pandoc texlive-binextra texlive-pictures texlive-latexrecommended texlive-fontsrecommended
```
Then you can run make to generate pdf beamer slides

13
configure vendored
View File

@@ -1,13 +0,0 @@
#!/usr/bin/bash
FOLDERS=$(cd slides/ ; echo *)
rm -f Makefile
echo -n 'all:' >> Makefile
for i in $FOLDERS ; do echo -n " $i.pdf" >> Makefile ; done
echo "" >> Makefile
for i in $FOLDERS ; do echo -e "$i.pdf:\n\tpandoc -t beamer -V theme:Warsaw -i slides/$i/$i.md -o slides/$i/$i.pdf\n" >> Makefile ; done
echo -ne "clean:\n\trm -f" >> Makefile
for i in $FOLDERS; do echo -n " slides/$i/$i.pdf" >> Makefile ; done
echo "" >> Makefile

166
slides/3Dprint/3DPrint.md Normal file
View File

@@ -0,0 +1,166 @@
# 3D Printing
***
## Machine brands
- Creality Ender
- Prusa
- Elagoo
- Bamboo
...and more
Suggestion [Elagoo centauri](https://us.elegoo.com/products/centauri-carbon) - [40k](https://aldorshop.rs/proizvod/elegoo-centauri-carbon/)
***
## Main parts
- Motors x,y,z
- Buildplate (print bad)
- Extruder
- Bowden tube
- Hotend
- Nozzle
- BL Touch
***
## Filamets
- PLA and PLA+
- PETG
- ASA/ABS
- Resin
...and other
***
## Filament - variations
- Dual colors
- Shiny, glitter
- Transparent
- Glow in dark
- Elastic
- Wood like
***
## Calibration and troubleshooting
[guide](https://teachingtechyt.github.io/calibration.html)
- bed leveling
- line height
- extruder tensioning
- fillament temperature
***
## Modeling
- Blender
- FreeCAD
... and a lot of propriatary tools
***
## Platforms and community
- [Thingiverse](https://www.thingiverse.com)
- [Printables](https://www.printables.com/)
- [MyMiniFactory](https://www.myminifactory.com/)
- [GrabCAD](https://grabcad.com/library)
- [STL Finder](https://www.stlfinder.com/)
... and much more
***
## Slicing
- Prusa Slicer
- Cura
- Bamboo lab
- Supports
- Positioning
***
## Some techniques
- Color change
- Inserting magnets
- Combining with other things
- screws
- marbles
- spinners
- electronics
- Afterjobs
- sanding
- polishing
- coloring
***
## Monitoring
- Builtin from vendor
- [OctoPrint](https://octoprint.org/)
- OctoPi
- OctoPhone
Note: don't expose, use home VPN, tailscale or similar
***
## Uses and projects
- Fixing stuff
- Upgrading stuff
- Tools, skadis
- Home appliances
- Electronic devices (ESP, arduino, etc)
- Toys
- Gifts
***
## Resources - Subreddits
- r/FixMyPrint
- r/functionalprint
- r/3Dprinting
- r/PrintedMinis
- r/3dprinter
- r/3DPrintTech
***
## Serbia
- [DMZ forum post](https://forum.dmz.rs/t/3d-printing/417/4)
- [Voxellab](https://voxellab.rs/)
- [Radnja u staklencu](https://3dmarket.rs/3D/3d-stampaci/)
***
## Misc and upgrades
- Printed parts / upgrades
- Nozzle brush (automated cleaning)
- Filament cleaner
- Filament case and heataer
- Silicone instead of springs for leveling
- Sanding tools
- Custom firmware upgrades

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 KiB

320
slides/DeGoogle/Slides.html Normal file
View File

@@ -0,0 +1,320 @@
<div style="margin: 0 auto; max-width: 960px">
<p><img src="de-Google-1-1.png" alt="image" width="100%" /></p>
<h2 id="why-bother">Why bother?</h2>
<ul>
<li>
<p>
Free and open source,
<a href="https://en.wikipedia.org/wiki/Android_(operating_system)">AOSP</a>, F-Droid,
<a href="https://en.wikipedia.org/wiki/MicroG">microG</a>,&#8230;
</p>
</li>
<li>
<p>Privacy, spyware, ad-blocking,&#8230;</p>
</li>
<li>
<p>Bloatware, performance, memory,&#8230;</p>
</li>
<li>
<p>Higher android version, permacomputing.</p>
<p><del>Anonimity</del></p>
</li>
</ul>
<h2 id="app-stores">App stores</h2>
<p>
<ul>
<li>
<a href="https://f-droid.org/en/packages/com.aurora.store/">Aurora store</a>
- anon
</li>
<li>
<a href="https://f-droid.org/">F-droid</a> - FOSS app store
</li>
<li>
<a href="https://f-droid.org/en/packages/com.machiav3lli.fdroid/">Neo store</a>
</li>
<li>
- update &#38; default repos (IzzyOnDroid)
<a href="https://github.com/ImranR98/Obtainium">Obtainium</a> - Directly
</li>
<li>
From the Source <a href="https://open-store.io/">Open store</a> - ubuntu
touch
<a href="https://en.wikipedia.org/wiki/Progressive_web_app">PWA</a>
</li>
</ul>
</p>
<p><code>Blacklisting same apps</code></p>
<h2 id="apps-and-alternatives">Apps and alternatives</h2>
<p>
<ul>
<li>
Playstore -&#62;
<a href="https://f-droid.org/en/packages/com.aurora.store/">Aurora Store</a>
</li>
<li>
Chrome -&#62; Firefox foxus &#47; Fennec
<a href="https://f-droid.org/en/packages/de.marmaro.krt.ffupdater/">FFUpdater</a>
</li>
<li>
Google search -&#62; <a href="https://docs.searxng.org/">SearXNG</a>,
<a href="https://github.com/hnhx/librex">LibreX</a>, DDG Maps -&#62;
</li>
<li>
<a href="https://f-droid.org/packages/app.organicmaps/">Organic maps</a> or
</li>
<li>
<a href="https://osmand.net/">OsmAnd</a> Youtube -&#62;
</li>
<li>
<a href="https://newpipe.net/">NewPipe</a>,
</li>
<li>
<a href="https://freetubeapp.io/">FreeTube</a> Drive -&#62;
</li>
<li>
<a href="https://syncthing.net/">Syncthing</a>,
</li>
<li>
<a href="https://f-droid.org/packages/io.github.x0b.rcx/">RCX</a>
</li>
<li>
Office
-&#62;
<a href="https://f-droid.org/en/packages/at.tomtasche.reader/">LibreOffice &#38; OpenOffice</a>
</li>
<li>
Mail -&#62;
<a href="https://f-droid.org/packages/com.fsck.k9/">K-9 Mail</a> &#47;
</li>
<li>
<a href="https://f-droid.org/packages/eu.faircode.email/">Fairmail</a>
</li>
<li>
Music&#47;Video -&#62;
<a href="https://f-droid.org/packages/org.videolan.vlc/">VLC</a>
</li>
</ul>
</p>
<p>
Reddit -&#62;
<a href="https://f-droid.org/en/packages/geddit.buzl.uk/">Geddit</a> (no API
directly) Wikipedia -&#62;
<a href="https://f-droid.org/packages/org.greatfire.wikiunblocked.fdroid/">Wiki Unblocked</a>
</p>
<p>
<a href="https://f-droid.org/packages/org.jak_linux.dns66/">DNS66</a> -
DNS-Based Host Blocking (ad block)
<a href="https://f-droid.org/packages/app.fedilab.nitterizeme/">UntrackMe</a>
- cleaning urls and redirecting like LibRedirect Extension
</p>
<p>
-&#62;
<strong><a href="https://github.com/offa/android-foss">Full FOSS app list</a></strong>
</p>
<h2 id="operating-systems-custom-roms">Operating systems (Custom ROMs)</h2>
<ul>
<li>
<p><a href="https://wiki.lineageos.org/devices/">LineageOS</a></p>
</li>
<li>
<p><a href="https://lineage.microg.org/">LineageOS for microG</a></p>
</li>
<li>
<p>
<a href="https://divestos.org/pages/devices">DivestOS</a> -&#62; soft
fork on LinageOS
</p>
</li>
<li>
<p>
<a href="https://crdroid.net/downloads">crDroid</a> -&#62; customized
fork on LinageOS
</p>
</li>
<li>
<p><a href="https://www.droidontime.com/devices">DotOS</a></p>
</li>
<li>
<p><a href="https://paranoidandroid.co/">Paranoid android</a></p>
</li>
<li>
<p><a href="https://projectelixiros.com/download">ProjectElixirOS</a></p>
</li>
<li>
<p><a href="https://evolution-x.org/download">evolutionX</a></p>
</li>
<li>
<p>
<a href="https://doc.e.foundation/devices">&#47;e&#47;os&#47;</a> -&#62;
partialy FOSS
</p>
</li>
<li>
<p>
<a href="https://grapheneos.org/releases">GrapheneOS</a> -&#62; only for
pixel phones
</p>
</li>
<li>
<p>
<a href="https://calyxos.org/docs/guide/device-support/">Calyxos</a>
-&#62; pixels &#38; fairphone
</p>
</li>
<li>
<p>
<a href="https://get.pixelexperience.org/">PixelExp</a> -&#62; OS like
google pixel
</p>
</li>
</ul>
<h4 id="linux-phone-os">Linux phone OS</h4>
<ul>
<li>
<a href="https://postmarketos.org/download/">PostmarketOS</a> -
<a href="https://wiki.postmarketos.org/wiki/Devices">wiki devices</a>
</li>
<li><a href="https://devices.droidian.org/">Droidian</a></li>
<li><a href="https://mobian-project.org/">Mobian</a></li>
<li><a href="https://devices.ubuntu-touch.io/">Ubuntu touch </a></li>
<li><a href="https://www.kali.org/docs/nethunter/">Kali Nethunter</a></li>
</ul>
<p>
-&#62; <a href="https://linuxstans.com/linux-phone/">Linux phones list</a>
</p>
<h3 id="prioritize-for">Prioritize for</h3>
<ul>
<li>Unlockable</li>
<li>Device is supported (TWRP and OS)</li>
<li>Supports microG</li>
<li>Last updated</li>
<li>Highest android version</li>
<li>Bootloader relocking</li>
</ul>
<p>!!! ATENTION !!! Device can be bricked!</p>
<ul>
<li>Check if unlockable, has TWRP and OS version listed</li>
<li>Backup your data</li>
<li>Full battery and work while charging</li>
<li>
Enable <code>Allow OEM unlocking</code> under
<code>Developer options</code> in Settings if available
</li>
<li>Check many sources and people&#8217;s experience</li>
<li>Tripple check everything</li>
<li>
<a href="https://divestos.org/pages/bootloader">Unlock bootloader</a>
(data wipe)
</li>
</ul>
<h4 id="custom-recovery-software">Custom recovery software</h4>
<ul>
<li>
<a href="https://twrp.me/Devices/">TWRP</a>
<a href="https://en.wikipedia.org/wiki/TWRP_(software)">wiki</a>
</li>
<li><a href="https://orangefox.download/device">Orange fox</a></li>
</ul>
<p><code>Recovery boot shortcut != fastboot shortcut</code></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Model</th>
<th>SoC</th>
<th><strong>Codename</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Samsung Galaxy S4</td>
<td>GT-I9505</td>
<td>Snapdragon</td>
<td><strong>jfltexx</strong></td>
</tr>
<tr>
<td>Samsung Galaxy S7</td>
<td>SM-G935F</td>
<td>Exynos</td>
<td><strong>hero2lte</strong></td>
</tr>
</tbody>
</table>
<h2 id="my-exp">My exp</h2>
<p>
Samsung -&#62; <a href="https://odinflashtool.com/">Odin</a>-
<a href="https://odinflashtool.com/downloads/download-jodin3/">jOdin</a>,
<a href="https://glassechidna.com.au/heimdall/">heimdall</a> -&#62; s4, s7
&#38; s8 Xiomi -&#62; SIM + xiomi acc, win app -&#62; 7d approval (insta
wipe) -&#62; Redmi Note 7 &#38; 8T LG -&#62;
<a href="https://developer.lge.com/resource/mobile/RetrieveBootloader.dev">Not supported anymore</a>,
<a href="https://www.xda-developers.com/lg-exits-smartphone-business/">Exiting the smartphone business</a>
-&#62; G6
</p>
<p>LinageOS, crDroidOS, divestOS, dotOS, &#47;e&#47;OS, pixelExpirance</p>
<p>Flash from microSD</p>
<h2 id="usefull-links">Usefull links</h2>
<h4 id="reddit-subs">Reddit subs</h4>
<ul>
<li><a href="https://www.reddit.com/r/degoogle/">DeGoogle</a></li>
<li><a href="https://www.reddit.com/r/fossdroid">FossDroid</a></li>
<li>
<a href="https://www.reddit.com/r/LineageOS">LinageOS</a>&#47;
<a href="https://www.reddit.com/r/DivestOS/">DivestOS</a>
</li>
<li><a href="https://www.reddit.com/r/tuxphones">Tuxphones</a></li>
</ul>
<h4 id="phones">Phones</h4>
<ul>
<li><a href="https://www.pine64.org/pinephone/">Pinephone</a></li>
<li><a href="https://puri.sm/products/librem-5/">Librem 5</a></li>
<li><a href="https://shop.fairphone.com/">Fairphone</a></li>
<li><a href="https://store.fxtec.com/">F(x)tec</a></li>
<li><a href="https://volla.online/en/index.html">Volla Phone</a></li>
<li><a href="https://www.shiftphones.com/en/">Shiftphone</a></li>
</ul>
<h4 id="guides">Guides</h4>
<ul>
<li>
<a href="https://xdaforums.com/all-forums-by-manufacturer">XDA Forums</a>
</li>
<li>
<a href="https://www.xda-developers.com/install-adb-windows-macos-linux/">adb-tools</a>
</li>
<li>
<a href="https://www.reddit.com/r/fossdroid/comments/o1gmb8/the_im_new_to_fdroid_starter_pack/">New to
FossDroid</a>
</li>
<li>
<a href="https://gofoss.net/intro-free-your-phone/">Gofoss free your phone</a>
</li>
</ul>
<h4 id="check-os-and-device">Check OS and device</h4>
<ul>
<li>
<a href="https://en.wikipedia.org/wiki/List_of_custom_Android_distributions">List of custom Android
distributions</a>
</li>
<li>
<a href="https://linuxstans.com/linux-phone/">Linux Phone: All Options Compared</a>
</li>
<li><a href="https://many.tuxphones.com/">Can My Phone Run Linux?</a></li>
</ul>
<h4 id="other">Other</h4>
<ul>
<li>
<a href="https://github.com/Genymobile/scrcpy">Screen copy (scrcpy)</a>
</li>
<li>
<a href="https://en.wikipedia.org/wiki/Open-source_hardware">Open source hardware</a>
</li>
<li>
<a href="https://www.phoronix.com/news/KDE-Plasma-Mobile-6-Porting">KDE Plasma Mobile 6 Porting</a>
</li>
<li>
<a href="https://blogs.gnome.org/shell-dev/2022/09/09/gnome-shell-on-mobile-an-update/">Gnome sneak peak 2022</a>
</li>
</ul>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

View File

@@ -0,0 +1,205 @@
-> # DeGoogle your phone
---
## Why bother?
- Privacy, spyware, ad-blocking,...
- Bloatware, performance, memory,...
- Higher android version
- Permacomputing, reusing old devices
- Free and open source
- AOSP Android Open Source Project
- F-Droid
- microG
-> *Dont expect anonimity*
---
## Obtaining apps
- Aurora store
- F-droid
- IzzyOnDroid repo
- Neo store
- Obtainium
- PWA
`Blacklisting apps` on different stores,
avoiding adds/payments, etc.
---
## Apps and alternatives
Playstore -> *Aurora Store*
Chrome -> *Fennec*
Google search -> *SearXNG LibreX, DDG*
Maps -> *Organic maps, OsmAnd*
Youtube -> *NewPipe, FreeTube*
Drive -> *Syncthing, Nextcloud*
Office -> *LibreOffice & OpenOffice*
Mail -> *Thunderbird*
Music/Video player -> *VLC*
DNS66, RethingDNS - DNS-Based Host Blocking
UntrackMe - url clean, redirecs (LibRedirect)
---
-> ## Operating system (_Custom ROMs_)
_ROM (Read-Only Memory):_
Originally, the term ROM referred
to a type of computer memory where
**data could only be read, not written or modified.**
In the context of mobile devices,
"ROM" has come to refer to the firmware or operating system
software that is installed on the device.
This includes the core Android operating system along with
any additional software and customizations
made by the device manufacturer.
---
## Distros
- *LineageOS*
- *LineageOS with microG*
- *DivestOS* -> soft fork on LinageOS
- *crDroid* -> customized fork on LinageOS
- many more
- */e/os/* -> partialy FOSS
- *GrapheneOS* -> only for pixel phones
- *Calyxos* -> pixels & fairphone
- *PixelExp* -> OS like google pixel
---
## Linux phone OS
- PostmarketOS
- Droidian
- Mobian
- Ubuntu touch
- Kali Nethunter
---
## Prioritize for
- Unlockable
- Device is supported (TWRP and CustomROM)
- Supports microG
- Last updated
- Highest android version
- Bootloader relocking
---
## Prepare
- Check if unlockable
- Backup your data
- Full battery and work while charging
- Use data cable
- Enable *Allow OEM unlocking* under *Developer options*
- Tripple check everything
- Unlock bootloader
-> `!!!ATENTION - Device can be bricked!!!`
---
## Unlocking bootloader
- install adb tools
*Recovery mode*
*Fastboot mode*
Different combo keys or commands
| Name | Model | SoC | **Codename** |
| --------- | --------- | ---------- | --------- |
| Galaxy S4 | GT-I9505 | Snapdragon | **jfltexx** |
| Galaxy S7 | SM-G935F | Exynos | **hero2lte** |
---
## Some commands
```sh
adb devices
fastboot devices
adb reboot bootloader
adb reboot recovery
adb push rom.img /sdcard/
adb sideload rom.img
adb shell
fastboot boot recovery.img
fastboot flash recovery recovery.img
fastboot reboot bootloader
fastboot reboot recovery
heimdall flash --RECOVERY twrp.img --no-reboot
```
---
## Flashing recovery software
- TWRP
- Orange fox
Flash from microSD
ADB push
ADB sideload
---
## Installing Custom ROM
- Subforum for the device on XDA forums
- microSD Flash or ADB Sidelaod
---
## Variations
*Samsung* -> many options, heimdall (FOSS, linux)
*Xiomi* -> SIM + acc, win -> 7d approval (insta wipe)
*LG* -> Not supported anymore
*Huawei* -> locked
Some are unlocked by default (Fairphone, Pixel)
---
## Reddit subs
- /r/degoogle
- /r/fossdroid
- /r/LineageOS
- /r/tuxphones
---
## Links
- [Screen copy (scrcpy)](https://github.com/Genymobile/scrcpy)
- [Heimdall](https://github.com/Benjamin-Dobell/Heimdall)
- [TWRP](https://www.twrp.me/)

View File

@@ -0,0 +1,65 @@
---
title:
- Algebra (Grupe)
theme:
- Warsaw
colortheme:
- orchid
---
# Uvod
- Skupovi
- Celi brojevi (beskonacni)
- Ostatci pre deljenju (konacne)
- Operacije
- mnozenje (binarna)
- negacija (unarna)
# Grupe
- Rezlutat ostaje unutar skupa
- Neutral
- Inverz
- Asocijativnost
- Abelove grupe (komutativnost)
- Ciklicne grupe (ostatak pri deljenju)
# Podgrupe
- Celi/Racionalni brojevi
- Red grupe
- Red podgrupe deli red grupe
# Kriptografija
- Skup poruka m odredjene velicine
- Operacija sifrovanja/potpisivanja $\oplus$
- jednosmerna (kao i hash funkcije)
- Neutral (e)
- Inverz kljuceva (k1, k2)
- $k1 \oplus k2 \equiv e$
- Sifrovanje/Potpisivanje ( $c \equiv m \oplus k1$ )
- Desifovanje/Provera ( $c \oplus k2 \equiv m$ )
- Asocijativnost
- $c \oplus k2 \equiv (m \oplus k1) \oplus k2 \equiv m \oplus (k1 \oplus k2)$
- $m \oplus (e) \equiv m$
# Kljucevi
- Jedan kljuc (simetricna)
- $k1 \equiv k2$
- $1 \oplus 1 \equiv 0 \mod 2$ (komplement)
- Dva kljuca (asimetricna)
- $2+3 \equiv 0 \mod 5$
# Razmena kljuceva
![DiffieHellman](slides/rsa/dhke.png)
# Razmena kljuceva
- DiffieHellman (DH)
- parametri (g,n,...)
- Abelova grupa (komutativnost)
- $g \oplus a \oplus b \equiv g \oplus b \oplus a$
- $(g \oplus a) \oplus b \equiv (g \oplus b) \oplus a$
- $A \oplus b \equiv B \oplus a$
# Sifrovanje/Potpisivanje
- Direktno sifrovanje (RSA)
- DH + simetcina = asimetricna (EC)

226
slides/ansible/ansible.md Normal file
View File

@@ -0,0 +1,226 @@
---
title: Ansible
author: Malin
theme: Warsaw
colortheme: orchid
---
# First: Idempotence
## My Setup Script
```sh
# Place locale info
echo 'LANG=en_GB.UTF-8' >> /etc/locale.conf
/etc/default/libc-locales
xbps-reconfigure -fy glibc-locales
# Start cron service
xbps-install -y crontab
ln -s /etc/sv/cronie /var/service
sv start crontab
# Add default dot files
git clone https://gitlab.com/andonome/mkdots.git /etc/skel/.dots
useradd -m ghost
usermod -aG wheel
```
***
> Error: no package 'cron tab'
***
```sh
# Place locale info
echo 'LANG=en_GB.UTF-8' >> /etc/locale.conf
/etc/default/libc-locales
xbps-reconfigure -fy glibc-locales
# Start cron service
xbps-install -y cronie
ln -s /etc/sv/cronie /var/service
sv start cronie
# Add default dot files
git clone https://gitlab.com/andonome/mkdots.git /etc/skel/.dots
useradd -m ghost
usermod -aG wheel
```
> ...loading locales
***
> Error: No command 'git'
> Error: user already exists
***
```sh
# Place locale info
echo 'LANG=en_GB.UTF-8' >> /etc/locale.conf
/etc/default/libc-locales
xbps-reconfigure -fy glibc-locales
# Start cron service
xbps-install -y cronie git
ln -s /etc/sv/cronie /var/service
sv start cronie
# Add default dot files
git clone https://gitlab.com/andonome/mkdots.git /etc/skel/.dots
useradd -m ghost
usermod -G wheel
```
***
> `$ cat /etc/locale.conf`
```sh
LC_COLLATE=C
LANG=en_GB.UTF-8
LANG=en_GB.UTF-8
LANG=en_GB.UTF-8
LANG=en_GB.UTF-8
LANG=en_GB.UTF-8
LANG=en_GB.UTF-8
```
> `$ ???`
***
```sh
grep en_GB /etc/locale.conf || \
echo 'LANG=en_GB.UTF-8' >> /etc/locale.conf
```
***
# So Ansible...
```sh
ansible --module-name=ping localhost
ansible -m package -a 'upgrade=yes' localhost
```
## Lines in Files
```sh
ansible -m lineinfile -a 'line=test create=yes path=/tmp/x' localhost
ansible -m say -a 'voice=en_GB msg="Testing"' localhost
ansible -m say -a 'voice=en_GB msg="Testing"' localhost
```
***
# More Hosts!
Hark at the hosts in `~/.ssh/config`:
```sh
Host soft
HostName soft.dmz.rs
Port 2222
User ghost
IdentityFile ~/.ssh/id_rsa
Host krov
HostName krov.dmz.rs
User malin
Host kralizec
HostName dmz.rs
User root
Host laka
HostName 192.168.0.50
IdentityFile ~/.ssh/id_rsa
```
***
## Hosts in toml
```toml
[webby]
nginx12
[webby:vars]
user=alice
```
This is easy to read, but breaks standards.
***
`ansible-play -i hosts.toml playbooks/mmcli`
***
Better to stick with standards, even if you can't read it!
***
Very yaml:
```yml
all:
vars:
ansible_python_interpreter: /usr/bin/python3.13
cow_selection: random
username: ghost
locale: Europe/Belgrade
libc_locale: en_GB.UTF-8 UTF-8
children:
arch:
children:
archyay:
hosts:
ratking:
archkube:
nimbus:
void:
hosts:
hex:
debian:
vars:
ansible_python_interpreter: /usr/bin/python3.12
hosts:
laka:
proxmox:
```
***
`ansible-play -i hosts.yml playbooks/mmcli`
***
# What it Does
- Installs packages
- Copies configs *to* host
- Fetches files *from* host
* Backup ssl certs
* Backup ssh identify keys
***
# Check the Repository Here!
`[ $git_repo_address ]`

View File

@@ -0,0 +1,22 @@
---
- name: Compile BIND
hosts: hex
become: false
environment:
PATH: '{{ ansible_env.PATH }}'
tasks:
- name: Git pull BIND
ansible.builtin.git:
repo: https://gitlab.com/bindrpg/core.git
dest: "{{ ansible_user_dir }}/core"
clone: true
verify_commit: true
version: master
- name: Make BIND
community.general.make:
chdir: "{{ ansible_user_dir }}/core"
jobs: 3
target: all

View File

@@ -0,0 +1,27 @@
---
- name: Install Mermaid ASCII
hosts: laka
become: true
tasks:
- name: Install deps
ansible.builtin.package:
name:
- git
- golang
- make
- name: Ensure local src dir exists
ansible.builtin.file:
path: /usr/local/src/
state: directory
mode: '0755'
- name: Clone mermaid-ascii
ansible.builtin.git:
repo: https://github.com/AlexanderGrooff/mermaid-ascii.git
dest: /usr/local/src/mermaid-ascii/
update: yes
- name: Install mermaid
community.general.make:
chdir: /usr/local/src/mermaid-ascii/
target: install

View File

@@ -0,0 +1,10 @@
---
- name: Install tlmgr
hosts: june
become: true
tasks:
- name: Install texlive
ansible.builtin.script: mintex.sh
args:
creates: /usr/local/bin/tlmgr

View File

@@ -0,0 +1,18 @@
---
- name: Make crontab
hosts: june
become: true
tasks:
- name: Late-night transmission start
ansible.builtin.cron:
name: start transmission
minute: 0
hour: 3
job: /usr/bin/systemctl start transmission
- name: Late-night transmission end
ansible.builtin.cron:
name: stop transmission
minute: 0
hour: 6
job: /usr/bin/systemctl stop transmission

View File

@@ -0,0 +1,24 @@
---
- name: Install tspreed
hosts: october
become: true
tasks:
- name: Ensure local src dir exists
ansible.builtin.file:
path: /usr/local/src/
state: directory
mode: '0755'
- name: Install make
ansible.builtin.package:
name: make
state: present
- name: Clone tspreed
ansible.builtin.git:
repo: https://github.com/n-ivkovic/tspreed.git
dest: /usr/local/src/tspreed
update: yes
- name: Install tspreed
community.general.make:
chdir: /usr/local/src/tspreed
target: install

View File

@@ -10,13 +10,21 @@ colortheme:
# Uvod # Uvod
- Šta je ekonomija? - Šta je ekonomija?
- istorija
- trampa
- kovanice i papirni novac
- "slobodna" trgovina
- raspodela resursa - raspodela resursa
- efikasnost - efikasnost i evektivnost
# Uvod # Uvod
- Šta je novac? - Šta je novac?
- banke
- ponuda i traznja
- moć odlučivanja u raspodeli resursa - moć odlučivanja u raspodeli resursa
- likvidnost - likvidnost
- bruto domaci proizvod (BDP eng GDP)
# Štednja # Štednja
- Štednja - Štednja
@@ -47,6 +55,7 @@ colortheme:
- Brokeri - Brokeri
- domaći - domaći
- strani - strani
- wall street
# Kripto # Kripto
- Novac - Novac
@@ -62,10 +71,33 @@ colortheme:
- iluzija sposobnosti - iluzija sposobnosti
- zakoni - zakoni
# Uspesi sistema
- Uspesi sistema
- brz napredak u poljima interesovanja (profita)
- masovna proizvodnja
- poslovi i obucavanje naroda
-
# Neuspesi i kritika sistema
- Kritika
- planirano zastarevanje
- ciklicna potrosnja
- ekoloska katastrofa
- automatizacija
- besmisleni poslovi
- robovanje profitu
- kompetitivnost i ratovi
- sve na prodaju
- kriza u ciklusima
- najbogatijih 1%
- maltuzianizm
# Kako da se obogatim? # Kako da se obogatim?
- Kako zaraditi? - Kako zaraditi?
- roditi se bogat - nasledstvo
- krasti
- rad i štednja - rad i štednja
- investicije
- kradja
- sreća - sreća

View File

@@ -1,62 +0,0 @@
---
title:
- The Extended Mind and Licensing
author:
- Malin
theme:
- Warsaw
colortheme:
- orchid
---
# History
- Started with Clark and Chalmers
- [Chalmers at Ted](https://yt.artemislena.eu/watch?v=ksasPjrYFTg)
## Cyborg Manifesto
Or maybe Donna Haraway?
# Original Extended Minds
- Notebooks
- Counting on fingers
- Fil-o-fax
# Electronic Extended Minds
- Phones
- Computers
- Google?
- Note-apps?
# Intuition Pumps
- Proprioception and teeth
- The feeling of loss over theft
- Second brains
# Requirements
- 'to-hand'
- Repetition
- Locus
> Do you know where they live?
# Counter Requirements
> Skin and bone
Does *Ghost in the Shell* count?
# The Point and the Future
![robocop](robocop_valuse.png)
# End Notes
> Can you code in the sand?

View File

@@ -54,7 +54,7 @@ Does *Ghost in the Shell* count?
# The Point and the Future # The Point and the Future
![robocop](robocop_valuse.png) ![robocop](slides/extended_minds/robocop_values.png)
# End Notes # End Notes

View File

Before

Width:  |  Height:  |  Size: 358 KiB

After

Width:  |  Height:  |  Size: 358 KiB

View File

@@ -0,0 +1,243 @@
# Shut Up!
```sh
echo blacklist pcspkr > /etc/modprobe.d/nobeep.conf
```
---
# Standard Visuals
- `cbonsai`
- `asciiquarium`
- `top`
* `ZH4W`
## Another Monday!
- `cal --reform julian`
## Weather
```sh
curl wttr.in
curl -s wttr.in/
curl wttr.in/Moon
```
# `ls`
`ls -X`
---
# vim
- blog!
- seriously, just write
---
# `watch`
## Watch Differences
- `watch -d stat "$file"`
- `watch -d ip a`
## With Makefiles
```sh
watch --chgexit ping -c 1 dmz.rs && sleep 3 && unison -batch pir
```
## Check Progress
```sh
watch 'ls **/*.pdf | column'
```
---
# Watch Shell Scripts
```sh
watch -e ./script.sh
```
---
# Slow Down
```sh
function slow(){
ff=/tmp/bashpipe_$(date +%s)
mkfifo $ff 2>/dev/null
( cat $ff | perl -We 'use Time::HiRes;$|++;while(read(STDIN,$c,1)){Time::HiRes::usleep(15000);print $c;}' )& exec &> $ff
}
```
## Safety?
- no
## `htop`?
- no
## `speedtest`?
- **YES**
```
---
# Notes
```sh
alias no='$EDITOR .no.md'
function n(){
[ -z "$1" ] && cat .no.md || echo $@ >> .no.md
}
```
---
# URL Decoding
```bash
urldecode(){ : "${*//+/ }"; echo -e "${_//%/\\x}"; }
```
---
# Send Text
```sh
function sendtext(){
[ -f "$1" ] && \
cat "$1" | nc termbin.com 9999 || \
echo "$($1)" | nc termbin.com 9999
}
```
---
# Readline
Put this in `.inputrc`.
```text
set editing-mode vi
set keymap vi
```
---
# More Readline vi
```text
set editing-mode vi
set show-mode-in-prompt on
set vi-ins-mode-string " "
set vi-cmd-mode-string "W "
set keymap vi
```
---
# More Readline
```text
set match-hidden-files off
set show-all-if-ambiguous on
set show-all-if-unmodified on
set colored-stats on
"\C- ": shell-expand-line
"\C-x": glob-expand-word
Control-g: "g\n"
Control-y: "| ccze\n"
Control-o: "\C-u lfcd\n\C-u"
Control-l: "\C-u clear -x && ls\n"
```
---
# Synchronization
## Syncthing
- 'Just works'
## Unison
- Fuck haskell
- But actually it's good
---
# `column`
```sh
column -ts: -H PW,GID,shell -N User,PW,UID,GID,Description,Home,shell /etc/passwd
```
##
```sh
column -J -ts: -H PW,GID,shell -N User,PW,UID,GID,Description,Home,shell /etc/passwd | jq -r .table.[].user
```
---
# Aliases
## b
```sh
b ()
{
eval "cd $(for d in $(seq 1 $1);
do
printf ../;
done)"
}
```
---
# `eval`
- Don't
---
# Clear Downloads
```sh
rm -rf ~/Downloads/*
echo "tmpfs $HOME/Downloads tmpfs defaults,size=1G 0 0" | sudo tee -a /etc/fstab
sudo systemctl daemon-reload # Only for systemd
sudo mount -a
mount | tail -1
```
# The Best: `yes`
- `yes`
- `yes no`

View File

@@ -0,0 +1,74 @@
- Vaccines and modern medicine
- Antibiotic apocalipse
- Gut microbiome => immunity / mental health
- Transfer experiment
- PREbiotic / PRObiotic
- Fermented procucts (not pasteurization)
- kombucha
- kefir
- kimchi
- picked food
- kvas
## Komucha
![[scoby.jpg | 350]]
*Symbiotic culture of bacteria and yeast (SCOBY)*
![[kombucha-jar.jpg | 350]]
*First fermentation*
#### Recepie:
- 70g/l sugar
- green/black tea (not teabags)
- room temp
- 14 days -> 1st ferment
- 3-10 days -> 2nd ferment with fruit
#### Info
- r/komucha
- Stores with healty foods selling commercially
- Many types of acids - low ph - microbes thrive
- 0.5% alcohol (USA regulations)
Don't toss those pineapple skins! Turn them into a delicious and refreshing Mexican probiotic drink called tepache. It's a great alternative to soda or kombucha and perfect for staying cool in the summer heat. 
Tepache Recipe:
Add the skins of 1 pineapple to a 2L jar.
Mix in ½ cup sugar or brown sugar (piloncillo is typically used but I couldn't find it), 1 inch of ginger, and 1 cinnamon stick.
Fill to the top with water.
Let it ferment for 5 days.
Bottle it up for a second fermentation for 2 days. Then, chill in the fridge before serving.
Enjoy this bubbly, homemade treat! 
IS you would like the link a step by step YouTube video comment "YT Tepache"

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
slides/kombucha/scoby.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,119 @@
# Generalizing Makefiles for All Occasions
- Rules are bad,
- standards are good,
- habits are better.
***
# General Standards
- `make help`
- `make check`
- `sudo make install`
**NB:** we separate `make` from `make install` so that the files are not build with the user `root` as the owner.
***
# Service Standards
- `make backup.tgz`
- `make install`
## Service Backups in Two Files
- `configs`: configuration files, all tracked in git.
- `store`: passwords and binary files, not tracked in git.
## New Abilities Unlocked
- Open Access Administration.
- Sharing admin configs with hacker spaces.
***
## BEHOLD: The Everything Makefile
***
```make
CONFIGS = $(patsubst /%,%,$(shell cat configs))
STORE = $(patsubst /%,%,$(shell cat store))
CP = mkdir -p $(dir $@) && cp -a
IGNORE_FILE = $(shell test -d .git/info && echo .git/info/exclude || echo .gitignore)
GIT_COMMIT = git commit -m"add $@" --no-gpg-sign --no-signoff
SELECTOR != command -v sk || command -v fzy || command -f fzf
.PHONY: all
all: init backup.tgz $(IGNORE_FILE)
backup.tgz: $(CONFIGS) $(STORE)
tar czf $@ $^
$(IGNORE_FILE): store
echo $(STORE) backup.tgz | tr ' ' '\n' > $@
.PHONY: init
init: configs store
configs store:
while con="$$(find /var /etc/ /sys/ -maxdepth 2 -mindepth 1 -type f 2>/dev/null | $(SELECTOR) -p "Select files for $@\nPress Ctrl+d once done")"; do \
echo "$$con"; \
done > $@
$(CONFIGS): %: /%
$(CP) $< $@
git add $@
$(GIT_COMMIT)
$(info made git commit for $@)
$(STORE): %: /%
$(CP) $< $@
clean:
$(RM) -r $(CONFIGS) $(STORE) backup.tgz
```
***
## Example: Soft Serve Makefile
<br>
The `configs` file:
```
/etc/soft-serve.conf
/var/lib/soft-serve/data/config.yaml
/var/lib/soft-serve/data/file
/etc/nginx/sites-enabled/soft.dmz.rs
/etc/nginx/sites-available/soft.dmz.rs
```
<br>
The `store` file:
```
/var/lib/soft-serve/data/lfs
/var/lib/soft-serve/data/repo
/var/lib/soft-serve/data/soft
/etc/letsencrypt/archive/soft
/etc/letsencrypt/live/soft.dm
/var/lib/soft-serve/data/ssh/
```
***
# Other Build Systems
> "*What if I want to use this other thing, instead of a makefile?"
***
# Other Build Systems (Sans Heresy)
> "*What if I want to use this other thing, instead of a makefile?"
- Easy: just use a Makefile.
```make
[ ... ]
public/: src/
python build_pages.py
```

View File

@@ -0,0 +1,34 @@
CONFIGS = $(patsubst /%,%,$(shell cat configs))
STORE = $(patsubst /%,%,$(shell cat store))
CP = mkdir -p $(dir $@) && cp -a
IGNORE_FILE = $(shell test -d .git/info && echo .git/info/exclude || echo .gitignore)
GIT_COMMIT = git commit -m"add $@" --no-gpg-sign --no-signoff
SELECTOR != command -v sk || command -v fzy || command -f fzf
.PHONY: all
all: init backup.tgz $(IGNORE_FILE)
backup.tgz: $(CONFIGS) $(STORE)
tar czf $@ $^
$(IGNORE_FILE): store
echo $(STORE) backup.tgz | tr ' ' '\n' > $@
.PHONY: init
init: configs store
configs store:
while con="$$(find /var /etc/ /sys/ -maxdepth 2 -mindepth 1 -type f 2>/dev/null | $(SELECTOR) -p "Select files for $@\nPress Ctrl+d once done")"; do \
echo "$$con"; \
done > $@
$(CONFIGS): %: /%
$(CP) $< $@
git add $@
$(GIT_COMMIT)
$(info made git commit for $@)
$(STORE): %: /%
$(CP) $< $@
clean:
$(RM) -r $(CONFIGS) $(STORE) backup.tgz

View File

@@ -0,0 +1 @@
*

View File

@@ -0,0 +1,16 @@
MONTHS != date +%B && date -d '1 month' +%B
IP != dig +short myip.opendns.com @resolver1.opendns.com
CITY != curl -s http://api.db-ip.com/v2/free/$(IP) | grep city | cut -d: -f2 | tr -d '"'
TITLES = $(MONTHS)
TITLES += $(CITY)
BOOKS = $(patsubst %,Books/%.md,$(TITLES))
$(BOOKS):
@mkdir -p $(@D)
fortune -l > $@
progs += $(BOOKS)
dross += Books/

View File

@@ -0,0 +1,10 @@
cows = $(patsubst Forts/fortune_%.md,Cows/cow-%.txt,$(wildcard Forts/fortune_*.md))
$(cows): Cows/cow-%.txt: Forts/fortune_%.md
@mkdir -p $(@D)
cat $< | cowsay > $@
progs += forts
progs += $(cows)
dross += Cows/

View File

@@ -0,0 +1,11 @@
fnums != seq 8 | sort -R | head -2
forts = $(patsubst %,Forts/fortune_%.md,$(fnums))
$(forts):
@mkdir -p $(@D)
fortune -s > $@
progs += $(forts)
dross += Forts/

View File

@@ -0,0 +1,14 @@
filter = $(shell cowsay -l | sort -R | head -1)
zoo = $(patsubst Forts/fortune_%.md,Zoo/animal-%.md,$(forts))
$(zoo): Zoo/animal-%.md: Forts/fortune_%.md
@mkdir -p $(@D)
echo '```' > $@
cat $< | cowsay -f $(filter) >> $@
echo '```' >> $@
progs += forts
progs += $(zoo)
dross += Zoo/

1
slides/makefiles/examples/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*

View File

@@ -0,0 +1,8 @@
CHECKER = command -v
.PHONY: check
check:
$(CHECKER) fortune >/dev/null
$(CHECKER) cowsay >/dev/null
file: | check
fortune | cowsay > $@

View File

@@ -0,0 +1,13 @@
forts/big_fort.txt: forts/short.txt forts/long.txt
cat forts/short.txt forts/long.txt > forts/big_fort.txt
forts/:
mkdir forts
forts/short.txt: forts/
fortune -s > forts/short.txt
forts/long.txt: forts/
fortune -l > forts/long.txt

View File

@@ -0,0 +1,21 @@
forts/big_fort.txt: forts/short.txt forts/long.txt
cat $^ > $@
README.md:
echo "For an example makefile for python" > $@
echo "check out the nd6 dice-roller at" >> $@
echo "ssh -p 2222 soft.dmz.rs -t nd6" >> $@
forts/: README.md
mkdir -p $@
forts/short.txt: forts/
fortune -s > $@
forts/long.txt: forts/
fortune -l > $@
clean:
rm -rf forts

View File

@@ -0,0 +1 @@
../PS/omni_makefile

View File

@@ -0,0 +1,18 @@
IMAGES = $(wildcard jpgs/*)
COL = $(patsubst jpgs/%,collection/%,$(IMAGES))
.PHONY: help
help:
$(info try 'show' or 'output')
.PHONY: show
show:
$(info IMAGES is $(IMAGES))
$(info Col is $(COL))
.PHONY: output
output: $(COL)
collection/%.jpg: jpgs/%.jpg
mkdir -p $(@D)
cp $< $@

View File

@@ -0,0 +1,15 @@
CP = ln -f
output: pngs/ldap.png
jpgs/ldap.jpg: ../../ldap/ldap.jpg
mkdir -p $(dir $@)
$(CP) $< $@
pngs/%.png: jpgs/%.jpg
mkdir -p $(dir $@)
$(info making $(@F) in $(@D))
magick $< $@
clean:
$(RM) -r pngs jpgs

View File

@@ -0,0 +1,10 @@
include /etc/os-release
DAY != date +%d
MESSAGE != fortune -s
motd_$(DAY):
$(info Hello $(USER))
$(info Placing message:)
echo "Welcome to $(NAME)" > $@
echo $(MESSAGE) >> $@

View File

@@ -0,0 +1,13 @@
---
title:
- Making Makefiles
author:
- Malin
theme:
- Warsaw
colortheme:
- orchid
---
(presentation in presentation.md)

View File

@@ -0,0 +1,314 @@
# Intro
The fundamental problem:
```bash
git submodule update --init soundscape
cargo build --release
install -pm755 target/release/tap /usr/local/bin/
```
*But you can't type this for each run.*
***
## First Solution
```bash
#!/bin/sh
git submodule update --init soundscape
cargo build --release
install -pm755 target/release/tap /usr/local/bin/
```
At this point, every test takes 10 minutes.
## Second Solution
```bash
#!/bin/sh
[ -f soundscape/.git ] || git submodule update --init soundscape
[ -f target/release/tap ] || cargo build --release
[ -f target/release/tap ] || \
install -pm755 target/release/tap /usr/local/bin/
```
***
# Makefile Solutions
- input, process, output.
- automatic idempotence
```bash
INSTALL_DIR = /usr/local/bin
soundscape/.git:
git submodule update --init soundscape
/usr/local/bin/tap: target/release/tap
install -pm755 target/release/tap $(INSTALL_DIR)
target/release/tap: src soundscape/.git
cargo build --release
```
***
# The Three Sigils
Readable, but slow:
```make fort_1
forts/big_fort.txt: forts/short.txt forts/long.txt
cat forts/short.txt forts/long.txt > forts/big_fort.txt
forts/:
mkdir forts
forts/short.txt: forts/
fortune -s > forts/short.txt
forts/long.txt: forts/
fortune -l > forts/long.txt
```
***
| Make this | From That | From These |
|:---------:|:---------:|:----------:|
| `$@` | `$<` | `$^` |
```make fort_2
forts/big_fort.txt: forts/short.txt forts/long.txt
cat $^ > $@
forts/: README.md
mkdir $@
forts/short.txt: forts/
fortune -s > $@
forts/long.txt: forts/
fortune -l > $@
```
***
# Gotcha: Directories
```make fort_2
forts/big_fort.txt: forts/short.txt forts/long.txt
cat $^ > $@
forts/: README.md
mkdir $@
forts/short.txt: forts/
fortune -s > $@
forts/long.txt: forts/
fortune -l > $@
README.md:
echo "Find the fortunes in the fort dir" > $@
```
***
# Variables
```make vars
include /etc/os-release
DAY != date +%d
MESSAGE != fortune -s
motd_$(DAY):
$(info Placing message:)
echo "Welcome to $(NAME)" > $@
echo $(MESSAGE) >> $@
```
### Gotcha: Hanging Quotes
> echo "Welcome to "Arch Linux""
***
## Add New Variables
```make
make -f vars -e MESSAGE="Red alert, all hands on deck!"
```
### Gotcha: Quote, or Risk Escape
```make
make -f vars -e MESSAGE="<h1> HTML Headers </h1>"
```
***
# Gotcha: Variables from Shell
This works:
```make
file:
$(info Hello $(USER))
```
...but not this:
```make
file:
user=bob
echo $user
```
Nor this:
```make
numbers:
for x in 1 2 3 4 5; do
echo $x
done > $@
```
Nor this:
```make
numbers:
for x in 1 2 3 4 5; do echo $x ; done > $@
```
***
### Ugly Fixes are Ugly
This works, but don't.
```make
file:
for x in 1 2 ;\
do echo $$x ;\
done > $@
```
***
# Phonies, and the Problems with Lies
## Clean
```make
.PHONY: clean
clean:
git clean -fdX
```
## Gotcha: Recompiling without Changes
```make
CHECKER = command -v
.PHONY: check
check:
$(CHECKER) fortune >/dev/null
$(CHECKER) cowsay >/dev/null
file: check # Needs a '|'
fortune | cowsay > $@
```
***
## Non-Compiling Checks
- `make` -n
- *Gotcha*: shell output variables.
***
# The Fourth Sigil: `%`
Create standardized rules with `%`.
```make rules
CP = ln -f
output: pngs/ldap.png
jpgs/ldap.jpg: ../../ldap/ldap.jpg
mkdir -p $(dir $@)
$(CP) $< $@
pngs/%.png: jpgs/%.jpg
mkdir -p $(dir $@)
$(info making $(@F) in $(@D))
magick $< $@
```
***
# Bling: makefile2graph
```graph
┌────────────────┐ ┌────────────────────┐
│ forts/long.txt │ ◀── │ forts/ │
└────────────────┘ └────────────────────┘
│ │
│ │
│ ▼
│ ┌────────────────────┐
│ │ forts/short.txt │
│ └────────────────────┘
│ │
│ │
│ ▼
│ ┌────────────────────┐
└──────────────────▶ │ forts/big_fort.txt │
└────────────────────┘
```
### Gotcha: The Binary is Called `make2graph`
- Works with GUI tools maybe, IDK, I don't use Windows.
- Some systems can use `graph-easy`, but it's outdated.
***
# Patsubst and Wildcards
```make pats
IMAGES = $(wildcard jpgs/*)
COL = $(patsubst jpgs/%,collection/%,$(IMAGES))
.PHONY: show
show:
$(info IMAGES is $(IMAGES))
$(info Col is $(COL))
.PHONY: output
output: $(COL)
collection/%.jpg: jpgs/%.jpg
mkdir -p $(@D)
cp $< $@
```
***
# Use Cases
- Backups
- Making Websites
* `git clone https://gitlab.com/bindrpg/blag`
- `NOT installations`
- ...but maybe installations?
- Setting

44
slides/rss/rss.md Normal file
View File

@@ -0,0 +1,44 @@
# RSS
---
- Released in 1999
- Web feed
- Podcasts
- Aaron Swartz
---
## Pros
- Decentralized
- No censure
- Cut the middle man
- No ads
- Not much to monetize
- Offline reading (mountines, abroad)
---
## Apps
- many clients
- Web feed
- Thunderbird
- Feeder on F-Droid
- Podcasts
- Gpodder
- Antenna Pod on F-Droid
---
## Ideas to use in Decentrala
- feed with events page on website
- some news or wiki
- forum thread

View File

@@ -0,0 +1,121 @@
# Selfhosting
---
## Why should I selfhost?
- Privacy
- Security
- Freedom
- Can be cheaper
- To learn
---
## Hardware
- Any PC can become server
- Mini PC
- Single board computers (RasperryPi, etc.)
- Desktop
- Enterprise
### Storage
- More than one hdd
- SAS vs HDD vs SSD vs NVMe
- RAID, RAID controllers
### CPU
- Xeon
- Rizen
### UPS and APC
### Backups
### Network
- Router
- Switch
---
## Software
Linux containers (LXC) vs Virtual Machine (VM)
### Server Managers
- Proxmox
- static ip on install
- raid
- XCP-ng
### Container and Managment
- Docker
- Kubernetes (k8s)
- Portainer
- Lilipod
---
## Network
- Pfsense
- OpenWRT
---
## Security
---
## Services
- Dmz Services
- Proxmox comunity scripts
### Popular
- Home assistant
- Jellyfin
- Adblock
- LLMs
- Libredirect
### Tools
- Nginx and SSL
- Nginx Proxy Manager
- Caddy
- VPN
- Wireguard
- Open VPN
- SSH
- disable password login
- ssh jump
- local port forwarding
## Dashboards and analytics
- Dashy
- Homepage
- Grafana
---
## Licences
- Copyleft
- Permissive
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@@ -33,7 +33,8 @@ Ekipa koju interesuje :
# Lokacije # Lokacije
- DC Krov hacklab - DC Krov
- KC Grad radionce - KC Magacin
- Matematicki Faklutet (cekamo)
- Drugi fakulteti, skole? # Kontakt
![qrcode](slides/stajedecentrala/qrcode.png)