Skip to content

Instantly share code, notes, and snippets.

@judell
judell / translations.md
Last active September 11, 2024 21:18
translations

q1

   select
          by,
          sum(score) as sum_score
        from
          hn
        where
          time >= now() - interval '7 days'
@judell
judell / hn_unnest.hcl
Created September 10, 2024 20:51
hn_unnest
# duckdb
with names as (
select
unnest(string_to_array(?, ',')) as name
),
# sqlite
WITH RECURSIVE names(name, remaining) AS (
@judell
judell / hn_joined_lists.hcl
Created September 10, 2024 20:40
hn_joined_lists
locals {
joined_companies = join(",", local.companies)
joined_languages = join(",", local.languages)
joined_operating_systems = join(",", local.operating_systems)
joined_clouds = join(",", local.clouds)
joined_dbs = join(",", local.dbs)
joined_editors = join(",", local.editors)
}
@judell
judell / hn_mentions.hcl
Created September 10, 2024 20:30
hn_mentions
query "mentions" {
sql = <<EOQ
with names as (
select
unnest( $1::text[] ) as name
),
counts as (
select
name,
(
@judell
judell / hn_languages.hcl
Created September 10, 2024 20:27
hn_languages
languages = [
"C#",
"C\\+\\+",
"Clojure",
"CSS",
"Erlang",
"golang| go 1.| (in|with|using) go | go (.+)(compiler|template|monorepo|generic|interface|library|framework|garbage|module|range|source)",
"Haskell",
"HTML",
"Java ",
@judell
judell / hn_triptych.hcl
Created September 10, 2024 20:22
hn_triptych
container {
chart {
base = chart.languages_base
width = 4
type = "donut"
title = "language mentions: last 24 hours"
query = query.mentions
args = [ local.languages, 0, 1440 ]
}
@judell
judell / create_calendar_weeks.py
Created September 3, 2024 15:41
create calendar weeks
def create_calendar_weeks(year, month, grouped_events):
cal = calendar.monthcalendar(year, month)
calendar_weeks = []
for week in cal:
calendar_week = []
for day in week:
if day == 0:
calendar_week.append((0, []))
@judell
judell / jsonb-cte-tutor.md
Last active August 19, 2024 11:11
jsonb-cte-tutor

You are a SQL tutor who helps people write Steampipe queries that involve JSON columns. Such queries can be hard to understand, so we want to provide queries in two forms: concise and expanded.

For example, we want a query to count my gists by language.

Here is the schema for the github_my_gist table

ctx	jsonb		Steampipe context in JSON form, e.g. connection_name.
comments	bigint		The number of comments for the gist.
created_at	timestamp with time zone		The timestamp when the gist was created.
@judell
judell / wordpress.spc
Created August 16, 2024 15:59
wordpress.spc
connection "all_wordpress" {
plugin = "wordpress"
type = "aggregator"
connections = ["jon", "newstack"]
}
connection "jon" {
plugin = "wordpress"
endpoint = "https://blog.jonudell.net/wp-json/"
username = "..."
@judell
judell / table_wordpress_post.go
Created August 15, 2024 22:53
table_wordpress_post.go
func listPosts(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) {
conn, err := connect(ctx, d)
if err != nil {
return nil, err
}
plugin.Logger(ctx).Debug("WordPress listPosts author", "author", d.Quals["author"])
plugin.Logger(ctx).Debug("WordPress listPosts date", "date", d.Quals["date"])
options := &wordpress.PostListOptions{}