<?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: потик</title>
    <description>The latest articles on DEV Community by потик (@potykion).</description>
    <link>https://dev.to/potykion</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%2F1141498%2Fdae8fe7e-bdd3-4e33-a2ee-b1bd69c544ac.png</url>
      <title>DEV Community: потик</title>
      <link>https://dev.to/potykion</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/potykion"/>
    <language>en</language>
    <item>
      <title>Weekly Dev Findings 11</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Sun, 29 Oct 2023 07:31:21 +0000</pubDate>
      <link>https://dev.to/potykion/weekly-dev-findings-11-51e0</link>
      <guid>https://dev.to/potykion/weekly-dev-findings-11-51e0</guid>
      <description>&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://astral.sh/blog/the-ruff-formatter"&gt;ruff-formatter&lt;/a&gt; - ruff linter now formats code just like black formatter&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fabiocaccamo/python-benedict"&gt;benedict&lt;/a&gt; - Python dict with super powers&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/AliRn76/Panther"&gt;Panther&lt;/a&gt; - yet another async web framework with optional &lt;a href="https://pypi.org/project/pantherdb/"&gt;ODM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.spring.io/spring-python/1.2.x/sphinx/html/overview.html"&gt;Spring Python&lt;/a&gt; - Java Spring framework features
like IOC in Python&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pola.rs/"&gt;Polars&lt;/a&gt; - pandas alternative with better API and duckdb compat&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wagtail/queryish"&gt;queryish&lt;/a&gt; - Django ORM for JSON endpoints&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://realpython.com/ptpython-shell/"&gt;ptpython-shell&lt;/a&gt; - article about better Python REPL&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hadialqattan/pycln"&gt;pycln&lt;/a&gt; - tool for automatically removing unused imports&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  JS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://mswjs.io/"&gt;https://mswjs.io/&lt;/a&gt; - JS request mocking lib&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  AI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://star-history.com/blog/coding-ai"&gt;https://star-history.com/blog/coding-ai&lt;/a&gt; - review of open source ai code completion tools&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://about.sourcegraph.com/cody"&gt;cody&lt;/a&gt; - reads project source, but understands context on high level, no deep
context&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/smallcloudai/refact"&gt;refact.ai&lt;/a&gt; - yet another ai codding assistant&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Other
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/AndrewWalsh/openapi-devtools"&gt;openapi-devtools&lt;/a&gt; - chrome extension that turns any website underhood requests into swagger&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ByteByteGoHq/system-design-101"&gt;system-design-101&lt;/a&gt; - system design interview prep&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/penpot/penpot"&gt;penpot&lt;/a&gt; - open source figma alternative&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@addyosmani/photoshop-is-now-on-the-web-38d70954365a?s=09"&gt;https://medium.com/@addyosmani/photoshop-is-now-on-the-web-38d70954365a?s=09&lt;/a&gt; - article about Photoshop in browser&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>news</category>
      <category>python</category>
    </item>
    <item>
      <title>Weekly Dev Findings 10</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Sat, 21 Oct 2023 07:32:14 +0000</pubDate>
      <link>https://dev.to/potykion/weekly-dev-findings-10-367a</link>
      <guid>https://dev.to/potykion/weekly-dev-findings-10-367a</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pG2BPomv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0cezlpey2tqtyto7dm2d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pG2BPomv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0cezlpey2tqtyto7dm2d.png" alt="Image description" width="638" height="633"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://pint.readthedocs.io/en/stable/"&gt;pint&lt;/a&gt; - unit conversion lib&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pypi.org/project/rustimport/"&gt;rustimport&lt;/a&gt; - import Rust code from Python&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fastapi.tiangolo.com/reference/fastapi/"&gt;FastAPI 0.104.0&lt;/a&gt; - code reference docs using new &lt;code&gt;Annotated[..., Doc]&lt;/code&gt; syntax&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frontend
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://tanstack.com/query/latest"&gt;TanStack Query&lt;/a&gt; - powerful framework agnostic data fetching lib, recently got
updated to v5&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tanstack.com/form/latest/docs/guides/validation#adapter-based-validation"&gt;TanStack Form&lt;/a&gt; - part of TanStack,
framework agnostic form toolkit with zod validation&lt;/li&gt;
&lt;li&gt;&lt;a href="https://remix.run/docs/en/dev/future/vite"&gt;Remix Vite support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://m3.material.io/develop/web"&gt;Material Design 3 Web 1&lt;/a&gt; - framework agnostic Material Design 3 toolkit&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rspress.dev/"&gt;rspress&lt;/a&gt; - static site generator on top of Rspack - Vite alternative&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Nuxt Nation Conf announces
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nuxt.com/"&gt;nuxt.com&lt;/a&gt; - new site design&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://devtools.nuxt.com/"&gt;Nuxt DevTools&lt;/a&gt; - explore pages, components, imports and more&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nuxt.com/blog/v3-8"&gt;Nuxt 3.8&lt;/a&gt; - &lt;code&gt;@nuxt/image&lt;/code&gt; integration, App Manifest for better redirects, &lt;code&gt;NuxtLink&lt;/code&gt; customization&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://x.com/obsdmd/status/1712884834597851397?s=20"&gt;Obsidian 1.4.16&lt;/a&gt; - Properties (ui for Markdown front matter)
support on mobile&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pkgxdev/pkgx"&gt;pkgx&lt;/a&gt; - run anything tool, like you can run Python / Node / anything without
installing it&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.firstissue.dev/"&gt;firstissue.dev&lt;/a&gt; - service for discovering repos with doable issues, good for newbie open
source contributors&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hashnode.com/headless"&gt;Hashnode Headless&lt;/a&gt; - blog platform&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.builder.io/blog/figma-to-code-visual-copilot"&gt;Visual Copilot&lt;/a&gt; - design to code using AI&lt;/li&gt;
&lt;li&gt;Impressive TUI for managing git repos using Textual&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1713928117943665076-973" src="https://platform.twitter.com/embed/Tweet.html?id=1713928117943665076"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1713928117943665076-973');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1713928117943665076&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[announce] Docker Build - sped up Docker builds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1714075358490743153-309" src="https://platform.twitter.com/embed/Tweet.html?id=1714075358490743153"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1714075358490743153-309');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1714075358490743153&amp;amp;theme=dark"
  }



&lt;/p&gt;

</description>
      <category>news</category>
      <category>javascript</category>
      <category>python</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Weekly Dev Findings 9</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Sat, 14 Oct 2023 07:30:06 +0000</pubDate>
      <link>https://dev.to/potykion/weekly-dev-findings-9-4p3f</link>
      <guid>https://dev.to/potykion/weekly-dev-findings-9-4p3f</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://www.youtube.com/live/barsu1NWE4s?si=_jf7mO5vpXJi64gx"&gt;Adobe Max Conf 2023&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fast Fill / Scene Change&lt;/strong&gt; - Generative Fill for videos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1712267244091162742-67" src="https://platform.twitter.com/embed/Tweet.html?id=1712267244091162742"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1712267244091162742-67');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1712267244091162742&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Draw and Delight&lt;/strong&gt; - AI autofill from sketchy art&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Neo Speak&lt;/strong&gt; - 3D editor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primrose&lt;/strong&gt; - dress filled with displays which image can be changed in a seconds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glyph Ease&lt;/strong&gt; - generate design stuff (like custom fonts)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Poseable&lt;/strong&gt; - animation editor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Res Up&lt;/strong&gt; - video upscaling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dub Dub Dub&lt;/strong&gt; - audio translator&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;See Through&lt;/strong&gt; - reflection removal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stardust&lt;/strong&gt; - move objects on image&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://sh.readthedocs.io/en/latest/"&gt;&lt;strong&gt;sh&lt;/strong&gt;&lt;/a&gt; - subprocess replacement&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mypy-lang.blogspot.com/2023/10/mypy-16-released.html"&gt;mypy 1.6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[announce] Python 3.12 just released, but new features from Python 3.13 already announced: &lt;strong&gt;better error locating&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1712821011148669325-41" src="https://platform.twitter.com/embed/Tweet.html?id=1712821011148669325"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1712821011148669325-41');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1712821011148669325&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://httpie.io/"&gt;&lt;strong&gt;httpie&lt;/strong&gt;&lt;/a&gt; - proj started with cli app, today has grown to Web and Desktop Apps with AI features&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.textualize.io/"&gt;textualize&lt;/a&gt; - same as httpie, this lib grown from cli gui (cui / text ui) to web ui framework&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  JavaScript
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Vue
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[announce] &lt;a href="https://icarusgk.hashnode.dev/vue-3-vapor-mode"&gt;Vue3 Vapor mode&lt;/a&gt; - new performant rendering mode&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://notivue.pages.dev/?ref=madewithvuejs.com"&gt;notivue&lt;/a&gt; - Vue toast notifications&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vuedesigner.com/"&gt;VueDesigner&lt;/a&gt; - Vue visual IDE&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  AI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://coderabbit.ai/"&gt;CodeRabbit&lt;/a&gt; - AI code reviews&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mit-han-lab/streaming-llm"&gt;streaming-llm&lt;/a&gt; - fast ai answers (like answers to chat prompts) generation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Other
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.usebruno.com/"&gt;&lt;strong&gt;bruno&lt;/strong&gt;&lt;/a&gt; - Postman alternative, main feature is that http requests are plain text files, but in special format (not plain HTTP requests)&lt;/li&gt;
&lt;li&gt;[announce] &lt;a href="https://braidbrowser.com/"&gt;braidbrowser&lt;/a&gt; - browser with multiplayer features [but Edge already has it]&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/IwuBZpLUq8Q?si=vBdCoQne9aB67_vw"&gt;Libraries: A First Step Toward Standard C++ Dependency Management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>python</category>
      <category>news</category>
    </item>
    <item>
      <title>Weekly Dev Findings 8</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Sat, 07 Oct 2023 09:53:43 +0000</pubDate>
      <link>https://dev.to/potykion/weekly-dev-findings-8-1hig</link>
      <guid>https://dev.to/potykion/weekly-dev-findings-8-1hig</guid>
      <description>&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://docs.python.org/3.12/whatsnew/3.12.html#pep-695-type-parameter-syntax"&gt;Python 3.12 release&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Better error description
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;version_info&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;stdin&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;NameError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="s"&gt;'sys'&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;defined&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="n"&gt;Did&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;forget&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'sys'&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;A lot of typing improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Simple Generics
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Iterable&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;T&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;append&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;element&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="bp"&gt;None&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;



&lt;h4&gt;
  
  
  Type declaration
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nb"&gt;type&lt;/span&gt; &lt;span class="n"&gt;Point&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;tuple&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  kwargs typing
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;typing&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;TypedDict&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Unpack&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Movie&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TypedDict&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;
  &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Unpack&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Movie&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;



&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-0"&gt;Flask 3.0 release&lt;/a&gt; - with async compatibily&lt;/li&gt;
&lt;li&gt;&lt;a href="https://testdriven.io/blog/django-htmx-tailwind/"&gt;Django + htmx + TailwindCSS for Rapid Prototyping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/oliverandrich/django-tailwind-cli"&gt;django-tailwind-cli&lt;/a&gt; - yet another tailwind CSS integration in Django&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.djangoproject.com/en/4.2/ref/contrib/humanize/"&gt;humanize&lt;/a&gt; - formatting lib integrated in Django&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adamchainz/django-upgrade/tree/main"&gt;django-upgrade&lt;/a&gt; - update Django projects to upper versions of Django&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gruns/icecream"&gt;icecream&lt;/a&gt; - better &lt;code&gt;print&lt;/code&gt; alternative&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  JavaScript
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-3-beta/"&gt;TypeScript 5.3 Beta&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Switch narrowing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;switch&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="k"&gt;case&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="c1"&gt;// 'x' is a 'string' here&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;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
            &lt;span class="c1"&gt;// falls through...&lt;/span&gt;

        &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isArray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="c1"&gt;// 'x' is a 'string | any[]' here.&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;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="c1"&gt;// falls through...&lt;/span&gt;

        &lt;span class="nl"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
          &lt;span class="c1"&gt;// 'x' is 'unknown' here.&lt;/span&gt;
          &lt;span class="c1"&gt;// ...&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;



&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/aidenybai/pattycake"&gt;pattycake&lt;/a&gt; - fast pattern matching in TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nuxt.studio/"&gt;nuxt.studio&lt;/a&gt; - Nuxt CMS&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://triplex.dev/"&gt;triplex&lt;/a&gt; - React 3D editor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1708859381369221539-231" src="https://platform.twitter.com/embed/Tweet.html?id=1708859381369221539"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1708859381369221539-231');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1708859381369221539&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NativeScript (Vue Mobile framework) support in Apple Vision Pro&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1709684288600572337-431" src="https://platform.twitter.com/embed/Tweet.html?id=1709684288600572337"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1709684288600572337-431');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1709684288600572337&amp;amp;theme=dark"
  }



&lt;/p&gt;




&lt;h2&gt;
  
  
  AI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://emojis.alexandru.so/"&gt;AI Emojis&lt;/a&gt; - generate custom emojis with AI&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/KillianLucas/open-interpreter"&gt;open-interpreter&lt;/a&gt; - terminal app that turns prompts into running scripts&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jackmpcollins/magentic"&gt;magentic&lt;/a&gt; - decorate python function with prompt, lib will implement it using LLM
 &lt;/li&gt;
&lt;li&gt;Make films from scratch using AI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1707077921981005835-448" src="https://platform.twitter.com/embed/Tweet.html?id=1707077921981005835"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1707077921981005835-448');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1707077921981005835&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make web apps with simple logic from diagram photo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1707101465922453701-16" src="https://platform.twitter.com/embed/Tweet.html?id=1707101465922453701"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1707101465922453701-16');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1707101465922453701&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://ollama.ai/"&gt;ollama&lt;/a&gt; - tool for running LLMs like Llama, has task oriented models like &lt;a href="https://ollama.ai/library/sqlcoder"&gt;sqlcoder&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blogs.windows.com/windowsexperience/2023/09/26/the-most-personal-windows-11-experience-begins-rolling-out-today/"&gt;new huge Windows 11 update with a lot of AI features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://roadmap.sh"&gt;roadmap.sh&lt;/a&gt; released Roadmap Builder&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1708293162693767426-96" src="https://platform.twitter.com/embed/Tweet.html?id=1708293162693767426"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1708293162693767426-96');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1708293162693767426&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://codesnap.dev/"&gt;codesnap&lt;/a&gt; - beutiful code snippets editor&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Entertainment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=MVYrJJNdrEg"&gt;Mark Zuckerberg: First Interview in the Metaverse | Lex Fridman Podcast&lt;/a&gt; - amazing 3d visualization like in Matrix 😎&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--79rbf0jk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n6dzxr2uzzgjdpnu7y9a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--79rbf0jk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n6dzxr2uzzgjdpnu7y9a.png" alt="amazing 3d visualization like in Matrix" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://portfolio.dctech.dev/"&gt;Portfolio that looks like Desktop screen made with Flutter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>news</category>
      <category>javascript</category>
      <category>python</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Weekly Dev Findings 7</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Sun, 01 Oct 2023 07:42:46 +0000</pubDate>
      <link>https://dev.to/potykion/dev-findings-7-2gom</link>
      <guid>https://dev.to/potykion/dev-findings-7-2gom</guid>
      <description>&lt;p&gt;It appears that there are not many Russians here, so I decided to write this issue in English. I wonder if Russian language will be a problem, or if it does not matter, and that is my doom to do stuff on the Internet without any feedback.&lt;/p&gt;




&lt;h2&gt;
  
  
  Yandex Scale 2023
&lt;/h2&gt;

&lt;p&gt;Yandex Scale - annual conference about Yandex Cloud. Here are the news:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Redesigned Documentation UI &amp;amp; GPT-search&lt;/li&gt;
&lt;li&gt;Open sourced technologies:

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://datalens.tech/"&gt;Datalens&lt;/a&gt; - analytic platform&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://diplodoc.com/"&gt;Diplodoc&lt;/a&gt; - documentation tool&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gravity-ui.com/"&gt;GravityUI&lt;/a&gt; - Yandex Cloud UI-kit&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;YDB support for Postgres SQL &amp;amp; Kafka

&lt;ul&gt;
&lt;li&gt;YDB is a serverless DB with auto-scaling capabilities which means that Yandex Cloud now has cheap auto-scaling SQL-compatiple cloud DB!&lt;/li&gt;
&lt;/ul&gt;


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

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

&lt;ul&gt;
&lt;li&gt;Yandex Cloud Postbox - new email service like Sendgrid&lt;/li&gt;
&lt;li&gt;Serverless improvements

&lt;ul&gt;
&lt;li&gt;Async Cloud Funcion execution&lt;/li&gt;
&lt;li&gt;Multi core execution&lt;/li&gt;
&lt;li&gt;API Gateway improvements: rate limiting, canary deployment&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Security improvements&lt;/li&gt;
&lt;li&gt;Yandex Wiki updated editor&lt;/li&gt;
&lt;li&gt;Yandex GPT closed preview&lt;/li&gt;
&lt;li&gt;Yandex SpeechSense - new audio analyzing service&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.yandex.ru/blog/posts/2023/09/scale-2023"&gt;All anounces in single article&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://deshaw.github.io/pyflyby/"&gt;https://deshaw.github.io/pyflyby/&lt;/a&gt; - tool to add auto imports&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/litestar-org/litestar"&gt;https://github.com/litestar-org/litestar&lt;/a&gt; - Fast API competitor&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pydantic/pydantic/releases/tag/v2.4.0"&gt;https://github.com/pydantic/pydantic/releases/tag/v2.4.0&lt;/a&gt; - new Pydantic version with updated docs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zqqqqz2000/shshsh"&gt;https://github.com/zqqqqz2000/shshsh&lt;/a&gt; - yet another way to run shell commands in Python&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ponder.io/why-are-there-so-many-python-dataframes/"&gt;https://ponder.io/why-are-there-so-many-python-dataframes/&lt;/a&gt; - dataframes overview&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frontend
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://wouterlms.github.io/forms/"&gt;https://wouterlms.github.io/forms/&lt;/a&gt; - yet another form lib for Vue based on Zod&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ui-libs.vercel.app/-"&gt;https://ui-libs.vercel.app/-&lt;/a&gt; ui-kit comparison tool for Vue (finally)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tunnel.dev/"&gt;https://tunnel.dev/&lt;/a&gt; - ngrok alternative (share localhost server to public)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  AI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=HuggingFace.huggingface-vscode"&gt;llm-vscode&lt;/a&gt; - new Hugging Face VSCode coding assistant&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://techcommunity.microsoft.com/t5/excel-blog/introducing-copilot-support-for-python-in-excel-advanced-data/ba-p/3928120"&gt;Copilot support for Python in Excel&lt;/a&gt; - which means you can analyze excel data by typing prompts&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vanna-ai/vanna"&gt;https://github.com/vanna-ai/vanna&lt;/a&gt; - AI-SQL client&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.gettyimages.nl/ai/generatie/over"&gt;https://www.gettyimages.nl/ai/generatie/over&lt;/a&gt; - image generator by Getty Images&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://blog.jetbrains.com/webstorm/2023/09/webstorm-2023-3-eap1/"&gt;https://blog.jetbrains.com/webstorm/2023/09/webstorm-2023-3-eap1/&lt;/a&gt; - new WebStorm features: Cypress support, jsonc support&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://railway.app/"&gt;https://railway.app/&lt;/a&gt; - Firebase alternative&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.shuttle.rs/"&gt;https://www.shuttle.rs/&lt;/a&gt; - Heroku Rust alternative&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hurl.dev/"&gt;https://hurl.dev/&lt;/a&gt; - raw HTTP request client (free JetBrains HTTP client)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>news</category>
      <category>javascript</category>
      <category>python</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Находки по разработке 6</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Sat, 23 Sep 2023 09:52:21 +0000</pubDate>
      <link>https://dev.to/potykion/nakhodki-po-razrabotki-6-4ijm</link>
      <guid>https://dev.to/potykion/nakhodki-po-razrabotki-6-4ijm</guid>
      <description>&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://techcommunity.microsoft.com/t5/excel-blog/introducing-the-python-editor-from-excel-labs/ba-p/3928986"&gt;https://techcommunity.microsoft.com/t5/excel-blog/introducing-the-python-editor-from-excel-labs/ba-p/3928986&lt;/a&gt; - Python прикрутили в Excel да еще и jupyter-ячейки добавили&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.djangoproject.com/en/dev/releases/5.0/"&gt;https://docs.djangoproject.com/en/dev/releases/5.0/&lt;/a&gt; - Django 5 готовится к выходу, фичи уже финализировали, из интересного:

&lt;ul&gt;
&lt;li&gt;GeneratedField - computed-поля на уровне бд&lt;/li&gt;
&lt;li&gt;Улучшения по choices: можно и callable, и словари сувать&lt;/li&gt;
&lt;li&gt;Упрощение рендеринга формочек&lt;/li&gt;
&lt;li&gt;Facet filters in the admin - фильтры в админке с подсчетом&lt;/li&gt;
&lt;li&gt;Значения по умолчанию на уровне бд&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adamchainz/time-machine"&gt;&lt;/a&gt;&lt;a href="https://github.com/adamchainz/time-machine"&gt;https://github.com/adamchainz/time-machine&lt;/a&gt; - шустрые моки даты&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mimseyedi/pysentation"&gt;&lt;/a&gt;&lt;a href="https://github.com/mimseyedi/pysentation"&gt;https://github.com/mimseyedi/pysentation&lt;/a&gt; - презентации в терминале&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sanic.dev/en/guide/release-notes/v23.6.html"&gt;&lt;/a&gt;&lt;a href="https://sanic.dev/en/guide/release-notes/v23.6.html"&gt;https://sanic.dev/en/guide/release-notes/v23.6.html&lt;/a&gt; - непонятно зачем но Sanic пытается шевелиться, хотя давно проиграл FastAPI&lt;/li&gt;
&lt;li&gt;Изи удаление бекграунда у картинки&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1703869501681377626-309" src="https://platform.twitter.com/embed/Tweet.html?id=1703869501681377626"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1703869501681377626-309');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1703869501681377626&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  Frontend &amp;amp; JavaScript
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://webkit.org/blog/14445/webkit-features-in-safari-17-0/"&gt;https://webkit.org/blog/14445/webkit-features-in-safari-17-0/&lt;/a&gt; - новый релиз WebKit: 

&lt;ul&gt;
&lt;li&gt;search-тег - тупа семантика для search-input&lt;/li&gt;
&lt;li&gt;popover-аттрибут - для всяких модалок&lt;/li&gt;
&lt;li&gt;hr в select&lt;/li&gt;
&lt;li&gt;css-фичи: кастомные пункты в li&lt;/li&gt;
&lt;li&gt;js-фичи: новый Storage API, Set-операции, улучшенный парс url-ов&lt;/li&gt;
&lt;li&gt;Улучшения по картинкам&lt;/li&gt;
&lt;li&gt;Ждем это все в хроме&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h3&gt;
  
  
  Bun
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;bun захватывает мир: интеграция с nuxt-js&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1704230667897213010-19" src="https://platform.twitter.com/embed/Tweet.html?id=1704230667897213010"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1704230667897213010-19');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1704230667897213010&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://elysiajs.com/"&gt;https://elysiajs.com/&lt;/a&gt; - фреймворк для bun&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Vue
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://vue-email.vercel.app/"&gt;https://vue-email.vercel.app/&lt;/a&gt; - письма на Vue&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://content.nuxt.com/"&gt;https://content.nuxt.com/&lt;/a&gt; - nuxt-content на nuxt-ui переехал&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/steven-tey/novel"&gt;https://github.com/steven-tey/novel&lt;/a&gt; - react-компонент для написания текстов в стиле Notion, есть порт на вью &lt;a href="https://github.com/naveennaidu/novel-vue"&gt;https://github.com/naveennaidu/novel-vue&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lunarui.dev/"&gt;https://lunarui.dev/&lt;/a&gt; - ui фреймворк для Vue, но вместо установки как пакета - он предлагает интересный copy-paste подход&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://svelte.dev/blog/runes"&gt;https://svelte.dev/blog/runes&lt;/a&gt; - Svelte теперь похож на Vue&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1704512491865207205-499" src="https://platform.twitter.com/embed/Tweet.html?id=1704512491865207205"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1704512491865207205-499');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1704512491865207205&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://rdbjs.org/"&gt;https://rdbjs.org/&lt;/a&gt; - ещё одна ORMка для JS&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://deno.com/blog/v1.37"&gt;https://deno.com/blog/v1.37&lt;/a&gt; - с помощью deno можно теперь юзать js в jupyter-ноутбуках&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  DevOps &amp;amp; Other
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://kamal-deploy.org/"&gt;https://kamal-deploy.org/&lt;/a&gt; - новая тулза для деплоя приложух от знаменитого рубиста&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://anthonynsimon.com/blog/kamal-deploy/"&gt;https://anthonynsimon.com/blog/kamal-deploy/&lt;/a&gt; - и уже гайд как Django деплоить&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://go.dev/blog/loopvar-preview"&gt;https://go.dev/blog/loopvar-preview&lt;/a&gt; - в гошке пофиксят лупы&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://recipeui.com/"&gt;https://recipeui.com/&lt;/a&gt; - postman-альтернатива с intellisense&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tconbeer/harlequin"&gt;https://github.com/tconbeer/harlequin&lt;/a&gt; - DuckDb ide в терминале&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jdk.java.net/21/release-notes"&gt;https://jdk.java.net/21/release-notes&lt;/a&gt; - Java с каждым релизом все красивее и красивее: 

&lt;ul&gt;
&lt;li&gt;sequenced collections (нормальные коллекции)&lt;/li&gt;
&lt;li&gt;pattern matching&lt;/li&gt;
&lt;li&gt;record (типа datalcassses)&lt;/li&gt;
&lt;li&gt;virtual threads (типа корутины)&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h2&gt;
  
  
  AI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://bard.google.com/updates"&gt;https://bard.google.com/updates&lt;/a&gt; - новый апдейт барда, который может твои доки обыскивать &lt;/li&gt;
&lt;li&gt;картиночки прикольные вирусятся&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1704177795776106802-833" src="https://platform.twitter.com/embed/Tweet.html?id=1704177795776106802"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1704177795776106802-833');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1704177795776106802&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://openai.com/dall-e-3"&gt;https://openai.com/dall-e-3&lt;/a&gt; - dall-e 3 - новая версия генератора картинок&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://designer.microsoft.com/"&gt;https://designer.microsoft.com/&lt;/a&gt; - генератор дезигна по промпту &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>news</category>
      <category>python</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Находки по разработке 5</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Mon, 18 Sep 2023 10:18:11 +0000</pubDate>
      <link>https://dev.to/potykion/nakhodki-po-razrabotkie-5-2683</link>
      <guid>https://dev.to/potykion/nakhodki-po-razrabotkie-5-2683</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://ffmpeg.guide/"&gt;https://ffmpeg.guide/&lt;/a&gt; - GUI для ffmpeg&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://velocity.builder.io/"&gt;https://velocity.builder.io/&lt;/a&gt; - figma to code тул делают&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://typesense.org/"&gt;https://typesense.org/&lt;/a&gt; - опенсурс альтернатива Elasticsearch и Algolia&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jetbrains.com/rust/2023/09/13/introducing-rustrover-a-standalone-rust-ide-by-jetbrains/"&gt;JetBrains выпустила IDE для Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://svelte.dev/blog/runes"&gt;https://svelte.dev/blog/runes&lt;/a&gt; - Svelte что-то готовит 👀&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nuejs.org/"&gt;https://nuejs.org/&lt;/a&gt; - какой-то новый хайповый фреймворк, который уже все хейтят&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://zouyaoji.top/vue-cesium/"&gt;https://zouyaoji.top/vue-cesium/&lt;/a&gt; - Vue-компонент для визуализации земли 🌍&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://v0.dev/"&gt;https://v0.dev/&lt;/a&gt; - AI-генерация React-компонентов по текстовому промпту&lt;/li&gt;
&lt;li&gt;IDE Zed показывает свои фичи: &lt;a href="https://twitter.com/zeddotdev/status/1702679063977242997"&gt;AI-рефакторинг&lt;/a&gt;, &lt;a href="https://twitter.com/zeddotdev/status/1702033091684937890"&gt;поддержка Tailwind&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/squidfunk/status/1701257939208540436"&gt;Новая фича в MkDocs&lt;/a&gt; - группы: позволяют включать функционал в зависимости от переменных среды&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hono.dev/"&gt;https://hono.dev/&lt;/a&gt; - быстрый рантайм-агностик js-бекенд-фреймворк&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://flot.ai/"&gt;https://flot.ai/&lt;/a&gt; - инжектит чат-жпт во всякие аппы типа гугл-докс&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://histoire.dev/"&gt;https://histoire.dev/&lt;/a&gt; - Vue-альтернатива Storybook&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/johnrushx/status/1702255218321219961"&gt;Навал всяких сервисов&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Приколюха напоследок:
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6oLfRvme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6f5v5rfdp734urix751m.png" alt="Image description" width="640" height="520"&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>news</category>
      <category>python</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Находки по разработке 4</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Sun, 10 Sep 2023 18:29:46 +0000</pubDate>
      <link>https://dev.to/potykion/nakhodki-po-razrabotkie-4-3j2f</link>
      <guid>https://dev.to/potykion/nakhodki-po-razrabotkie-4-3j2f</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Вышел Bun 1.0
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://www.youtube.com/watch?si=Fup96Wr6AjyFP7vv&amp;amp;v=dWqNgzZwVJQ&amp;amp;feature=youtu.be" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--KsINjWJf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.ytimg.com/vi/dWqNgzZwVJQ/maxresdefault.jpg" height="450" class="m-0" width="800"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://www.youtube.com/watch?si=Fup96Wr6AjyFP7vv&amp;amp;v=dWqNgzZwVJQ&amp;amp;feature=youtu.be" rel="noopener noreferrer" class="c-link"&gt;
          Bun is disrupting JavaScript land - YouTube
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Let's take a first look at Bun 1.0 - the worlds fastest JavaScript runtime. Find out how Bun compares to Node.js and Deno. #webdevelopment #javascript #theco...
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wd2tTYlJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.youtube.com/s/desktop/fc8159e8/img/favicon.ico" width="16" height="16"&gt;
        youtube.com
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/NotionHQ/status/1699828805408550971"&gt;Улучшение формул в Notion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://poe.com/"&gt;https://poe.com/&lt;/a&gt; - аггрегатор ai-чат моделек&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://adamj.eu/tech/2023/09/07/introducing-flake8-logging/"&gt;https://adamj.eu/tech/2023/09/07/introducing-flake8-logging/&lt;/a&gt; - flake8-плагин для линтинга logging-модуля&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ui.nuxt.com/"&gt;https://ui.nuxt.com/&lt;/a&gt; - релиз nuxt-ui - юай-кита на базе tailwind и headless-ui&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/danielcroe/status/1695231761351930182"&gt;ну и новый релиз nuxt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/thomasglopes/status/1699731835637428242"&gt;tree-view завезли в melt-ui&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/youyuxi/status/1695740094127456292"&gt;батя раскатал про vue ui-киты&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/yudai/gotty"&gt;GoTTY - Share your terminal as a web application&lt;/a&gt; - может быть полезно для сисадминства &lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/_abstractart/status/1695834398535336369"&gt;тредик как вкатиться в go&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/inertiajs/inertia-django"&gt;inertia-django&lt;/a&gt;, &lt;a href="https://github.com/MrBin99/django-vite"&gt;django-vite&lt;/a&gt; - понаделали клея для django и фронтенд-фреймворков

&lt;ul&gt;
&lt;li&gt;то есть вместо написания апишки, сразу фетчишь данные на django и юзаешь их во vue &lt;/li&gt;
&lt;li&gt;хотя для мобилки-то все равно надо апишку писать 💀&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/kelseyhightower/status/1695660605930344711"&gt;батя рассказал про то как терь можно structured-логи делать в гошке&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/clcoding/status/1693809211866759530"&gt;запись голоса на python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Фронтенд-фреймворки? А может лучше суицид?&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1694713936179081573-698" src="https://platform.twitter.com/embed/Tweet.html?id=1694713936179081573"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1694713936179081573-698');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1694713936179081573&amp;amp;theme=dark"
  }



&lt;/p&gt;

</description>
      <category>news</category>
      <category>python</category>
      <category>javascript</category>
      <category>go</category>
    </item>
    <item>
      <title>Находки по разработке 3</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Sat, 26 Aug 2023 13:19:31 +0000</pubDate>
      <link>https://dev.to/potykion/nakhodki-po-razrabotkie-3-20ac</link>
      <guid>https://dev.to/potykion/nakhodki-po-razrabotkie-3-20ac</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Главное: сделал &lt;a href="https://github.com/potykion/potyk-awesome-python"&gt;подборку любых Python пакет &lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://duckdb.org/"&gt;DuckDB&lt;/a&gt; - штука, позволяющая писать SQL запросы для не SQL баз, а простых данных типа csv, json, pandas-dataframe&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dbeaver.io/"&gt;dbeaver&lt;/a&gt; - опенсурсная sql ide - альтернатива Database tools в PyCharm&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Кстати, у меня закончилась учебная лицуха PyCharm, которую я продлевал еще несколько лет после окончания уника, потому что что-то произошло 24 февраля, и JetBrains приостановил учебные лицухи&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://formkit.com/"&gt;formkit&lt;/a&gt; - у Vue-шной либы для формочек скоро релиз версии 1.0 - в честь этого они вечеринку затеяли и крутой лендос - что нового будет в версии 1.0 - узнаем 1 сентября&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/soumithchintala/status/1685524194144989184"&gt;GIL уберут из Python&lt;/a&gt; - просто хайповая новость&lt;/li&gt;
&lt;li&gt;Прикол: &lt;a href="https://twitter.com/pydantic/status/1693599205682528694"&gt;pydantic ищет офис в Турции&lt;/a&gt; - так охуеваю с того что опен-сус библиотека может вылиться в стартап&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.melt-ui.com/"&gt;melt-ui&lt;/a&gt; - в копилку ui-китов для svelte прибыло&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/prisma/status/1692593486179017153"&gt;и снова sql-дроч на typescript&lt;/a&gt; - почему у меня это вылазиет (и почему я это лайкаю) я хз&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/chris__sev/status/1692565265169695224"&gt;sticky-scroll в vscode&lt;/a&gt; - выглядит прикольно, можно &lt;a href="https://twitter.com/WebStormIDE/status/1692617307053232282"&gt;проголосовать&lt;/a&gt; чтобы в webstorm добавили&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/kom_256/status/1692225622091706389"&gt;.env поддержка в Nodejs&lt;/a&gt; - когда штуки, которые ты используешь в каждом проекте появляются в std - это кайф&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://weekly-vue.news/"&gt;https://weekly-vue.news/&lt;/a&gt; - прикольный сайтец с новостями про Vue&lt;/li&gt;
&lt;li&gt;Что ни день, то &lt;a href="https://vc.ru/dev/808507-meta-predstavila-ii-instrument-dlya-napisaniya-koda-code-llama"&gt;новая ии-моделька для написания кода&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Мотивашка&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1693291550795858248-903" src="https://platform.twitter.com/embed/Tweet.html?id=1693291550795858248"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1693291550795858248-903');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1693291550795858248&amp;amp;theme=dark"
  }



&lt;/p&gt;

</description>
      <category>news</category>
      <category>python</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Находки по разработке 2</title>
      <dc:creator>потик</dc:creator>
      <pubDate>Mon, 21 Aug 2023 07:17:39 +0000</pubDate>
      <link>https://dev.to/potykion/potykweeklytech-2-3hkn</link>
      <guid>https://dev.to/potykion/potykweeklytech-2-3hkn</guid>
      <description>&lt;h2&gt;
  
  
  Прикол недели
&lt;/h2&gt;

&lt;p&gt;Звездочки на Гитхабе можно купить&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1691852299449033133-898" src="https://platform.twitter.com/embed/Tweet.html?id=1691852299449033133"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1691852299449033133-898');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1691852299449033133&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  codelimit - новый Python линтер
&lt;/h2&gt;

&lt;p&gt;Делает одну простую вещь - считает длину строк&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/getcodelimit"&gt;
        getcodelimit
      &lt;/a&gt; / &lt;a href="https://github.com/getcodelimit/codelimit"&gt;
        codelimit
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Your Refactoring Alarm 🔔
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1 id="user-content-code-limit"&gt;&lt;a class="heading-link" href="https://github.com/getcodelimit/codelimit#code-limit"&gt;Code Limit&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Your Refactoring Alarm 🔔&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;&lt;a href="https://github.com/getcodelimit/codelimit/actions/workflows/main.yml"&gt;&lt;img src="https://github.com/getcodelimit/codelimit/actions/workflows/main.yml/badge.svg" alt="main"&gt;&lt;/a&gt;
&lt;a href="https://codecov.io/gh/getcodelimit/codelimit" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/c327203769b531611963ff322c83909811912fd4dbe61e7ad3fb8ab92d8f8b1a/68747470733a2f2f636f6465636f762e696f2f67682f676574636f64656c696d69742f636f64656c696d69742f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d5a514245414a56433259" alt="codecov"&gt;&lt;/a&gt;
&lt;a href="https://mypy-lang.org/" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/250b609d0145dbe18d133fd3a1ec89cf83085ce3a6327023312fee4c09423e94/68747470733a2f2f7777772e6d7970792d6c616e672e6f72672f7374617469632f6d7970795f62616467652e737667" alt="Checked with mypy"&gt;&lt;/a&gt;
&lt;a href="https://github.com/psf/black"&gt;&lt;img src="https://camo.githubusercontent.com/d91ed7ac7abbd5a6102cbe988dd8e9ac21bde0a73d97be7603b891ad08ce3479/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64652532307374796c652d626c61636b2d3030303030302e737667" alt="Code style: black"&gt;&lt;/a&gt;
&lt;a href="https://github.com/astral-sh/ruff"&gt;&lt;img src="https://camo.githubusercontent.com/3ab2287018b49eee45474feef5f497e69759e7d29fabfb8c5a82637b8d6d4aa1/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f636861726c6965726d617273682f727566662f6d61696e2f6173736574732f62616467652f76322e6a736f6e" alt="Linting: Ruff"&gt;&lt;/a&gt;
&lt;a href="https://github.com/getcodelimit/codelimit"&gt;&lt;img src="https://camo.githubusercontent.com/171c69708f72af9defe07089f7ab9dfcebdd53b91297380faeaa94c85667edb7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f64654c696d69742d636865636b65642d677265656e2e737667" alt="Checked with Code Limit"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h1 id="user-content-introduction"&gt;&lt;a class="heading-link" href="https://github.com/getcodelimit/codelimit#introduction"&gt;Introduction&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Code Limit is a tool for developers with one goal: &lt;em&gt;it tells the developer when
it’s time to refactor&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href="https://codelimit-docs.vercel.app" rel="nofollow"&gt;documentation&lt;/a&gt; and start
using Code Limit today to keep your code maintainable.&lt;/p&gt;
&lt;h1 id="user-content-quickstart"&gt;&lt;a class="heading-link" href="https://github.com/getcodelimit/codelimit#quickstart"&gt;Quickstart&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Depending on your development workflow, Code Limit can run in many different
ways (e.g.: pre-commit hook, GitHub Action, standalone, etc.). See the
&lt;a href="https://codelimit-docs.vercel.app/quickstart/" rel="nofollow"&gt;Quickstart documentation&lt;/a&gt; for
examples.&lt;/p&gt;
&lt;h1 id="user-content-standalone-usage"&gt;&lt;a class="heading-link" href="https://github.com/getcodelimit/codelimit#standalone-usage"&gt;Standalone usage&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Code Limit can run as a standalone program to check and inspect a codebase, see
the &lt;a href="https://codelimit-docs.vercel.app/usage/" rel="nofollow"&gt;Standalone Usage documentation&lt;/a&gt;
to get started.&lt;/p&gt;
&lt;h1 id="user-content-configuration"&gt;&lt;a class="heading-link" href="https://github.com/getcodelimit/codelimit#configuration"&gt;Configuration&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Code Limit aims to be zero-configuration. However, sometimes the exception
proves the rule. Check out the &lt;a href="https://codelimit-docs.vercel.app/configuration/" rel="nofollow"&gt;Configuration
documentation&lt;/a&gt; for all
configuration options.&lt;/p&gt;
&lt;h1 id="user-content-development"&gt;&lt;a class="heading-link" href="https://github.com/getcodelimit/codelimit#development"&gt;Development&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;See the &lt;a href="https://codelimit-docs.vercel.app/development" rel="nofollow"&gt;Development
documentation&lt;/a&gt; if you want to
extend or contribute to Code Limit.&lt;/p&gt;
&lt;h1 id="user-content-feedback-suggestions-and-bug-reports"&gt;&lt;a class="heading-link" href="https://github.com/getcodelimit/codelimit#feedback-suggestions-and-bug-reports"&gt;Feedback, suggestions and bug reports&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;If you have suggestions for how Code Limit could be improved, or want to…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/getcodelimit/codelimit"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Пыха выглядит хорошо
&lt;/h2&gt;

&lt;p&gt;Датаклассы, паттерн матчинг - кайф&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1690606737118642176-899" src="https://platform.twitter.com/embed/Tweet.html?id=1690606737118642176"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1690606737118642176-899');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1690606737118642176&amp;amp;theme=dark"
  }



&lt;br&gt;
&lt;iframe class="tweet-embed" id="tweet-1690955334020366336-298" src="https://platform.twitter.com/embed/Tweet.html?id=1690955334020366336"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1690955334020366336-298');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1690955334020366336&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Чел крутой, чисто пхп приколы постит&lt;/p&gt;

&lt;h2&gt;
  
  
  Скоро &lt;a href="https://bun.sh/"&gt;Bun&lt;/a&gt; 1.0 выйдет
&lt;/h2&gt;

&lt;p&gt;Уже сейчас можно гонять тесты быстрее чем в Vitest и Jest&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1692267817339609180-68" src="https://platform.twitter.com/embed/Tweet.html?id=1692267817339609180"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1692267817339609180-68');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1692267817339609180&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  Неплохая статья про бранчевание и пулл реквесты
&lt;/h2&gt;

&lt;p&gt;Пушим все в мастер и лучше кодить парно или в команде (mob programming называется) - жаль что я один 💀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://craftbettersoftware.com/p/the-best-git-branching-strategy"&gt;https://craftbettersoftware.com/p/the-best-git-branching-strategy&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  knip - топ-темка для чистоты js-проекта
&lt;/h2&gt;

&lt;p&gt;Ищет неиспользуемый стафф, типа зависимостей, импортов - на питон бы такое&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/webpro"&gt;
        webpro
      &lt;/a&gt; / &lt;a href="https://github.com/webpro/knip"&gt;
        knip
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      ✂️  Find unused files, dependencies and exports in your JavaScript and TypeScript projects. Knip it before you ship it!
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1 id="user-content-️-knip"&gt;&lt;a class="heading-link" href="https://github.com/webpro/knip#%EF%B8%8F-knip"&gt;✂️ Knip&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Knip finds &lt;strong&gt;unused files, dependencies and exports&lt;/strong&gt; in your JavaScript and TypeScript projects. Less code and
dependencies lead to improved performance, less maintenance and easier refactorings.&lt;/p&gt;
&lt;div class="highlight highlight-source-ts notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;export&lt;/span&gt; &lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;myVar&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-c1"&gt;true&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;This is where ESLint stops: it handles files in isolation, so it does not know whether &lt;code&gt;myVar&lt;/code&gt; is used somewhere else
This is where Knip starts: it lints the project as a whole and finds unused exports, files and dependencies.&lt;/p&gt;
&lt;p&gt;It's only human to forget to remove things that you no longer use. But how do you find out? Where do you start finding
things that can be removed?&lt;/p&gt;
&lt;p&gt;The dots don't connect themselves. This is where Knip comes in:&lt;/p&gt;
&lt;ul class="contains-task-list"&gt;
&lt;li class="task-list-item"&gt;
 Finds &lt;strong&gt;unused files, dependencies and exports&lt;/strong&gt;
&lt;/li&gt;
&lt;li class="task-list-item"&gt;
 Finds used dependencies not listed in &lt;code&gt;package.json&lt;/code&gt;
&lt;/li&gt;
&lt;li class="task-list-item"&gt;
 Built-in support for &lt;a href="https://github.com/webpro/knip#workspaces"&gt;workspaces (monorepos)&lt;/a&gt;
&lt;/li&gt;
&lt;li class="task-list-item"&gt;
 Growing list of &lt;a href="https://github.com/webpro/knip#plugins"&gt;built-in plugins&lt;/a&gt;
&lt;/li&gt;
&lt;li class="task-list-item"&gt;
 Use &lt;a href="https://github.com/webpro/knip#compilers"&gt;compilers&lt;/a&gt; to include other file types (e.g. &lt;code&gt;.mdx&lt;/code&gt;, &lt;code&gt;.vue&lt;/code&gt;, &lt;code&gt;.svelte&lt;/code&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/webpro/knip"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  alpinejs - хорошее дополнение htmx
&lt;/h2&gt;

&lt;p&gt;Это когда надо добавить реактивности, когда у тебя вместо фронтенда серверный html-шаблонизатор (типа той же джанги)&lt;br&gt;
&lt;a href="https://alpinejs.dev/"&gt;https://alpinejs.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1692533505526272026-651" src="https://platform.twitter.com/embed/Tweet.html?id=1692533505526272026"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1692533505526272026-651');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1692533505526272026&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  PyScript - норм альтернатива шаблонизаторству
&lt;/h2&gt;

&lt;p&gt;Можно писать на питоне сразу взаимодействуя с документом&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pyscript.net/"&gt;https://pyscript.net/&lt;/a&gt; &lt;br&gt;
&lt;a href="https://pyscript.com/@07924187-45b9-4482-97a0-94ee74d0ae48/your-info/latest"&gt;https://pyscript.com/@07924187-45b9-4482-97a0-94ee74d0ae48/your-info/latest&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://www.skeleton.dev/"&gt;SkeletonUI&lt;/a&gt; - Svelte-UI кит на базе TailwindCSS
&lt;/h2&gt;

&lt;p&gt;Это то чего не хватает Svelte, а то уже у next есть shadcn, у nuxt - nuxtui&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1691495875757875201-973" src="https://platform.twitter.com/embed/Tweet.html?id=1691495875757875201"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1691495875757875201-973');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1691495875757875201&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Хотя есть &lt;a href="https://daisyui.com/"&gt;daisyui&lt;/a&gt; - который вообще фреймворк агностик 🤔&lt;/p&gt;

&lt;p&gt;Хотя уже и &lt;a href="https://www.shadcn-svelte.com/"&gt;shadcn на svelte портанули&lt;/a&gt; - в какое замечательное время живем&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1692391552209830086-23" src="https://platform.twitter.com/embed/Tweet.html?id=1692391552209830086"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1692391552209830086-23');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1692391552209830086&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  Новый пост от батьки Фаулера
&lt;/h2&gt;

&lt;p&gt;Про то как совмещать TDD и AI-coding&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1692250553647018184-879" src="https://platform.twitter.com/embed/Tweet.html?id=1692250553647018184"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1692250553647018184-879');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1692250553647018184&amp;amp;theme=dark"
  }



&lt;/p&gt;

</description>
      <category>news</category>
      <category>javascript</category>
      <category>python</category>
      <category>php</category>
    </item>
  </channel>
</rss>
