<rss version="2.0">
  <channel>
    <title>Meet Gor - Tag: typescript</title>
    <link>https://www.meetgor.com</link>
    <description>Posts tagged with typescript</description>
    <language>en-us</language>
    <pubDate>Sat, 10 Oct 2026 09:08:39 UTC</pubDate>
    <item>
      <title>Can we have a moment of silence for the ones who thought Programmers were replaceable</title>
      <link>https://www.meetgor.com/links/can-we-have-a-moment-of-silence-for-the-ones-who-thought-programmers-were-replaceable</link>
      <description>Can we have a moment of silence for the ones who thought Programmers were replaceable Context 7.07-7.07l-1.72 1.71&#34;&gt; Can we have a moment of silence for the one</description>
      <pubDate>Sat, 24 Jan 2026 00:00:00 UTC</pubDate>
      <content>&#xA;# Can we have a moment of silence for the ones who thought Programmers were replaceable&#xA;&#xA;&#xA;&#xA;## Context&#xA;&#xA;7.07-7.07l-1.72 1.71&#34;&gt;&lt;/path&gt;&lt;path d=&#34;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&#34;https://the-decoder.com/openais-new-orion-model-reportedly-shows-small-gains-over-gpt-4/&#34; rel=&#34;nofollow ugc noopener&#34;&gt;Can we have a moment of silence for the ones who thought Programmers were replaceable&lt;/a&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;For more news, follow the &lt;/span&gt;&lt;a href=&#34;https://buttondown.com/hacker-newsletter/archive/hacker-n&#xA;&#xA;**Source:** techstructive-weekly-16&#xA;&#xA;</content>
      <type>links</type>
    </item>
    <item>
      <title>Test after resolving merge conflicts</title>
      <link>https://www.meetgor.com/links/test-after-resolving-merge-conflicts</link>
      <description>Its a beautiful sunny Monday, you had prepared changes well tested on Friday. But today, just for today, Bill had to merge their hotfix into your changes as wel</description>
      <pubDate>Fri, 17 Oct 2025 00:00:00 UTC</pubDate>
      <content>&#xA;&#xA;Its a beautiful sunny Monday, you had prepared changes well tested on Friday. But today, just for today, Bill had to merge their hotfix into your changes as well. Well, they did.&#xA;&#xA;And I didn&#39;t bother about it. It had some merge conflicts which Bill resolves happily (I thought). Everything is green, but some things are red, due to the size of PR I thought, (+3079 -789) changes. Phew!&#xA;&#xA;Merged and deployed.&#xA;&#xA;10 Minutes later, you see all sorts of red shades representing the errors.&#xA;&#xA;&gt; I will advice one thing, test after you resolve and commit the merge conflicts. PLEASE!&#xA;&#xA;Bill missed a comma at the parameter to a function while merging and broke in production. I know that was a human error, but adding tests won&#39;t break a sweat to already added cost of AI slop of PR summary.&#xA;&#xA;Am I mad about it, no. I myself had broken prod multiple times a week. But reasons were far from testable (yes that is my excuse). But that was quite obvious. It could have gone unnoticed and degraded the quality of the software. Tests are annoying but sometimes necessary to protect and defend a developer (yes you).&#xA; &#xA;</content>
      <type>links</type>
    </item>
    <item>
      <title>SQLite functions: unistr and unistr_quote</title>
      <link>https://www.meetgor.com/sqlog/sqlite-functions-unistr-and-unistr-quote</link>
      <description>SQLite introduced and functions These are for taking in escape sequences and returning the actual unicode string like emoji or other non-english characters outs</description>
      <pubDate>Tue, 26 Aug 2025 00:00:00 UTC</pubDate>
      <content>&#xA;&#xA;SQLite [3.50](https://www.sqlite.org/releaselog/3_50_0.html) introduced [unistr](https://www.sqlite.org/lang_corefunc.html#unistr) and [unistr_quote](https://www.sqlite.org/lang_corefunc.html#unistr_quote) functions&#xA;&#xA;These are for taking in escape sequences and returning the actual unicode string like emoji or other non-english characters outside the ascii convention forming the utf-8 character set&#xA;&#xA;The `unistr` is used to take in the escape sequences and return the actual unicode string&#xA;The `unistr_quote` is used to escape those escape sequences in a sql query so your data can be stored with emojis.&#xA;&#xA;&gt; I wonder these functions were added because of LLMs emoji-heavy outputs?&#xA;&#xA;Here’s how you use unistr in a simple query&#xA;&#xA;```sql&#xA;SELECT unistr(&#39;\u2665, \U0001F600&#39;);&#xA;````&#xA;&#xA;This will print the :heart and :smiley emojis&#xA;&#xA;I won’t print the emojis, it might look like a AI-generated post (grunts with pride)&#xA;&#xA;This is handy to render the values but first you need to get the values stored in the db, for that you need to have it like a string i.e. escaped string&#xA;&#xA;That is where the `unistr_quote comes` in&#xA;&#xA;```sql&#xA;SELECT unistr_quote(&#39;\U0001F600&#39;);&#xA;```&#xA;&#xA;This will simply print &#39;\U0001F600&#39; notice the quotes here, it will be a escaped character sequence making it like a special string in middle of a string,&#xA;&#xA;so if we have something like this&#xA;&#xA;```sql&#xA;SELECT printf(&#39;what the heck is this%s symbol?&#39;, unistr_quote(&#39;\U0001F449&#39;));&#xA;```&#xA;&#xA;&gt; output: what the heck is this&#39;\U0001F449&#39; symbol?&#xA;&#xA;This will make the distinction clear, we get a quoted string for that special set of characters or escape sequence which can be useful if the storage medium would make storing emojis obsolete.&#xA;</content>
      <type>sqlog</type>
    </item>
    <item>
      <title>SQLite functions: Generate_Series Examples</title>
      <link>https://www.meetgor.com/sqlog/sqlite-functions-generate-series-examples</link>
      <description>After taking a look at what the Generate Series function does, now let&#39;s see some examples that might be handy. Simple sequence To generate a series of numbers</description>
      <pubDate>Fri, 22 Aug 2025 00:00:00 UTC</pubDate>
      <content>&#xA;&#xA;After taking a look at what the Generate Series function does, now let&#39;s see some examples that might be handy.&#xA;&#xA;## Simple sequence&#xA;&#xA;To generate a series of numbers from 1 to 5.&#xA;&#xA;```sql&#xA;SELECT * FROM generate_series(1, 5);&#xA;```&#xA;&#xA;## Incremental sequence&#xA;&#xA;To generate a series of numbers from 0 to 50 in steps of 10.&#xA;&#xA;```sql&#xA;SELECT * FROM generate_series(0, 50, 10);&#xA;```&#xA;&#xA;This will start from 0, increment by 10 till 50.&#xA;&#xA;```&#xA;0&#xA;10&#xA;20&#xA;30&#xA;40&#xA;50&#xA;```&#xA;&#xA;&#xA;## Backwards sequence&#xA;&#xA;To generate a series from 50 to 0 in steps of 10&#xA;&#xA;```sql&#xA;SELECT * FROM generate_series(0, 50, -10);&#xA;```&#xA;&#xA;This would start from 50 (becuase -ve step will flip the start and stop parameters) and decrement by 10 till 0&#xA;&#xA;```&#xA;50&#xA;40&#xA;30&#xA;20&#xA;10&#xA;0&#xA;```&#xA;&#xA;## Random Numbers&#xA;&#xA;To generate 5 random number between 1 to 5.&#xA;&#xA;```sql&#xA;SELECT * FROM generate_series(1, 5) ORDER BY RANDOM();&#xA;```&#xA;&#xA;This would generate 5 numbers 1 to 5, and the ordering will be random. This is becuase for each row, it will generate a random number between -max int to +max int and then order them based on those numbers.&#xA;&#xA;OR&#xA;&#xA;To generate 5 random number between 1 and 10.&#xA;&#xA;```&#xA;SELECT ABS((random()%10)) + 1 FROM generate_series(1, 5);&#xA;```&#xA;&#xA;This would generate 5 random numbers between 1 and 10. The random function generates a integer between -max int to +max int and then mod it to 10 (or the range you want to generate up to) this will leave us with -9 to 9 numbers but it also be negative so we make it ABS which will make it positive, and add one to make the 0 offset to 1.&#xA;&#xA;```&#xA;3&#xA;9&#xA;10&#xA;7&#xA;5&#xA;```&#xA;&#xA;&#xA;## Random Characters&#xA;&#xA;To generate 5 random characters from A to Z.&#xA;&#xA;```sql&#xA;SELECT char((random()%26)+65) FROM generate_series(1, 5);&#xA;```&#xA;&#xA;This would generate a random integer between -max int and + max int, mod it with 26 to get that number between 0 to 25, add 65 which will then can be casted to char in order to render it as an ASCII String.&#xA;&#xA;&#xA;## Date Ranges&#xA;&#xA;To generate dates for a month&#xA;&#xA;```sql&#xA;SELECT date(&#39;2025-08-01&#39;, &#39;+&#39; || (value-1) || &#39; day&#39;) as date_val&#xA;FROM generate_series(1, 31);&#xA;``` &#xA;&#xA;This will take the start date 2025-08-01 and add the value -1 (the value will be from 1 so we need to omit the first day) as a day. This will then generate a series of dates from 2025-08-01 to 2025-08-31.&#xA;&#xA;To generate first day of each month&#xA;&#xA;```sql&#xA;SELECT date(&#39;2025-08-01&#39;, &#39;+&#39; || (value-1) || &#39; month&#39;) as date_val&#xA;FROM generate_series(1, 12);&#xA;```&#xA;&#xA;&#xA;## Gap filling in existing ids&#xA;&#xA;To fill in the missing ids in a sequence of ids&#xA;&#xA;```sql&#xA;SELECT * FROM generate_series(1, 5) WHERE value NOT IN (1, 3, 5);&#xA;```&#xA;&#xA;Here you could imagine the not in list could be another table with the result set only with the ids.&#xA;&#xA;&#xA;</content>
      <type>sqlog</type>
    </item>
    <item>
      <title>SQLite functions: generate_series</title>
      <link>https://www.meetgor.com/sqlog/sqlite-functions-generate-series</link>
      <description>The is a table valued function in sqlite and is available via the extension. The valued function is something that returns a table but is virtual (doesn&#39;t reall</description>
      <pubDate>Thu, 21 Aug 2025 00:00:00 UTC</pubDate>
      <content>&#xA;&#xA;The [generate_series](https://www.sqlite.org/series.html) is a table valued function in sqlite and is available via the [generate_series](https://sqlite.org/src/artifact?ci=trunk&amp;filename=ext/misc/series.c) extension.&#xA;&#xA;&gt; The valued function is something that returns a table but is virtual (doesn&#39;t really have data or schema in it). It has hidden columns which are used as parameters to the function to constrain the output and generate the data according to those parameters to the function.&#xA;&#xA;The basic operation with `generate_series` would look like this:&#xA;&#xA;```sql&#xA;SELECT * FROM generate_series(1, 5);&#xA;```&#xA;&#xA;```&#xA;sqlite&gt; SELECT * FROM generate_series(1, 5);&#xA;+-------+&#xA;| value |&#xA;+-------+&#xA;| 1     |&#xA;| 2     |&#xA;| 3     |&#xA;| 4     |&#xA;| 5     |&#xA;+-------+&#xA;sqlite&gt;&#xA;```&#xA;&#xA;Pretty neat, it generated a series of numbers (integers) from 1 to 5 (5 included).&#xA;&#xA;Now are they really integers or?&#xA;&#xA;SQLite is wired, it doesn&#39;t really have types, but they are integers as default so to confirm:&#xA;&#xA;```sql&#xA;SELECT typeof(value) FROM generate_series(1, 5);&#xA;```&#xA;&#xA;```&#xA;sqlite&gt; SELECT typeof(value) FROM generate_series(1, 5);&#xA;+---------------+&#xA;| typeof(value) |&#xA;+---------------+&#xA;| integer       |&#xA;| integer       |&#xA;| integer       |&#xA;| integer       |&#xA;| integer       |&#xA;+---------------+&#xA;```&#xA;OK! Cool, now let&#39;s take this to a next level&#xA;&#xA;```sql&#xA;SELECT char(value+64) FROM generate_series(1, 5);&#xA;```&#xA;&#xA;```&#xA;sqlite&gt; SELECT char(value+64) FROM generate_series(1, 5);&#xA;+----------------+&#xA;| char(value+64) |&#xA;+----------------+&#xA;| A              |&#xA;| B              |&#xA;| C              |&#xA;| D              |&#xA;| E              |&#xA;+----------------+&#xA;```&#xA;OK! That is simple ascii and type casting shenanigans!&#xA;&#xA;We cast the value which would be integer 1 to 5 and add 64 to it to make it in the range 65 to 70 which would be ASCII equivalent of A to E, you could do the same thing but different parameters:&#xA;&#xA;```&#xA;SELECT char(value) FROM generate_series(65, 70);&#xA;```&#xA;&#xA;```&#xA;sqlite&gt; SELECT char(value) FROM generate_series(65, 70);&#xA;+-------------+&#xA;| char(value) |&#xA;+-------------+&#xA;| A           |&#xA;| B           |&#xA;| C           |&#xA;| D           |&#xA;| E           |&#xA;| F           |&#xA;+-------------+&#xA;```&#xA;&#xA;Same result!&#xA;&#xA;But, ok, this is other rabbit hole, let&#39;s focus back on generate_series, the parameters are start and stop right?&#xA;Well there is one more, step. This will be like the incremental number for each step.&#xA;&#xA;If you are familiar with C styled for loops, you know this as the increment part, or the `i++` bit.&#xA;&#xA;```sql&#xA;SELECT value FROM generate_series(0, 20, 5)&#xA;```&#xA;&#xA;```&#xA;sqlite&gt; SELECT value FROM generate_series(0, 20, 5);&#xA;+-------+&#xA;| value |&#xA;+-------+&#xA;| 0     |&#xA;| 5     |&#xA;| 10    |&#xA;| 15    |&#xA;| 20    |&#xA;+-------+&#xA;sqlite&gt;&#xA;```&#xA;So, the third parameter increments the counter by that number. So we start from 0 and increment 5 for each step (row) till 20.&#xA;&#xA;Default step value is 1, however the quirk is 0 is still considered as 1.&#xA;&#xA;You can also go reverse&#xA;&#xA;```sql&#xA;SELECT * FROM generate_series(0, 20, -5);&#xA;```&#xA;&#xA;This will generate number series as 20,15,10,5,0: Note that the step is -1 not the stop value, this will basically flip the start and stop values, so we will start from 20 and decrement by 5 at each step.&#xA;&#xA;If you want to generate a series in negative ranges, the start or stop needs to modified accordingly, the start and stop control which numbers you iterate and the step controls in which direction it moves from start to end.&#xA;&#xA;```sql&#xA;SELECT * FROM generate_series(-20, 20, -5);&#xA;```&#xA;&#xA;This will generate the number series from 20 to -20, start from 20 and decrement by 5 each step until we reach -20. So we had a start as -20 but why do we start from 20? well because the step is negative, we need to start from the higher value and end at the lower value, hence the start and stop will be flipped for a step value &lt; 0. &#xA;&#xA;```sql&#xA;SELECT * FROM generate_series(10) LIMIT 5;&#xA;```&#xA;&#xA;This gave 10,11,12,13,14 right, how? Because there is not just one column in the generate_series virtual table there are more&#xA;&#xA;Apart from value that is the integer we get from the function as the row (column cell)&#xA;&#xA;there are start, stop, step and rowid  columns which are hidden columns in the `generate_series` function or virtual table &#xA;&#xA;Let’s see&#xA;&#xA;SELECT rowid, start, stop, step, value FROM generate_series(0,10,2);&#xA;&#xA;```&#xA;+-------+-------+------+------+-------+&#xA;| rowid | start | stop | step | value |&#xA;+-------+-------+------+------+-------+&#xA;| 1     | 0     | 10   | 2    | 0     |&#xA;| 2     | 0     | 10   | 2    | 2     |&#xA;| 3     | 0     | 10   | 2    | 4     |&#xA;| 4     | 0     | 10   | 2    | 6     |&#xA;| 5     | 0     | 10   | 2    | 8     |&#xA;| 6     | 0     | 10   | 2    | 10    |&#xA;+-------+-------+------+------+-------+&#xA;```&#xA;&#xA;The start, stop, step values remain same, as those are the parameters those can’t change but notice the rowid and the value the first and the last column in the result set do change.&#xA;&#xA;Interestingly the start, stop, and step are the parameters to the function, so you can technically pass them however you like &#xA;&#xA;```sql&#xA;SELECT * FROM generate_series() WHERE start = 10 AND stop = 20 AND step = 5;&#xA;```&#xA;This will give 10,15,20 since the start is 10, increment by 5 until 20. The step is optional, note that stop is optional too, but never forget to provide it, it might cause a forever loop and keep on incrementing by 1 and never give the result back until your computer crashes.&#xA;&#xA;&#xA;</content>
      <type>sqlog</type>
    </item>
    <item>
      <title>Understanding Go&#39;s Weak Package</title>
      <link>https://www.meetgor.com/posts/understanding-go-s-weak-package</link>
      <description>Go&#39;s weak package provides weak references for garbage collection.</description>
      <pubDate>Thu, 02 Jan 2025 00:00:00 UTC</pubDate>
      <content>&#xA;Go&#39;s weak package provides weak references for garbage collection.&#xA;</content>
      <type>posts</type>
    </item>
    <item>
      <title>MindsDB GraphQL API (Grafbase)</title>
      <link>https://www.meetgor.com/projects/mindsdb-graphql-api-grafbase</link>
      <description>Query MindsDB API with Grafbase as a GraphQL endpoint</description>
      <pubDate>Sun, 13 Aug 2023 00:00:00 UTC</pubDate>
      <content>&#xA;&#xA;A GraphQL API for MindsDB using Grafbase that allows you to interact with MindsDB databases, projects, models, and more through a GraphQL interface.&#xA;&#xA;&#xA;Tech Stack:&#xA;&#xA;- Typescript&#xA;- Grafbase&#xA;- GraphQL&#xA;</content>
      <type>projects</type>
    </item>
    <item>
      <title>Utility-Studio</title>
      <link>https://www.meetgor.com/projects/utility-studio</link>
      <description>A single source for text, youtube and link extraction and summarization.</description>
      <pubDate>Fri, 14 Jul 2023 00:00:00 UTC</pubDate>
      <content>&#xA;&#xA;A application to perform extraction of information from web, youtube, or document links, download video/audio from youtube links, and summarize the text content.&#xA;&#xA;Tech Stack:&#xA;&#xA;- Refine (React, NextJS)&#xA;- Appwrite (Functions, Storage)&#xA;- Typescript&#xA;- Python (Cloud Functions)&#xA;- Material UI&#xA;</content>
      <type>projects</type>
    </item>
  </channel>
</rss>