From 707e4a8b50f567dbbb740a067a0609c12159379f Mon Sep 17 00:00:00 2001 From: terminaldweller Date: Sun, 29 Jan 2023 20:20:49 +0330 Subject: bunch of updates --- .newsboat/urls | 14 +- .zshrc | 37 +- bin/tunneltop | 250 ++-- chroot/mount.sh | 2 +- cv/CV.tex | 1 - cv/CV_Abridged.tex | 31 +- pkg_list | 1640 ++++++++++++++++++++++ terminaldweller.com/lounge/docker-compose.yml | 29 + terminaldweller.com/main/srv/cv/CV_Abridged.html | 316 +++++ terminaldweller.com/main/srv/index.html | 17 +- terminaldweller.com/traefik/traefik.yml | 97 ++ zfs/import.sh | 3 +- 12 files changed, 2239 insertions(+), 198 deletions(-) create mode 100644 pkg_list create mode 100644 terminaldweller.com/lounge/docker-compose.yml create mode 100644 terminaldweller.com/main/srv/cv/CV_Abridged.html create mode 100644 terminaldweller.com/traefik/traefik.yml diff --git a/.newsboat/urls b/.newsboat/urls index 06eaa57..e40d4dd 100644 --- a/.newsboat/urls +++ b/.newsboat/urls @@ -17,6 +17,9 @@ https://rssgen.terminaldweller.com/?action=display&bridge=OpenwrtSecurityBridge& https://rssgen.terminaldweller.com/?action=display&bridge=MozillaSecurityBridge&format=Atom "~Moz_Sec_Ad"Moz_Sec_Ad https://rssgen.terminaldweller.com/?action=display&bridge=WikiLeaksBridge&category=-News-&format=Atom "~Wikileaks"Wikileaks +https://rssgen.terminaldweller.com/?action=display&bridge=RedditBridge&context=single&r=i2p&f=&score=&d=hot&search=&format=Atom "~I2P_Reddit"Reddit +https://rssgen.terminaldweller.com/?action=display&bridge=RedditBridge&context=single&r=tor&f=&score=&d=hot&search=&format=Atom "~Tor_Reddit"Reddit + # (Twitter) https://rssgen.terminaldweller.com/?action=display&bridge=TwitterBridge&context=By+username&u=_margery28_&norep=on&noretweet=on&nopinned=on&nopic=on&noimg=on&noimgscaling=on&format=Atom "~Marg"Twitter https://rssgen.terminaldweller.com/?action=display&bridge=TwitterBridge&context=By+username&u=PancakeSwap&norep=on&noretweet=on&nopinned=on&nopic=on&noimg=on&noimgscaling=on&format=Atom "~Pancakeswap"Twitter @@ -102,6 +105,15 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCsBjURrPoezykLs9EqgamOA "~F https://www.youtube.com/feeds/videos.xml?channel_id=UCW6xlqxSY3gGur4PkGPEUeA "~Seytonic"youtube https://www.youtube.com/feeds/videos.xml?channel_id=UCqajGNTzlQLk5uRsD8R5m3Q "~Wolf_Lord_Rho"youtube https://www.youtube.com/feeds/videos.xml?channel_id=UCUdkjbeIFea0qUSgwR1CUOg "~Studying_With_Alex"youtube +https://www.youtube.com/feeds/videos.xml?channel_id=UCZgt6AzoyjslHTC9dz0UoTw "~ByteByteGo"youtube +https://www.youtube.com/feeds/videos.xml?channel_id=UCavTvSwEoRABvnPtLg0e6LQ "~Crypto_Tips"youtube +https://www.youtube.com/feeds/videos.xml?channel_id=UC3ltptWa0xfrDweghW94Acg "~Karl_Jobst"youtube +https://www.youtube.com/feeds/videos.xml?channel_id=UCUxmjSBn7Blx6eWpeC0I4xQ "~Maryam_Sadeghi"youtube +https://www.youtube.com/feeds/videos.xml?channel_id=UCaiL2GDNpLYH6Wokkk1VNcg "~mCoding"youtube +https://www.youtube.com/feeds/videos.xml?channel_id=UCd26IHBHcbtxD7pUdnIgiCw "~Mike_Levin"youtube +https://www.youtube.com/feeds/videos.xml?channel_id=UCS4FAVeYW_IaZqAbqhlvxlA "~Context_Free"youtube +https://www.youtube.com/feeds/videos.xml?channel_id=UCYVU6rModlGxvJbszCclGGw "~Rob_Braxman_Tech"youtube +https://www.youtube.com/feeds/videos.xml?channel_id=UCVik6mzTCurdJmvdj5dCa7A "~My_PlayHouse"youtube https://www.youtube.com/feeds/videos.xml?user=g297125009 "~Gavin_Freeborn"youtube https://www.youtube.com/feeds/videos.xml?user=Hak5Darren "~Hak_5"youtube @@ -109,7 +121,7 @@ https://www.youtube.com/feeds/videos.xml?user=GISIGeometry "~Hussein_Nasser"yout https://www.youtube.com/feeds/videos.xml?user=geerlingguy "~Jeff_Geerling"youtube https://www.youtube.com/feeds/videos.xml?user=JtheLinuxguy "~Learn_Linux_TV"youtube https://www.youtube.com/feeds/videos.xml?user=NetworkChuck "~NetworkChuck"youtube -# Misc + https://www.youtube.com/feeds/videos.xml?channel_id=UC0Whg8Zz7TT1VSpWeCjghKg "~-sokoninaru-そこに鳴る"youtube https://www.youtube.com/feeds/videos.xml?channel_id=UC3M7l8ved_rYQ45AVzS0RGA "~The_Jimmy_Dore_Show"youtube https://www.youtube.com/feeds/videos.xml?channel_id=UC6gD8kk_Z_5bX2PcRk2fwDg "~Pagefire"youtube diff --git a/.zshrc b/.zshrc index 6ab0bdc..d25d9a6 100644 --- a/.zshrc +++ b/.zshrc @@ -98,19 +98,28 @@ alias ogg="ogg123" alias mupdf="/home/devi/extra/mupdf/build/release/mupdf-x11 -D red -P black -I" alias googler="~/extra/googler/googler --colors GKmexy -c us -l en --count 7 --exact " alias ddgr="ddgr --colorize always -r us-en -n 15" -alias pirate-get="pirate-get -S ~/magnets/" -alias vps="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh 87.236.209.206 -l ubuntu -p 1022" -alias vpn="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh 192.99.102.52 -l rooot -p 1022" -alias vpn2="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh 145.239.165.137 -l rooot" +# alias pirate-get="pirate-get -S ~/magnets/" +alias vps="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -tt 87.236.209.206 -l ubuntu -p 1022" +alias vpn="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -tt 192.99.102.52 -l rooot -p 1022" +alias vpn2="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -tt 145.239.165.137 -l rooot" # alias vpn3="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -o StrictHostKeyChecking=yes -o UserKnownHostsFile=/dev/null -o VerifyHostKeyDNS=yes root@jump3.terminaldweller.com -p 2022" -alias vpn3="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -p 2022 root@185.112.147.110" -alias vpn6="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -p 3333 ubuntu@185.130.45.46" -alias vpn7="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -p 3333 ubuntu@185.130.47.81" -alias vpn8="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -p 3333 ubuntu@185.130.47.208" +alias vpn3="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -tt -p 2022 root@185.112.147.110" +alias vpn6="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -tt -p 3333 ubuntu@185.130.45.46" +alias vpn7="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -tt -p 3333 ubuntu@185.130.47.81" +alias vpn8="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -tt -p 3333 ubuntu@185.130.47.208" alias vpn9="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -tt -i ~/.ssh/id_rsa -p 3333 ubuntu@185.130.47.81 ssh -tt -i /home/ubuntu/.ssh/id_rsa_lv2 2a07:e01:3:1c4::1 -p 3333 -l ubuntu" -alias vms="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh 185.126.202.69 -l ubuntu -p 1022" -alias cloud_one="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh 130.185.121.80 -l ubuntu -p 1022" -alias pytags="ctags --fields=+l --languages=python --python-kinds=-iv -R ." +alias vms="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh -tt 185.126.202.69 -l ubuntu -p 1022" +alias -g DOCKER_HOST_VPS="ssh://ubuntu@87.236.209.206:1022" +alias -g DOCKER_HOST_VPN="ssh://rooot@192.99.102.52:1022" +alias -g DOCKER_HOST_VPN2="ssh://rooot@145.239.165.137:22" +alias -g DOCKER_HOST_VPN3="ssh://root@185.112.147.110:2022" +alias -g DOCKER_HOST_VPN6="ssh://ubuntu@185.130.45.46:3333" +alias -g DOCKER_HOST_VPN7="ssh://ubuntu@185.130.47.81:3333" +alias -g DOCKER_HOST_VPN8="ssh://ubuntu@185.130.47.208:3333" +# alias -g DOCKER_HOST_VPN9="" +alias -g DOCKER_HOST_VMS="ssh://ubuntu@185.126.202.69:1022" +# alias cloud_one="proxychains4 -q -f ~/proxies/ice/proxychains.conf ssh 130.185.121.80 -l ubuntu -p 1022" +# alias pytags="ctags --fields=+l --languages=python --python-kinds=-iv -R ." alias v="vim" alias kshrc="vim ~/scripts/.kshrc" alias fixkshrc="cp ~/scripts/.kshrc ~/.kshrc" @@ -231,9 +240,9 @@ alias zh_router_admin="zssh admin@192.168.90.71" alias youtube_dl="proxychains4 -f /home/devi/proxies/ice/proxychains.conf youtube-dl" # alias campv="proxychains4 -f /home/devi/proxies/ca/proxychains.conf mpv --no-video" alias tormpv="torsocks --port 9054 mpv --no-video" -alias youtube144="proxychains4 -f /home/devi/proxies/ice/proxychains.conf mpv --ytdl-format=160+249" -alias youtube360="proxychains4 -f /home/devi/proxies/ice/proxychains.conf mpv --ytdl-format=243+160" -alias youtube480="proxychains4 -f /home/devi/proxies/ice/proxychains.conf mpv --ytdl-format=244+140" +alias youtube144="mpv --ytdl-format=160+249" +alias youtube360="mpv --ytdl-format=243+160" +alias youtube480="mpv --ytdl-format=244+140" alias tridactylrc="vim ~/scripts/.tridactylrc" alias fixtridactylrc="cp ~/scripts/.tridactylrc ~/" alias man="man -O width=210" diff --git a/bin/tunneltop b/bin/tunneltop index 7c32e17..7bf1878 100755 --- a/bin/tunneltop +++ b/bin/tunneltop @@ -1,6 +1,6 @@ #!/usr/bin/env python """A top-like program for monitoring ssh tunnels""" -# TODO- task cancellation is very slow as should be with tasks + import argparse import asyncio import copy @@ -134,52 +134,18 @@ def ffs( return lines -def render( - data_cols: typing.Dict[str, typing.Dict[str, str]], - tasks: typing.List[asyncio.Task], - stdscr, - sel: int, -): +def render(lines: typing.List[str], stdscr, sel: int): """Render the text""" - lines = ffs( - 2, - ["NAME", "ADDRESS", "PORT", "STATUS", "STDOUT", "STDERR"], - False, - True, - [v["name"] for _, v in data_cols.items()], - [v["address"] for _, v in data_cols.items()], - [repr(v["port"]) for _, v in data_cols.items()], - [v["status"] for _, v in data_cols.items()], - [v["stdout"] for _, v in data_cols.items()], - [v["stderr"] for _, v in data_cols.items()], - ) iterator = iter(lines) stdscr.addstr(1, 1, lines[0], curses.color_pair(3)) next(iterator) for i, line in enumerate(iterator): - try: - line_content = stdscr.instr(sel + 2, 1).decode("utf-8") - name: str = line_content[: line_content.find(" ")] - finally: - name = "" if i == sel: stdscr.addstr( - (2 + i) % (len(lines) + 1), - 1, - line, - curses.color_pair(2) - if name not in tasks - else curses.color_pair(5), + (2 + i) % (len(lines) + 1), 1, line, curses.color_pair(2) ) else: - stdscr.addstr( - 2 + i, - 1, - line, - curses.color_pair(1) - if name not in tasks - else curses.color_pair(4), - ) + stdscr.addstr(2 + i, 1, line, curses.color_pair(1)) stdscr.addstr("\n") stdscr.box() @@ -198,43 +164,18 @@ def curses_init(): curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_GREEN) curses.init_pair(3, curses.COLOR_BLUE, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_CYAN, curses.COLOR_BLACK) - curses.init_pair(5, curses.COLOR_BLACK, curses.COLOR_CYAN) return stdscr -class TunnelManager: +class TunnelTop: """The tunnel top class""" def __init__(self): self.argparser = Argparser() - self.data_cols: typing.Dict[ - str, typing.Dict[str, str] - ] = self.read_conf() + self.data_cols: typing.Dict[str, typing.Dict[str, str]] = {} self.tunnel_tasks: typing.List[asyncio.Task] = [] self.tunnel_test_tasks: typing.List[asyncio.Task] = [] - self.scheduler_task: asyncio.Task - self.scheduler_table: typing.Dict[ - str, int - ] = self.init_scheduler_table() - # we use this when its time to quit. this will prevent any - # new tasks from being scheduled - self.are_we_dying: bool = False - - loop = asyncio.get_event_loop() - loop.add_signal_handler( - signal.SIGHUP, - lambda: asyncio.create_task(self.sighup_handler()), - ) - - def init_scheduler_table(self) -> typing.Dict[str, int]: - """initialize the scheduler table""" - result: typing.Dict[str, int] = {} - for key, value in self.data_cols.items(): - if "test_interval" in value and value["test_command"] != "": - result[key] = 0 - - return result def read_conf(self) -> typing.Dict[str, typing.Dict[str, str]]: """Read the config file""" @@ -259,36 +200,58 @@ class TunnelManager: } return data_cols - async def run_subprocess(self, cmd: str) -> typing.Tuple[bytes, bytes]: - """Run a command""" - proc = await asyncio.create_subprocess_exec( - *cmd.split(" "), - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, + async def run_subshell(self, cmd: str) -> typing.Tuple[bytes, bytes]: + """Run a command in a subshell""" + proc = await asyncio.create_subprocess_shell( + cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE ) - return await proc.communicate() - - async def run_test_coro( - self, cmd: str, task_name: str - ) -> typing.Tuple[bytes, bytes]: - """Run a test command""" try: - stdout, stderr = await self.run_subprocess(cmd) - stdout_str: str = stdout.decode("utf-8").strip("\n").strip('"') - stderr_str: str = stderr.decode("utf-8").strip("\n").strip('"') + return await proc.communicate() + except asyncio.CancelledError: + self.write_log("fucking fuck") + return (bytes(), bytes()) - self.data_cols[task_name]["stdout"] = stdout_str - self.data_cols[task_name]["stderr"] = stderr_str - if stdout_str == self.data_cols[task_name]["test_command_result"]: + def tunnel_test_callback(self, task: asyncio.Task) -> None: + """Tunnel test callback function.""" + try: + task_name = task.get_name() + self.data_cols[task_name]["stdout"] = ( + task.result()[0].decode("utf-8").strip("\n") + ) + self.data_cols[task_name]["stderr"] = ( + task.result()[1].decode("utf-8").strip("\n") + ) + if ( + task.result()[0].decode("utf-8").strip("\n") + == self.data_cols[task_name]["test_command_result"] + ): self.data_cols[task_name]["status"] = "UP" else: self.data_cols[task_name]["status"] = "DOWN" - - return stdout, stderr except asyncio.TimeoutError: self.data_cols[task_name]["status"] = "TMOUT" - raise + except asyncio.CancelledError: + self.data_cols[task_name]["status"] = "CANCELLED" + + async def tunnel_test_procs(self) -> typing.List[asyncio.Task]: + """run all the tunnel tests in the background as separate tasks""" + tasks: typing.List[asyncio.Task] = [] + for _, value in self.data_cols.items(): + if value["test_command"] != "": + tasks.append( + asyncio.create_task( + asyncio.wait_for( + self.run_subshell(value["test_command"]), + timeout=float(value["test_timeout"]), + ), + name=value["name"], + ) + ) + tasks[-1].add_done_callback(self.tunnel_test_callback) + await asyncio.sleep(0) + + return tasks async def tunnel_procs( self, @@ -298,7 +261,7 @@ class TunnelManager: for _, value in self.data_cols.items(): tasks.append( asyncio.create_task( - self.run_subprocess(value["command"]), name=value["name"] + self.run_subshell(value["command"]), name=value["name"] ), ) await asyncio.sleep(0) @@ -311,13 +274,10 @@ class TunnelManager: if k not in self.data_cols: self.tunnel_tasks.append( asyncio.create_task( - self.run_subprocess(value["command"]), name=k + self.run_subshell(value["command"]), name=k ) ) await asyncio.sleep(0) - self.data_cols[k] = copy.deepcopy(value) - if k in self.scheduler_table: - self.scheduler_table[k] = 0 else: if ( self.data_cols[k]["command"] != data_cols_new[k]["command"] @@ -331,11 +291,9 @@ class TunnelManager: self.data_cols[k] = copy.deepcopy(data_cols_new[k]) self.tunnel_tasks.append( asyncio.create_task( - self.run_subprocess(value["command"]), name=k + self.run_subshell(value["command"]), name=k ) ) - if k in self.scheduler_table: - self.scheduler_table[k] = 0 await asyncio.sleep(0) for k, _ in self.data_cols.items(): @@ -344,8 +302,6 @@ class TunnelManager: if task.get_name() == k: task.cancel() del self.data_cols[k] - if k in self.scheduler_table: - del self.scheduler_table[k] async def sighup_handler(self) -> None: """SIGHUP handler. we want to reload the config.""" @@ -358,7 +314,7 @@ class TunnelManager: """A simple logger""" with open( "/home/devi/devi/abbatoir/hole15/log", - "a", + "w", encoding="utf-8", ) as logfile: logfile.write(log) @@ -372,15 +328,15 @@ class TunnelManager: was_cancelled = task.cancel() self.write_log(f"was_cancelled: {was_cancelled}") await task - for _, value in self.data_cols.items(): - if value["name"] == name and task.cancelled(): - self.tunnel_tasks.append( - asyncio.create_task( - self.run_subprocess(value["command"]), - name=value["name"], - ) - ) - await asyncio.sleep(0) + for _, value in self.data_cols.items(): + if value["name"] == name: + self.tunnel_tasks.append( + asyncio.create_task( + self.run_subshell(value["command"]), + name=value["name"], + ) + ) + await asyncio.sleep(0) async def flip_task(self, line_content: str) -> None: """flip a task""" @@ -401,76 +357,53 @@ class TunnelManager: if value["name"] == name: self.tunnel_tasks.append( asyncio.create_task( - self.run_subprocess(value["command"]), + self.run_subshell(value["command"]), name=value["name"], ) ) await asyncio.sleep(0) + break async def quit(self) -> None: """Cleanly quit the applicaiton""" - # scheduler checks for this so stop making new tasks - # when we want to quit - self.are_we_dying = True - # alternatively we could ask asyncio to cancel all tasks for tunnel_test_task in self.tunnel_test_tasks: tunnel_test_task.cancel() for tunnel_task in self.tunnel_tasks: tunnel_task.cancel() - try: - await asyncio.gather(*self.tunnel_test_tasks) - await asyncio.gather(*self.tunnel_tasks) - except asyncio.TimeoutError: - pass - finally: - sys.exit(0) - - async def scheduler(self) -> None: - """schedulaer manages running the tests and reviving dead tunnels""" - while True: - if self.are_we_dying: - return - for key, value in self.scheduler_table.items(): - if value == 0 and key not in self.tunnel_test_tasks: - tunnel_entry = self.data_cols[key] - test_task = asyncio.create_task( - asyncio.wait_for( - self.run_test_coro( - tunnel_entry["test_command"], - tunnel_entry["name"], - ), - timeout=float(tunnel_entry["test_timeout"]), - ), - name=key, - ) - # test_task.add_done_callback(self.tunnel_test_callback) - self.tunnel_test_tasks.append(test_task) - self.scheduler_table[key] = int( - tunnel_entry["test_interval"] - ) - await asyncio.sleep(0) - else: - self.scheduler_table[key] = self.scheduler_table[key] - 1 - - # we are using a 1 second ticker. basically the scheduler - # runs every second instead of as fast as it can - await asyncio.sleep(1) - async def tui_loop(self) -> None: + async def main(self) -> None: """entrypoint""" sel: int = 0 try: stdscr = curses_init() - # we spawn the tunnels and the test scheduler put them - # in the background and then run the TUI loop - self.tunnel_tasks = await self.tunnel_procs() - self.scheduler_task = asyncio.create_task( - self.scheduler(), name="scheduler" + + self.data_cols = self.read_conf() + + loop = asyncio.get_event_loop() + loop.add_signal_handler( + signal.SIGHUP, + lambda: asyncio.create_task(self.sighup_handler()), ) + self.tunnel_tasks = await self.tunnel_procs() while True: + # self.tunnel_test_tasks = await self.tunnel_test_procs() + lines = ffs( + 2, + ["NAME", "ADDRESS", "PORT", "STATUS", "STDOUT", "STDERR"] + if not self.argparser.args.noheader + else None, + False, + True, + [v["name"] for _, v in self.data_cols.items()], + [v["address"] for _, v in self.data_cols.items()], + [repr(v["port"]) for _, v in self.data_cols.items()], + [v["status"] for _, v in self.data_cols.items()], + [v["stdout"] for _, v in self.data_cols.items()], + [v["stderr"] for _, v in self.data_cols.items()], + ) stdscr.clear() - render(self.data_cols, self.tunnel_tasks, stdscr, sel) + render(lines, stdscr, sel) char = stdscr.getch() if char == ord("j") or char == curses.KEY_DOWN: @@ -482,6 +415,7 @@ class TunnelManager: await self.restart_task(line_content.decode("utf-8")) elif char == ord("q"): await self.quit() + # elif char == curses.KEY_ENTER: elif char == ord("s"): line_content = stdscr.instr(sel + 2, 1) await self.flip_task(line_content.decode("utf-8")) @@ -499,5 +433,5 @@ class TunnelManager: if __name__ == "__main__": - tunnel_manager = TunnelManager() - asyncio.run(tunnel_manager.tui_loop()) + tunnel_top = TunnelTop() + asyncio.run(tunnel_top.main()) diff --git a/chroot/mount.sh b/chroot/mount.sh index 710eaf7..b2a9c68 100755 --- a/chroot/mount.sh +++ b/chroot/mount.sh @@ -10,7 +10,7 @@ sudo mount -t ext4 -U a27a2530-a37e-4bb3-9f4b-4b3975253e43 /home/devi/storage/ss sudo mount -o bind /home/devi/storage/ssd1/nix/store /nix/store sudo mkdir -p /tmp/tmpfs4_1 -sudo mount -t tmpfs -o size=4000M tmpfs /tmp/tmpfs4_1 +sudo mount -t tmpfs -o size=4096M tmpfs /tmp/tmpfs4_1 sudo chown devi:devi /tmp/tmpfs4_1 # virsh pool-define-as --name ramdisk --type dir --target /tmp/tmpfs4_1 virsh pool-start ramdisk diff --git a/cv/CV.tex b/cv/CV.tex index 6e6a31e..51dc9a4 100644 --- a/cv/CV.tex +++ b/cv/CV.tex @@ -170,4 +170,3 @@ \end{longtable} \end{document} - diff --git a/cv/CV_Abridged.tex b/cv/CV_Abridged.tex index 00c58ad..a0f8323 100644 --- a/cv/CV_Abridged.tex +++ b/cv/CV_Abridged.tex @@ -15,18 +15,19 @@ \newcommand\VRule{\color{lightgray}\vrule width 0.5pt} \title{\bfseries Farzad Sadeghi} -\date{2022/08/08} +\date{2023/01/28} \begin{document} \begin{multicols}{2} \maketitle \begin{center} - \begin{minipage}[ht]{0.2\textwidth}{\centering} + \begin{minipage}[ht]{0.3\textwidth}{\centering} \vspace*{\fill} \centering - thabogre@gmail.com\\ + {\href {https://terminaldweller.com} {https://terminaldweller.com}}\\ devi@terminaldweller.com\\ + thabogre@gmail.com\\ Tehran, Iran\\ - +98 0912 5802283 + +989125802283 \centering \vspace*{\fill} \end{minipage} @@ -56,15 +57,15 @@ \bf Crouse (Tehran, Iran)\\ July 2014--March 2016\\ 21 months\\ - \normalfont Embedded software developer, Safety-critical applications: Design, implementation and automation. The Software team’s ISO 26262 representative.\\[5pt] + \normalfont Embedded software developer, Safety-critical applications: Design, implementation and automation. The Software team's ISO 26262 representative.\\[5pt] \bf Safir Language Academy (Tehran, Iran)\\ August 2010--March 2012\\ 20 months\\ \normalfont English Teacher - Later on specifically IELTS teacher.\\[5pt] - \section*{Programming Languages} - \bf Languages: \normalfont C, Python, C++, Go\\[5pt] - \bf Other: \normalfont unix-like cli utilities, GNU make, Docker, Vagrant\\[5pt] + \section*{Skills} + \bf Programming Languages: \normalfont C, Python, C++, Go\\[5pt] + \bf Other: \normalfont Linux, docker\\[5pt] \section*{Hobby} I maintain my own local kubernetes cluster with k3s on my raspberry pis along with a bunch of VPSs that I run my services on(Docker, not swarm)).\\[5pt] @@ -75,7 +76,7 @@ \normalfont German: Beginner\\ \section*{Education} - 2021--Now Master's in Computer Science, Azad University, Science and Research Branch, Tehran, Iran.\\[5pt] + 2021--Now Master's in Computer Science, Azad University, Science and Research Branch, Tehran, Iran. Currently working on my thesis\\[5pt] 2007--2013 Bachelor's in Electrical Engineering, Iran University of Science and Technology, Tehran, Iran.\\[5pt] \bf Thesis: \normalfont Determining the frequency of an audio signal using phase derivation in real time, design and implementation using an FPGA. @@ -109,15 +110,15 @@ \bf ISO 26262\\ \normalfont Studied the software section of the standard. I was also the software group's representative for the study/review meetings held with the hardware and system teams on ISO 26262.\\[5pt] \section*{Links} - {\bf \href{https://www.linkedin.com/in/farzad-sadeghi/}{Linkedin}} My Linkedin page.\\[5pt] + {\bf \href{https://terminaldweller.com}{terminaldweller.com}} A list of links.\\[5pt] {\bf \href{https://github.com/terminaldweller}{Github}} My Github page.\\[5pt] - {\bf \href{https://github.com/terminaldweller/hived}{hived}} My personal tiny high-performance server written in Go.\\[5pt] + {\bf \href{https://github.com/terminaldweller/hived/tree/arbitrage}{hived}} A tiny and fast crypto API server.\\[5pt] + {\bf \href{https://github.com/terminaldweller/magni}{magni}} Upscales the images in a webpage and serves them back locally.\\[5pt] {\bf \href{https://github.com/terminaldweller/cgrep}{cgrep}} Grep for C-family source files.\\[5pt] - {\bf \href{https://github.com/terminaldweller/delf}{delf}} An ELF dump script in python.\\[5pt] - {\bf \href{https://github.com/terminaldweller/devourer}{devourer}} A tiny knowledge aggregator still in its infancy.\\[5pt] - {\bf \href{https://github.com/terminaldweller/simplex}{dsimplex}} Yet another simplex implementation in python.\\[5pt] - {\bf \href{https://github.com/terminaldweller/mdrtl}{mdrtl}} A very minimal RTL markdown editor.\\[5pt] + {\bf \href{https://github.com/terminaldweller/devourer}{devourer}} A little helper API server. Extracts, summarizes and vocalizes articles on the web.\\[5pt] + {\bf \href{https://github.com/terminaldweller/mdrtl}{mdrtl}} A minimal RTL markdown editor.\\[5pt] {\bf \href{https://github.com/terminaldweller/blog}{blog}} Source code for my blog.\\[5pt] + {\bf \href{https://www.linkedin.com/in/farzad-sadeghi/}{Linkedin}} My Linkedin page.\\[5pt] \end{multicols} \end{document} diff --git a/pkg_list b/pkg_list new file mode 100644 index 0000000..d95ea44 --- /dev/null +++ b/pkg_list @@ -0,0 +1,1640 @@ +7zip-22.01_2 +AppStream-0.15.6_1 +Bear-3.0.21_1 +Cataclysm-DDA-0.E_4 +Cataclysm-DDA-data-0.E_4 +FreeRADIUS-3.0.23_1 +FreeRADIUS-devel-3.0.23_1 +LuaJIT-2.1.0beta3_2 +MesaLib-devel-22.2.4_2 +NetworkManager-1.40.10_1 +NetworkManager-openvpn-1.8.18_1 +SDL-1.2.15_13 +SDL2-2.26.2_1 +SDL2-devel-2.26.2_1 +SDL2_image-2.6.2_1 +SDL_image-1.2.12_13 +SDL_net-1.2.8_6 +SDL_sound-1.0.3_7 +SDL_ttf-2.0.11_7 +Thunar-4.18.2_1 +VirtualGL-2.6.2_3 +Vulkan-Headers-1.3.231.1_1 +ZMusic-1.1.10_1 +aalib-1.4rc5_2 +abseil-cpp-20220623.1_1 +acl-2.3.1_1 +acl-devel-2.3.1_1 +acl-progs-2.3.1_1 +acpid-2.0.34_1 +adwaita-icon-theme-43_1 +alacritty-0.11.0_1 +alacritty-terminfo-0.11.0_1 +alsa-lib-1.2.8_1 +alsa-lib-devel-1.2.8_1 +alsa-plugins-ffmpeg-1.2.7.1_1 +alsa-plugins-pulseaudio-1.2.7.1_1 +alsa-tools-1.2.5_1 +alsa-utils-1.2.8_1 +apache-maven-3.6.3_3 +appstream-glib-0.8.1_2 +apulse-0.1.13_1 +aria2-1.36.0_1 +asciinema-2.2.0_2 +at-spi2-atk-2.38.0_1 +at-spi2-core-2.44.0_1 +atk-2.36.0_1 +attr-2.5.1_1 +attr-devel-2.5.1_1 +attr-progs-2.5.1_1 +autoconf-2.71_1 +automake-1.16.5_1 +autossh-1.4g_1 +avahi-glib-libs-0.8_5 +avahi-libs-0.8_2 +bandwhich-0.20.0_1 +base-files-0.142_14 +base-system-0.114_1 +base-voidstrap-0.11_1 +bash-5.1.016_2 +bat-0.22.1_2 +bc-1.07.1_5 +bind-9.16.22_1 +bind-libs-9.16.22_1 +bind-utils-9.16.22_1 +binutils-2.39_1 +binutils-doc-2.39_1 +bison-3.7.6_1 +blas-3.11_1 +blas-devel-3.11_1 +blueman-2.3.5_1 +bluez-5.65_1 +bluez-alsa-3.1.0_1 +bmake-20230120_1 +bombadillo-2.4.0_1 +boost-1.81.0_1 +botan-2.19.3_1 +bridge-utils-1.6_2 +broot-1.18.0_2 +brotli-1.0.9_2 +brotli-devel-1.0.9_2 +bsdtar-3.6.2_2 +btrfs-progs-6.1.2_1 +bubblewrap-0.7.0_1 +buku-4.7_2 +busybox-static-1.34.1_3 +bzip2-1.0.8_1 +bzip2-devel-1.0.8_1 +c-ares-1.18.1_1 +ca-certificates-20211016+3.86_1 +cairo-1.16.0_2 +cantarell-fonts-0.303.1_1 +capstone-4.0.2_5 +cblas-3.11_1 +cblas-devel-3.11_1 +cdrtools-3.02a09_3 +celt-0.11.3_3 +checkbashisms-2.22.2_1 +chromaprint-1.5.1_1 +chromium-109.0.5414.74_1 +cifs-utils-6.15_1 +clang-12.0.1_4 +clang-tools-extra-12.0.1_4 +clipnotify-1.0.2_1 +clucene-2.3.3.4_10 +cmake-3.25.1_1 +cmus-2.10.0_1 +cmus-ffmpeg-2.10.0_1 +cmus-flac-2.10.0_1 +cointop-1.6.8_1 +containerd-1.6.10_1 +coreutils-8.32_4 +cpio-2.13_1 +cryptsetup-2.6.0_2 +cryptsetup-devel-2.6.0_2 +cscope-15.9_1 +ctags-5.9.20221002.0_1 +curl-7.87.0_2 +cvs-1.12.13_6 +cyrus-sasl-modules-2.1.27_9 +dash-0.5.12_1 +db-devel-5.3.28_8 +dbus-1.14.4_1 +dbus-devel-1.14.4_1 +dbus-glib-0.112_1 +dbus-libs-1.14.4_1 +dbus-x11-1.14.4_1 +dconf-0.40.0_1 +debootstrap-1.0.128+nmu2_1 +dejavu-fonts-ttf-2.37_2 +desktop-file-utils-0.26_1 +device-mapper-2.02.187_2 +device-mapper-devel-2.02.187_2 +dhclient-4.4.2P1_3 +dhcpcd-9.4.1_2 +dia-0.97.3_4 +diffutils-3.9_1 +dive-0.10.0_1 +dkms-3.0.6_2 +dmidecode-3.4_1 +dmraid-1.0.0.rc16.3_12 +dnsmasq-2.88_1 +dnssec-anchors-20181012_2 +docker-20.10.23_1 +docker-cli-20.10.23_1 +docker-compose-2.15.1_1 +dos2unix-7.4.3_1 +dosbox-0.74pl3_2 +dosfstools-4.2_1 +double-conversion-3.1.5_1 +dqlite-1.13.0_1 +dracut-059_1 +dragon-1.2.0_3 +dtc-1.6.1_1 +dtrx-8.5.0_1 +duktape-2.7.0_1 +dwarffortress-0.47.05_2 +dynamips-0.2.21_1 +e2fsprogs-1.46.5_1 +e2fsprogs-devel-1.46.5_1 +e2fsprogs-libs-1.46.5_1 +editline-1.17.1_2 +efibootmgr-18_1 +efivar-37_2 +electrum-4.2.0_3 +elfutils-devel-0.187_1 +elogind-246.10_2 +enchant2-2.3.3_1 +ethtool-5.19_1 +eudev-3.2.11_1 +eudev-libudev-3.2.11_1 +eudev-libudev-devel-3.2.11_1 +evolution-data-server-3.46.3_1 +exa-0.10.1_2 +exo-4.18.0_1 +expat-2.5.0_1 +expat-devel-2.5.0_1 +f2fs-tools-1.15.0_1 +faac-1.30_1 +faad2-2.10.1_1 +farstream-0.2.9_2 +fdk-aac-2.0.2_2 +ffmpeg-4.4.3_2 +ffmpegthumbnailer-2.2.2_1 +ffplay-4.4.3_2 +fftw-devel-3.3.10_1 +file-5.44_1 +findutils-4.9.0_1 +firefox-esr-102.3.0_1 +firefox-esr-i18n-102.3.0_1 +firefox-esr-i18n-ach-102.3.0_1 +firefox-esr-i18n-af-102.3.0_1 +firefox-esr-i18n-an-102.3.0_1 +firefox-esr-i18n-ar-102.3.0_1 +firefox-esr-i18n-ast-102.3.0_1 +firefox-esr-i18n-az-102.3.0_1 +firefox-esr-i18n-be-102.3.0_1 +firefox-esr-i18n-bg-102.3.0_1 +firefox-esr-i18n-bn-102.3.0_1 +firefox-esr-i18n-br-102.3.0_1 +firefox-esr-i18n-bs-102.3.0_1 +firefox-esr-i18n-ca-102.3.0_1 +firefox-esr-i18n-cak-102.3.0_1 +firefox-esr-i18n-cs-102.3.0_1 +firefox-esr-i18n-cy-102.3.0_1 +firefox-esr-i18n-da-102.3.0_1 +firefox-esr-i18n-de-102.3.0_1 +firefox-esr-i18n-dsb-102.3.0_1 +firefox-esr-i18n-el-102.3.0_1 +firefox-esr-i18n-en-CA-102.3.0_1 +firefox-esr-i18n-en-GB-102.3.0_1 +firefox-esr-i18n-en-US-102.3.0_1 +firefox-esr-i18n-eo-102.3.0_1 +firefox-esr-i18n-es-AR-102.3.0_1 +firefox-esr-i18n-es-CL-102.3.0_1 +firefox-esr-i18n-es-ES-102.3.0_1 +firefox-esr-i18n-es-MX-102.3.0_1 +firefox-esr-i18n-et-102.3.0_1 +firefox-esr-i18n-eu-102.3.0_1 +firefox-esr-i18n-fa-102.3.0_1 +firefox-esr-i18n-ff-102.3.0_1 +firefox-esr-i18n-fi-102.3.0_1 +firefox-esr-i18n-fr-102.3.0_1 +firefox-esr-i18n-fy-NL-102.3.0_1 +firefox-esr-i18n-ga-IE-102.3.0_1 +firefox-esr-i18n-gd-102.3.0_1 +firefox-esr-i18n-gl-102.3.0_1 +firefox-esr-i18n-gn-102.3.0_1 +firefox-esr-i18n-gu-IN-102.3.0_1 +firefox-esr-i18n-he-102.3.0_1 +firefox-esr-i18n-hi-IN-102.3.0_1 +firefox-esr-i18n-hr-102.3.0_1 +firefox-esr-i18n-hsb-102.3.0_1 +firefox-esr-i18n-hu-102.3.0_1 +firefox-esr-i18n-hy-AM-102.3.0_1 +firefox-esr-i18n-ia-102.3.0_1 +firefox-esr-i18n-id-102.3.0_1 +firefox-esr-i18n-is-102.3.0_1 +firefox-esr-i18n-it-102.3.0_1 +firefox-esr-i18n-ja-102.3.0_1 +firefox-esr-i18n-ka-102.3.0_1 +firefox-esr-i18n-kab-102.3.0_1 +firefox-esr-i18n-kk-102.3.0_1 +firefox-esr-i18n-km-102.3.0_1 +firefox-esr-i18n-kn-102.3.0_1 +firefox-esr-i18n-ko-102.3.0_1 +firefox-esr-i18n-lij-102.3.0_1 +firefox-esr-i18n-lt-102.3.0_1 +firefox-esr-i18n-lv-102.3.0_1 +firefox-esr-i18n-mk-102.3.0_1 +firefox-esr-i18n-mr-102.3.0_1 +firefox-esr-i18n-ms-102.3.0_1 +firefox-esr-i18n-my-102.3.0_1 +firefox-esr-i18n-nb-NO-102.3.0_1 +firefox-esr-i18n-ne-NP-102.3.0_1 +firefox-esr-i18n-nl-102.3.0_1 +firefox-esr-i18n-nn-NO-102.3.0_1 +firefox-esr-i18n-oc-102.3.0_1 +firefox-esr-i18n-pa-IN-102.3.0_1 +firefox-esr-i18n-pl-102.3.0_1 +firefox-esr-i18n-pt-BR-102.3.0_1 +firefox-esr-i18n-pt-PT-102.3.0_1 +firefox-esr-i18n-rm-102.3.0_1 +firefox-esr-i18n-ro-102.3.0_1 +firefox-esr-i18n-ru-102.3.0_1 +firefox-esr-i18n-si-102.3.0_1 +firefox-esr-i18n-sk-102.3.0_1 +firefox-esr-i18n-sl-102.3.0_1 +firefox-esr-i18n-son-102.3.0_1 +firefox-esr-i18n-sq-102.3.0_1 +firefox-esr-i18n-sr-102.3.0_1 +firefox-esr-i18n-sv-SE-102.3.0_1 +firefox-esr-i18n-ta-102.3.0_1 +firefox-esr-i18n-te-102.3.0_1 +firefox-esr-i18n-th-102.3.0_1 +firefox-esr-i18n-tr-102.3.0_1 +firefox-esr-i18n-uk-102.3.0_1 +firefox-esr-i18n-ur-102.3.0_1 +firefox-esr-i18n-uz-102.3.0_1 +firefox-esr-i18n-vi-102.3.0_1 +firefox-esr-i18n-xh-102.3.0_1 +firefox-esr-i18n-zh-CN-102.3.0_1 +firefox-esr-i18n-zh-TW-102.3.0_1 +flac-1.3.4_1 +flatpak-1.15.1_2 +flex-2.6.4_3 +flite-2.2_1 +fltk-1.3.8_1 +fmt-9.1.0_1 +font-alias-1.0.4_2 +font-awesome5-5.15.4_2 +font-misc-misc-1.1.2_7 +font-util-1.3.3_1 +fontconfig-2.14.1_1 +fontconfig-devel-2.14.1_1 +fontforge-20230101_1 +freetype-2.12.1_2 +freetype-devel-2.12.1_2 +fribidi-1.0.12_1 +fribidi-devel-1.0.12_1 +fuse-2.9.9_1 +fuse-sshfs-3.7.3_1 +fuse3-3.13.0_1 +fzf-0.37.0_1 +gajim-1.5.3_2 +garcon-4.18.0_1 +gawk-5.1.1_1 +gbinder-python-1.1.1_2 +gc-8.2.2_1 +gc-devel-8.2.2_1 +gcc-12.2.0_1 +gcc-fortran-12.2.0_1 +gcr-3.41.1_1 +gd-2.3.2_1 +gdb-12.1_3 +gdb-common-12.1_3 +gdbm-1.23_1 +gdk-pixbuf-2.42.6_1 +geoclue2-2.6.0_1 +geocode-glib-3.26.4_2 +geocode-glib-common-3.26.4_2 +geocode-glib-libsoup2-3.26.4_1 +gettext-0.21_4 +gettext-devel-tools-0.21_4 +gflags-2.2.2_1 +giflib-5.2.1_1 +gir-freedesktop-1.74.0_3 +girara-0.3.9_1 +git-2.39.1_1 +glib-2.74.0_3 +glib-networking-2.74.0_1 +glibc-2.36_1 +glibc-dbg-2.36_1 +glibc-devel-2.36_1 +glibc-locales-2.36_1 +glslang-11.11.0_1 +glu-9.0.2_2 +glu-devel-9.0.2_2 +glxinfo-8.4.0_3 +gmime-3.2.7_2 +gmime3-3.2.7_2 +gmp-6.2.1_1 +gmp-devel-6.2.1_1 +gnome-icon-theme-3.12.0_3 +gnome-keyring-42.1_1 +gnome-online-accounts-3.46.0_1 +gnome-themes-extra-3.28_3 +gnome-themes-standard-3.28_3 +gns3-gui-2.2.35_1 +gns3-net-converter-1.3.0_7 +gns3-server-2.2.35_1 +gnupg-2.4.0_1 +gnupg2-2.4.0_1 +gnustep-base-1.29.0_1 +gnutls-3.7.8_1 +gnutls-tools-3.7.8_1 +gotty-1.0.1_8 +gpgmepp-1.18.0_2 +gptfdisk-1.0.9_1 +gradle-7.6_1 +graphene-1.10.6_3 +graphite-1.3.14_1 +graphviz-7.0.6_1 +graphviz-libs-7.0.6_1 +grc-1.13_1 +grep-3.8_1 +groff-1.22.4_3 +grpc-1.49.1_1 +grub-2.06_2 +grub-i386-efi-2.06_2 +grub-x86_64-efi-2.06_2 +gsettings-desktop-schemas-43.0_1 +gsound-1.0.3_1 +gspell-1.11.1_1 +gssdp-1.4.0.1_1 +gst-libav-1.20.3_1 +gst-plugins-bad1-1.20.3_2 +gst-plugins-base1-1.20.3_1 +gst-plugins-good1-1.20.3_1 +gst-plugins-ugly1-1.20.3_1 +gstreamer1-1.20.3_1 +gtk+-2.24.33_2 +gtk+3-3.24.34_1 +gtk-update-icon-cache-2.24.33_2 +gtk4-4.8.3_1 +gtksourceview4-4.8.2_2 +gtkspell-2.0.16_5 +gts-0.7.6_1 +gupnp-1.2.4_3 +gupnp-igd-0.2.5_3 +gvfs-1.50.2_1 +gvfs-afc-1.50.2_1 +gvfs-mtp-1.50.2_1 +gvfs-smb-1.50.2_1 +gvim-huge-9.0.0948_1 +gzdoom-4.7.1_2 +gzip-1.12_2 +hdparm-9.65_1 +hicolor-icon-theme-0.17_3 +hidapi-0.11.2_1 +hidapi-devel-0.11.2_1 +htop-3.2.1_1 +hunspell-1.7.2_1 +hwids-0.366_1 +hyphen-2.8.8_3 +i3-4.22_1 +i3-gaps-4.22_1 +i3blocks-1.5_2 +iana-etc-20230104_1 +iceauth-1.0.9_1 +icu-devel-71.1_1 +icu-libs-71.1_1 +iftop-1.0pre4_3 +imlib2-1.9.1_1 +imlib2-devel-1.9.1_1 +inetutils-telnet-2.2_1 +inetutils-tftp-2.2_1 +inih-56_1 +iniparser-4.1_3 +intel-gmmlib-22.2.0_1 +intel-media-driver-22.5.3_1 +iouyap-0.97_2 +iproute2-5.19.0_1 +iptables-1.8.7_1 +iputils-20221126_1 +ipw2100-firmware-1.3_6 +ipw2200-firmware-3.1_6 +irssi-1.4.3_1 +irssi-otr-1.4.3_1 +irssi-perl-1.4.3_1 +iso-codes-4.12.0_1 +iw-5.19_1 +jansson-2.14_1 +jbigkit-libs-2.2_2 +jq-1.6_2 +json-c-0.16_1 +json-c-devel-0.16_1 +json-glib-1.6.6_2 +jsoncpp-1.9.4_2 +k9s-0.26.7_1 +kColorPicker-0.1.6_1 +kImageAnnotator-0.5.3_1 +kbd-2.5.1_1 +keepassxc-2.7.4_1 +kernel-libc-headers-5.10.4_1 +kmod-30_1 +kmonad-0.4.1.20220321_1 +kpartx-0.9.4_1 +ksh-1.0.4_1 +ksnip-1.9.2_1 +kubectl-1.26.0_1 +lame-3.100_1 +lame-devel-3.100_1 +lcms2-2.14_1 +ldacBT-2.0.2.3_1 +ldb-2.3.2_2 +less-608_1 +libICE-1.1.1_1 +libICE-devel-1.1.1_1 +libOSMesa-22.2.4_2 +libSM-1.2.3_1 +libSM-devel-1.2.3_1 +libX11-1.8.2_2 +libX11-devel-1.8.2_2 +libXScrnSaver-1.2.4_1 +libXScrnSaver-devel-1.2.4_1 +libXau-1.0.11_1 +libXau-devel-1.0.11_1 +libXaw-1.0.14_1 +libXaw-devel-1.0.14_1 +libXcomposite-0.4.6_1 +libXcursor-1.2.1_2 +libXcursor-devel-1.2.1_2 +libXdamage-1.1.6_1 +libXdmcp-1.1.4_1 +libXdmcp-devel-1.1.4_1 +libXext-1.3.5_1 +libXext-devel-1.3.5_1 +libXfixes-6.0.0_1 +libXfixes-devel-6.0.0_1 +libXfont-1.5.4_2 +libXfont-devel-1.5.4_2 +libXfont2-2.0.6_1 +libXfont2-devel-2.0.6_1 +libXfontcache-1.0.5_2 +libXft-2.3.7_1 +libXft-devel-2.3.7_1 +libXi-1.8_1 +libXi-devel-1.8_1 +libXinerama-1.1.5_1 +libXinerama-devel-1.1.5_1 +libXmu-1.1.4_1 +libXmu-devel-1.1.4_1 +libXpm-3.5.14_1 +libXpm-devel-3.5.14_1 +libXpresent-1.0.1_1 +libXrandr-1.5.3_1 +libXrandr-devel-1.5.3_1 +libXrender-0.9.11_1 +libXrender-devel-0.9.11_1 +libXres-1.2.1_1 +libXres-devel-1.2.1_1 +libXt-1.2.1_1 +libXt-devel-1.2.1_1 +libXtst-1.2.4_1 +libXtst-devel-1.2.4_1 +libXv-1.0.12_1 +libXv-devel-1.0.12_1 +libXvMC-1.0.13_1 +libXxf86dga-1.1.5_1 +libXxf86dga-devel-1.1.5_1 +libXxf86misc-1.0.4_1 +libXxf86vm-1.1.5_1 +liba52-0.7.4_9 +libaio-0.3.112_1 +libaio-devel-0.3.112_1 +libao-1.2.2_1 +libaom-3.5.0_1 +libapparmor-3.1.2_1 +libappindicator-12.10.0_3 +libarchive-3.6.2_2 +libargon2-20190702_3 +libargon2-devel-20190702_3 +libaria2-1.36.0_1 +libart-2.3.21_7 +libaspell-0.60.8_5 +libass-0.17.0_1 +libassuan-2.5.5_1 +libasyncns-0.8_9 +libasyncns-devel-0.8_9 +libatasmart-0.19_5 +libatomic-12.2.0_1 +libaudit-3.0.3_4 +libaudit-common-3.0.3_4 +libaudit-devel-3.0.3_4 +libavcodec-4.4.3_2 +libavdevice-4.4.3_2 +libavfilter-4.4.3_2 +libavformat-4.4.3_2 +libavresample-4.4.3_2 +libavutil-4.4.3_2 +libbitcoin-secp256k1-0.1.0.13_1 +libblkid-2.38.1_1 +libblkid-devel-2.38.1_1 +libblockdev-2.28_1 +libbluetooth-5.65_1 +libbluray-1.3.4_1 +libboost_atomic-1.81.0_1 +libboost_chrono-1.81.0_1 +libboost_context-1.81.0_1 +libboost_date_time-1.81.0_1 +libboost_filesystem-1.81.0_1 +libboost_iostreams-1.81.0_1 +libboost_locale-1.81.0_1 +libboost_program_options-1.81.0_1 +libboost_serialization-1.81.0_1 +libboost_system-1.81.0_1 +libboost_thread-1.81.0_1 +libbs2b-3.1.0_3 +libbsd-0.11.7_2 +libbsd-devel-0.11.7_2 +libbtrfs-6.1.2_1 +libbtrfs-devel-6.1.2_1 +libbytesize-2.7_1 +libcaca-0.99.beta19_12 +libcacard-2.8.1_1 +libcanberra-0.30_11 +libcanberra-gtk3-0.30_11 +libcap-2.54_1 +libcap-devel-2.54_1 +libcap-ng-0.8.3_2 +libcap-progs-2.54_1 +libcddb-1.3.2_9 +libcdio-2.1.0_1 +libcdio-paranoia-10.2+2.0.1_1 +libcdparanoia-10.2_15 +libcdr-0.1.7_4 +libcgroup-3.0.0_1 +libcgroup-utils-3.0.0_1 +libclang-12.0.1_4 +libclang-cpp-12.0.1_4 +libclc-12.0.0_1 +libcloudproviders-0.3.1_1 +libcolord-1.4.6_2 +libcpuid-0.5.1_1 +libcrypto1.1-1.1.1s_1 +libcrypto1.1-dbg-1.1.1s_1 +libcrypto45-3.0.2_2 +libcrypto46-3.1.5_2 +libcryptsetup-2.6.0_2 +libcups-2.4.2_2 +libcurl-7.87.0_2 +libdatrie-0.2.13_1 +libdav1d4-0.8.1_1 +libdav1d6-1.0.0_1 +libdaxctl-70.1_1 +libdb-5.3.28_8 +libdb-cxx-5.3.28_8 +libdbusmenu-glib-16.04.0_5 +libdbusmenu-gtk3-16.04.0_5 +libdca-0.0.7_2 +libde265-1.0.8_1 +libdebuginfod-0.187_1 +libdecor-0.1.1_1 +libdecor-devel-0.1.1_1 +libdiscid-0.6.2_2 +libdjvulibre-3.5.28_1 +libdmx-1.1.4_1 +libdmx-devel-1.1.4_1 +libdrm-2.4.114_1 +libdrm-devel-2.4.114_1 +libdvdcss-1.4.3_1 +libdvdnav-6.1.1_1 +libdvdread-6.1.3_1 +libedit-20221030.3.1_1 +libedit-dbg-20221030.3.1_1 +libefivar-37_2 +libelf-0.187_1 +libelogind-246.10_2 +libepoxy-1.5.10_1 +libepoxy-devel-1.5.10_1 +liberation-fonts-ttf-2.1.5_1 +libestr-0.1.11_1 +libev-4.33_1 +libevdev-1.13.0_1 +libevent-2.1.12_2 +libexif-0.6.24_1 +libexttextcat-3.4.6_1 +libfastjson-0.99.8_1 +libfbclient3-3.0.6.33328_1 +libfdisk-2.38.1_1 +libffi-3.3_2 +libffi-devel-3.3_2 +libfftw-3.3.10_1 +libfl-devel-2.6.4_3 +libflac-1.3.4_1 +libflac-devel-1.3.4_1 +libfluidsynth-2.3.0_1 +libfontenc-1.1.4_1 +libfontenc-devel-1.1.4_1 +libfreehand-0.1.2_3 +libgbinder-1.1.31_1 +libgbm-22.2.4_2 +libgbm-devel-22.2.4_2 +libgcc-12.2.0_1 +libgcc-devel-12.2.0_1 +libgcrypt-1.10.1_2 +libgcrypt-devel-1.10.1_2 +libgdata-0.18.1_1 +libgfortran-12.2.0_1 +libgfortran-devel-12.2.0_1 +libgirepository-1.74.0_3 +libgit2-1.5.0_1 +libglapi-22.2.4_2 +libglib-devel-2.74.0_3 +libglibutil-1.0.67_1 +libglvnd-1.4.0_1 +libglvnd-devel-1.4.0_1 +libgme-0.6.3_1 +libgnt-2.14.3_1 +libgomp-12.2.0_1 +libgpg-error-1.46_1 +libgpg-error-devel-1.46_1 +libgpgme-1.18.0_2 +libgphoto2-2.5.30_1 +libgphoto2-udev-rules-2.5.30_1 +libgrpc-1.49.1_1 +libgs-9.55.0_1 +libgsf-1.14.50_1 +libgsm-1.0.22_2 +libgssglue-0.4_8 +libgssglue-devel-0.4_8 +libgtop-2.40.0_2 +libgudev-237_1 +libgusb-0.3.10_1 +libgweather-4.2.0_1 +libharfbuzz-5.1.0_2 +libheif-1.12.0_3 +libhistory8-8.1.000_1 +libhugetlbfs-2.23_1 +libhunspell1.7-1.7.2_1 +libical-3.0.16_1 +libid3tag-0.15.1b_8 +libidn-1.41_1 +libidn2-2.3.3_1 +libimagequant-2.17.0_1 +libimobiledevice-1.3.0_4 +libindicator-12.10.1_1 +libinput-1.22.0_1 +libiscsi-1.19.0_1 +libixion-0.17.0_4 +libjack-1.9.21_1 +libjbig2dec-0.19_2 +libjpeg-turbo-2.1.4_1 +libkeyutils-1.6.3_1 +libkmod-30_1 +libksba-1.6.3_1 +liblangtag-0.6.3_3 +libldap-2.4.58_1 +libldap-devel-2.4.58_1 +libldns-1.8.3_1 +libldns-dbg-1.8.3_1 +liblilv-0.24.12_3 +libllvm12-12.0.1_4 +liblrdf-0.6.1_2 +libltdl-2.4.7_3 +libltdl-devel-2.4.7_3 +libluv-1.43.0.0_1 +liblxc-5.0.1_2 +liblz4-1.9.4_1 +liblzma-5.4.1_1 +liblzma-devel-5.4.1_1 +libmad-0.15.1b_10 +libmagic-5.44_1 +libmanette-0.2.6_1 +libmariadbclient-10.5.10_3 +libmaxminddb-1.3.2_1 +libmcpp-2.7.2_8 +libmd-1.0.4_1 +libmd-devel-1.0.4_1 +libmikmod-3.3.11.1_1 +libmm-glib-1.18.12_1 +libmms-0.6.4_2 +libmnl-1.0.5_1 +libmodplug-0.8.9.0_1 +libmount-2.38.1_1 +libmount-devel-2.38.1_1 +libmpeg2-0.5.1_10 +libmpg123-1.31.2_1 +libmspub-0.1.4_9 +libmtp-1.1.20_1 +libmwaw-0.3.21_1 +libndctl-70.1_1 +libndp-1.7_1 +libnetfilter_conntrack-1.0.8_1 +libnfnetlink-1.0.1_4 +libnfs-5.0.2_1 +libnfsidmap-2.6.2_1 +libnftables-1.0.6_1 +libnftnl-1.2.4_1 +libnice-0.1.19_1 +libnl3-3.5.0_1 +libnl3-devel-3.5.0_1 +libnm-1.40.10_1 +libnma-1.10.6_1 +libnotify-0.8.1_1 +libnotmuch-0.35_2 +libnsl-2.0.0_1 +libnsl-devel-2.0.0_1 +libnuma-2.0.14_1 +libnumbertext-1.0.11_1 +libnuspell-5.0.1_3 +libnvidia-container-1.11.0_1 +libnvme-1.1_2 +libobjc-12.2.0_1 +libodfgen-0.1.8_1 +libogg-1.3.5_1 +libogg-devel-1.3.5_1 +libomp-12.0.1_4 +libopenal-1.22.2_1 +libopenaptx-0.2.0_1 +libopenjpeg2-2.5.0_1 +libopenraw-0.1.3_2 +liborcus-0.17.2_4 +libosinfo-1.10.0_2 +libostree-2022.7_2 +libotr-4.1.1_1 +libotr-devel-4.1.1_1 +libpagemaker-0.0.4_2 +libpaper-1.1.28_1 +libparted-3.5_1 +libpcap-1.10.3_1 +libpcap-devel-1.10.3_1 +libpciaccess-0.16_1 +libpciaccess-devel-0.16_1 +libpcre-8.45_3 +libpcre2-10.39_2 +libpcrecpp-8.45_3 +libpcsclite-1.9.9_1 +libpeas-1.34.0_2 +libphonenumber-8.12.39_9 +libpipewire-0.3.63_1 +libplacebo-4.208.0_1 +libplist-2.2.0_3 +libpng-1.6.39_1 +libpng-devel-1.6.39_1 +libpoppler-22.12.0_1 +libpostproc-4.4.3_2 +libprotobuf-21.12_1 +libprotoc-21.12_1 +libproxy-0.4.18_1 +libpsl-0.21.1_4 +libpulseaudio-15.0_3 +libqb-2.0.0_2 +libqrencode-4.1.1_1 +libquadmath-12.2.0_1 +libqxp-0.0.2_7 +libraptor-2.0.15_4 +librasqal-0.9.33_3 +librdf-1.0.17_6 +libreadline8-8.1.000_1 +libreoffice-7.4.3.2_1 +libreoffice-base-7.4.3.2_1 +libreoffice-calc-7.4.3.2_1 +libreoffice-common-7.4.3.2_1 +libreoffice-draw-7.4.3.2_1 +libreoffice-fonts-7.4.3.2_1 +libreoffice-gnome-7.4.3.2_1 +libreoffice-i18n-de-7.4.3.2_1 +libreoffice-i18n-en-US-7.4.3.2_1 +libreoffice-i18n-es-7.4.3.2_1 +libreoffice-i18n-fr-7.4.3.2_1 +libreoffice-i18n-it-7.4.3.2_1 +libreoffice-i18n-pl-7.4.3.2_1 +libreoffice-i18n-pt-7.4.3.2_1 +libreoffice-impress-7.4.3.2_1 +libreoffice-math-7.4.3.2_1 +libreoffice-postgresql-7.4.3.2_1 +libreoffice-writer-7.4.3.2_1 +libreoffice-xtensions-7.4.3.2_1 +librevenge-0.0.4_3 +librist-0.2.7_1 +librsvg-2.52.2_1 +librtmp-2.4.20161210_10 +librubberband-3.1.2_1 +libsamplerate-0.2.2_1 +libsamplerate-devel-0.2.2_1 +libsane-1.1.1_1 +libsasl-2.1.27_2 +libsasl-devel-2.1.27_2 +libscrypt-1.22_2 +libscrypt-devel-1.22_2 +libseccomp-2.5.4_1 +libseccomp-devel-2.5.4_1 +libsecret-0.20.5_2 +libselinux-3.0_2 +libselinux-devel-3.0_2 +libsensors-3.6.0_1 +libsepol-3.0_1 +libserd-0.30.10_1 +libslirp-4.7.0_1 +libsmartcols-2.38.1_1 +libsndfile-1.2.0_1 +libsndfile-devel-1.2.0_1 +libsndio-1.9.0_1 +libsodium-1.0.18_1 +libsord-0.16.6_1 +libsoup-2.74.0_1 +libsoup-gnome-2.74.0_1 +libsoup3-3.2.0_2 +libsoxr-0.1.3_2 +libspdlog-1.11.0_1 +libspectre-0.2.11_1 +libspeex-1.2.1_1 +libspiro-20221101_1 +libsrt-1.5.1_1 +libsrtp-2.3.0_1 +libssh-0.10.4_1 +libssh2-1.10.0_1 +libssl1.1-1.1.1s_1 +libssp-12.2.0_1 +libssp-devel-12.2.0_1 +libstdc++-12.2.0_1 +libstdc++-devel-12.2.0_1 +libsvt-av1-1.4.1_1 +libswresample-4.4.3_2 +libswscale-4.4.3_2 +libswtpm-0.7.3_1 +libsynctex-20210325_4 +libtasn1-4.19.0_1 +libtdb-1.4.7_1 +libtermkey-0.22_1 +libthai-0.1.29_1 +libtheora-1.1.1_8 +libtirpc-1.3.2_1 +libtirpc-devel-1.3.2_1 +libtls-3.6.1_1 +libtommath-1.2.0_1 +libtool-2.4.7_3 +libtpms-0.9.4_1 +libtracker-3.4.2_1 +libunbound-1.17.1_1 +libunistring-1.0_1 +libunwind-1.5.0_3 +libupower-glib3-1.90.0_1 +liburcu-0.12.2_1 +libusb-1.0.26_1 +libusb-compat-0.1.8_1 +libusb-compat-devel-0.1.8_1 +libusb-devel-1.0.26_1 +libusbmuxd-2.0.2_1 +libutempter-1.2.1_2 +libuuid-2.38.1_1 +libuuid-devel-2.38.1_1 +libuv-1.44.2_1 +libva-2.17.0_1 +libva-intel-driver-2.4.1_1 +libvamp-plugin-sdk-2.10.0_1 +libvde2-2.3.2_24 +libvdpau-1.5_1 +libvidstab-1.1.0_2 +libvirt-9.0.0_1 +libvirt-devel-9.0.0_1 +libvirt-python3-9.0.0_1 +libvisio-0.1.7_5 +libvisual-0.4.1_1 +libvoikko-4.3.1_2 +libvorbis-1.3.7_1 +libvorbis-devel-1.3.7_1 +libvpx6-1.9.0_3 +libvpx7-1.11.0_1 +libvterm-0.3_1 +libwacom-1.12_1 +libwavpack-5.4.0_1 +libwebkit2gtk41-2.38.3_1 +libwebkit2gtk50-2.38.3_1 +libwebp-1.2.4_1 +libwireshark-4.0.0_1 +libwnck-43.0_2 +libwoff2common1.0.2-1.0.2_1 +libwoff2dec1.0.2-1.0.2_1 +libwoff2enc1.0.2-1.0.2_1 +libwpd-0.10.3_1 +libwpe-1.12.3_2 +libwpg-0.3.3_1 +libxapian-1.4.21_1 +libxatracker-22.2.4_2 +libxbps-0.59.1_8 +libxcb-1.14_2 +libxcb-devel-1.14_2 +libxcvt-0.1.1_1 +libxcvt-devel-0.1.1_1 +libxfce4panel-4.18.0_1 +libxfce4ui-4.18.1_1 +libxfce4util-4.18.0_1 +libxkbcommon-1.5.0_1 +libxkbcommon-devel-1.5.0_1 +libxkbcommon-x11-1.5.0_1 +libxkbfile-1.1.0_1 +libxkbfile-devel-1.1.0_1 +libxkbregistry-1.5.0_1 +libxkbui-1.0.2_8 +libxkbui-devel-1.0.2_8 +libxklavier-5.4_3 +libxml2-2.9.13_4 +libxml2-devel-2.9.13_4 +libxml2-python3-2.9.13_4 +libxmlb-0.3.8_1 +libxshmfence-1.3_2 +libxshmfence-devel-1.3_2 +libxslt-1.1.37_2 +libxxHash-0.8.1_2 +libyaml-0.2.5_1 +libyaml-devel-0.2.5_1 +libzbar-0.23.1_6 +libzfs-2.1.7_1 +libzstd-1.5.2_1 +libzstd-devel-1.5.2_1 +linux-6.1_1 +linux-base-2021.07.21_1 +linux-firmware-amd-20221109_1 +linux-firmware-broadcom-20221109_1 +linux-firmware-intel-20221109_1 +linux-firmware-network-20221109_1 +linux-firmware-nvidia-20221109_1 +linux-headers-6.1_1 +linux5.13-5.13.19_1 +linux5.15-5.15.85_1 +linux5.15-headers-5.15.85_1 +linux5.18-5.18.19_1 +linux5.18-headers-5.18.19_1 +linux5.19-5.19.17_1 +linux5.19-headers-5.19.17_1 +linux6.0-6.0.19_1 +linux6.0-headers-6.0.19_1 +linux6.1-6.1.7_1 +linux6.1-headers-6.1.7_1 +llvm-12.0.0_1 +llvm12-12.0.1_4 +lm_sensors-3.6.0_1 +lmdb-0.9.29_1 +lowdown-1.0.0_1 +lsof-4.96.3_1 +lua-devel-5.3.6_1 +lua52-5.2.4_12 +lua53-5.3.6_1 +lua53-devel-5.3.6_1 +lua54-5.4.4_1 +luarocks-lua52-3.9.1_1 +luarocks-lua53-3.9.1_1 +lvm2-2.02.187_2 +lxc-5.0.1_2 +lxcfs-5.0.2_1 +lxd-5.9_1 +lxdm-0.5.3_4 +lynx-2.9.0dev.10_1 +lzo-2.10_2 +m4-1.4.19_1 +make-4.3_3 +man-pages-5.13_2 +man-pages-devel-5.13_2 +man-pages-posix-2017a_5 +mariadb-10.5.10_3 +mariadb-client-10.5.10_3 +mbedtls-2.16.12_1 +mcpp-2.7.2_8 +mdadm-4.2_1 +mdcat-1.0.0_1 +mdocml-1.14.6_6 +mednafen-1.29.0_1 +mesa-22.2.4_2 +mesa-dri-22.2.4_2 +mesa-opencl-22.2.4_2 +meson-1.0.0_1 +mime-types-9_5 +miniupnpc-2.2.3_1 +minizip-1.2.12_1 +mit-krb5-devel-1.18.3_2 +mit-krb5-libs-1.18.3_2 +mkfontscale-1.2.2_1 +mobile-broadband-provider-info-20220511_1 +moby-20.10.22_1 +monero-0.18.1.2_2 +monero-gui-0.18.1.2_2 +mosh-1.4.0_2 +mousepad-0.5.10_1 +mozjs78-78.9.0_5 +mpfr-4.1.1_2 +mpg123-devel-1.31.2_1 +mpv-0.35.0_2 +msgpack-4.0.0_1 +mtdev-1.1.6_1 +mythes-1.2.4_5 +ncurses-6.3_3 +ncurses-base-6.3_3 +ncurses-devel-6.3_3 +ncurses-libs-6.3_3 +ncurses-libs-dbg-6.3_3 +ncurses-libtinfo-devel-6.3_3 +ncurses-libtinfo-libs-6.3_3 +neomutt-20220429_3 +neon-0.32.2_1 +neovim-0.8.2_2 +net-tools-2.10_1 +nethogs-0.8.7_1 +nettle-3.8_1 +nettle-devel-3.8_1 +network-manager-applet-1.30.0_1 +newsboat-2.30.1_1 +newt-0.52.21_6 +nfs-utils-2.6.2_1 +nftables-1.0.6_1 +nghttp2-1.51.0_1 +nicotine+-3.2.7_1 +ninja-1.11.1_2 +nix-2.11.0_2 +nmap-7.93_1 +nnn-4.7_1 +notify-send.sh-1.2_1 +noto-fonts-cjk-20220127_1 +noto-fonts-emoji-2.038_1 +noto-fonts-ttf-20220810_1 +noto-fonts-ttf-extra-20220810_1 +npth-1.6_1 +nspr-4.35_1 +nss-3.87_1 +ntfs-3g-2022.10.3_1 +nudoku-2.1.0_1 +nv-codec-headers-11.1.5.1_1 +nvi-1.81.6_19 +nvidia-525.85.05_1 +nvidia-container-toolkit-1.11.0_1 +nvidia-dkms-525.85.05_1 +nvidia-docker-2.11.0_1 +nvidia-firmware-525.85.05_1 +nvidia-gtklibs-525.85.05_1 +nvidia-libs-525.85.05_1 +nvidia-opencl-525.85.05_1 +nvme-cli-2.1.2_1 +nvtop-3.0.1_1 +nyx-2.1.0_6 +ocl-icd-2.3.1_1 +offlineimap-8.0.0_3 +oniguruma-6.9.5.rev1_1 +openblas-0.3.21_1 +openbsd-netcat-1.219_1 +opendoas-6.8.2_1 +openjdk-jre-8u999_1 +openjdk11-11.0.12+7_3 +openjdk11-bin-11+28_1 +openjdk11-jre-11.0.12+7_3 +openjdk11-src-11.0.12+7_3 +openjdk17-17.0.5+7_1 +openjdk17-jre-17.0.5+7_1 +openjdk8-jre-8u322b04_3 +openldap-2.4.58_1 +openldap-tools-2.4.58_1 +openntpd-6.8p1_4 +openrazer-daemon-3.5.1_1 +openrazer-driver-dkms-3.5.1_1 +openrazer-meta-3.5.1_1 +openresolv-3.12.0_1 +openssh-9.1p1_2 +openssh-dbg-9.1p1_2 +openssl-1.1.1s_1 +openssl-devel-1.1.1s_1 +openvpn-2.5.7_1 +opus-1.3.1_1 +opus-devel-1.3.1_1 +opusfile-0.12_2 +orc-0.4.33_1 +os-prober-1.81_1 +osinfo-db-20221130_1 +p11-kit-0.24.1_1 +p7zip-22.01_2 +pahole-1.23_4 +pahole-devel-1.23_4 +pam-1.5.2_2 +pam-base-0.4_2 +pam-devel-1.5.2_2 +pam-libs-1.5.2_2 +pam-libs-dbg-1.5.2_2 +pandoc-2.17.1.1_1 +pango-1.50.12_1 +parole-4.16.0_1 +parted-3.5_1 +patch-2.7.6_4 +patchelf-0.17.2_1 +pciutils-3.9.0_1 +pcre-8.45_3 +pcre-devel-8.45_3 +pcre2-devel-10.39_2 +perl-5.36.0_1 +perl-AnyEvent-7.17_3 +perl-AnyEvent-I3-0.17_3 +perl-Authen-SASL-2.16_5 +perl-B-Hooks-EndOfScope-0.24_2 +perl-Canary-Stability-2013_3 +perl-Class-Data-Inheritable-0.09_1 +perl-Class-Inspector-1.36_2 +perl-Class-Singleton-1.6_1 +perl-Convert-BinHex-1.125_3 +perl-DBD-Pg-3.10.4_4 +perl-DBI-1.643_4 +perl-Data-OptList-0.112_1 +perl-DateTime-1.54_2 +perl-DateTime-Locale-1.33_1 +perl-DateTime-TimeZone-2.51_1 +perl-Devel-StackTrace-2.04_2 +perl-Digest-HMAC-1.04_1 +perl-Dist-CheckConflicts-0.11_3 +perl-Encode-Locale-1.05_3 +perl-Eval-Closure-0.14_3 +perl-Exception-Class-1.45_1 +perl-Exporter-Tiny-1.006000_1 +perl-ExtUtils-Depends-0.8000_2 +perl-ExtUtils-PkgConfig-1.16_3 +perl-File-Listing-6.14_1 +perl-File-ShareDir-1.118_3 +perl-File-ShareDir-Install-0.14_1 +perl-Glib-1.3293_3 +perl-Glib-Object-Introspection-0.049_3 +perl-HTML-Parser-3.76_2 +perl-HTML-Tagset-3.20_8 +perl-HTTP-Cookies-6.10_1 +perl-HTTP-Daemon-6.14_1 +perl-HTTP-Date-6.05_2 +perl-HTTP-Message-6.35_1 +perl-HTTP-Negotiate-6.01_6 +perl-IO-HTML-1.004_1 +perl-IO-Socket-SSL-2.081_1 +perl-IO-Tty-1.16_3 +perl-IO-stringy-2.113_2 +perl-JSON-XS-4.03_4 +perl-LWP-6.67_1 +perl-LWP-MediaTypes-6.04_2 +perl-LWP-Protocol-https-6.10_1 +perl-List-MoreUtils-0.430_3 +perl-MIME-tools-5.510_1 +perl-MRO-Compat-0.15_1 +perl-MailTools-2.21_3 +perl-Module-Implementation-0.09_3 +perl-Module-Runtime-0.016_3 +perl-Mozilla-CA-20221114_1 +perl-Net-DNS-1.27_2 +perl-Net-HTTP-6.21_1 +perl-Net-SMTP-SSL-1.04_3 +perl-Net-SSLeay-1.92_2 +perl-Package-Stash-0.39_1 +perl-Package-Stash-XS-0.29_5 +perl-Params-Util-1.102_2 +perl-Params-ValidationCompiler-0.31_1 +perl-Role-Tiny-2.002004_1 +perl-Specio-0.48_1 +perl-Sub-Exporter-0.988_1 +perl-Sub-Exporter-Progressive-0.001013_3 +perl-Sub-Identify-0.14_8 +perl-Sub-Install-0.928_4 +perl-Sub-Name-0.26_4 +perl-Sub-Quote-2.006006_2 +perl-Test-Fatal-0.017_1 +perl-Test-Requires-0.11_2 +perl-TimeDate-2.33_2 +perl-Try-Tiny-0.31_1 +perl-Types-Serialiser-1.01_1 +perl-URI-5.17_1 +perl-Variable-Magic-0.62_8 +perl-WWW-RobotRules-6.02_6 +perl-XML-Parser-2.46_4 +perl-XML-Twig-3.52_3 +perl-XString-0.005_4 +perl-common-sense-3.75_3 +perl-namespace-autoclean-0.29_2 +perl-namespace-clean-0.27_4 +pick-4.0.0_1 +picocom-3.1_2 +pinentry-1.2.1_1 +pipewire-devel-0.3.63_1 +pixman-0.42.2_1 +pixman-devel-0.42.2_1 +pkcs11-helper-1.25.1_6 +pkg-config-0.29.2_3 +plan9port-20220813_1 +pmbootstrap-1.50.1_1 +polkit-121_1 +poppler-data-0.4.11_1 +poppler-glib-22.12.0_1 +popt-1.18_1 +posh-0.14.1_1 +postgresql-libs-14.5_3 +postgresql14-client-14.5_3 +powertop-2.15_1 +procps-ng-3.3.17_2 +progress-0.16_1 +proot-5.2.0_1 +proxychains-ng-4.16_1 +pulseaudio-15.0_3 +pulseaudio-devel-15.0_3 +pulseaudio-utils-15.0_3 +pulsemixer-1.5.1_2 +python-2.7.18.6_1 +python-six-1.16.0_3 +python3-3.11.1_1 +python3-BeautifulSoup4-4.11.1_2 +python3-Jinja2-3.1.2_1 +python3-MarkupSafe-2.1.2_1 +python3-PyQt5-5.15.7_2 +python3-PyQt5-dbus-5.15.7_2 +python3-PyQt5-opengl-5.15.7_2 +python3-PyQt5-quick-5.15.7_2 +python3-PyQt5-sql-5.15.7_2 +python3-PyQt5-svg-5.15.7_2 +python3-PyQt5-webchannel-5.15.7_2 +python3-PyQt5-webengine-5.15.6_2 +python3-PyQt5-websockets-5.15.7_2 +python3-Pygments-2.14.0_1 +python3-SecretStorage-3.3.1_3 +python3-aiofiles-22.1.0_2 +python3-aiohttp-3.7.4_4 +python3-aiohttp-cors-0.7.0_5 +python3-aiohttp_socks-0.6.0_3 +python3-aiorpcx-0.22.1_2 +python3-alsa-1.1.6_6 +python3-argcomplete-2.0.0_2 +python3-asttokens-2.2.1_1 +python3-async-timeout-3.0.1_5 +python3-attrs-22.1.0_1 +python3-backcall-0.2.0_6 +python3-bcrypt-3.2.2_1 +python3-bitstring-3.1.7_4 +python3-cached-property-1.5.2_2 +python3-cairo-1.20.1_5 +python3-certifi-2022.09.24_2 +python3-cffi-1.15.1_2 +python3-chardet-5.0.0_2 +python3-charset-normalizer-3.0.1_1 +python3-click-8.1.3_2 +python3-configobj-5.0.8_1 +python3-cryptography-39.0.0_1 +python3-css-parser-1.0.8_1 +python3-daemonize-2.5.0_7 +python3-dbus-1.2.18_3 +python3-decorator-5.1.1_2 +python3-devel-3.11.1_1 +python3-distro-1.7.0_2 +python3-dnspython-2.1.0_3 +python3-docker-5.0.2_3 +python3-dockerpty-0.4.1_8 +python3-docopt-0.6.2_9 +python3-dotenv-0.21.0_1 +python3-ecdsa-0.16.1_3 +python3-executing-1.2.0_1 +python3-gobject-3.42.2_2 +python3-gpg-1.10.0_10 +python3-html5lib-1.1_3 +python3-idna-3.4_2 +python3-imaplib2-3.6_2 +python3-importlib_metadata-6.0.0_1 +python3-ipython-8.8.0_1 +python3-ipython_genutils-0.2.0_7 +python3-jaraco.classes-3.2.1_2 +python3-jedi-0.18.2_1 +python3-jeepney-0.8.0_2 +python3-jsonrpclib-0.4.0_6 +python3-jsonschema-4.17.3_1 +python3-keyring-23.13.1_1 +python3-lxml-4.9.2_1 +python3-matplotlib-inline-0.1.6_2 +python3-more-itertools-9.0.0_1 +python3-multidict-5.1.0_4 +python3-nbxmpp-3.2.5_1 +python3-netifaces-0.11.0_4 +python3-numpy-1.24.1_1 +python3-openrazer-3.5.1_1 +python3-openssl-23.0.0_1 +python3-packaging-23.0_1 +python3-paramiko-2.11.0_2 +python3-parsing-2.4.7_4 +python3-parso-0.8.3_2 +python3-pexpect-4.8.0_3 +python3-pickleshare-0.7.5_6 +python3-pillow-simd-7.1.2_5 +python3-pip-22.3.1_1 +python3-pipx-1.1.0_2 +python3-ply-3.11_7 +python3-precis-i18n-1.0.1_5 +python3-prompt_toolkit-3.0.36_1 +python3-protobuf-4.21.12_1 +python3-psutil-5.9.4_1 +python3-ptyprocess-0.7.0_3 +python3-pure_eval-0.2.2_2 +python3-py-cpuinfo-8.0.0_4 +python3-pyaes-1.6.1_7 +python3-pyasn1-0.4.8_5 +python3-pycparser-2.21_1 +python3-pycryptodomex-3.16.0_1 +python3-pynacl-1.5.0_2 +python3-pyrsistent-0.18.1_2 +python3-pysocks-1.7.0_5 +python3-pyudev-0.24.0_1 +python3-qrcode-6.1_6 +python3-requests-2.28.2_1 +python3-rfc6555-0.1.0_2 +python3-setproctitle-1.2.1_3 +python3-setuptools-66.1.1_1 +python3-sip-PyQt5-12.11.0_2 +python3-six-1.16.0_3 +python3-socks-1.2.4_4 +python3-soupsieve-2.3.2_1 +python3-stack_data-0.6.2_1 +python3-stem-1.8.1_2 +python3-texttable-1.6.4_2 +python3-tkinter-3.11.1_1 +python3-traitlets-5.5.0_1 +python3-typing_extensions-4.2.0_2 +python3-urllib3-1.26.12_1 +python3-userpath-1.8.0_2 +python3-wcwidth-0.2.6_1 +python3-webencodings-0.5.1_8 +python3-websocket-client-1.2.1_4 +python3-xlib-0.30_3 +python3-yaml-6.0_2 +python3-yarl-1.8.1_1 +python3-zipp-3.11.0_1 +qemu-7.1.0_1 +qemu-ga-7.1.0_1 +qrencode-4.1.1_1 +qt5-concurrent-5.15.7+20221119_1 +qt5-core-5.15.7+20221119_1 +qt5-dbus-5.15.7+20221119_1 +qt5-declarative-5.15.7+20221119_1 +qt5-graphicaleffects-5.15.7+20221119_1 +qt5-gui-5.15.7+20221119_1 +qt5-location-5.15.7+20221119_1 +qt5-multimedia-5.15.7+20221119_1 +qt5-network-5.15.7+20221119_1 +qt5-opengl-5.15.7+20221119_1 +qt5-plugin-sqlite-5.15.7+20221119_1 +qt5-printsupport-5.15.7+20221119_1 +qt5-quickcontrols-5.15.7+20221119_1 +qt5-quickcontrols2-5.15.7+20221119_1 +qt5-serialport-5.15.7+20221119_1 +qt5-sql-5.15.7+20221119_1 +qt5-styleplugins-5.0.0_20 +qt5-svg-5.15.7+20221119_1 +qt5-test-5.15.7+20221119_1 +qt5-webchannel-5.15.7+20221119_1 +qt5-webengine-5.15.11_1 +qt5-websockets-5.15.7+20221119_1 +qt5-widgets-5.15.7+20221119_1 +qt5-x11extras-5.15.7+20221119_1 +qt5-xml-5.15.7+20221119_1 +qt5-xmlpatterns-5.15.7+20221119_1 +qtchooser-66_2 +qutebrowser-2.5.2_2 +raft-0.16.0_1 +ranger-1.9.3_4 +razergenie-0.9.0_1 +re2-2020.06.01_1 +readline-devel-8.1.000_1 +recordmydesktop-0.3.8.1_4 +removed-packages-0.1.20230120_1 +rest-0.9.1_1 +rest0-0.8.1_1 +rhash-1.4.3_2 +ripgrep-13.0.0_1 +ristretto-0.12.4_1 +rlwrap-0.46.1_1 +rocksdb-7.7.2_1 +rpcbind-1.2.6_1 +rpcsvc-proto-1.4.1_1 +rpi-imager-1.7.3_1 +rsync-3.2.7_1 +rsyslog-8.2212.0_1 +rtkit-0.13_3 +ruby-3.1.3_1 +run-parts-4.11.2_2 +runc-1.1.4_2 +runit-2.1.2_14 +runit-void-20220329_1 +samba-libs-4.14.12_2 +sane-1.1.1_1 +sbc-2.0_1 +scapy-2.4.5_3 +schroot-1.6.10_14 +screen-4.9.0_2 +screenkey-1.5_2 +sdcv-0.5.3_1 +sed-4.9_1 +setxkbmap-1.3.3_1 +shaderc-2022.2_1 +shadow-4.8.1_2 +shadowsocks-libev-3.3.4_1 +shared-mime-info-2.2_1 +shellcheck-0.9.0_1 +shfmt-3.6.0_1 +slang-2.3.2_2 +snappy-1.1.9_1 +sndio-devel-1.9.0_1 +socat-1.7.4.4_1 +soundtouch-2.3.1_1 +sox-14.4.2_5 +spandsp-0.0.6_3 +spdx-licenses-list-3.19_1 +speexdsp-1.2.1_1 +spice-0.15.1_1 +sqlite-3.40.1_1 +sqlite-devel-3.40.1_1 +squashfs-tools-4.5.1_2 +sratom-0.6.8_1 +sslscan-2.0.15_1 +st-terminfo-0.9_1 +startup-notification-0.12_11 +stfl-0.24_4 +strace-6.1_1 +sudo-1.9.12p2_1 +surfraw-2.3.0_2 +swtpm-0.7.3_1 +syslinux-6.03_8 +taglib-1.13_1 +talloc-2.3.4_1 +tar-1.34_2 +tcl-8.6.13_1 +tcpdump-4.99.1_1 +terminus-font-4.49.1_1 +tevent-0.11.0_2 +texinfo-6.8_1 +texlive-latexmk-20210325_4 +tftp-hpa-5.2_6 +thin-provisioning-tools-0.9.0_1 +thunar-volman-4.18.0_1 +tiff-4.4.0_1 +tigervnc-1.12.0_1 +time-1.9_2 +tini-0.19.0_1 +tk-8.6.13_1 +tlp-1.5.0_2 +tmux-3.3a_2 +tokei-12.1.2_3 +tor-0.4.7.13_1 +torbrowser-launcher-0.3.6_1 +torsocks-2.3.0_1 +tpm-tools-1.3.9.1_8 +traceroute-2.1.0_4 +transmission-3.00_5 +tree-2.1.0_1 +tree-sitter-0.20.7_1 +trousers-0.3.15_1 +tslib-1.22_1 +tsocks-1.8beta5_4 +tumbler-4.18.0_1 +twolame-0.4.0_2 +tzdata-2022g_1 +ubridge-0.9.18_1 +uchardet-0.0.7_1 +udisks2-2.9.4_1 +ueberzug-18.1.9_2 +unar-1.10.7_10 +unibilium-2.1.1_1 +unrar-6.2.5_1 +unzip-6.0_15 +upower-1.90.0_1 +usbguard-1.0.0_8 +usbredir-0.10.0_1 +usbutils-015_1 +util-linux-2.38.1_1 +util-linux-common-2.38.1_1 +v4l-utils-1.22.1_1 +valgrind-3.20.0_1 +vim-common-9.0.0948_1 +vim-huge-9.0.0948_1 +virglrenderer-0.9.1_1 +virt-manager-tools-4.1.0_2 +void-artwork-20221013_1 +void-docs-2021.10.06_1 +void-docs-browse-2021.10.06_1 +void-repo-debug-9_6 +void-repo-multilib-6_4 +void-repo-nonfree-9_6 +volume_key-0.3.12_6 +vpcs-0.8_2 +vte3-0.70.1_1 +vulkan-loader-1.3.231.2_1 +w3m-0.5.3+git20220429_1 +waydroid-1.3.4_2 +wayland-1.21.0_1 +wayland-devel-1.21.0_1 +wayland-protocols-1.31_1 +webkit2gtk-2.38.3_1 +webrtc-audio-processing-0.3.1_1 +wget-1.21.3_1 +which-2.21_3 +whois-5.5.15_1 +wifi-firmware-1.3_4 +wireguard-0.0.20191226_1 +wireguard-dkms-1.0.20220627_1 +wireguard-tools-1.0.20210914_2 +wireless_tools-29_10 +wireshark-4.0.0_1 +wireshark-qt-4.0.0_1 +words-de-20161207.7.0_3 +words-en-2020.12.07_2 +words-mnemonic-20150217_4 +words-web2-326913_2 +wpa_supplicant-2.10_1 +wpebackend-fdo-1.12.1_1 +x264-20191217.2245_1 +x265-3.5_1 +xauth-1.1.2_1 +xbps-0.59.1_8 +xbps-triggers-0.124_1 +xcape-1.2_2 +xcb-proto-1.15.2_1 +xcb-util-0.4.1_1 +xcb-util-cursor-0.1.4_1 +xcb-util-devel-0.4.1_1 +xcb-util-image-0.4.1_1 +xcb-util-image-devel-0.4.1_1 +xcb-util-keysyms-0.4.1_1 +xcb-util-keysyms-devel-0.4.1_1 +xcb-util-renderutil-0.3.10_1 +xcb-util-renderutil-devel-0.3.10_1 +xcb-util-wm-0.4.2_1 +xcb-util-wm-devel-0.4.2_1 +xcb-util-xrm-1.3_1 +xclip-0.13_2 +xdg-dbus-proxy-0.1.4_1 +xdg-user-dirs-0.18_1 +xdg-user-dirs-gtk-0.10_4 +xdg-utils-1.1.3_5 +xen-libs-4.14.1_8 +xf86-input-evdev-2.10.6_2 +xf86-input-libinput-1.2.1_1 +xf86-input-synaptics-1.9.1_1 +xf86-input-vmmouse-13.1.0_4 +xf86-input-wacom-1.1.0_1 +xf86-video-amdgpu-22.0.0_1 +xf86-video-ati-19.1.0_4 +xf86-video-dummy-0.4.0_1 +xf86-video-fbdev-0.5.0_2 +xf86-video-intel-2.99.917.20210115_2 +xf86-video-nouveau-1.0.17_2 +xf86-video-vesa-2.5.0_2 +xf86-video-vmware-13.3.0_4 +xfce-polkit-0.3_1 +xfce4-4.18.0_1 +xfce4-alsa-plugin-0.3.0_1 +xfce4-appfinder-4.18.0_1 +xfce4-notifyd-0.6.4_1 +xfce4-panel-4.18.0_1 +xfce4-power-manager-4.18.0_1 +xfce4-screensaver-4.16.0_1 +xfce4-screenshooter-1.10.2_1 +xfce4-session-4.18.0_1 +xfce4-settings-4.18.1_1 +xfce4-taskmanager-1.5.4_2 +xfce4-terminal-1.0.4_1 +xfconf-4.18.0_1 +xfdesktop-4.18.0_1 +xfontsel-1.1.0_1 +xfsprogs-5.19.0_1 +xfwm4-4.18.0_1 +xfwm4-themes-4.10.0_4 +xhost-1.0.9_1 +xinit-1.4.1_3 +xkb-switch-1.6.0_1 +xkbcomp-1.4.6_1 +xkeyboard-config-2.37_1 +xmlsec1-1.2.33_1 +xonsh-0.13.4_1 +xorg-input-drivers-7.6_4 +xorg-minimal-1.2_2 +xorg-server-21.1.6_1 +xorg-server-common-21.1.6_1 +xorg-server-devel-21.1.6_1 +xorg-video-drivers-7.6_22 +xorgproto-2022.2_1 +xrandr-1.5.2_1 +xrdb-1.2.1_1 +xsel-1.2.0_5 +xset-1.2.5_1 +xterm-378_1 +xtools-0.64_2 +xtools-minimal-0.64_2 +xtrans-1.4.0_2 +xvidcore-1.3.7_1 +xxd-9.0.0948_1 +xz-5.4.1_1 +yajl-2.1.0_4 +zathura-0.5.2_1 +zathura-djvu-0.2.9_3 +zathura-pdf-poppler-0.3.1_1 +zd1211-firmware-1.5_3 +zeromq-4.3.4_1 +zfs-2.1.7_1 +zlib-1.2.13_1 +zlib-dbg-1.2.13_1 +zlib-devel-1.2.13_1 +zsh-5.9_2 +zstd-1.5.2_1 +zxing-cpp-1.2.0_1 diff --git a/terminaldweller.com/lounge/docker-compose.yml b/terminaldweller.com/lounge/docker-compose.yml new file mode 100644 index 0000000..e755935 --- /dev/null +++ b/terminaldweller.com/lounge/docker-compose.yml @@ -0,0 +1,29 @@ +version: '3' +services: + app: + image: thelounge/thelounge:4.3.1 + volumes: + - thelounge-data:/var/opt/thelounge + networks: + - traefik-public + deploy: + placement: + constraints: + - node.labels.thelounge.thelounge-data == true + labels: + - traefik.enable=true + - traefik.docker.network=traefik-public + - traefik.constraint-label=traefik-public + - traefik.http.routers.thelounge-http.rule=Host(`lounge.terminaldweller.com`) + - traefik.http.routers.thelounge-http.entrypoints=http + - traefik.http.routers.thelounge-http.middlewares=https-redirect + - traefik.http.routers.thelounge-https.rule=Host(`lounge.terminaldweller.com`) + - traefik.http.routers.thelounge-https.entrypoints=https + - traefik.http.routers.thelounge-https.tls=true + - traefik.http.routers.thelounge-https.tls.certresolver=le + - traefik.http.services.thelounge.loadbalancer.server.port=9000 +networks: + traefik-public: + external: true +volumes: + thelounge-data: diff --git a/terminaldweller.com/main/srv/cv/CV_Abridged.html b/terminaldweller.com/main/srv/cv/CV_Abridged.html new file mode 100644 index 0000000..c254de3 --- /dev/null +++ b/terminaldweller.com/main/srv/cv/CV_Abridged.html @@ -0,0 +1,316 @@ + + + + + + + Farzad Sadeghi + + + +
+

Farzad Sadeghi

+

2023/01/28

+
+

+ https://terminaldweller.com
+ devi@terminaldweller.com
+ thabogre@gmail.com
+ Tehran, Iran
+ +989125802283 +

+

+ Professional Experience +

+

+ Zharfpouyan Tous (Tehran, Iran)
+ March 2021–June 2022
+ 14 months
+ Developing/Maintaining code for a network device running on a unix-like + operating system(openssh,linux-pam,busybox).Mostly C and shell + scripts.
+
+ Erfan Salamat (Tehran, Iran)
+ Nov. 2020–Feb. 2021
+ 4 months
+ Backened Developer. Developed a GIS and Notification microservice + using Golang. Containerized the entire required stack for the said + microservices with Docker.
+
+ Maharan International (Tehran, Iran)
+ Feb. 2019–Oct. 2020
+ 19 months
+ Requirement manager, designer and developer for ERTMS/ETCS DMI for a + safety-ciritcal system written in C.
+
+ Truebit (Remote, 3 time-zones)
+ July 2017–Nov. 2017
+ 5 months
+ developed Truebit’s WASM interpreter and smart contracts. Also + managed the CI for the repositories.
+

+ NEAT (Rome, Italy)
+ May 2016–July 2016
+ 3 months
+ Wrote an automatic refactoring tool using Clang(Libtooling) in + C++. The tool would be the last piece of an automated + model-driven development process for safety-critical systems.
+
+ Crouse (Tehran, Iran)
+ July 2014–March 2016
+ 21 months
+ Embedded software developer, Safety-critical applications: + Design, implementation and automation. The Software team’s ISO + 26262 representative.
+
+ Safir Language Academy (Tehran, Iran)
+ August 2010–March 2012
+ 20 months
+ English Teacher - Later on specifically IELTS teacher.
+

+

Skills

+

+ Programming Languages: C, Python, C++, Go
+ Other: Linux, docker
+

+

Hobby

+

+ I maintain my own local kubernetes cluster with k3s on my raspberry pis + along with a bunch of VPSs that I run my services on(Docker, not + swarm)).
+

+

Languages

+

+ Persian: Native
+ English: Native-like
+ German: Beginner
+

+

Education

+

+ 2021–Now Master’s in Computer Science, Azad University, Science and + Research Branch, Tehran, Iran. Currently working on my thesis
+ 2007–2013 Bachelor’s in Electrical Engineering, Iran University of Science + and Technology, Tehran, Iran.
+ Thesis: Determining the frequency of an audio signal using phase + derivation in real time, design and implementation using an + FPGA. +

+

Role Breakdown

+

+ Backend Developer
+ Developed a GIS microservice based on the OSM stack. Containerized an + entire geoserver stack (geoserver, tile server, static image server, DB) + so that we could rely on our own stack. Developed a notification + microservice using golang and Mongodb(with Percona memory engine).
+
+ ERTMS / ETCS DMI Development
+ Split the DMI into two subsystems. Designed and implemented the + software for the component on the "kernel" side. Wrote a tool that + made the requirements’ traceability files by gathering special + comments from the C source files. Wrote a tool that determines all the + sub-fields of aggregate types used in the function and the functions + it calls(required for testing).
+
+ Embedded Safety-Critical Development
+ Wrote the SRS and the SDD for the DSP algorithm, then implemented + the DSP algorithm for a safety-critical hard real-time embedded + system.
+
+ Code Generation
+

+ +

+ Automation and Tooling
+

+ +

+ Automatic Refactoring
+ Wrote an automatic refactoring tool using Clang’s Libtooling for C.
+
+ Defensive Programming / Safety-Aware Software Design
+ Studied/Implemented defensive programming practices, coding style and + guidelines. Explored the use of FMEA and FTA for the software + domain.
+
+ AUTOSAR
+ Studied AUTOSAR SWC and RTE.
+
+ ISO 26262
+ Studied the software section of the standard. I was also the + software group’s representative for the study/review meetings held + with the hardware and system teams on ISO 26262.
+

+

Links

+

+ terminaldweller.com + My personal web page.
+ Github + My Github page.
+ hived + A tiny and fast crypto API server.
+ magni + Upscales the images in a webpage and serves them back locally.
+ cgrep + Grep for C-family source files.
+ devourer + A little helper API server. Extracts, summarizes and vocalizes articles on + the web.
+ mdrtl + A minimal RTL markdown editor.
+ blog + Source code for my blog.
+ Linkedin + My Linkedin page.
+

+ + diff --git a/terminaldweller.com/main/srv/index.html b/terminaldweller.com/main/srv/index.html index 8677d84..9d403dc 100644 --- a/terminaldweller.com/main/srv/index.html +++ b/terminaldweller.com/main/srv/index.html @@ -2,8 +2,8 @@ - - + + main - +

This is a list of links:

This page is available on:
@@ -26,7 +26,7 @@

WKD direct and advanced are setup on/for the domain.

keyoxide
-
I don't use all the accounts listed on keyoxide regularly. The preferred methods of contacting me are the ones that are listed here, IRC, XMPP and email (The order is not significant).
+
I don't use all the accounts listed on keyoxide regularly. The preferred methods of contacting me are the ones that are listed here, IRC, email and XMPP (The order is not significant).

PGP FP: 9E20464F1CCF3B103249FA93A6A0F5158B3881DF - here and here
@@ -45,11 +45,14 @@
XMPP: devi@jabber.terminaldweller.com

-

The order is significant:
+
The order is significant:
Email: devi@terminaldweller.com
Email: thabogre@gmail.com
Email: farzadsadeghi@protonmail.ch
-
All emails have the ssh and pgp key fingerprints as signature.
+
All emails have the ssh and pgp key fingerprints as signature. You can ask for one.
+

+

+

OpenID: https://launchpad.net/~terminaldweller

Github: terminaldweller

@@ -60,7 +63,7 @@

Blog: Blog RSS

Linkedin

-

Services: N/A

+
Services: N/A
diff --git a/terminaldweller.com/traefik/traefik.yml b/terminaldweller.com/traefik/traefik.yml new file mode 100644 index 0000000..a034111 --- /dev/null +++ b/terminaldweller.com/traefik/traefik.yml @@ -0,0 +1,97 @@ +version: '3.7' +services: + traefik: + image: traefik:v3.0 + ports: + - target: 80 + published: 80 + mode: host + - target: 443 + published: 443 + mode: host + deploy: + placement: + constraints: + # Make the traefik service run only on the node with this label + # as the node with it has the volume for the certificates + - node.labels.traefik-public.traefik-public-certificates == true + labels: + # Enable Traefik for this service, to make it available in the public network + - traefik.enable=true + # Use the traefik-public network (declared below) + - traefik.docker.network=traefik-public + # Use the custom label "traefik.constraint-label=traefik-public" + # This public Traefik will only use services with this label + # That way you can add other internal Traefik instances per stack if needed + - traefik.constraint-label=traefik-public + # admin-auth middleware with HTTP Basic auth + # Using the environment variables USERNAME and HASHED_PASSWORD + - traefik.http.middlewares.admin-auth.basicauth.users= + # https-redirect middleware to redirect HTTP to HTTPS + # It can be re-used by other stacks in other Docker Compose files + - traefik.http.middlewares.https-redirect.redirectscheme.scheme=https + - traefik.http.middlewares.https-redirect.redirectscheme.permanent=true + # traefik-http set up only to use the middleware to redirect to https + # Uses the environment variable DOMAIN + - traefik.http.routers.traefik-public-http.rule=Host(`traefik.terminaldweller.com`) + - traefik.http.routers.traefik-public-http.entrypoints=http + - traefik.http.routers.traefik-public-http.middlewares=https-redirect + # traefik-https the actual router using HTTPS + # Uses the environment variable DOMAIN + - traefik.http.routers.traefik-public-https.rule=Host(`traefik.terminaldweller.com`) + - traefik.http.routers.traefik-public-https.entrypoints=https + - traefik.http.routers.traefik-public-https.tls=true + # Use the special Traefik service api@internal with the web UI/Dashboard + - traefik.http.routers.traefik-public-https.service=api@internal + # Use the "le" (Let's Encrypt) resolver created below + - traefik.http.routers.traefik-public-https.tls.certresolver=le + # Enable HTTP Basic auth, using the middleware created above + - traefik.http.routers.traefik-public-https.middlewares=admin-auth + # Define the port inside of the Docker service to use + - traefik.http.services.traefik-public.loadbalancer.server.port=8080 + volumes: + # Add Docker as a mounted volume, so that Traefik can read the labels of other services + - /var/run/docker.sock:/var/run/docker.sock:ro + # Mount the volume to store the certificates + - traefik-public-certificates:/certificates + command: + # Enable Docker in Traefik, so that it reads labels from Docker services + - --providers.docker + # Add a constraint to only use services with the label "traefik.constraint-label=traefik-public" + - --providers.docker.constraints=Label(`traefik.constraint-label`, `traefik-public`) + # Do not expose all Docker services, only the ones explicitly exposed + - --providers.docker.exposedbydefault=false + # Enable Docker Swarm mode + - --providers.docker.swarmmode + # Create an entrypoint "http" listening on port 80 + - --entrypoints.http.address=:80 + # Create an entrypoint "https" listening on port 443 + - --entrypoints.https.address=:443 + # Create the certificate resolver "le" for Let's Encrypt, uses the environment variable EMAIL + - --certificatesresolvers.le.acme.email=devi+trf@terminaldweller.com + # Store the Let's Encrypt certificates in the mounted volume + - --certificatesresolvers.le.acme.storage=/certificates/acme.json + # Use the TLS Challenge for Let's Encrypt + - --certificatesresolvers.le.acme.tlschallenge=true + # Enable the access log, with HTTP requests + - --accesslog + # Enable the Traefik log, for configurations and errors + - --log + # Enable the Dashboard and API + - --api + networks: + # Use the public network created to be shared between Traefik and + # any other service that needs to be publicly available with HTTPS + - traefik-public + env_file: + - ./.env +volumes: + # Create a volume to store the certificates, there is a constraint to make sure + # Traefik is always deployed to the same Docker node with the same volume containing + # the HTTPS certificates + traefik-public-certificates: +networks: + # Use the previously created public network "traefik-public", shared with other + # services that need to be publicly available via this Traefik + traefik-public: + external: true diff --git a/zfs/import.sh b/zfs/import.sh index 25efb71..3d49e7a 100755 --- a/zfs/import.sh +++ b/zfs/import.sh @@ -8,5 +8,6 @@ mount | grep mnt sudo mount -t proc proc /mnt/proc sudo mount -t sysfs sys /mnt/sys sudo mount -B /dev /mnt/dev -sudo mount -t devpts pts /mnt/dev/pts +# sudo mount -t devpts pts /mnt/dev/pts +sudo mount -t devpts none /mnt/dev/pts -o ptmxmode=0666,newinstance sudo chroot /mnt /bin/bash -- cgit v1.2.3