diff options
Diffstat (limited to '')
-rw-r--r-- | .newsboat/urls | 14 | ||||
-rw-r--r-- | .zshrc | 37 | ||||
-rwxr-xr-x | bin/tunneltop | 250 | ||||
-rwxr-xr-x | chroot/mount.sh | 2 | ||||
-rw-r--r-- | cv/CV.tex | 1 | ||||
-rw-r--r-- | cv/CV_Abridged.tex | 31 | ||||
-rw-r--r-- | pkg_list | 1640 | ||||
-rw-r--r-- | terminaldweller.com/lounge/docker-compose.yml | 29 | ||||
-rw-r--r-- | terminaldweller.com/main/srv/cv/CV_Abridged.html | 316 | ||||
-rw-r--r-- | terminaldweller.com/main/srv/index.html | 17 | ||||
-rw-r--r-- | terminaldweller.com/traefik/traefik.yml | 97 | ||||
-rwxr-xr-x | zfs/import.sh | 3 |
12 files changed, 2239 insertions, 198 deletions
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 @@ -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 @@ -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 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> + <head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta + name="viewport" + content="width=device-width, initial-scale=1.0, user-scalable=yes" + /> + <title>Farzad Sadeghi</title> + <style> + code { + white-space: pre-wrap; + } + span.smallcaps { + font-variant: small-caps; + } + span.underline { + text-decoration: underline; + } + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + div.hanging-indent { + margin-left: 1.5em; + text-indent: -1.5em; + } + ul.task-list { + list-style: none; + } + </style> + </head> + <body + style=" + color: #005f87; + background: #000000; + text-align: left; + padding: 0px; + border: 0px; + margin: 0px; + " + > + <header id="title-block-header"> + <h1 class="title"><strong>Farzad Sadeghi</strong></h1> + <p class="date">2023/01/28</p> + </header> + <p> + <span + ><a href="https://terminaldweller.com" + >https://terminaldweller.com</a + ></span + ><br /> + devi@terminaldweller.com<br /> + thabogre@gmail.com<br /> + Tehran, Iran<br /> + +989125802283 + </p> + <h1 class="unnumbered" id="professional-experience"> + Professional Experience + </h1> + <p> + <strong + >Zharfpouyan Tous (Tehran, Iran)<br /> + March 2021–June 2022<br /> + 14 months<br /> + Developing/Maintaining code for a network device running on a unix-like + operating system(openssh,linux-pam,busybox).Mostly C and shell + scripts.<br /> + <br /> + <strong + >Erfan Salamat (Tehran, Iran)<br /> + Nov. 2020–Feb. 2021<br /> + 4 months<br /> + Backened Developer. Developed a GIS and Notification microservice + using Golang. Containerized the entire required stack for the said + microservices with Docker.<br /> + <br /> + <strong + >Maharan International (Tehran, Iran)<br /> + Feb. 2019–Oct. 2020<br /> + 19 months<br /> + Requirement manager, designer and developer for ERTMS/ETCS DMI for a + safety-ciritcal system written in C.<br /> + <br /> + <strong + >Truebit (Remote, 3 time-zones)<br /> + July 2017–Nov. 2017<br /> + 5 months<br /> + developed Truebit’s WASM interpreter and smart contracts. Also + managed the CI for the repositories.<br /> + <div></div> + <strong + >NEAT (Rome, Italy)<br /> + May 2016–July 2016<br /> + 3 months<br /> + 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.<br /> + <div></div> + <strong + >Crouse (Tehran, Iran)<br /> + July 2014–March 2016<br /> + 21 months<br /> + Embedded software developer, Safety-critical applications: + Design, implementation and automation. The Software team’s ISO + 26262 representative.<br /> + <div></div> + <strong + >Safir Language Academy (Tehran, Iran)<br /> + August 2010–March 2012<br /> + 20 months<br /> + English Teacher - Later on specifically IELTS teacher.<br /> </strong></strong></strong></strong></strong></strong + ></strong> + </p> + <h1 class="unnumbered" id="skills">Skills</h1> + <p> + <strong + >Programming Languages: C, Python, C++, Go<br /> + <strong>Other: Linux, docker<br /> </strong + ></strong> + </p> + <h1 class="unnumbered" id="hobby">Hobby</h1> + <p> + 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)).<br /> + </p> + <h1 class="unnumbered" id="languages">Languages</h1> + <p> + <strong + >Persian: <span>Native</span><br /> + <strong + >English: <span>Native-like</span><br /> + German: Beginner<br /> </strong + ></strong> + </p> + <h1 class="unnumbered" id="education">Education</h1> + <p> + 2021–Now Master’s in Computer Science, Azad University, Science and + Research Branch, Tehran, Iran. Currently working on my thesis<br /> + 2007–2013 Bachelor’s in Electrical Engineering, Iran University of Science + and Technology, Tehran, Iran.<br /> + <strong + >Thesis: Determining the frequency of an audio signal using phase + derivation in real time, design and implementation using an + FPGA.</strong + > + </p> + <h1 class="unnumbered" id="role-breakdown">Role Breakdown</h1> + <p> + <strong + >Backend Developer<br /> + 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).<br /> + <br /> + <strong + >ERTMS / ETCS DMI Development<br /> + 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).<br /> + <br /> + <strong + >Embedded Safety-Critical Development<br /> + Wrote the SRS and the SDD for the DSP algorithm, then implemented + the DSP algorithm for a safety-critical hard real-time embedded + system.<br /> + <br /> + <strong>Code Generation<br /> </strong></strong></strong + ></strong> + </p> + <ul> + <li> + <p>Wrote A tool that generates binary file (WASM, ...) parsers in C.</p> + </li> + <li> + <p> + Wrote another tool that generates the C code necessary to add a C + structure to Lua as a Lua table. + </p> + </li> + </ul> + <p> + <strong>Automation and Tooling<br /> </strong> + </p> + <ul> + <li> + <p> + Developed a Misra-C:2004 rule checker(open-source project) using + Clang’s Libtooling. + </p> + </li> + <li> + <p> + Developed a source code obfuscation tool(open-source project) using + Clang’s Libtooling. + </p> + </li> + <li> + <p> + Developed an interactive CLI tool aimed at object code + manipulation(open-source project) in C++/C with Lua as it’s scripting + language. The tool also has Python embedded in it for rapid + prototyping. + </p> + </li> + <li> + <p> + Automated the traceability matrix generation using libclang’s Python + bindings. + </p> + </li> + <li> + <p>Automated the regression testing for a project I was involved in.</p> + </li> + <li> + <p> + Automated the calculation of the WCET for all implemented functions + through the use of of a Python script and an XML description file. + </p> + </li> + </ul> + <p> + <strong + >Automatic Refactoring<br /> + Wrote an automatic refactoring tool using Clang’s Libtooling for C.<br /> + <br /> + <strong + >Defensive Programming / Safety-Aware Software Design<br /> + Studied/Implemented defensive programming practices, coding style and + guidelines. Explored the use of FMEA and FTA for the software + domain.<br /> + <br /> + <strong + >AUTOSAR<br /> + Studied AUTOSAR SWC and RTE.<br /> + <br /> + <strong + >ISO 26262<br /> + 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.<br /> </strong></strong></strong + ></strong> + </p> + <h1 class="unnumbered" id="links">Links</h1> + <p> + <span + ><strong + ><a href="https://terminaldweller.com">terminaldweller.com</a></strong + ></span + > + My personal web page.<br /> + <span + ><strong + ><a href="https://github.com/terminaldweller">Github</a></strong + ></span + > + My Github page.<br /> + <span + ><strong + ><a href="https://github.com/terminaldweller/hived/tree/arbitrage" + >hived</a + ></strong + ></span + > + A tiny and fast crypto API server.<br /> + <span + ><strong + ><a href="https://github.com/terminaldweller/magni">magni</a></strong + ></span + > + Upscales the images in a webpage and serves them back locally.<br /> + <span + ><strong + ><a href="https://github.com/terminaldweller/cgrep">cgrep</a></strong + ></span + > + Grep for C-family source files.<br /> + <span + ><strong + ><a href="https://github.com/terminaldweller/devourer" + >devourer</a + ></strong + ></span + > + A little helper API server. Extracts, summarizes and vocalizes articles on + the web.<br /> + <span + ><strong + ><a href="https://github.com/terminaldweller/mdrtl">mdrtl</a></strong + ></span + > + A minimal RTL markdown editor.<br /> + <span + ><strong + ><a href="https://github.com/terminaldweller/blog">blog</a></strong + ></span + > + Source code for my blog.<br /> + <span + ><strong + ><a href="https://www.linkedin.com/in/farzad-sadeghi/" + >Linkedin</a + ></strong + ></span + > + My Linkedin page.<br /> + </p> + </body> +</html> 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 @@ <html> <head> <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width" /> - <meta http-equiv="onion-location" content="http://dqunl5rzlv6skqfklqr4dwi4zph2vqoaennc7qoinqs5mlug4docq2yd.onion" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta http-equiv="onion-location" content="http://dqunl5rzlv6skqfklqr4dwi4zph2vqoaennc7qoinqs5mlug4docq2yd.onion"/> <title>main</title> <style> a:link { @@ -14,7 +14,7 @@ } </style> </head> - <body style="color:#005f87;background:#000000;text-align:center;"> + <body style="color:#005f87;background:#000000;text-align:center;padding:0px;border:0px;margin:0px;"> <p style="font-size:20px;font-weight:bold">This is a list of links:</p> <p> <div>This page is available on:</div> @@ -26,7 +26,7 @@ <p>WKD direct and advanced are setup on/for the domain.</p> <p> <div><a href="https://keyoxide.org/hkp/9e20464f1ccf3b103249fa93a6a0f5158b3881df">keyoxide</a></div> - <div>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).</div> + <div>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).</div> </p> <div> <div>PGP FP: 9E20464F1CCF3B103249FA93A6A0F5158B3881DF - <a href="https://github.com/terminaldweller.gpg">here</a> and <a href="keys/gpg_pubkey">here</a></div> @@ -45,11 +45,14 @@ <div>XMPP: devi@jabber.terminaldweller.com</div> </p> <p> - <div>The order is significant:</div> + <div style="font-weight:bold;">The order is significant:</div> <div>Email: devi@terminaldweller.com</div> <div>Email: thabogre@gmail.com</div> <div>Email: farzadsadeghi@protonmail.ch</div> - <div>All emails have the ssh and pgp key fingerprints as signature.</div> + <div>All emails have the ssh and pgp key fingerprints as signature. You can ask for one.</div> + </p> + <p> + <div>OpenID: <a href="https://launchpad.net/~terminaldweller">https://launchpad.net/~terminaldweller</a></div> </p> <p>Github: <a href="https://github.com/terminaldweller">terminaldweller</a></p> <p> @@ -60,7 +63,7 @@ <p>Blog: <a href="https://blog.terminaldweller.com">Blog</a> <a href="https://blog.terminaldweller.com/rss/feed">RSS</a></p> <p><a href="https://www.linkedin.com/in/farzad-sadeghi/">Linkedin</a></p> <div> - <p>Services: N/A</p> + <div>Services: N/A</div> </div> </body> </html> 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 |