20

Examples from the README

example 1

[
  { "let": { "name": "JSON", "times": 3 } },
  {
    "for": {
      "var": "i",
      "from": 1,
      "to": "times",
      "do": [
        { "print": { "add": ["Hello ", "name"] } }
      ]
    }
  }
]

example 2

[
  { "import": "system.jpl" },
  { "print": { "call": { "now": [] } } },
  { "print": { "call": { "osName": [] } } },
  { "print": { "call": { "cpuCount": [] } } },
  { "let": { "a": 9, "b": 4, "name": "JPL" } },
  { "print": { "add": ["\"a + b = \"", { "add": ["a", "b"] }] } },
  { "print": { "mul": ["a", "b"] } },
  { "print": { "div": ["a", "b"] } },
  { "print": { "mod": ["a", "b"] } },
  { "print": { "&": [6, 3] } },
  { "print": { "||": [false, true] } },
  { "print": { "gt": ["a", "b"] } },
  { "def": { "sq": { "params": ["x"], "body": [{ "return": { "mul": ["x", "x"] } }] } } },
  { "print": { "call": { "sq": [5] } } },
  { "def": { "greet": { "params": ["who"], "body": [{ "return": { "add": ["\"Hi, \"", "who"] } }] } } },
  { "print": { "call": { "greet": ["\"JSON Fan\""] } } },
  { "if": { "cond": { "<": ["b", "a"] }, "then": { "print": "\"b < a 👍\"" }, "else": { "print": "\"b >= a 🤔\"" } } },
  { "for": { "var": "i", "from": 1, "to": 3, "step": 1, "do": [ { "print": { "call": { "sq": ["i"] } } } ] } },
  { "print": "\"All features in one! 🎉\"" }
]

example 3

[
// 🚀 Welcome to JPL — JSON Programming Language!

// Import system utilities for fun stuff
{ "import": "system.jpl" },

// Print system info
{ "print": { "call": { "now": [] } } },
{ "print": { "call": { "osName": [] } } },
{ "print": { "call": { "cpuCount": [] } } },

// Define a math function to square a number
{
  "def": {
    "square": {
      "params": ["x"],
      "body": [
        { "return": { "mul": ["x", "x"] } }
      ]
    }
  }
},

// Greet a user
{
  "def": {
    "greet": {
      "params": ["name"],
      "body": [
        { "return": { "add": ["Hello, ", "name"] } }
      ]
    }
  }
},

// Declare variables
{ "let": { "a": 7, "user": "Kapil" } },

// Use greet function and print
{ "print": { "call": { "greet": ["user"] } } },

// Conditional message
{
  "if": {
    "cond": { ">": ["a", 5] },
    "then": { "print": "a is greater than 5" },
    "else": { "print": "a is 5 or less" }
  }
},

// Loop with break and continue
{
  "for": {
    "var": "i",
    "from": 1,
    "to": 10,
    "step": 1,
    "do": [
      { "if": { "cond": { "eq": ["i", 3] }, "then": { "continue": true } } },
      { "if": { "cond": { "gt": ["i", 7] }, "then": { "break": true } } },
      { "print": { "call": { "square": ["i"] } } }
    ]
  }
},

// Fun ending message
{ "print": "🎉 Done with curly braces and JSON fun!" }
]

[-] Kissaki@programming.dev 19 points 13 hours ago

So many words…


to

oh god please no

wth is all that coloring [in the design samples]

11
[-] Kissaki@programming.dev 3 points 1 day ago

Documentation: A place where we can create documentation for projects that don’t have the documentation or is very basic.

Why create or extend documentation outside of the project when you could improve the project docs themselves?

Projects that are open source but don't allow easy doc contributions?


I find contributing to projects very easy. When I read some docs, and find an issue, I create a pull request with a fix. When I'm interested in a project, I take a look at open issues. Often the website and software project are separate repos with separate issues.


I find the idea of a community of people sharing ideas, open tasks, seeking and finding contributors compelling, but I'm skeptical any new platform could reach critical mass. Maybe that'd be a matter of approach and long term effort.

[-] Kissaki@programming.dev 3 points 2 days ago

Stop allowing full unfettered access

There's a decline button. At least privacy settings don't repeatedly come up again (what this post is about).

[-] Kissaki@programming.dev 5 points 2 days ago

If you lease you car you have to give it back.

If you license your games for the duration of them being active, then it makes sense.

The biggest issue, miscommunication, and often illegal practice is calling it buying when it is only a limited subscription. IIRC Steam recently (finally had to) change the wording away from "buying". Because it's not buying if you don't own the product afterwards.

[-] Kissaki@programming.dev 3 points 2 days ago

Better flood them with interested users than ask for thumbs up on a ticket.

148

The population (especially the younger generation, who never seen a different kind of technology at all) is being conditioned by the tech industry to accept that software should behave like an unreliable, manipulative human rather than a precise, predictable machine. They're learning that you can't simply tell a computer "I'm not interested" and expect it to respect that choice. Instead, you must engage in a perpetual dance of "not now, please" - only to face the same prompts again and again.

[-] Kissaki@programming.dev 1 points 2 days ago

What's with the signed 2.0 vs unsigned 2.1 Windows installer?

Winget apparently already references the unsigned installer. Does it take them a while to sign? I would expect winget to reference only signed installers if they provide them.

24
-34

Developer experience, concrete examples, contextualized, including flaws/edge of capabilities.

Ideation, Maintenance, Coding, Testing, Debugging, …

Chapters:

  • Speaker Introductions
  • 00:03:03 - Personal experiences with AI in coding
  • 00:14:41 - Updating regular expression engine
  • 00:31:39 - AI Assisting in Code Writing and Fixing Mistakes
  • 00:34:01 - AI-Driven Regex Capabilities for Uri Templates
  • 00:37:59 - Enhancements in Memory Extensions
  • 00:44:10 - Discussion about AI handling tasks and upcoming merge
  • 00:46:00 - AI creates and handles test cases automatically
  • 00:46:57 - AI tackles project tasks, improves efficiency, and handles edge cases

A good look into how it is and can currently be used.

55
17

cross-posted from: https://programming.dev/post/31210046

Firefox 139.0 released yesterday, with support for the Temporal JavaScript API.

I explored the API, writing down the most relevant interfaces into a reference or cheat sheet.

It's certainly and finally a thorough API for handling temporal information. Working with zoned datetime across time offsets and time zones can get very confusing, though.

I love how you can work with them though, especially with durations.

console.log(Temporal.PlainDateTime.from('2025-02-05T08:00:00'))

console.log(Temporal.Now.plainDateTimeISO("Europe/Berlin"))

console.log(Temporal.Now.plainDateTimeISO().add('PT2M0.2S').subtract('PT0.5S').since(Temporal.Now.plainDateTimeISO()))

console.log(Temporal.ZonedDateTime.from('2025-02-05T13:57:35.777888[Europe/Berlin]').withTimeZone('Europe/London'))
13
submitted 1 month ago* (last edited 1 month ago) by Kissaki@programming.dev to c/webdev@programming.dev

Firefox 139.0 released yesterday, with support for the Temporal JavaScript API.

I explored the API, writing down the most relevant interfaces into a reference or cheat sheet.

It's certainly and finally a thorough API for handling temporal information. Working with zoned datetime across time offsets and time zones can get very confusing, though.

I love how you can work with them though, especially with durations.

console.log(Temporal.PlainDateTime.from('2025-02-05T08:00:00'))

console.log(Temporal.Now.plainDateTimeISO("Europe/Berlin"))

console.log(Temporal.Now.plainDateTimeISO().add('PT2M0.2S').subtract('PT0.5S').since(Temporal.Now.plainDateTimeISO()))

console.log(Temporal.ZonedDateTime.from('2025-02-05T13:57:35.777888[Europe/Berlin]').withTimeZone('Europe/London'))
15
44

The comment does well in providing context and arguments.

Lets go back to the closest thing we have for requirements for this editor..Default CLI Editor - Feature Exploration!. This discussion was based on the current state of windows and was not concerned with UNIX.

Being a simple text editor, it should not hallucinate, it should not add text one did not type, it should not change the text that was typed. If the user typed a tab character, it was because the user wanted a tab character. If you want four spaces then type four spaces.

edit should by default work like the original namesake and not hallucinate or add characters that were not typed or make assumptions.

Where do you draw the line on "smart" features? Tab should not add indent spaces? Encoding or newline mechanisms? Determining EOF newline?

5
[-] Kissaki@programming.dev 80 points 1 month ago* (last edited 1 month ago)

That's a read-only mirror, not a "move onto GitHub".

PRs get automatically closed, referring to the contrib docs.

6
[-] Kissaki@programming.dev 52 points 11 months ago

CrowdStrike ToS, section 8.6 Disclaimer

[…] THE OFFERINGS AND CROWDSTRIKE TOOLS ARE NOT FAULT-TOLERANT AND ARE NOT DESIGNED OR INTENDED FOR USE IN ANY HAZARDOUS ENVIRONMENT REQUIRING FAIL-SAFE PERFORMANCE OR OPERATION. NEITHER THE OFFERINGS NOR CROWDSTRIKE TOOLS ARE FOR USE IN THE OPERATION OF AIRCRAFT NAVIGATION, NUCLEAR FACILITIES, COMMUNICATION SYSTEMS, WEAPONS SYSTEMS, DIRECT OR INDIRECT LIFE-SUPPORT SYSTEMS, AIR TRAFFIC CONTROL, OR ANY APPLICATION OR INSTALLATION WHERE FAILURE COULD RESULT IN DEATH, SEVERE PHYSICAL INJURY, OR PROPERTY DAMAGE. […]

It's about safety, but truly ironic how it mentions aircraft-related twice, and communication systems (very broad).

It certainly doesn't impose confidence in the overall stability. But it's also general ToS-speak, and may only be noteworthy now, after the fact.

[-] Kissaki@programming.dev 53 points 1 year ago* (last edited 1 year ago)

no no no, this is the wrong way around

because sales and marketing sell it before it even exists

[-] Kissaki@programming.dev 61 points 1 year ago
[-] Kissaki@programming.dev 60 points 1 year ago

I scale by dropping requests

[-] Kissaki@programming.dev 75 points 1 year ago

Turned into a skeleton in 10 minutes

view more: next ›

Kissaki

joined 2 years ago