dc
d059b72f6b
blog: teach special missings properly, and fix the video label
...
The special missings section of the v4.0 post was four lines: what they are,
that the adapter supports them, and a video. It is now three sections.
- What special missings are: the 28 missing values, why they exist, and how
they behave as numeric values (arithmetic, PROC MEANS, sort order,
NMISS/CMISS, cats()). Every claim was checked on a live SAS engine - the
sort order I first wrote down was wrong, ._ sorts below the regular missing.
- How they travel between the browser and SAS: the adapter's type inference,
the null handling, the format override for a column holding only special
missings, and the values it refuses.
- How they behave in the other Data Controller rules: NOTNULL passes, MINVAL
fails, MAXVAL passes, CASE compares them as text, and HARDREGEX/SOFTREGEX do
not exempt them.
The video embed was pointing at the right recording under the wrong label (a
copy-paste of "Retain Formulas when Loading Excel to SAS" from other posts).
It is "Managing Special Missing Values with Data Controller for SAS", and the
post now describes what it shows.
Also adds the LinkedIn version of the section as a comment, kept in sync with
the copy above.
2026-09-22 16:54:08 +00:00
allan
fcba390804
Merge pull request 'feed: render poem fenced blocks as verse, not code' ( #18 ) from feat/poem-format into main
...
publish / Build-and-publish (push) Successful in 4m13s
Reviewed-on: #18
2026-09-20 19:25:54 +00:00
allan
8b6e3e60bc
Merge pull request 'feed: add the carousel assets (PDF + slides) to the poem post folder' ( #17 ) from feat/if-ode-carousel into main
...
publish / Build-and-publish (push) Successful in 4m3s
Reviewed-on: #17
Reviewed-by: Allan <allan@4gl.io >
2026-09-20 19:25:17 +00:00
blog-dev
d244a34fc9
feed: render poem fenced blocks as verse, not code
2026-09-20 19:18:11 +00:00
blog-dev
686a745f0b
feed: break the carousel stanza slides between the two quatrains
2026-09-20 19:09:38 +00:00
blog-dev
510947d173
feed: add the LinkedIn carousel (PDF + slides) to the post folder
2026-09-20 18:55:18 +00:00
allan
589a745c5b
Merge pull request 'Update content/feed/if-an-ode-to-data-control/index.md' ( #16 ) from allan-patch-1 into main
...
publish / Build-and-publish (push) Successful in 3m53s
Reviewed-on: #16
2026-09-20 17:39:19 +00:00
allan
d04c55c731
Update content/feed/if-an-ode-to-data-control/index.md
2026-09-20 17:39:07 +00:00
allan
a6a6abf009
Merge pull request 'feat(feed): If - An Ode to Data Control' ( #15 ) from feat/if-ode-to-data-control into main
...
publish / Build-and-publish (push) Successful in 4m0s
Reviewed-on: #15
Reviewed-by: Allan <allan@4gl.io >
2026-09-20 17:31:40 +00:00
blog-dev
88368fa31d
feed: trim the boast and the repeated first-line echo from the intro
2026-09-20 17:21:19 +00:00
blog-dev
fdb1db216d
feed: rework the poem cover into a title-page design; note the 2022 publication year
2026-09-20 16:37:23 +00:00
blog-dev
6d833f9654
feat(feed): If - An Ode to Data Control
2026-09-20 15:54:56 +00:00
allan
6bcd0adf81
Merge pull request 'feed: correct the case sensitivity example in the full table search post' ( #14 ) from fix/full-table-search-case-sensitivity into main
...
publish / Build-and-publish (push) Successful in 3m58s
Reviewed-on: #14
Reviewed-by: Allan <allan@4gl.io >
2026-09-17 07:47:31 +00:00
blog-dev
93348ad604
feed: tighten the case sensitivity note to a single sentence
2026-09-17 07:44:53 +00:00
dc
7561bb0c39
feed: correct the case sensitivity example in the full table search post
...
The post claimed `smith` finds `Smithson`, which only holds for a case
insensitive match. The comparison is case sensitive, so the search term has
to match the case as stored: `Smith` finds `Smithson`, and `smith` finds
`Goldsmith`, but `smith` will not find `Smithson`.
2026-09-16 23:42:45 +00:00
allan
959a9ffab4
Merge pull request 'Feed post: Full Table Search' ( #13 ) from feat/full-table-search into main
...
publish / Build-and-publish (push) Successful in 4m34s
Reviewed-on: #13
Reviewed-by: Allan <allan@4gl.io >
2026-09-16 23:22:22 +00:00
blog-dev
2348575737
feed: full table search - new demo video, copy matches the recording
...
- embed the re-recorded 16:9 demo video (search walkthrough, 39s)
- drop the one million row CAS claim from the description, the body and the
social copy: the recording demonstrates a table in the Viewer, so the
text now says only what the video shows
2026-09-16 23:17:43 +00:00
blog-dev
b2aac21b90
feed: full table search - any value, any column, no query
2026-09-15 17:19:07 +00:00
allan
438b1e93d7
Merge pull request 'Move Cyber Essentials badge to who-is section + about page' ( #12 ) from fix/cert-badge-placement into main
...
publish / Build-and-publish (push) Successful in 3m56s
Reviewed-on: #12
2026-09-11 20:27:09 +00:00
blog-dev
674737f840
fix: move Cyber Essentials badge to who-is section + about page, drop hero/footer placements
2026-09-11 20:22:29 +00:00
hermes
150be89246
Merge pull request 'Surface Cyber Essentials certification on homepage hero and footer' ( #11 ) from feat/cyber-essentials-badge into main
publish / Build-and-publish (push) Successful in 3m57s
2026-09-11 19:45:26 +00:00
blog-dev
b6fea27963
feat: surface Cyber Essentials certification on homepage hero and footer
2026-09-11 19:45:06 +00:00
blog-dev
aa1f015f5a
docs(blog): punchier LinkedIn draft for non-DC users - pain-first, no jargon
publish / Build-and-publish (push) Successful in 6m39s
2026-09-04 09:29:20 +00:00
blog-dev
79b62e4cfc
docs(blog): add source LinkedIn post comment for the v7.13 article
publish / Build-and-publish (push) Successful in 6m33s
2026-09-04 08:06:46 +00:00
blog-dev
73d4796638
fix(blog): show sasdemo instead of root user in audit demo screenshot
publish / Build-and-publish (push) Successful in 6m36s
2026-09-04 07:51:32 +00:00
blog-dev
7267af58c4
ci: drop npm cache from setup-node - save/restore costs exceed the benefit at this repo size
publish / Build-and-publish (push) Successful in 7m0s
2026-09-04 07:23:58 +00:00
blog-dev
e5dfcd84da
feat(blog): add audit-column demo image showing the IF formula resolving live
publish / Build-and-publish (push) Successful in 13m17s
2026-09-04 01:28:42 +00:00
blog-dev
02295334b3
fix(blog): restore hardening and polishing phrasing in v7.13 post
publish / Build-and-publish (push) Successful in 13m11s
2026-09-04 01:09:48 +00:00
blog-dev
e7a538ed9a
feat(blog): link getdata and postedit hook to code.datacontroller.io
publish / Build-and-publish (push) Successful in 15m42s
2026-09-04 00:53:20 +00:00
blog-dev
60a19dda89
fix(blog): correct PK live-formula wording in v7.13 post
publish / Build-and-publish (push) Successful in 15m16s
2026-09-04 00:36:58 +00:00
blog-dev
b415793eec
fix(blog): trim intra-release fix churn from the also-in-release list
publish / Build-and-publish (push) Successful in 15m40s
2026-09-04 00:20:36 +00:00
blog-dev
d352ea8fea
fix(blog): re-encode v7.13 images to bust poisoned CDN edge cache entries
...
publish / Build-and-publish (push) Successful in 15m47s
The /static/* path sits behind a Cloudflare cache-everything rule with a
62-day edge TTL. An image fetched mid-deploy can pin a bad (truncated/404)
response at an edge POP. Re-encoding produces new content-hashed URLs so
every variant is fetched fresh from origin. Pixels are identical.
2026-09-04 00:19:32 +00:00
blog-dev
9e04cd4220
feat(blog): v7.13 release post - formulas & regex with live screenshots
publish / Build-and-publish (push) Successful in 15m47s
2026-09-03 23:56:29 +00:00
blog-dev
181c3ae834
fix(feed): update LinkedIn source copy - community edition, not 5-user free tier
publish / Build-and-publish (push) Successful in 13m5s
2026-08-27 17:04:13 +01:00
blog-dev
0ec0789ac4
feat(feed): five lines of defence post with cover image
publish / Build-and-publish (push) Successful in 13m1s
2026-08-27 16:43:07 +01:00
blog-dev
2e5fc4a368
feat(feed): legacy data ingestion post with cover image
publish / Build-and-publish (push) Successful in 12m56s
2026-08-24 16:37:11 +01:00
blog-dev
3d66f91820
fix(feed): correct docs link to /restore/
publish / Build-and-publish (push) Successful in 12m54s
2026-08-20 22:26:03 +01:00
blog-dev
5cdfadf75c
feat(feed): use ctrl-z as cover, move trains meme into post body
publish / Build-and-publish (push) Successful in 13m0s
2026-08-20 22:20:56 +01:00
hermes
fef2c3c12e
chore: li update
publish / Build-and-publish (push) Successful in 12m58s
2026-08-20 22:14:47 +01:00
blog-dev
b50efc01e2
feat(feed): expand rollback post LinkedIn copy, drop version refs
publish / Build-and-publish (push) Successful in 12m52s
2026-08-20 21:50:27 +01:00
blog-dev
de23966721
feat(feed): add rollback data changes post with meme
2026-08-20 21:06:43 +01:00
4gl
9121bf900d
fix: contact image
publish / Build-and-publish (push) Successful in 13m2s
2026-08-17 20:14:26 +01:00
4gl
56175353d6
feat: sas projects / excel
publish / Build-and-publish (push) Successful in 12m56s
2026-08-17 19:51:20 +01:00
4gl
26b4c55ecd
feat: horror stories
publish / Build-and-publish (push) Successful in 13m19s
2026-08-15 09:47:06 +01:00
4gl
5be23393d6
fix: dc link
publish / Build-and-publish (push) Successful in 12m56s
2026-08-13 13:52:18 +01:00
4gl
bf3ef8bab1
fix: links
publish / Build-and-publish (push) Successful in 12m51s
2026-08-13 13:46:43 +01:00
4gl
729437308a
fix: feed post git data
publish / Build-and-publish (push) Successful in 13m19s
2026-08-13 13:28:30 +01:00
4gl
244829edf9
feat: post
publish / Build-and-publish (push) Successful in 12m58s
2026-08-12 10:32:04 +01:00
4gl
b51c831b53
chore: ai docs
publish / Build-and-publish (push) Successful in 13m28s
2026-08-11 10:47:35 +01:00
4gl
8e0b28ed93
feat: libinfo feed post
publish / Build-and-publish (push) Successful in 13m33s
2026-08-11 09:13:04 +01:00
4gl
5b6575ae8e
fix: small edits + ai notes
publish / Build-and-publish (push) Successful in 12m53s
2026-08-10 18:42:49 +01:00
4gl
9dcedfffb0
feat: business data capture feed post
publish / Build-and-publish (push) Successful in 12m55s
2026-08-10 18:28:16 +01:00
4gl
34846e5a4c
fix: formatting
publish / Build-and-publish (push) Successful in 12m51s
2026-08-09 18:12:42 +01:00
4gl
26304f3c73
feat: fsedit feed post
publish / Build-and-publish (push) Successful in 13m9s
2026-08-09 18:00:11 +01:00
4gl
14b745e2e7
fix: agent tidy up
2026-08-09 17:39:33 +01:00
4gl
bdddfac52a
fix: image
publish / Build-and-publish (push) Successful in 12m45s
2026-08-07 15:15:09 +01:00
4gl
2cc3a13340
feat: new article
publish / Build-and-publish (push) Successful in 13m3s
2026-08-07 15:01:17 +01:00
4gl
ebd77c9d76
feat: regex rules
publish / Build-and-publish (push) Successful in 12m48s
2026-07-28 14:28:28 +01:00
4gl
73fccc70a5
feat: first announcement
publish / Build-and-publish (push) Successful in 12m44s
2026-07-26 15:27:48 +01:00
allan
b58387bee5
fix: prod -> production
publish / Build-and-publish (push) Successful in 12m42s
2026-06-16 11:35:30 +01:00
allan
53aa81c788
feat: env restriction
publish / Build-and-publish (push) Successful in 13m14s
2026-06-16 11:24:56 +01:00
allan
d2c8e5e6bc
feat: price reduction
publish / Build-and-publish (push) Successful in 12m46s
2026-03-18 14:22:17 +00:00
allan
50833b4fd8
chore: rename
publish / Build-and-publish (push) Successful in 12m39s
2026-03-14 13:57:11 +00:00
allan
1f4e159fe0
fix: wording
publish / Build-and-publish (push) Has been cancelled
2026-03-14 13:50:41 +00:00
allan
ae55a82b19
feat: snowflake support
publish / Build-and-publish (push) Successful in 12m41s
2026-03-14 13:33:56 +00:00
_
bf3e48654c
fix: footer
publish / Build-and-publish (push) Successful in 11m21s
2026-02-15 22:38:44 +00:00
_
9c4c1e9d99
fix: footer
publish / Build-and-publish (push) Failing after 6m3s
2026-02-15 22:28:25 +00:00
_
b543b5ab96
fix: footer
publish / Build-and-publish (push) Failing after 6m7s
2026-02-15 21:56:45 +00:00
_
19743c7dd5
fix: tidy up
publish / Build-and-publish (push) Successful in 11m21s
2026-02-15 21:37:46 +00:00
_
39ab4be7f7
fix: footer
publish / Build-and-publish (push) Has been cancelled
2026-02-15 21:27:03 +00:00
_
51761ca3bd
fix: footer
publish / Build-and-publish (push) Successful in 11m22s
2026-02-15 21:07:50 +00:00
_
72e01e4c02
fix: deps
publish / Build-and-publish (push) Successful in 11m29s
2026-02-15 20:07:05 +00:00
_
1b7a29b2d6
chore: remove old image
publish / Build-and-publish (push) Failing after 1m16s
2026-02-15 19:59:13 +00:00
_
2120a3892a
fix: release table as preview
2026-02-15 19:59:00 +00:00
_
90ddd63370
fix: 2025
publish / Build-and-publish (push) Has been cancelled
2026-02-15 19:58:08 +00:00
_
ed1c90c057
feat: use image instead of table@
publish / Build-and-publish (push) Successful in 2m26s
2026-02-15 19:55:38 +00:00
_
4a1a420e39
fix: formatting
publish / Build-and-publish (push) Successful in 2m23s
2026-02-15 19:49:54 +00:00
_
54ddedd1af
feat: 2025 blog post@
publish / Build-and-publish (push) Successful in 2m25s
2026-02-15 19:35:47 +00:00
sead
08070f3586
Merge pull request 'Update' ( #10 ) from dcio_refactor into main
...
publish / Build-and-publish (push) Successful in 2m21s
Reviewed-on: #10
2025-12-13 18:28:26 +00:00
sead
eda6c62f03
fix(deps): update gatsby, remove ignore scripts due to sharp install error
2025-12-13 19:24:26 +01:00
sead
4a30ce77db
fix: disable contact form submit if email is not valid
2025-12-13 18:57:28 +01:00
sead
85d7f4c61c
feat: add disabled prop to SolidButton
2025-12-13 18:56:57 +01:00
sead
a95d63d12e
Merge pull request 'Fix contact form' ( #9 ) from fixes-13122025-2 into main
...
publish / Build-and-publish (push) Failing after 1m14s
Reviewed-on: #9
2025-12-13 17:17:22 +00:00
sead
8434c781d6
fix: contact form
2025-12-13 17:53:11 +01:00
sead
6537e3aee1
chore: remove unused variables
2025-12-13 17:45:04 +01:00
sead
f17ab261ce
fix: add new tab to more external links
2025-12-13 17:44:25 +01:00
sead
67eabbe55f
revert: contact form fix
...
This reverts commit dc0db8e8f2 . Wrong form.
2025-12-13 17:43:07 +01:00
sead
0ed1caa651
Merge pull request 'Update contact form, and open external links in new tab' ( #8 ) from fixes-13122025 into main
...
publish / Build-and-publish (push) Failing after 1m19s
Reviewed-on: #8
2025-12-13 16:21:27 +00:00
sead
e566abab23
fix: open ext. links in new tab
...
Closes #7
2025-12-13 17:07:40 +01:00
sead
148c1b66a7
fix(build): disable npm install scripts
2025-12-13 16:55:03 +01:00
sead
dc0db8e8f2
fix: contact form
...
Disable gmail addresses.
2025-12-13 16:53:26 +01:00
Yury
d2509decd0
Merge pull request 'chore(CI): fixed Publish step' ( #4 ) from publish-fix into main
...
publish / Build-and-publish (push) Successful in 3m4s
Reviewed-on: #4
2024-06-20 06:27:38 +00:00
Yury
87ff818bf3
chore(CI): fixed Publish step
2024-06-20 09:25:25 +03:00
allan
d3b1e4ec95
Merge pull request 'fix: fixed build and resolved conflicting dependencies' ( #3 ) from contact-fix into main
...
publish / Build-and-publish (push) Failing after 3m5s
Reviewed-on: #3
Reviewed-by: mihajlo <mihajlo@4gl.io >
2024-06-19 14:01:01 +00:00
allan
06d09aa91c
Merge branch 'main' into contact-fix
2024-06-19 13:41:25 +00:00
Yury
c94ed82dba
fix: fixed build and resolved conflicting dependencies
2024-06-19 15:23:24 +03:00
mihajlo
81f60a8c38
Merge pull request 'feat: used sendDM method in contact form' ( #1 ) from contact-fix into main
...
publish / Build-and-publish (push) Failing after 2m16s
Reviewed-on: #1
Reviewed-by: mihajlo <mihajlo@4gl.io >
2024-06-19 09:07:35 +00:00
Yury
99521fe8c7
feat: used sendDM method in contact form
2024-06-19 11:49:56 +03:00
Mihajlo Medjedovic
36a1cad977
ci: legacy peer deps
publish / Build-and-publish (push) Successful in 2m42s
2024-06-05 16:20:44 +02:00
Mihajlo Medjedovic
49a5e7585e
ci: workflows sub folder
publish / Build-and-publish (push) Failing after 16s
2024-06-05 16:08:06 +02:00