<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: VORG</title>
    <description>The latest articles on DEV Community by VORG (@vorg).</description>
    <link>https://dev.to/vorg</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F801626%2Fef5d4fcc-3798-4b45-8898-c516277f5380.jpeg</url>
      <title>DEV Community: VORG</title>
      <link>https://dev.to/vorg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vorg"/>
    <language>en</language>
    <item>
      <title>Open Source Reverse Engineering Platform</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Fri, 11 Feb 2022 07:23:20 +0000</pubDate>
      <link>https://dev.to/vorg/open-source-reverse-engineering-platform-4o28</link>
      <guid>https://dev.to/vorg/open-source-reverse-engineering-platform-4o28</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/rizinorg/cutter"&gt;cutter&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 10.8k Watch 284 Fork 860&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Cutter is a free and open-source reverse engineering platform powered by rizin. It aims at being an advanced and customizable reverse engineering platform while keeping the user experience in mind. Cutter is created by reverse engineers for reverse engineers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--snp2OH34--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hsm0rymjn9crirm92ca0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--snp2OH34--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hsm0rymjn9crirm92ca0.png" alt="Image description" width="880" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZiVghXOa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kfbvd83v1khorm3j4q0u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZiVghXOa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kfbvd83v1khorm3j4q0u.png" alt="Image description" width="880" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Plugins
&lt;/h2&gt;

&lt;p&gt;Cutter supports both Python and Native C++ plugins.&lt;/p&gt;

&lt;p&gt;Our community has built many plugins and useful scripts for Cutter such as the native integration of Ghidra decompiler or the plugin to visualize DynamoRIO code coverage. Feel free to extend it with your own plugins and scripts for Cutter.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;GPL-3.0&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>programming</category>
      <category>tooling</category>
      <category>cpp</category>
    </item>
    <item>
      <title>Powerful E-Ink Reader</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Fri, 11 Feb 2022 07:11:10 +0000</pubDate>
      <link>https://dev.to/vorg/powerful-e-ink-reader-50oi</link>
      <guid>https://dev.to/vorg/powerful-e-ink-reader-50oi</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/koreader/koreader"&gt;koreader&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 9.9k Watch 299 Fork 971&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;KOReader is a document viewer primarily aimed at e-ink readers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Main features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;portable&lt;/strong&gt;: runs on embedded devices (Cervantes, Kindle, Kobo, PocketBook, reMarkable), Android and Linux computers. Developers can run a KOReader emulator in Linux and MacOS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;multi-format documents&lt;/strong&gt;: supports fixed page formats (PDF, DjVu, CBT, CBZ) and reflowable e-book formats (EPUB, FB2, Mobi, DOC, CHM, TXT). Scanned PDF/DjVu documents can also be reflowed with the built-in K2pdfopt library.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;full-featured reading&lt;/strong&gt;: multi-lingual user interface with a highly customizable reader view and many typesetting options. You can set arbitrary page margins, override line spacing and choose external fonts and styles. It has multi-lingual hyphenation dictionaries bundled into the application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;integrated&lt;/strong&gt; with calibre (search metadata, receive ebooks wirelessly, browse library via OPDS), Wallabag, Wikipedia, Google Translate and other content providers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;optimized for e-ink devices&lt;/strong&gt;: custom UI without animation, with paginated menus, adjustable text contrast, and easy zoom to fit content or page in paged media.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;extensible&lt;/strong&gt;: via plugins&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;fast&lt;/strong&gt;: on some older devices, it has been measured to have less than half the page-turn delay as the built in reading software.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and much more: look up words with StarDict dictionaries / Wikipedia, add your own online OPDS catalogs and RSS feeds, over-the-air software updates, an FTP client, an SSH server, …&lt;/p&gt;

&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WiqBwaKA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x010ky38qzhjz82hadly.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WiqBwaKA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x010ky38qzhjz82hadly.png" alt="Image description" width="600" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dqEDc_x4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p16rht116r8akl3fbvqm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dqEDc_x4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p16rht116r8akl3fbvqm.png" alt="Image description" width="600" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lkMllNeo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p3x8cx2gfj3xbqb9moou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lkMllNeo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p3x8cx2gfj3xbqb9moou.png" alt="Image description" width="600" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;AGPL-3.0&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>lua</category>
      <category>tooling</category>
      <category>github</category>
    </item>
    <item>
      <title>Linux VR Desktop</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Fri, 11 Feb 2022 07:00:16 +0000</pubDate>
      <link>https://dev.to/vorg/linux-vr-desktop-2d34</link>
      <guid>https://dev.to/vorg/linux-vr-desktop-2d34</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/SimulaVR/Simula"&gt;Simula&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 29.3k Watch 357 Fork 1.7k&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Simula is a VR window manager for Linux that runs on top of Godot. It takes less than 1 minute to install.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DRH9UXL---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hpgeid0ib6209ey1shbz.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DRH9UXL---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hpgeid0ib6209ey1shbz.jpeg" alt="Image description" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compatibility&lt;/strong&gt;: Simula is officially compatible with SteamVR headsets equipped with Linux drivers (e.g. HTC Vive, HTC Vive Pro, &amp;amp; Valve Index). We have also added experimental support to OpenXR headsets that have Monado drivers (e.g. North Star, OSVR HDK, and PSVR). Some people have gotten the Oculus Rift S to run Simula via OpenHMD, though we have not officially tested this ourselves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mission&lt;/strong&gt;: Facilitate a Linux future for VR &amp;amp; AR Desktop. In the short-run, this means allowing people to run 2D Linux apps with current generation headsets. In the long-run, this means allowing people to run Linux in standalone AR &amp;amp; VR HMDs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simula One Headset&lt;/strong&gt;: We are also in the process of developing a (limited number of) portable VR headsets for sale which come with SimulaVR mounted on them by default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Origins&lt;/strong&gt;: Simula is a reimplementation fork of motorcar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Text Quality
&lt;/h2&gt;

&lt;p&gt;A common objection to the viability of VR Desktop is that it exhibits poor text quality; however, with our low pass filter, Simula has taken special care to make text quality as clear as possible:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DeeXMlT0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phc1ywbn79bmeojnf8h2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DeeXMlT0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phc1ywbn79bmeojnf8h2.gif" alt="Image description" width="600" height="658"&gt;&lt;/a&gt;&lt;br&gt;
The left image is a VR terminal without our filter applied; the right is the same image with our filter applied. Compared to other VR Desktops, Simula allows for significantly longer sessions without uncomfortable eye strain.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;MIT&lt;/p&gt;

</description>
      <category>linux</category>
      <category>opensource</category>
      <category>tooling</category>
      <category>haskell</category>
    </item>
    <item>
      <title>Open Source Modern Terminal</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Fri, 11 Feb 2022 06:47:41 +0000</pubDate>
      <link>https://dev.to/vorg/open-source-modern-terminal-460g</link>
      <guid>https://dev.to/vorg/open-source-modern-terminal-460g</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/Eugeny/tabby"&gt;tabby&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 29.3k Watch 357 Fork 1.7k&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Tabby (formerly Terminus) is a highly configurable terminal emulator, SSH and serial client for Windows, macOS and Linux&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrated SSH and Telnet client and connection manager&lt;/li&gt;
&lt;li&gt;Integrated serial terminal&lt;/li&gt;
&lt;li&gt;Theming and color schemes&lt;/li&gt;
&lt;li&gt;Fully configurable shortcuts and multi-chord shortcuts&lt;/li&gt;
&lt;li&gt;Split panes&lt;/li&gt;
&lt;li&gt;Remembers your tabs&lt;/li&gt;
&lt;li&gt;PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder and CMD support&lt;/li&gt;
&lt;li&gt;Direct file transfer from/to SSH sessions via Zmodem&lt;/li&gt;
&lt;li&gt;Full Unicode support including double-width characters&lt;/li&gt;
&lt;li&gt;Doesn't choke on fast-flowing outputs&lt;/li&gt;
&lt;li&gt;Proper shell experience on Windows including tab completion (via Clink)&lt;/li&gt;
&lt;li&gt;Integrated encrypted container for SSH secrets and configuration&lt;/li&gt;
&lt;li&gt;SSH, SFTP and Telnet client available as a web app (also self-hosted).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Tabby is and isn't
&lt;/h2&gt;

&lt;p&gt;Tabby is an alternative to Windows' standard terminal (conhost), PowerShell ISE, PuTTY, macOS Terminal.app and iTerm&lt;/p&gt;

&lt;p&gt;Tabby is not a new shell or a MinGW or Cygwin replacement. Neither is it lightweight - if RAM usage is of importance, consider Conemu or Alacritty&lt;/p&gt;

&lt;h2&gt;
  
  
  Terminal features
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oIWN9L3v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zzbuqw35t4rvj564m72o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oIWN9L3v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zzbuqw35t4rvj564m72o.png" alt="Image description" width="880" height="585"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A V220 terminal + various extensions&lt;/li&gt;
&lt;li&gt;Multiple nested split panes&lt;/li&gt;
&lt;li&gt;Tabs on any side of the window&lt;/li&gt;
&lt;li&gt;Optional dockable window with a global spawn hotkey ("Quake console")&lt;/li&gt;
&lt;li&gt;Progress detection&lt;/li&gt;
&lt;li&gt;Notification on process completion&lt;/li&gt;
&lt;li&gt;Bracketed paste, multiline paste warnings&lt;/li&gt;
&lt;li&gt;Font ligatures&lt;/li&gt;
&lt;li&gt;Custom shell profiles&lt;/li&gt;
&lt;li&gt;Optional RMB paste and copy-on select (PuTTY style)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  SSH Client
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dX0OBb9B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/762tn38jgzoq1xatk3jv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dX0OBb9B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/762tn38jgzoq1xatk3jv.png" alt="Image description" width="880" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SSH2 client with a connection manager&lt;/li&gt;
&lt;li&gt;X11 and port forwarding&lt;/li&gt;
&lt;li&gt;Automatic jump host management&lt;/li&gt;
&lt;li&gt;Agent forwarding (incl. Pageant and Windows native OpenSSH Agent)&lt;/li&gt;
&lt;li&gt;Login scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Serial Terminal
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Saved connections&lt;/li&gt;
&lt;li&gt;Readline input support&lt;/li&gt;
&lt;li&gt;Optional hex byte-by-byte input and hexdump output&lt;/li&gt;
&lt;li&gt;Newline conversion&lt;/li&gt;
&lt;li&gt;Automatic reconnection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Portable
&lt;/h2&gt;

&lt;p&gt;Tabby will run as a portable app on Windows, if you create a data folder in the same location where Tabby.exe lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;MIT&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>linux</category>
      <category>typescript</category>
      <category>github</category>
    </item>
    <item>
      <title>Build Images with Images</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Thu, 10 Feb 2022 10:12:29 +0000</pubDate>
      <link>https://dev.to/vorg/build-images-with-images-14d5</link>
      <guid>https://dev.to/vorg/build-images-with-images-14d5</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/nuno-faria/tiler"&gt;tiler&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 5k Watch 57 Fork 318&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About
&lt;/h2&gt;

&lt;p&gt;Tiler is a tool to create an image using all kinds of other smaller images (tiles). It is different from other mosaic tools since it can adapt to tiles with multiple shapes and sizes (i.e. not limited to squares).&lt;/p&gt;

&lt;p&gt;An image can be built out of circles, lines, waves, cross stitches, legos, minecraft blocks, paper clips, letters, ... The possibilities are endless!&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Circles
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Various sizes
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nG49vFQt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aqhr5wcyhvt2c48q2fkt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nG49vFQt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aqhr5wcyhvt2c48q2fkt.png" alt="Image description" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Fixed
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;10x10
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c-_Y1ALi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1vnx0seoaerwrceteu0a.png" alt="Image description" width="512" height="512"&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gqi0PmiS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fetad2j175r8yq6brf2h.png" alt="Image description" width="880" height="694"&gt;
&lt;/li&gt;
&lt;li&gt;25x25
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xTKVwlh0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hrpk29hp7kxjsnnt0194.png" alt="Image description" width="880" height="694"&gt;
&lt;/li&gt;
&lt;li&gt;50x50
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--73a-1Weh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hvmmwi1bdr9gfzch7i4u.png" alt="Image description" width="880" height="694"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Paper clips
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sDkNoX3U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27q1jx11m4ki1od9w55r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sDkNoX3U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27q1jx11m4ki1od9w55r.png" alt="Image description" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Cross stitch (times)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---98E4ZOA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zse0fz3uve9vfuuf3q6t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---98E4ZOA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zse0fz3uve9vfuuf3q6t.png" alt="Image description" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DWS-pFlF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x3esxrtgnsv5k61zs827.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DWS-pFlF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x3esxrtgnsv5k61zs827.png" alt="Image description" width="880" height="694"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hearts
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wfwGTzDG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sh4zab1d88uf84b8m7nm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wfwGTzDG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sh4zab1d88uf84b8m7nm.png" alt="Image description" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Legos
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ajkzf205--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/of7qh5smw66jlmgecudg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ajkzf205--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/of7qh5smw66jlmgecudg.png" alt="Image description" width="512" height="512"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2w1BPZlR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kdofv9j0s7a3gybop6rk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2w1BPZlR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kdofv9j0s7a3gybop6rk.png" alt="Image description" width="880" height="694"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Minecraft blocks
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Bh4lD4oF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jwi6tsqn3u4cojk1znu7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bh4lD4oF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jwi6tsqn3u4cojk1znu7.png" alt="Image description" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oFYXAyeU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nj7y2debaeixvtlgq3be.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oFYXAyeU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nj7y2debaeixvtlgq3be.png" alt="Image description" width="880" height="694"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Stripes (lines)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--X7j-d0z3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y520jnuhgaolydre33uz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X7j-d0z3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y520jnuhgaolydre33uz.png" alt="Image description" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  At
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d30FyVPZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7uwptz9y9gatdqsteajq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d30FyVPZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7uwptz9y9gatdqsteajq.png" alt="Image description" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>tooling</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>RSS/Atom Reader for MacOS</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Thu, 10 Feb 2022 09:52:24 +0000</pubDate>
      <link>https://dev.to/vorg/rssatom-reader-for-macos-3egg</link>
      <guid>https://dev.to/vorg/rssatom-reader-for-macos-3egg</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/ViennaRSS/vienna-rss"&gt;vienna-rss&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 1.5k Watch 58 Fork 222&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MT_ECK1w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vienna-rss.sourceforge.io/img/vienna_logo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MT_ECK1w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vienna-rss.sourceforge.io/img/vienna_logo.png" alt="Vienna" width="203" height="65"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vienna is an RSS/Atom reader for macOS.&lt;/p&gt;

&lt;p&gt;Vienna can connect directly to the websites you want to track.&lt;br&gt;
Additionally or alternatively, you can also sync with a server supporting the Open Reader API (an adaptation of the now deceased Google Reader API). Vienna has been successfully tested with BazQux.com, FreshRSS.org, FeedHQ.org, InoReader.com and TheOldReader.com.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MMdZIJmK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fpejettm80sm8llbkoqz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MMdZIJmK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fpejettm80sm8llbkoqz.png" alt="Image description" width="880" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oXnxvtxA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w6tgp0rvzx8y5svtpia0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oXnxvtxA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w6tgp0rvzx8y5svtpia0.png" alt="Image description" width="880" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9N9qeNxu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cb91nq4d7pzhn3ljg9k1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9N9qeNxu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cb91nq4d7pzhn3ljg9k1.png" alt="Image description" width="880" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Licensing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="//LICENCE.md"&gt;Apache License, Version 2.0&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>MacOS Python Statusbar apps</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Thu, 10 Feb 2022 09:38:23 +0000</pubDate>
      <link>https://dev.to/vorg/macos-python-statusbar-apps-36o</link>
      <guid>https://dev.to/vorg/macos-python-statusbar-apps-36o</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/jaredks/rumps"&gt;rumps&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 2.6k Watch 46 Fork 167&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Ridiculously Uncomplicated macOS Python Statusbar apps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nrpqMaGU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ay9l9gh7pyviu5ts79x5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nrpqMaGU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ay9l9gh7pyviu5ts79x5.png" alt="Image description" width="598" height="224"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;rumps&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AwesomeStatusBarApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rumps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;App&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;rumps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clicked&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Preferences"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;prefs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;rumps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"jk! no preferences available!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;rumps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clicked&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Silly button"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;onoff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sender&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;sender&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;sender&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;

    &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;rumps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clicked&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Say hi"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;sayhi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;rumps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;notification&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Awesome title"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"amazing subtitle"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"hi!!1"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"__main__"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;AwesomeStatusBarApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Awesome App"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;How fun!?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rumps&lt;/code&gt; can greatly shorten the code required to generate a working app. No &lt;code&gt;PyObjC&lt;/code&gt; underscore syntax required!&lt;/p&gt;

&lt;h2&gt;
  
  
  Use case
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;rumps&lt;/code&gt; is for any console-based program that would benefit from a simple configuration toolbar or launch menu.&lt;/p&gt;

&lt;p&gt;Good for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Notification-center-based app&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Controlling daemons / launching separate programs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Updating simple info from web APIs on a timer&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not good for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Any app that is first and foremost a GUI application&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;Modified BSD License.&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>github</category>
      <category>programming</category>
    </item>
    <item>
      <title>Next-Generation ORM for Node.js</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Thu, 10 Feb 2022 07:56:40 +0000</pubDate>
      <link>https://dev.to/vorg/next-generation-orm-for-nodejs-2fn6</link>
      <guid>https://dev.to/vorg/next-generation-orm-for-nodejs-2fn6</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/prisma/prisma"&gt;prisma&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 20.4k Watch 187 Fork 716&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GMOfSDHZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c1hdcm0wmyt2uho9t8hw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GMOfSDHZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c1hdcm0wmyt2uho9t8hw.png" alt="Image description" width="880" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prisma is a next-generation ORM that consists of these tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Prisma Client: Auto-generated and type-safe query builder for Node.js &amp;amp; TypeScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prisma Migrate: Declarative data modeling &amp;amp; migration system&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prisma Studio: GUI to view and edit data in your database&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prisma Client can be used in any Node.js or TypeScript backend application (including serverless applications and microservices). This can be a REST API, a GraphQL API a gRPC API, or anything else that needs a database.&lt;/p&gt;

&lt;h4&gt;
  
  
  Example
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;PrismaClient&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@prisma/client&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prisma&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;PrismaClient&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;// A main function so that you can use async/await&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;allUsers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;findMany&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;include&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;posts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="c1"&gt;// use console.dir to print nested objects&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;allUsers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;depth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;finally&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;$disconnect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>node</category>
      <category>typescript</category>
      <category>opensource</category>
      <category>database</category>
    </item>
    <item>
      <title>Chrome Extension: Taking Notes On The Web</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Thu, 10 Feb 2022 04:06:36 +0000</pubDate>
      <link>https://dev.to/vorg/chrome-extension-taking-notes-on-the-web-a00</link>
      <guid>https://dev.to/vorg/chrome-extension-taking-notes-on-the-web-a00</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/betterRunner/context-note"&gt;context-note&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 424 Watch 8 Fork 36&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://chrome.google.com/webstore/detail/context-note/enmeffcefbiehghanidhebgiccljmncl?hl=zh-CN"&gt;
    &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1tmSU570--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/7123136/132152458-37a8ec1d-dfb2-4957-8451-44cf01312820.png" width="880" height="220"&gt;
  &lt;/a&gt;
  &lt;br&gt;
&lt;/p&gt;

&lt;p&gt;A 📝&lt;b&gt;note-taking chrome extension&lt;/b&gt;: taking notes on the web with their context.
&lt;/p&gt;

&lt;p&gt;Built by &lt;a href="https://v3.vuejs.org/"&gt;Vue3&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Lxih2Yml--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cjzyah2rbie55mha0ajj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Lxih2Yml--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cjzyah2rbie55mha0ajj.gif" alt="Image description" width="804" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📝 Notebook, reviewing notes on a book, while jumping back to the context for details.&lt;/li&gt;
&lt;li&gt;🏷️ Tagbook, manage the notes neatly with a handy tag system.&lt;/li&gt;
&lt;li&gt;⌨️ Rich text editor: embed &lt;a href="https://quilljs.com/"&gt;quill&lt;/a&gt; as the rich text editor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can read more from &lt;a href="https://medium.com/@neochan_66076/take-your-notes-on-the-web-with-their-context-77e8b9aaf1be"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Develop
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. install dependencies&lt;/span&gt;
yarn

&lt;span class="c"&gt;# 2.1 build extension in dev mode&lt;/span&gt;
yarn dev

&lt;span class="c"&gt;# 2.2 build extension in prod mode&lt;/span&gt;
yarn build

&lt;span class="c"&gt;# 3. load the built dist folder in `chrome extension management` following https://support.google.com/chrome_webstore/answer/2664769?hl=en&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Licence
&lt;/h2&gt;

&lt;p&gt;Context is open source software licensed as MIT.&lt;/p&gt;

</description>
      <category>vue</category>
      <category>typescript</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Comprehensive React UI Components Library</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Wed, 09 Feb 2022 09:40:47 +0000</pubDate>
      <link>https://dev.to/vorg/comprehensive-react-ui-components-library-34o2</link>
      <guid>https://dev.to/vorg/comprehensive-react-ui-components-library-34o2</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/arco-design/arco-design"&gt;arco-design&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 2.6k Watch 26 Fork 226&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arco.design"&gt;&lt;br&gt;
    &lt;img alt="Arco Design Logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--azv2wfaE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars.githubusercontent.com/u/64576149%3Fs%3D200%26v%3D4" width="200" height="200"&gt;&lt;br&gt;
  &lt;/a&gt;&lt;/p&gt;


&lt;h1&gt;Arco Design&lt;/h1&gt;

&lt;p&gt;A comprehensive React UI components library based on the &lt;a href="https://arco.design/"&gt;Arco Design&lt;/a&gt; system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Comprehensive
&lt;/h4&gt;

&lt;p&gt;With more than 60 crafted components that you can use out of the box.&lt;/p&gt;

&lt;h4&gt;
  
  
  Customizable theme
&lt;/h4&gt;

&lt;p&gt;Extensive design tokens can be customized to build your own theme.&lt;/p&gt;

&lt;h4&gt;
  
  
  Reusable custom materials
&lt;/h4&gt;

&lt;p&gt;Material market provides a one-stop solution for materials management. Reuse customized modules to make a breakthrough in efficiency.&lt;/p&gt;

&lt;h4&gt;
  
  
  TypeScript friendly
&lt;/h4&gt;

&lt;p&gt;All components are written in TypeScript so it's type friendly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;ReactDOM&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-dom&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@arco-design/web-react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@arco-design/web-react/dist/css/arco.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;secondary&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nx"&gt;Hello&lt;/span&gt; &lt;span class="nx"&gt;World&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Button&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;ReactDOM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(,&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;app&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qRjiBTnE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uqzq8f9in7ppae1uah2d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qRjiBTnE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uqzq8f9in7ppae1uah2d.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>design</category>
      <category>javascript</category>
      <category>react</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Android package manager and installer for Windows</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Wed, 09 Feb 2022 04:00:45 +0000</pubDate>
      <link>https://dev.to/vorg/android-package-manager-and-installer-for-windows-11i1</link>
      <guid>https://dev.to/vorg/android-package-manager-and-installer-for-windows-11i1</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/alesimula/wsa_pacman"&gt;wsa_pacman&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 1.1k Watch 22 Fork 185&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--41RzsVa---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xm3hitnbfx2a53bit45q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--41RzsVa---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xm3hitnbfx2a53bit45q.png" alt="Image description" width="645" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A GUI package manager and package installer for Windows Subsystem for Android (WSA).&lt;/p&gt;

&lt;p&gt;Currently provides a double-click GUI installer for .apk files that shows app information (package, icon, version and permissions), allows normal installations as well as upgrades and downgrades.&lt;/p&gt;

&lt;p&gt;The app additionally provides a button to open Android settings and one to open the "Manage Applications" Android settings page, from which you can uninstall or disable applications and grant or revoke permissions&lt;/p&gt;

&lt;h2&gt;
  
  
  Settings
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Autostart WSA

&lt;ul&gt;
&lt;li&gt;on/off&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Android port

&lt;ul&gt;
&lt;li&gt;Default: 58526&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Language

&lt;ul&gt;
&lt;li&gt;&lt;a href="//./locale/"&gt;All options&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Theme mode 

&lt;ul&gt;
&lt;li&gt;System&lt;/li&gt;
&lt;li&gt;Dark&lt;/li&gt;
&lt;li&gt;Light&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Window transparency (mica)

&lt;ul&gt;
&lt;li&gt;Full&lt;/li&gt;
&lt;li&gt;Partial&lt;/li&gt;
&lt;li&gt;Disabled&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Adaptive icon shape

&lt;ul&gt;
&lt;li&gt;Squircle&lt;/li&gt;
&lt;li&gt;Circle&lt;/li&gt;
&lt;li&gt;Rounded square&lt;/li&gt;
&lt;li&gt;Disabled&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  More screenshots
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LIEsw4Kl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tf48t5udv1qoy02qz5g6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LIEsw4Kl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tf48t5udv1qoy02qz5g6.png" alt="Image description" width="650" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KygxpbAR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mabpc3wb74isn2chzjyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KygxpbAR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mabpc3wb74isn2chzjyn.png" alt="Image description" width="648" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LUxYtNY_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ags46an2xzfv567oevv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LUxYtNY_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ags46an2xzfv567oevv.png" alt="Image description" width="647" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gO4Pu9t5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vitb7sd6b7jlx1pr44ia.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gO4Pu9t5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vitb7sd6b7jlx1pr44ia.png" alt="Image description" width="880" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qBuEty8B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1bkory2g2ne16ky33ude.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qBuEty8B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1bkory2g2ne16ky33ude.png" alt="Image description" width="880" height="686"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;GPL-3.0&lt;/p&gt;

</description>
      <category>android</category>
      <category>dart</category>
      <category>opensource</category>
      <category>cpp</category>
    </item>
    <item>
      <title>Terminal emulator application for Android</title>
      <dc:creator>VORG</dc:creator>
      <pubDate>Wed, 09 Feb 2022 03:41:07 +0000</pubDate>
      <link>https://dev.to/vorg/terminal-emulator-application-for-android-539h</link>
      <guid>https://dev.to/vorg/terminal-emulator-application-for-android-539h</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://github.com/termux/termux-app"&gt;termux-app&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Star 10.8k Watch 742 Fork 1.8k&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Termux is an Android terminal application and Linux environment.&lt;/p&gt;

&lt;p&gt;Note that this repository is for the app itself (the user interface and the terminal emulation).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tZVt62X---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yha8f3verj8bovtaivg2.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tZVt62X---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yha8f3verj8bovtaivg2.jpeg" alt="Image description" width="880" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NOTICE: Termux is broken on Android 12. Android OS will kill any (phantom) processes greater than 32 (limit is for all apps combined) and also kill any processes using excessive CPU. You may get [Process completed (signal 9) - press Enter] message in the terminal without actually exiting the shell process yourself. Check the related issue #2366, issue tracker, gist with details and this TLDR comment on how to disable trimming of phantom processes. A proper docs page will be added later. An option to disable the killing should be available in Android 12L or 13, so upgrade at your own risk if you are on Android 11, specially if you are not rooted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Enjoy the bash and zsh shells.&lt;/li&gt;
&lt;li&gt;Edit files with nano and vim.&lt;/li&gt;
&lt;li&gt;Access servers over ssh.&lt;/li&gt;
&lt;li&gt;Compile code with gcc and clang.&lt;/li&gt;
&lt;li&gt;Use the python console as a pocket calculator.&lt;/li&gt;
&lt;li&gt;Check out projects with git and subversion.&lt;/li&gt;
&lt;li&gt;Run text-based games with frotz.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;The termux/termux-app repository is released under GPLv3 only license.&lt;/p&gt;

&lt;h4&gt;
  
  
  Exceptions
&lt;/h4&gt;

&lt;p&gt;Terminal Emulator for Android code is used which is released under Apache 2.0 license. Check terminal-view and terminal-emulator libraries.&lt;br&gt;
Check termux-shared/LICENSE.md for termux-shared library related exceptions.&lt;/p&gt;

</description>
      <category>android</category>
      <category>opensource</category>
      <category>java</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
