Giter Club home page Giter Club logo

cljog's Introduction

Header

Hi 👋, I'm Alex (AXRS) Scott

I’m a pragmatic and passionate (full-stack) software developer who takes pride in the craft with an aim to deliver value.

I started tinkering with software in my early high school years and became invigorated by the endless possibilities. I love pushing the bounds of my productivity and discovering new things. There is always something new learn.

I relocated from Townsville in 2020 with my wife to lead and grow the JESI team while looking to expand my knowledge and connections within the community. I enjoy cooking (especially smoking meets), escape rooms, working on side projects, exploring new locations for hikes and adventures.

I'm also a new father! (as of November 2022)


  • 🔭 I’m currently working on A Cross-Platform API to replace my Bash scripts

  • 🌱 I’m currently learning Flutter

  • 💬 Ask me about Clojure, Java, Docker, AWS, Azure

  • 📫 How to reach me [email protected], LinkedIn


Core Skills:

  • Java + Clojure
  • JavaScript + ClojureScript
  • Full Stack Development
  • Git
  • Infrastructure Automation and DevOps
    • Terraform
  • Project Management and Planning
  • RDBMS (PostgreSQL + Datomic)
  • Unit + Automated Testing and QA
  • Build System + Developer Automation Tooling
  • Cloud Infrastructure (AWS + Azure)
  • Docker

Languages and Tools:

11ty aws azure backbonejs bash circleci clojure css3 docker figma flutter git gulp html5 java javascript karma linux mocha nodejs postgresql postman react sass selenium sketch sqlite zapier

axrs

axrs

 axrs

axrs


Alexander R Scott's Dev Card

cljog's People

Contributors

andrethehunter avatar axrs avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

andrethehunter

cljog's Issues

Warnings for JDK 14

Running cljog shows warnings from the JVM. When running ./example-scripts/echo.clj for example:

OpenJDK 64-Bit Server VM warning: Ignoring option UseConcMarkSweepGC; support was removed in 14.0
OpenJDK 64-Bit Server VM warning: Ignoring option CMSClassUnloadingEnabled; support was removed in 14.0
OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.

Running

$ java -version
openjdk version "14" 2020-03-17
OpenJDK Runtime Environment AdoptOpenJDK (build 14+36)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 14+36, mixed mode, sharing)

Java from https://github.com/AdoptOpenJDK/homebrew-openjdk

brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk14

Sub-Command Update

Clojure Script that queries APIs for namespaces in config, grabs the latest version of dependencies, and installs them.

Clojars

Clojars has an API that allows getting artifacts by groupId.

[
  {
    "jar_name": "cljs-sync-request",
    "group_name": "io.axrs",
    "homepage": null,
    "description": "A ClojureScript wrapper around sync-request. Make synchronous HTTP requests.",
    "user": "axrs",
    "latest_version": "1.0.0",
    "latest_release": "1.0.0",
    "downloads": 34
  },
  {
    "jar_name": "re-css",
    "group_name": "io.axrs",
    "homepage": "https://github.com/axrs/re-css.git",
    "description": "CSS-in-JS integration with reagent using garden (for use in SPA frameworks like re-frame)",
    "user": "axrs",
    "latest_version": "1.0.0",
    "latest_release": "1.0.0",
    "downloads": 261
  },
  {
    "jar_name": "stone",
    "group_name": "io.axrs",
    "homepage": "https://github.com/axrs/stone.git",
    "description": "Stone",
    "user": "axrs",
    "latest_version": "0.0.1-SNAPSHOT",
    "latest_release": null,
    "downloads": 5
  }
]

Maven

There is a Central Repository Search

{
  "responseHeader": {
    "status": 0,
    "QTime": 0,
    "params": {
      "q": "g:\"org.clojure\"",
      "core": "",
      "indent": "off",
      "spellcheck": "true",
      "fl": "id,g,a,latestVersion,p,ec,repositoryId,text,timestamp,versionCount",
      "start": "",
      "sort": "score desc,timestamp desc,g asc,a asc",
      "spellcheck.count": "5",
      "rows": "2",
      "wt": "json",
      "version": "2.2"
    }
  },
  "response": {
    "numFound": 64,
    "start": 0,
    "docs": [
      {
        "id": "org.clojure:java.data",
        "g": "org.clojure",
        "a": "java.data",
        "latestVersion": "0.1.4",
        "repositoryId": "central",
        "p": "jar",
        "timestamp": 1570996102000,
        "versionCount": 4,
        "text": [
          "org.clojure",
          "java.data",
          "-sources.jar",
          ".jar",
          ".pom"
        ],
        "ec": [
          "-sources.jar",
          ".jar",
          ".pom"
        ]
      },
      {
        "id": "org.clojure:core.cache",
        "g": "org.clojure",
        "a": "core.cache",
        "latestVersion": "0.8.2",
        "repositoryId": "central",
        "p": "jar",
        "timestamp": 1569884509000,
        "versionCount": 13,
        "text": [
          "org.clojure",
          "core.cache",
          "-sources.jar",
          ".jar",
          ".pom"
        ],
        "ec": [
          "-sources.jar",
          ".jar",
          ".pom"
        ]
      }
    ]
  },
  "spellcheck": {
    "suggestions": []
  }
}

`readlink: illegal option -- f` for macOS

Running cljog shows an error for readlink. When running ./example-scripts/echo.clj for example:

readlink: illegal option -- f
usage: readlink [-n] [file ...]

Using standard readlink in macOS Catalina 10.15.4

"Could not locate lazy_require"after clearing ~/.m2/repository/

$ curl https://raw.githubusercontent.com/axrs/cljog/master/cljog -o /usr/local/bin/cljog
############################################################################################################################## 100.0%
$ cljog --update
cljog: Updating CLIs for io.jesi.cli,io.axrs.cli
WARNING: When invoking clojure.main, use -M
Execution error (FileNotFoundException) at user/eval1 (REPL:5).
Could not locate lazy_require/core__init.class, lazy_require/core.clj or lazy_require/core.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.

Full report at:
/var/folders/xt/l66l0pyj6n3gzm89h072z8_m0000gn/T/clojure-2254632496304788591.edn

clojure-2254632496304788591.edn:

{:clojure.main/message
 "Execution error (FileNotFoundException) at user/eval1 (REPL:5).\nCould not locate lazy_require/core__init.class, lazy_require/core.clj or lazy_require/core.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.\n",
 :clojure.main/triage
 {:clojure.error/class java.io.FileNotFoundException,
  :clojure.error/line 5,
  :clojure.error/cause
  "Could not locate lazy_require/core__init.class, lazy_require/core.clj or lazy_require/core.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.",
  :clojure.error/symbol user/eval1,
  :clojure.error/phase :execution},
 :clojure.main/trace
 {:via
  [{:type java.io.FileNotFoundException,
    :message
    "Could not locate lazy_require/core__init.class, lazy_require/core.clj or lazy_require/core.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.",
    :at [clojure.lang.RT load "RT.java" 462]}],
  :trace
  [[clojure.lang.RT load "RT.java" 462]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6839 invoke "core.clj" 6126]
   [clojure.core$load invokeStatic "core.clj" 6125]
   [clojure.core$load doInvoke "core.clj" 6109]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5908]
   [clojure.core$load_one invoke "core.clj" 5903]
   [clojure.core$load_lib$fn__6780 invoke "core.clj" 5948]
   [clojure.core$load_lib invokeStatic "core.clj" 5947]
   [clojure.core$load_lib doInvoke "core.clj" 5928]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$load_libs invokeStatic "core.clj" 5985]
   [clojure.core$load_libs doInvoke "core.clj" 5969]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$require invokeStatic "core.clj" 6007]
   [clojure.core$require doInvoke "core.clj" 6007]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [user$eval1 invokeStatic "NO_SOURCE_FILE" 5]
   [user$eval1 invoke "NO_SOURCE_FILE" 5]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler eval "Compiler.java" 7166]
   [clojure.lang.Compiler eval "Compiler.java" 7132]
   [clojure.core$eval invokeStatic "core.clj" 3214]
   [clojure.main$eval_opt invokeStatic "main.clj" 488]
   [clojure.main$eval_opt invoke "main.clj" 482]
   [clojure.main$initialize invokeStatic "main.clj" 508]
   [clojure.main$null_opt invokeStatic "main.clj" 542]
   [clojure.main$null_opt invoke "main.clj" 539]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause
  "Could not locate lazy_require/core__init.class, lazy_require/core.clj or lazy_require/core.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name."}}

Don't crash if `~/.clojure` could not be created

Running cljog in https://github.com/jesims/build-bus locally with https://github.com/AndreTheHunter/dotfiles/blob/master/bin/docker-here tries to create a .clojure and .cljog directory.

$ wget https://raw.githubusercontent.com/axrs/cljog/master/example-scripts/echo.clj
$ docker-here jesiio/build-bus
$ cljog
cljog: Initialising config file: /home/node/.cljog
touch: cannot touch '/home/node/.cljog': Permission denied
$cljog echo.clj
mkdir: cannot create directory ‘/home/node/.clojure’: Permission denied

Docs

There are quite a few features involved now the cljog that writing some docs would be benificial:

  • Example Scripts
    -- Loading deps at runtime
    -- Loading deps at launch (deps.edn)
  • Example CLI tools
  • Comparison with other tools (like closh, joker, etc.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.