From 5b298a1ab84fafe69c6158e16ef028ae666cf4fd Mon Sep 17 00:00:00 2001 From: github-actions-bot Date: Sun, 24 Sep 2023 13:01:47 +0000 Subject: [PATCH] Updates --- 1c-enterprise/daily/index.xml | 2 +- 1c-enterprise/weekly/index.xml | 7 ++++ 2-dimensional-array/daily/index.xml | 2 +- 2-dimensional-array/weekly/index.xml | 7 ++++ 4d/daily/index.xml | 2 +- 4d/weekly/index.xml | 7 ++++ abap-cds/daily/index.xml | 2 +- abap-cds/weekly/index.xml | 7 ++++ abap/daily/index.xml | 2 +- abap/weekly/index.xml | 7 ++++ abnf/daily/index.xml | 2 +- abnf/weekly/index.xml | 7 ++++ actionscript/daily/index.xml | 2 +- actionscript/weekly/index.xml | 7 ++++ ada/daily/index.xml | 2 +- ada/weekly/index.xml | 7 ++++ adobe-font-metrics/daily/index.xml | 2 +- adobe-font-metrics/weekly/index.xml | 7 ++++ agda/daily/index.xml | 2 +- agda/weekly/index.xml | 7 ++++ ags-script/daily/index.xml | 2 +- ags-script/weekly/index.xml | 7 ++++ aidl/daily/index.xml | 2 +- aidl/weekly/index.xml | 7 ++++ al/daily/index.xml | 2 +- al/weekly/index.xml | 7 ++++ all/daily/index.xml | 32 +++++++++---------- all/weekly/index.xml | 28 ++++++++++++++++ alloy/daily/index.xml | 2 +- alloy/weekly/index.xml | 7 ++++ alpine-abuild/daily/index.xml | 2 +- alpine-abuild/weekly/index.xml | 7 ++++ altium-designer/daily/index.xml | 2 +- altium-designer/weekly/index.xml | 7 ++++ ampl/daily/index.xml | 2 +- ampl/weekly/index.xml | 7 ++++ angelscript/daily/index.xml | 2 +- angelscript/weekly/index.xml | 7 ++++ ant-build-system/daily/index.xml | 2 +- ant-build-system/weekly/index.xml | 7 ++++ antlr/daily/index.xml | 2 +- antlr/weekly/index.xml | 7 ++++ apacheconf/daily/index.xml | 2 +- apacheconf/weekly/index.xml | 7 ++++ apex/daily/index.xml | 2 +- apex/weekly/index.xml | 7 ++++ api-blueprint/daily/index.xml | 2 +- api-blueprint/weekly/index.xml | 7 ++++ apl/daily/index.xml | 2 +- apl/weekly/index.xml | 7 ++++ apollo-guidance-computer/daily/index.xml | 2 +- apollo-guidance-computer/weekly/index.xml | 7 ++++ applescript/daily/index.xml | 2 +- applescript/weekly/index.xml | 7 ++++ arc/daily/index.xml | 2 +- arc/weekly/index.xml | 7 ++++ asciidoc/daily/index.xml | 9 +++++- asciidoc/weekly/index.xml | 7 ++++ asl/daily/index.xml | 2 +- asl/weekly/index.xml | 7 ++++ asn.1/daily/index.xml | 2 +- asn.1/weekly/index.xml | 7 ++++ asp.net/daily/index.xml | 2 +- asp.net/weekly/index.xml | 7 ++++ aspectj/daily/index.xml | 2 +- aspectj/weekly/index.xml | 7 ++++ assembly/daily/index.xml | 16 +++++++++- assembly/weekly/index.xml | 7 ++++ astro/daily/index.xml | 16 +++++++++- astro/weekly/index.xml | 21 ++++++++++++ asymptote/daily/index.xml | 2 +- asymptote/weekly/index.xml | 7 ++++ ats/daily/index.xml | 2 +- ats/weekly/index.xml | 7 ++++ augeas/daily/index.xml | 2 +- augeas/weekly/index.xml | 7 ++++ autohotkey/daily/index.xml | 2 +- autohotkey/weekly/index.xml | 21 ++++++++++++ autoit/daily/index.xml | 2 +- autoit/weekly/index.xml | 7 ++++ avro-idl/daily/index.xml | 2 +- avro-idl/weekly/index.xml | 7 ++++ awk/daily/index.xml | 2 +- awk/weekly/index.xml | 7 ++++ ballerina/daily/index.xml | 2 +- ballerina/weekly/index.xml | 14 ++++++++ basic/daily/index.xml | 2 +- basic/weekly/index.xml | 7 ++++ batchfile/daily/index.xml | 9 +++++- batchfile/weekly/index.xml | 7 ++++ beef/daily/index.xml | 2 +- beef/weekly/index.xml | 7 ++++ befunge/daily/index.xml | 2 +- befunge/weekly/index.xml | 7 ++++ berry/daily/index.xml | 2 +- berry/weekly/index.xml | 7 ++++ bibtex/daily/index.xml | 2 +- bibtex/weekly/index.xml | 7 ++++ bicep/daily/index.xml | 2 +- bicep/weekly/index.xml | 7 ++++ bison/daily/index.xml | 2 +- bison/weekly/index.xml | 7 ++++ bitbake/daily/index.xml | 2 +- bitbake/weekly/index.xml | 14 ++++++++ blade/daily/index.xml | 9 +++++- blade/weekly/index.xml | 21 ++++++++++++ blitzbasic/daily/index.xml | 2 +- blitzbasic/weekly/index.xml | 7 ++++ blitzmax/daily/index.xml | 2 +- blitzmax/weekly/index.xml | 7 ++++ bluespec/daily/index.xml | 2 +- bluespec/weekly/index.xml | 7 ++++ boo/daily/index.xml | 2 +- boo/weekly/index.xml | 7 ++++ boogie/daily/index.xml | 2 +- boogie/weekly/index.xml | 7 ++++ brainfuck/daily/index.xml | 2 +- brainfuck/weekly/index.xml | 7 ++++ brightscript/daily/index.xml | 2 +- brightscript/weekly/index.xml | 7 ++++ browserslist/daily/index.xml | 2 +- browserslist/weekly/index.xml | 7 ++++ c%23/daily/index.xml | 16 +++++++++- c%23/weekly/index.xml | 28 ++++++++++++++++ c++/daily/index.xml | 9 +++++- c++/weekly/index.xml | 28 ++++++++++++++++ c-objdump/daily/index.xml | 2 +- c-objdump/weekly/index.xml | 7 ++++ c/daily/index.xml | 9 +++++- c/weekly/index.xml | 28 ++++++++++++++++ c2hs-haskell/daily/index.xml | 2 +- c2hs-haskell/weekly/index.xml | 7 ++++ cabal-config/daily/index.xml | 2 +- cabal-config/weekly/index.xml | 7 ++++ cadence/daily/index.xml | 2 +- cadence/weekly/index.xml | 7 ++++ cairo/daily/index.xml | 2 +- cairo/weekly/index.xml | 14 ++++++++ cap'n-proto/daily/index.xml | 2 +- cap'n-proto/weekly/index.xml | 7 ++++ cartocss/daily/index.xml | 2 +- cartocss/weekly/index.xml | 7 ++++ ceylon/daily/index.xml | 2 +- ceylon/weekly/index.xml | 7 ++++ chapel/daily/index.xml | 2 +- chapel/weekly/index.xml | 7 ++++ charity/daily/index.xml | 2 +- charity/weekly/index.xml | 7 ++++ chuck/daily/index.xml | 2 +- chuck/weekly/index.xml | 7 ++++ cil/daily/index.xml | 2 +- cil/weekly/index.xml | 7 ++++ cirru/daily/index.xml | 2 +- cirru/weekly/index.xml | 7 ++++ clarion/daily/index.xml | 2 +- clarion/weekly/index.xml | 7 ++++ clarity/daily/index.xml | 2 +- clarity/weekly/index.xml | 7 ++++ classic-asp/daily/index.xml | 2 +- classic-asp/weekly/index.xml | 14 ++++++++ clean/daily/index.xml | 2 +- clean/weekly/index.xml | 7 ++++ click/daily/index.xml | 2 +- click/weekly/index.xml | 7 ++++ clips/daily/index.xml | 2 +- clips/weekly/index.xml | 7 ++++ clojure/daily/index.xml | 9 +++++- clojure/weekly/index.xml | 14 ++++++++ closure-templates/daily/index.xml | 2 +- closure-templates/weekly/index.xml | 7 ++++ .../daily/index.xml | 2 +- .../weekly/index.xml | 7 ++++ cmake/daily/index.xml | 2 +- cmake/weekly/index.xml | 21 ++++++++++++ cobol/daily/index.xml | 2 +- cobol/weekly/index.xml | 14 ++++++++ codeowners/daily/index.xml | 2 +- codeowners/weekly/index.xml | 7 ++++ codeql/daily/index.xml | 2 +- codeql/weekly/index.xml | 7 ++++ coffeescript/daily/index.xml | 2 +- coffeescript/weekly/index.xml | 28 ++++++++++++++++ coldfusion-cfc/daily/index.xml | 2 +- coldfusion-cfc/weekly/index.xml | 7 ++++ coldfusion/daily/index.xml | 2 +- coldfusion/weekly/index.xml | 7 ++++ collada/daily/index.xml | 2 +- collada/weekly/index.xml | 7 ++++ common-lisp/daily/index.xml | 2 +- common-lisp/weekly/index.xml | 7 ++++ common-workflow-language/daily/index.xml | 2 +- common-workflow-language/weekly/index.xml | 7 ++++ component-pascal/daily/index.xml | 2 +- component-pascal/weekly/index.xml | 7 ++++ conll-u/daily/index.xml | 2 +- conll-u/weekly/index.xml | 7 ++++ cool/daily/index.xml | 2 +- cool/weekly/index.xml | 7 ++++ coq/daily/index.xml | 2 +- coq/weekly/index.xml | 7 ++++ cpp-objdump/daily/index.xml | 2 +- cpp-objdump/weekly/index.xml | 7 ++++ creole/daily/index.xml | 2 +- creole/weekly/index.xml | 7 ++++ crystal/daily/index.xml | 2 +- crystal/weekly/index.xml | 7 ++++ cson/daily/index.xml | 2 +- cson/weekly/index.xml | 7 ++++ csound-document/daily/index.xml | 2 +- csound-document/weekly/index.xml | 7 ++++ csound-score/daily/index.xml | 2 +- csound-score/weekly/index.xml | 7 ++++ csound/daily/index.xml | 2 +- csound/weekly/index.xml | 7 ++++ css/daily/index.xml | 23 ++++++++++++- css/weekly/index.xml | 28 ++++++++++++++++ csv/daily/index.xml | 2 +- csv/weekly/index.xml | 7 ++++ cuda/daily/index.xml | 2 +- cuda/weekly/index.xml | 14 ++++++++ cue/daily/index.xml | 2 +- cue/weekly/index.xml | 7 ++++ curl-config/daily/index.xml | 2 +- curl-config/weekly/index.xml | 7 ++++ curry/daily/index.xml | 2 +- curry/weekly/index.xml | 7 ++++ cweb/daily/index.xml | 2 +- cweb/weekly/index.xml | 7 ++++ cycript/daily/index.xml | 2 +- cycript/weekly/index.xml | 7 ++++ cython/daily/index.xml | 2 +- cython/weekly/index.xml | 14 ++++++++ d-objdump/daily/index.xml | 2 +- d-objdump/weekly/index.xml | 7 ++++ d/daily/index.xml | 2 +- d/weekly/index.xml | 21 ++++++++++++ dafny/daily/index.xml | 2 +- dafny/weekly/index.xml | 7 ++++ darcs-patch/daily/index.xml | 2 +- darcs-patch/weekly/index.xml | 7 ++++ dart/daily/index.xml | 9 +++++- dart/weekly/index.xml | 28 ++++++++++++++++ dataweave/daily/index.xml | 2 +- dataweave/weekly/index.xml | 7 ++++ debian-package-control-file/daily/index.xml | 2 +- debian-package-control-file/weekly/index.xml | 7 ++++ denizenscript/daily/index.xml | 2 +- denizenscript/weekly/index.xml | 7 ++++ desktop/daily/index.xml | 2 +- desktop/weekly/index.xml | 7 ++++ dhall/daily/index.xml | 2 +- dhall/weekly/index.xml | 7 ++++ diff/daily/index.xml | 2 +- diff/weekly/index.xml | 7 ++++ digital-command-language/daily/index.xml | 2 +- digital-command-language/weekly/index.xml | 7 ++++ dircolors/daily/index.xml | 2 +- dircolors/weekly/index.xml | 7 ++++ directx-3d-file/daily/index.xml | 2 +- directx-3d-file/weekly/index.xml | 7 ++++ dm/daily/index.xml | 2 +- dm/weekly/index.xml | 7 ++++ dns-zone/daily/index.xml | 2 +- dns-zone/weekly/index.xml | 7 ++++ dockerfile/daily/index.xml | 2 +- dockerfile/weekly/index.xml | 21 ++++++++++++ dogescript/daily/index.xml | 2 +- dogescript/weekly/index.xml | 7 ++++ dtrace/daily/index.xml | 2 +- dtrace/weekly/index.xml | 7 ++++ dylan/daily/index.xml | 2 +- dylan/weekly/index.xml | 7 ++++ e-mail/daily/index.xml | 2 +- e-mail/weekly/index.xml | 7 ++++ e/daily/index.xml | 2 +- e/weekly/index.xml | 7 ++++ eagle/daily/index.xml | 2 +- eagle/weekly/index.xml | 7 ++++ earthly/daily/index.xml | 2 +- earthly/weekly/index.xml | 7 ++++ easybuild/daily/index.xml | 2 +- easybuild/weekly/index.xml | 7 ++++ ebnf/daily/index.xml | 2 +- ebnf/weekly/index.xml | 7 ++++ ec/daily/index.xml | 2 +- ec/weekly/index.xml | 7 ++++ ecere-projects/daily/index.xml | 2 +- ecere-projects/weekly/index.xml | 7 ++++ ecl/daily/index.xml | 2 +- ecl/weekly/index.xml | 7 ++++ eclipse/daily/index.xml | 2 +- eclipse/weekly/index.xml | 7 ++++ editorconfig/daily/index.xml | 2 +- editorconfig/weekly/index.xml | 7 ++++ edje-data-collection/daily/index.xml | 2 +- edje-data-collection/weekly/index.xml | 7 ++++ edn/daily/index.xml | 2 +- edn/weekly/index.xml | 7 ++++ eiffel/daily/index.xml | 2 +- eiffel/weekly/index.xml | 7 ++++ ejs/daily/index.xml | 2 +- ejs/weekly/index.xml | 21 ++++++++++++ elixir/daily/index.xml | 2 +- elixir/weekly/index.xml | 28 ++++++++++++++++ elm/daily/index.xml | 2 +- elm/weekly/index.xml | 7 ++++ emacs-lisp/daily/index.xml | 9 +++++- emacs-lisp/weekly/index.xml | 28 ++++++++++++++++ emberscript/daily/index.xml | 2 +- emberscript/weekly/index.xml | 7 ++++ eq/daily/index.xml | 2 +- eq/weekly/index.xml | 7 ++++ erlang/daily/index.xml | 2 +- erlang/weekly/index.xml | 14 ++++++++ euphoria/daily/index.xml | 2 +- euphoria/weekly/index.xml | 7 ++++ f%23/daily/index.xml | 2 +- f%23/weekly/index.xml | 21 ++++++++++++ f*/daily/index.xml | 2 +- f*/weekly/index.xml | 7 ++++ factor/daily/index.xml | 2 +- factor/weekly/index.xml | 7 ++++ fancy/daily/index.xml | 2 +- fancy/weekly/index.xml | 7 ++++ fantom/daily/index.xml | 2 +- fantom/weekly/index.xml | 7 ++++ faust/daily/index.xml | 2 +- faust/weekly/index.xml | 7 ++++ fennel/daily/index.xml | 2 +- fennel/weekly/index.xml | 7 ++++ figlet-font/daily/index.xml | 2 +- figlet-font/weekly/index.xml | 7 ++++ filebench-wml/daily/index.xml | 2 +- filebench-wml/weekly/index.xml | 7 ++++ filterscript/daily/index.xml | 2 +- filterscript/weekly/index.xml | 7 ++++ fish/daily/index.xml | 2 +- fish/weekly/index.xml | 7 ++++ fluent/daily/index.xml | 2 +- fluent/weekly/index.xml | 7 ++++ flux/daily/index.xml | 2 +- flux/weekly/index.xml | 7 ++++ formatted/daily/index.xml | 2 +- formatted/weekly/index.xml | 7 ++++ forth/daily/index.xml | 2 +- forth/weekly/index.xml | 7 ++++ fortran-free-form/daily/index.xml | 2 +- fortran-free-form/weekly/index.xml | 7 ++++ fortran/daily/index.xml | 2 +- fortran/weekly/index.xml | 14 ++++++++ freebasic/daily/index.xml | 2 +- freebasic/weekly/index.xml | 7 ++++ freemarker/daily/index.xml | 2 +- freemarker/weekly/index.xml | 7 ++++ frege/daily/index.xml | 2 +- frege/weekly/index.xml | 7 ++++ futhark/daily/index.xml | 2 +- futhark/weekly/index.xml | 7 ++++ g-code/daily/index.xml | 2 +- g-code/weekly/index.xml | 7 ++++ game-maker-language/daily/index.xml | 2 +- game-maker-language/weekly/index.xml | 7 ++++ gaml/daily/index.xml | 2 +- gaml/weekly/index.xml | 7 ++++ gams/daily/index.xml | 2 +- gams/weekly/index.xml | 7 ++++ gap/daily/index.xml | 2 +- gap/weekly/index.xml | 7 ++++ gcc-machine-description/daily/index.xml | 2 +- gcc-machine-description/weekly/index.xml | 7 ++++ gdb/daily/index.xml | 2 +- gdb/weekly/index.xml | 7 ++++ gdscript/daily/index.xml | 19 +++++++---- gdscript/weekly/index.xml | 28 ++++++++++++++++ gedcom/daily/index.xml | 2 +- gedcom/weekly/index.xml | 7 ++++ gemfile.lock/daily/index.xml | 2 +- gemfile.lock/weekly/index.xml | 7 ++++ genero-forms/daily/index.xml | 2 +- genero-forms/weekly/index.xml | 7 ++++ genero/daily/index.xml | 2 +- genero/weekly/index.xml | 7 ++++ genie/daily/index.xml | 2 +- genie/weekly/index.xml | 7 ++++ genshi/daily/index.xml | 2 +- genshi/weekly/index.xml | 7 ++++ gentoo-ebuild/daily/index.xml | 2 +- gentoo-ebuild/weekly/index.xml | 7 ++++ gentoo-eclass/daily/index.xml | 2 +- gentoo-eclass/weekly/index.xml | 7 ++++ gerber-image/daily/index.xml | 2 +- gerber-image/weekly/index.xml | 7 ++++ gettext-catalog/daily/index.xml | 2 +- gettext-catalog/weekly/index.xml | 7 ++++ gherkin/daily/index.xml | 2 +- gherkin/weekly/index.xml | 7 ++++ git-attributes/daily/index.xml | 2 +- git-attributes/weekly/index.xml | 7 ++++ git-config/daily/index.xml | 2 +- git-config/weekly/index.xml | 7 ++++ gleam/daily/index.xml | 2 +- gleam/weekly/index.xml | 7 ++++ glsl/daily/index.xml | 9 +++++- glsl/weekly/index.xml | 14 ++++++++ .../daily/index.xml | 2 +- .../weekly/index.xml | 7 ++++ glyph/daily/index.xml | 2 +- glyph/weekly/index.xml | 7 ++++ gn/daily/index.xml | 2 +- gn/weekly/index.xml | 7 ++++ gnuplot/daily/index.xml | 2 +- gnuplot/weekly/index.xml | 7 ++++ go-checksums/daily/index.xml | 2 +- go-checksums/weekly/index.xml | 7 ++++ go-module/daily/index.xml | 2 +- go-module/weekly/index.xml | 7 ++++ go/daily/index.xml | 16 +++++++++- go/weekly/index.xml | 28 ++++++++++++++++ golo/daily/index.xml | 2 +- golo/weekly/index.xml | 7 ++++ gosu/daily/index.xml | 2 +- gosu/weekly/index.xml | 7 ++++ grace/daily/index.xml | 2 +- grace/weekly/index.xml | 7 ++++ gradle/daily/index.xml | 2 +- gradle/weekly/index.xml | 7 ++++ grammatical-framework/daily/index.xml | 2 +- grammatical-framework/weekly/index.xml | 7 ++++ graph-modeling-language/daily/index.xml | 2 +- graph-modeling-language/weekly/index.xml | 7 ++++ graphql/daily/index.xml | 2 +- graphql/weekly/index.xml | 7 ++++ graphviz-(dot)/daily/index.xml | 2 +- graphviz-(dot)/weekly/index.xml | 7 ++++ groovy-server-pages/daily/index.xml | 2 +- groovy-server-pages/weekly/index.xml | 7 ++++ groovy/daily/index.xml | 9 +++++- groovy/weekly/index.xml | 21 ++++++++++++ gsc/daily/index.xml | 2 +- gsc/weekly/index.xml | 7 ++++ hack/daily/index.xml | 2 +- hack/weekly/index.xml | 7 ++++ haml/daily/index.xml | 2 +- haml/weekly/index.xml | 7 ++++ handlebars/daily/index.xml | 2 +- handlebars/weekly/index.xml | 14 ++++++++ haproxy/daily/index.xml | 2 +- haproxy/weekly/index.xml | 7 ++++ harbour/daily/index.xml | 2 +- harbour/weekly/index.xml | 7 ++++ haskell/daily/index.xml | 23 ++++++++++++- haskell/weekly/index.xml | 28 ++++++++++++++++ haxe/daily/index.xml | 2 +- haxe/weekly/index.xml | 14 ++++++++ hcl/daily/index.xml | 9 +++++- hcl/weekly/index.xml | 28 ++++++++++++++++ hiveql/daily/index.xml | 2 +- hiveql/weekly/index.xml | 7 ++++ hlsl/daily/index.xml | 2 +- hlsl/weekly/index.xml | 7 ++++ holyc/daily/index.xml | 2 +- holyc/weekly/index.xml | 7 ++++ hoon/daily/index.xml | 2 +- hoon/weekly/index.xml | 7 ++++ html+ecr/daily/index.xml | 2 +- html+ecr/weekly/index.xml | 7 ++++ html+eex/daily/index.xml | 2 +- html+eex/weekly/index.xml | 7 ++++ html+erb/daily/index.xml | 2 +- html+erb/weekly/index.xml | 7 ++++ html+php/daily/index.xml | 2 +- html+php/weekly/index.xml | 7 ++++ html+razor/daily/index.xml | 2 +- html+razor/weekly/index.xml | 7 ++++ html/daily/index.xml | 9 +++++- html/weekly/index.xml | 28 ++++++++++++++++ http/daily/index.xml | 2 +- http/weekly/index.xml | 7 ++++ hxml/daily/index.xml | 2 +- hxml/weekly/index.xml | 7 ++++ hy/daily/index.xml | 9 +++++- hy/weekly/index.xml | 7 ++++ hyphy/daily/index.xml | 2 +- hyphy/weekly/index.xml | 7 ++++ idl/daily/index.xml | 2 +- idl/weekly/index.xml | 7 ++++ idris/daily/index.xml | 2 +- idris/weekly/index.xml | 7 ++++ ignore-list/daily/index.xml | 2 +- ignore-list/weekly/index.xml | 7 ++++ igor-pro/daily/index.xml | 2 +- igor-pro/weekly/index.xml | 7 ++++ imagej-macro/daily/index.xml | 2 +- imagej-macro/weekly/index.xml | 7 ++++ inform-7/daily/index.xml | 2 +- inform-7/weekly/index.xml | 7 ++++ ini/daily/index.xml | 2 +- ini/weekly/index.xml | 7 ++++ inno-setup/daily/index.xml | 2 +- inno-setup/weekly/index.xml | 7 ++++ io/daily/index.xml | 2 +- io/weekly/index.xml | 7 ++++ ioke/daily/index.xml | 2 +- ioke/weekly/index.xml | 7 ++++ irc-log/daily/index.xml | 2 +- irc-log/weekly/index.xml | 7 ++++ isabelle-root/daily/index.xml | 2 +- isabelle-root/weekly/index.xml | 7 ++++ isabelle/daily/index.xml | 2 +- isabelle/weekly/index.xml | 7 ++++ j/daily/index.xml | 2 +- j/weekly/index.xml | 7 ++++ janet/daily/index.xml | 2 +- janet/weekly/index.xml | 7 ++++ jar-manifest/daily/index.xml | 2 +- jar-manifest/weekly/index.xml | 7 ++++ jasmin/daily/index.xml | 2 +- jasmin/weekly/index.xml | 7 ++++ java-properties/daily/index.xml | 2 +- java-properties/weekly/index.xml | 7 ++++ java-server-pages/daily/index.xml | 2 +- java-server-pages/weekly/index.xml | 7 ++++ java/daily/index.xml | 9 +++++- java/weekly/index.xml | 28 ++++++++++++++++ javascript+erb/daily/index.xml | 2 +- javascript+erb/weekly/index.xml | 7 ++++ javascript/daily/index.xml | 23 ++++++++++++- javascript/weekly/index.xml | 28 ++++++++++++++++ jest-snapshot/daily/index.xml | 2 +- jest-snapshot/weekly/index.xml | 7 ++++ jflex/daily/index.xml | 2 +- jflex/weekly/index.xml | 7 ++++ jinja/daily/index.xml | 2 +- jinja/weekly/index.xml | 7 ++++ jison-lex/daily/index.xml | 2 +- jison-lex/weekly/index.xml | 7 ++++ jison/daily/index.xml | 2 +- jison/weekly/index.xml | 7 ++++ jolie/daily/index.xml | 2 +- jolie/weekly/index.xml | 7 ++++ jq/daily/index.xml | 2 +- jq/weekly/index.xml | 7 ++++ json-with-comments/daily/index.xml | 2 +- json-with-comments/weekly/index.xml | 7 ++++ json/daily/index.xml | 2 +- json/weekly/index.xml | 7 ++++ json5/daily/index.xml | 2 +- json5/weekly/index.xml | 7 ++++ jsoniq/daily/index.xml | 2 +- jsoniq/weekly/index.xml | 7 ++++ jsonld/daily/index.xml | 2 +- jsonld/weekly/index.xml | 7 ++++ jsonnet/daily/index.xml | 2 +- jsonnet/weekly/index.xml | 14 ++++++++ julia/daily/index.xml | 9 +++++- julia/weekly/index.xml | 14 ++++++++ jupyter-notebook/daily/index.xml | 23 ++++++++++++- jupyter-notebook/weekly/index.xml | 28 ++++++++++++++++ kaitai-struct/daily/index.xml | 2 +- kaitai-struct/weekly/index.xml | 7 ++++ kakounescript/daily/index.xml | 2 +- kakounescript/weekly/index.xml | 7 ++++ kicad-layout/daily/index.xml | 2 +- kicad-layout/weekly/index.xml | 7 ++++ kicad-legacy-layout/daily/index.xml | 2 +- kicad-legacy-layout/weekly/index.xml | 7 ++++ kicad-schematic/daily/index.xml | 2 +- kicad-schematic/weekly/index.xml | 7 ++++ kit/daily/index.xml | 2 +- kit/weekly/index.xml | 7 ++++ kotlin/daily/index.xml | 9 +++++- kotlin/weekly/index.xml | 28 ++++++++++++++++ krl/daily/index.xml | 2 +- krl/weekly/index.xml | 7 ++++ kusto/daily/index.xml | 2 +- kusto/weekly/index.xml | 7 ++++ kvlang/daily/index.xml | 2 +- kvlang/weekly/index.xml | 7 ++++ labview/daily/index.xml | 2 +- labview/weekly/index.xml | 7 ++++ lark/daily/index.xml | 2 +- lark/weekly/index.xml | 7 ++++ lasso/daily/index.xml | 2 +- lasso/weekly/index.xml | 7 ++++ latte/daily/index.xml | 2 +- latte/weekly/index.xml | 7 ++++ lean/daily/index.xml | 16 +++++++++- lean/weekly/index.xml | 28 ++++++++++++++++ less/daily/index.xml | 2 +- less/weekly/index.xml | 7 ++++ lex/daily/index.xml | 2 +- lex/weekly/index.xml | 7 ++++ lfe/daily/index.xml | 2 +- lfe/weekly/index.xml | 7 ++++ ligolang/daily/index.xml | 2 +- ligolang/weekly/index.xml | 7 ++++ lilypond/daily/index.xml | 2 +- lilypond/weekly/index.xml | 7 ++++ limbo/daily/index.xml | 2 +- limbo/weekly/index.xml | 7 ++++ linker-script/daily/index.xml | 2 +- linker-script/weekly/index.xml | 7 ++++ linux-kernel-module/daily/index.xml | 2 +- linux-kernel-module/weekly/index.xml | 7 ++++ liquid/daily/index.xml | 2 +- liquid/weekly/index.xml | 7 ++++ literate-agda/daily/index.xml | 2 +- literate-agda/weekly/index.xml | 7 ++++ literate-coffeescript/daily/index.xml | 2 +- literate-coffeescript/weekly/index.xml | 7 ++++ literate-haskell/daily/index.xml | 2 +- literate-haskell/weekly/index.xml | 7 ++++ livescript/daily/index.xml | 2 +- livescript/weekly/index.xml | 7 ++++ llvm/daily/index.xml | 2 +- llvm/weekly/index.xml | 7 ++++ logos/daily/index.xml | 2 +- logos/weekly/index.xml | 14 ++++++++ logtalk/daily/index.xml | 2 +- logtalk/weekly/index.xml | 7 ++++ lolcode/daily/index.xml | 2 +- lolcode/weekly/index.xml | 7 ++++ lookml/daily/index.xml | 2 +- lookml/weekly/index.xml | 7 ++++ loomscript/daily/index.xml | 2 +- loomscript/weekly/index.xml | 7 ++++ lsl/daily/index.xml | 2 +- lsl/weekly/index.xml | 7 ++++ ltspice-symbol/daily/index.xml | 2 +- ltspice-symbol/weekly/index.xml | 7 ++++ lua/daily/index.xml | 9 +++++- lua/weekly/index.xml | 28 ++++++++++++++++ m/daily/index.xml | 2 +- m/weekly/index.xml | 7 ++++ m4/daily/index.xml | 2 +- m4/weekly/index.xml | 7 ++++ m4sugar/daily/index.xml | 2 +- m4sugar/weekly/index.xml | 7 ++++ macaulay2/daily/index.xml | 2 +- macaulay2/weekly/index.xml | 7 ++++ makefile/daily/index.xml | 16 +++++++++- makefile/weekly/index.xml | 28 ++++++++++++++++ mako/daily/index.xml | 2 +- mako/weekly/index.xml | 7 ++++ markdown/daily/index.xml | 2 +- markdown/weekly/index.xml | 14 ++++++++ marko/daily/index.xml | 2 +- marko/weekly/index.xml | 7 ++++ mask/daily/index.xml | 2 +- mask/weekly/index.xml | 7 ++++ mathematica/daily/index.xml | 2 +- mathematica/weekly/index.xml | 7 ++++ matlab/daily/index.xml | 19 ++++------- matlab/weekly/index.xml | 28 ++++++++++++++++ maven-pom/daily/index.xml | 2 +- maven-pom/weekly/index.xml | 7 ++++ max/daily/index.xml | 2 +- max/weekly/index.xml | 7 ++++ maxscript/daily/index.xml | 2 +- maxscript/weekly/index.xml | 7 ++++ mcfunction/daily/index.xml | 2 +- mcfunction/weekly/index.xml | 7 ++++ mercury/daily/index.xml | 2 +- mercury/weekly/index.xml | 7 ++++ meson/daily/index.xml | 2 +- meson/weekly/index.xml | 7 ++++ metal/daily/index.xml | 2 +- metal/weekly/index.xml | 7 ++++ .../daily/index.xml | 2 +- .../weekly/index.xml | 7 ++++ .../daily/index.xml | 2 +- .../weekly/index.xml | 7 ++++ minid/daily/index.xml | 2 +- minid/weekly/index.xml | 7 ++++ mint/daily/index.xml | 2 +- mint/weekly/index.xml | 7 ++++ mirah/daily/index.xml | 2 +- mirah/weekly/index.xml | 7 ++++ mirc-script/daily/index.xml | 2 +- mirc-script/weekly/index.xml | 7 ++++ mlir/daily/index.xml | 2 +- mlir/weekly/index.xml | 7 ++++ modelica/daily/index.xml | 2 +- modelica/weekly/index.xml | 7 ++++ modula-2/daily/index.xml | 2 +- modula-2/weekly/index.xml | 7 ++++ modula-3/daily/index.xml | 2 +- modula-3/weekly/index.xml | 7 ++++ module-management-system/daily/index.xml | 2 +- module-management-system/weekly/index.xml | 7 ++++ monkey-c/daily/index.xml | 2 +- monkey-c/weekly/index.xml | 7 ++++ monkey/daily/index.xml | 2 +- monkey/weekly/index.xml | 7 ++++ moocode/daily/index.xml | 2 +- moocode/weekly/index.xml | 7 ++++ moonscript/daily/index.xml | 2 +- moonscript/weekly/index.xml | 7 ++++ motoko/daily/index.xml | 2 +- motoko/weekly/index.xml | 7 ++++ motorola-68k-assembly/daily/index.xml | 2 +- motorola-68k-assembly/weekly/index.xml | 7 ++++ mql4/daily/index.xml | 2 +- mql4/weekly/index.xml | 7 ++++ mql5/daily/index.xml | 2 +- mql5/weekly/index.xml | 7 ++++ mtml/daily/index.xml | 2 +- mtml/weekly/index.xml | 7 ++++ muf/daily/index.xml | 2 +- muf/weekly/index.xml | 7 ++++ mupad/daily/index.xml | 2 +- mupad/weekly/index.xml | 7 ++++ muse/daily/index.xml | 2 +- muse/weekly/index.xml | 7 ++++ mustache/daily/index.xml | 2 +- mustache/weekly/index.xml | 7 ++++ myghty/daily/index.xml | 2 +- myghty/weekly/index.xml | 7 ++++ nanorc/daily/index.xml | 2 +- nanorc/weekly/index.xml | 7 ++++ nasl/daily/index.xml | 2 +- nasl/weekly/index.xml | 7 ++++ ncl/daily/index.xml | 2 +- ncl/weekly/index.xml | 7 ++++ nearley/daily/index.xml | 2 +- nearley/weekly/index.xml | 7 ++++ nemerle/daily/index.xml | 2 +- nemerle/weekly/index.xml | 7 ++++ neon/daily/index.xml | 2 +- neon/weekly/index.xml | 7 ++++ nesc/daily/index.xml | 2 +- nesc/weekly/index.xml | 7 ++++ netlinx+erb/daily/index.xml | 2 +- netlinx+erb/weekly/index.xml | 7 ++++ netlinx/daily/index.xml | 2 +- netlinx/weekly/index.xml | 7 ++++ netlogo/daily/index.xml | 2 +- netlogo/weekly/index.xml | 7 ++++ newlisp/daily/index.xml | 2 +- newlisp/weekly/index.xml | 7 ++++ nextflow/daily/index.xml | 2 +- nextflow/weekly/index.xml | 7 ++++ nginx/daily/index.xml | 2 +- nginx/weekly/index.xml | 14 ++++++++ nim/daily/index.xml | 2 +- nim/weekly/index.xml | 21 ++++++++++++ ninja/daily/index.xml | 2 +- ninja/weekly/index.xml | 7 ++++ nit/daily/index.xml | 2 +- nit/weekly/index.xml | 7 ++++ nix/daily/index.xml | 2 +- nix/weekly/index.xml | 14 ++++++++ nl/daily/index.xml | 2 +- nl/weekly/index.xml | 7 ++++ npm-config/daily/index.xml | 2 +- npm-config/weekly/index.xml | 7 ++++ nsis/daily/index.xml | 2 +- nsis/weekly/index.xml | 7 ++++ nu/daily/index.xml | 2 +- nu/weekly/index.xml | 7 ++++ numpy/daily/index.xml | 2 +- numpy/weekly/index.xml | 7 ++++ nunjucks/daily/index.xml | 2 +- nunjucks/weekly/index.xml | 7 ++++ nwscript/daily/index.xml | 2 +- nwscript/weekly/index.xml | 7 ++++ objdump/daily/index.xml | 2 +- objdump/weekly/index.xml | 7 ++++ object-data-instance-notation/daily/index.xml | 2 +- .../weekly/index.xml | 7 ++++ objective-c++/daily/index.xml | 2 +- objective-c++/weekly/index.xml | 14 ++++++++ objective-c/daily/index.xml | 2 +- objective-c/weekly/index.xml | 14 ++++++++ objective-j/daily/index.xml | 2 +- objective-j/weekly/index.xml | 7 ++++ objectscript/daily/index.xml | 2 +- objectscript/weekly/index.xml | 7 ++++ ocaml/daily/index.xml | 2 +- ocaml/weekly/index.xml | 7 ++++ odin/daily/index.xml | 2 +- odin/weekly/index.xml | 7 ++++ omgrofl/daily/index.xml | 2 +- omgrofl/weekly/index.xml | 7 ++++ ooc/daily/index.xml | 2 +- ooc/weekly/index.xml | 7 ++++ opa/daily/index.xml | 2 +- opa/weekly/index.xml | 7 ++++ opal/daily/index.xml | 2 +- opal/weekly/index.xml | 7 ++++ open-policy-agent/daily/index.xml | 2 +- open-policy-agent/weekly/index.xml | 7 ++++ opencl/daily/index.xml | 2 +- opencl/weekly/index.xml | 7 ++++ openedge-abl/daily/index.xml | 2 +- openedge-abl/weekly/index.xml | 7 ++++ openqasm/daily/index.xml | 2 +- openqasm/weekly/index.xml | 7 ++++ openrc-runscript/daily/index.xml | 2 +- openrc-runscript/weekly/index.xml | 7 ++++ openscad/daily/index.xml | 2 +- openscad/weekly/index.xml | 7 ++++ openstep-property-list/daily/index.xml | 2 +- openstep-property-list/weekly/index.xml | 7 ++++ opentype-feature-file/daily/index.xml | 2 +- opentype-feature-file/weekly/index.xml | 7 ++++ org/daily/index.xml | 2 +- org/weekly/index.xml | 7 ++++ ox/daily/index.xml | 2 +- ox/weekly/index.xml | 7 ++++ oxygene/daily/index.xml | 2 +- oxygene/weekly/index.xml | 7 ++++ oz/daily/index.xml | 2 +- oz/weekly/index.xml | 7 ++++ p4/daily/index.xml | 2 +- p4/weekly/index.xml | 7 ++++ pan/daily/index.xml | 2 +- pan/weekly/index.xml | 7 ++++ papyrus/daily/index.xml | 2 +- papyrus/weekly/index.xml | 7 ++++ parrot-assembly/daily/index.xml | 2 +- parrot-assembly/weekly/index.xml | 7 ++++ .../daily/index.xml | 2 +- .../weekly/index.xml | 7 ++++ parrot/daily/index.xml | 2 +- parrot/weekly/index.xml | 7 ++++ pascal/daily/index.xml | 2 +- pascal/weekly/index.xml | 14 ++++++++ pawn/daily/index.xml | 2 +- pawn/weekly/index.xml | 7 ++++ peg.js/daily/index.xml | 2 +- peg.js/weekly/index.xml | 7 ++++ pep8/daily/index.xml | 2 +- pep8/weekly/index.xml | 7 ++++ perl/daily/index.xml | 16 +++++++++- perl/weekly/index.xml | 28 ++++++++++++++++ php/daily/index.xml | 9 +++++- php/weekly/index.xml | 28 ++++++++++++++++ pic/daily/index.xml | 2 +- pic/weekly/index.xml | 7 ++++ pickle/daily/index.xml | 2 +- pickle/weekly/index.xml | 7 ++++ picolisp/daily/index.xml | 2 +- picolisp/weekly/index.xml | 7 ++++ piglatin/daily/index.xml | 2 +- piglatin/weekly/index.xml | 7 ++++ pike/daily/index.xml | 2 +- pike/weekly/index.xml | 7 ++++ plantuml/daily/index.xml | 2 +- plantuml/weekly/index.xml | 7 ++++ plpgsql/daily/index.xml | 16 +++++++++- plpgsql/weekly/index.xml | 14 ++++++++ plsql/daily/index.xml | 2 +- plsql/weekly/index.xml | 7 ++++ pod-6/daily/index.xml | 2 +- pod-6/weekly/index.xml | 7 ++++ pod/daily/index.xml | 2 +- pod/weekly/index.xml | 7 ++++ pogoscript/daily/index.xml | 2 +- pogoscript/weekly/index.xml | 7 ++++ pony/daily/index.xml | 2 +- pony/weekly/index.xml | 7 ++++ postcss/daily/index.xml | 2 +- postcss/weekly/index.xml | 7 ++++ postscript/daily/index.xml | 2 +- postscript/weekly/index.xml | 7 ++++ pov-ray-sdl/daily/index.xml | 2 +- pov-ray-sdl/weekly/index.xml | 7 ++++ powerbuilder/daily/index.xml | 2 +- powerbuilder/weekly/index.xml | 7 ++++ powershell/daily/index.xml | 2 +- powershell/weekly/index.xml | 28 ++++++++++++++++ prisma/daily/index.xml | 2 +- prisma/weekly/index.xml | 7 ++++ processing/daily/index.xml | 2 +- processing/weekly/index.xml | 7 ++++ procfile/daily/index.xml | 2 +- procfile/weekly/index.xml | 7 ++++ proguard/daily/index.xml | 2 +- proguard/weekly/index.xml | 7 ++++ prolog/daily/index.xml | 2 +- prolog/weekly/index.xml | 14 ++++++++ promela/daily/index.xml | 2 +- promela/weekly/index.xml | 7 ++++ propeller-spin/daily/index.xml | 2 +- propeller-spin/weekly/index.xml | 7 ++++ protocol-buffer-text-format/daily/index.xml | 2 +- protocol-buffer-text-format/weekly/index.xml | 7 ++++ protocol-buffer/daily/index.xml | 2 +- protocol-buffer/weekly/index.xml | 7 ++++ public-key/daily/index.xml | 2 +- public-key/weekly/index.xml | 7 ++++ pug/daily/index.xml | 2 +- pug/weekly/index.xml | 14 ++++++++ puppet/daily/index.xml | 16 +++++++++- puppet/weekly/index.xml | 21 ++++++++++++ pure-data/daily/index.xml | 2 +- pure-data/weekly/index.xml | 7 ++++ purebasic/daily/index.xml | 2 +- purebasic/weekly/index.xml | 7 ++++ purescript/daily/index.xml | 2 +- purescript/weekly/index.xml | 7 ++++ python-console/daily/index.xml | 2 +- python-console/weekly/index.xml | 7 ++++ python-traceback/daily/index.xml | 2 +- python-traceback/weekly/index.xml | 7 ++++ python/daily/index.xml | 32 +++++++++---------- python/weekly/index.xml | 28 ++++++++++++++++ q%23/daily/index.xml | 2 +- q%23/weekly/index.xml | 7 ++++ q/daily/index.xml | 2 +- q/weekly/index.xml | 7 ++++ qmake/daily/index.xml | 2 +- qmake/weekly/index.xml | 7 ++++ qml/daily/index.xml | 2 +- qml/weekly/index.xml | 14 ++++++++ qt-script/daily/index.xml | 2 +- qt-script/weekly/index.xml | 7 ++++ quake/daily/index.xml | 2 +- quake/weekly/index.xml | 7 ++++ r/daily/index.xml | 16 +++++++++- r/weekly/index.xml | 28 ++++++++++++++++ racket/daily/index.xml | 2 +- racket/weekly/index.xml | 14 ++++++++ ragel/daily/index.xml | 2 +- ragel/weekly/index.xml | 7 ++++ raku/daily/index.xml | 9 +++++- raku/weekly/index.xml | 7 ++++ raml/daily/index.xml | 2 +- raml/weekly/index.xml | 7 ++++ rascal/daily/index.xml | 2 +- rascal/weekly/index.xml | 7 ++++ raw-token-data/daily/index.xml | 2 +- raw-token-data/weekly/index.xml | 7 ++++ rdoc/daily/index.xml | 2 +- rdoc/weekly/index.xml | 7 ++++ readline-config/daily/index.xml | 2 +- readline-config/weekly/index.xml | 7 ++++ realbasic/daily/index.xml | 2 +- realbasic/weekly/index.xml | 7 ++++ reason/daily/index.xml | 2 +- reason/weekly/index.xml | 7 ++++ rebol/daily/index.xml | 2 +- rebol/weekly/index.xml | 14 ++++++++ record-jar/daily/index.xml | 2 +- record-jar/weekly/index.xml | 7 ++++ red/daily/index.xml | 2 +- red/weekly/index.xml | 7 ++++ redcode/daily/index.xml | 2 +- redcode/weekly/index.xml | 7 ++++ redirect-rules/daily/index.xml | 2 +- redirect-rules/weekly/index.xml | 7 ++++ regular-expression/daily/index.xml | 2 +- regular-expression/weekly/index.xml | 7 ++++ ren'py/daily/index.xml | 2 +- ren'py/weekly/index.xml | 7 ++++ renderscript/daily/index.xml | 2 +- renderscript/weekly/index.xml | 7 ++++ rescript/daily/index.xml | 2 +- rescript/weekly/index.xml | 7 ++++ restructuredtext/daily/index.xml | 2 +- restructuredtext/weekly/index.xml | 7 ++++ rexx/daily/index.xml | 2 +- rexx/weekly/index.xml | 7 ++++ rich-text-format/daily/index.xml | 2 +- rich-text-format/weekly/index.xml | 7 ++++ ring/daily/index.xml | 2 +- ring/weekly/index.xml | 7 ++++ riot/daily/index.xml | 2 +- riot/weekly/index.xml | 7 ++++ rmarkdown/daily/index.xml | 2 +- rmarkdown/weekly/index.xml | 7 ++++ robotframework/daily/index.xml | 9 +++++- robotframework/weekly/index.xml | 14 ++++++++ robots.txt/daily/index.xml | 2 +- robots.txt/weekly/index.xml | 7 ++++ roff-manpage/daily/index.xml | 2 +- roff-manpage/weekly/index.xml | 7 ++++ roff/daily/index.xml | 2 +- roff/weekly/index.xml | 7 ++++ rouge/daily/index.xml | 2 +- rouge/weekly/index.xml | 7 ++++ rpc/daily/index.xml | 2 +- rpc/weekly/index.xml | 7 ++++ rpgle/daily/index.xml | 2 +- rpgle/weekly/index.xml | 7 ++++ rpm-spec/daily/index.xml | 2 +- rpm-spec/weekly/index.xml | 7 ++++ ruby/daily/index.xml | 2 +- ruby/weekly/index.xml | 14 ++++++++ runoff/daily/index.xml | 2 +- runoff/weekly/index.xml | 7 ++++ rust/daily/index.xml | 9 +++++- rust/weekly/index.xml | 28 ++++++++++++++++ sage/daily/index.xml | 2 +- sage/weekly/index.xml | 7 ++++ saltstack/daily/index.xml | 2 +- saltstack/weekly/index.xml | 7 ++++ sas/daily/index.xml | 2 +- sas/weekly/index.xml | 7 ++++ sass/daily/index.xml | 2 +- sass/weekly/index.xml | 7 ++++ scala/daily/index.xml | 23 ++++++++++++- scala/weekly/index.xml | 14 ++++++++ scaml/daily/index.xml | 2 +- scaml/weekly/index.xml | 7 ++++ scheme/daily/index.xml | 2 +- scheme/weekly/index.xml | 21 ++++++++++++ scilab/daily/index.xml | 2 +- scilab/weekly/index.xml | 7 ++++ scss/daily/index.xml | 9 +++++- scss/weekly/index.xml | 28 ++++++++++++++++ sed/daily/index.xml | 2 +- sed/weekly/index.xml | 7 ++++ self/daily/index.xml | 2 +- self/weekly/index.xml | 7 ++++ selinux-policy/daily/index.xml | 2 +- selinux-policy/weekly/index.xml | 7 ++++ shaderlab/daily/index.xml | 2 +- shaderlab/weekly/index.xml | 7 ++++ shell/daily/index.xml | 23 ++++++++++++- shell/weekly/index.xml | 28 ++++++++++++++++ shellcheck-config/daily/index.xml | 2 +- shellcheck-config/weekly/index.xml | 7 ++++ shellsession/daily/index.xml | 2 +- shellsession/weekly/index.xml | 7 ++++ shen/daily/index.xml | 2 +- shen/weekly/index.xml | 7 ++++ sieve/daily/index.xml | 2 +- sieve/weekly/index.xml | 7 ++++ singularity/daily/index.xml | 2 +- singularity/weekly/index.xml | 7 ++++ slash/daily/index.xml | 2 +- slash/weekly/index.xml | 7 ++++ slice/daily/index.xml | 2 +- slice/weekly/index.xml | 7 ++++ slim/daily/index.xml | 2 +- slim/weekly/index.xml | 7 ++++ smali/daily/index.xml | 2 +- smali/weekly/index.xml | 7 ++++ smalltalk/daily/index.xml | 2 +- smalltalk/weekly/index.xml | 7 ++++ smarty/daily/index.xml | 16 +++++++++- smarty/weekly/index.xml | 21 ++++++++++++ smpl/daily/index.xml | 2 +- smpl/weekly/index.xml | 7 ++++ smt/daily/index.xml | 2 +- smt/weekly/index.xml | 7 ++++ solidity/daily/index.xml | 2 +- solidity/weekly/index.xml | 28 ++++++++++++++++ soong/daily/index.xml | 2 +- soong/weekly/index.xml | 7 ++++ sourcepawn/daily/index.xml | 2 +- sourcepawn/weekly/index.xml | 7 ++++ sparql/daily/index.xml | 2 +- sparql/weekly/index.xml | 7 ++++ spline-font-database/daily/index.xml | 2 +- spline-font-database/weekly/index.xml | 7 ++++ sqf/daily/index.xml | 2 +- sqf/weekly/index.xml | 7 ++++ sql/daily/index.xml | 2 +- sql/weekly/index.xml | 7 ++++ sqlpl/daily/index.xml | 2 +- sqlpl/weekly/index.xml | 7 ++++ squirrel/daily/index.xml | 2 +- squirrel/weekly/index.xml | 7 ++++ srecode-template/daily/index.xml | 2 +- srecode-template/weekly/index.xml | 7 ++++ ssh-config/daily/index.xml | 2 +- ssh-config/weekly/index.xml | 7 ++++ stan/daily/index.xml | 2 +- stan/weekly/index.xml | 7 ++++ standard-ml/daily/index.xml | 2 +- standard-ml/weekly/index.xml | 7 ++++ starlark/daily/index.xml | 2 +- starlark/weekly/index.xml | 7 ++++ stata/daily/index.xml | 2 +- stata/weekly/index.xml | 7 ++++ ston/daily/index.xml | 2 +- ston/weekly/index.xml | 7 ++++ stringtemplate/daily/index.xml | 2 +- stringtemplate/weekly/index.xml | 7 ++++ stylus/daily/index.xml | 2 +- stylus/weekly/index.xml | 14 ++++++++ subrip-text/daily/index.xml | 2 +- subrip-text/weekly/index.xml | 7 ++++ sugarss/daily/index.xml | 2 +- sugarss/weekly/index.xml | 7 ++++ supercollider/daily/index.xml | 2 +- supercollider/weekly/index.xml | 7 ++++ svelte/daily/index.xml | 9 +++++- svelte/weekly/index.xml | 14 ++++++++ svg/daily/index.xml | 2 +- svg/weekly/index.xml | 7 ++++ swift/daily/index.xml | 9 +++++- swift/weekly/index.xml | 28 ++++++++++++++++ swig/daily/index.xml | 2 +- swig/weekly/index.xml | 7 ++++ systemverilog/daily/index.xml | 2 +- systemverilog/weekly/index.xml | 7 ++++ talon/daily/index.xml | 2 +- talon/weekly/index.xml | 7 ++++ tcl/daily/index.xml | 2 +- tcl/weekly/index.xml | 7 ++++ tcsh/daily/index.xml | 2 +- tcsh/weekly/index.xml | 7 ++++ tea/daily/index.xml | 2 +- tea/weekly/index.xml | 7 ++++ terra/daily/index.xml | 2 +- terra/weekly/index.xml | 7 ++++ tex/daily/index.xml | 16 +++++++++- tex/weekly/index.xml | 21 ++++++++++++ texinfo/daily/index.xml | 2 +- texinfo/weekly/index.xml | 7 ++++ text/daily/index.xml | 2 +- text/weekly/index.xml | 7 ++++ textile/daily/index.xml | 2 +- textile/weekly/index.xml | 7 ++++ textmate-properties/daily/index.xml | 2 +- textmate-properties/weekly/index.xml | 7 ++++ thrift/daily/index.xml | 2 +- thrift/weekly/index.xml | 7 ++++ ti-program/daily/index.xml | 2 +- ti-program/weekly/index.xml | 7 ++++ tla/daily/index.xml | 2 +- tla/weekly/index.xml | 7 ++++ toml/daily/index.xml | 2 +- toml/weekly/index.xml | 7 ++++ tsql/daily/index.xml | 2 +- tsql/weekly/index.xml | 7 ++++ tsv/daily/index.xml | 2 +- tsv/weekly/index.xml | 7 ++++ tsx/daily/index.xml | 2 +- tsx/weekly/index.xml | 7 ++++ turing/daily/index.xml | 2 +- turing/weekly/index.xml | 7 ++++ turtle/daily/index.xml | 2 +- turtle/weekly/index.xml | 7 ++++ twig/daily/index.xml | 2 +- twig/weekly/index.xml | 7 ++++ txl/daily/index.xml | 2 +- txl/weekly/index.xml | 7 ++++ type-language/daily/index.xml | 2 +- type-language/weekly/index.xml | 7 ++++ typescript/daily/index.xml | 23 ++++++++++++- typescript/weekly/index.xml | 28 ++++++++++++++++ unified-parallel-c/daily/index.xml | 2 +- unified-parallel-c/weekly/index.xml | 7 ++++ unity3d-asset/daily/index.xml | 2 +- unity3d-asset/weekly/index.xml | 7 ++++ unix-assembly/daily/index.xml | 2 +- unix-assembly/weekly/index.xml | 7 ++++ unknown/daily/index.xml | 30 ++++++++++++----- unknown/weekly/index.xml | 28 ++++++++++++++++ uno/daily/index.xml | 2 +- uno/weekly/index.xml | 7 ++++ unrealscript/daily/index.xml | 2 +- unrealscript/weekly/index.xml | 7 ++++ urweb/daily/index.xml | 2 +- urweb/weekly/index.xml | 7 ++++ v/daily/index.xml | 2 +- v/weekly/index.xml | 7 ++++ vala/daily/index.xml | 2 +- vala/weekly/index.xml | 7 ++++ valve-data-format/daily/index.xml | 2 +- valve-data-format/weekly/index.xml | 7 ++++ vba/daily/index.xml | 2 +- vba/weekly/index.xml | 7 ++++ vbscript/daily/index.xml | 2 +- vbscript/weekly/index.xml | 7 ++++ vcl/daily/index.xml | 2 +- vcl/weekly/index.xml | 7 ++++ verilog/daily/index.xml | 2 +- verilog/weekly/index.xml | 7 ++++ vhdl/daily/index.xml | 2 +- vhdl/weekly/index.xml | 7 ++++ vim-help-file/daily/index.xml | 2 +- vim-help-file/weekly/index.xml | 7 ++++ vim-script/daily/index.xml | 16 +++++++++- vim-script/weekly/index.xml | 28 ++++++++++++++++ vim-snippet/daily/index.xml | 2 +- vim-snippet/weekly/index.xml | 7 ++++ visual-basic-.net/daily/index.xml | 2 +- visual-basic-.net/weekly/index.xml | 14 ++++++++ volt/daily/index.xml | 2 +- volt/weekly/index.xml | 7 ++++ vue/daily/index.xml | 2 +- vue/weekly/index.xml | 28 ++++++++++++++++ vyper/daily/index.xml | 2 +- vyper/weekly/index.xml | 7 ++++ wavefront-material/daily/index.xml | 2 +- wavefront-material/weekly/index.xml | 7 ++++ wavefront-object/daily/index.xml | 2 +- wavefront-object/weekly/index.xml | 7 ++++ wdl/daily/index.xml | 2 +- wdl/weekly/index.xml | 7 ++++ web-ontology-language/daily/index.xml | 2 +- web-ontology-language/weekly/index.xml | 7 ++++ webassembly/daily/index.xml | 2 +- webassembly/weekly/index.xml | 7 ++++ webidl/daily/index.xml | 2 +- webidl/weekly/index.xml | 7 ++++ webvtt/daily/index.xml | 2 +- webvtt/weekly/index.xml | 7 ++++ wget-config/daily/index.xml | 2 +- wget-config/weekly/index.xml | 7 ++++ wikitext/daily/index.xml | 2 +- wikitext/weekly/index.xml | 7 ++++ windows-registry-entries/daily/index.xml | 2 +- windows-registry-entries/weekly/index.xml | 7 ++++ wisp/daily/index.xml | 2 +- wisp/weekly/index.xml | 7 ++++ witcher-script/daily/index.xml | 2 +- witcher-script/weekly/index.xml | 7 ++++ wollok/daily/index.xml | 2 +- wollok/weekly/index.xml | 7 ++++ world-of-warcraft-addon-data/daily/index.xml | 2 +- world-of-warcraft-addon-data/weekly/index.xml | 7 ++++ x-bitmap/daily/index.xml | 2 +- x-bitmap/weekly/index.xml | 7 ++++ x-font-directory-index/daily/index.xml | 2 +- x-font-directory-index/weekly/index.xml | 7 ++++ x-pixmap/daily/index.xml | 2 +- x-pixmap/weekly/index.xml | 7 ++++ x10/daily/index.xml | 2 +- x10/weekly/index.xml | 7 ++++ xbase/daily/index.xml | 2 +- xbase/weekly/index.xml | 7 ++++ xc/daily/index.xml | 2 +- xc/weekly/index.xml | 7 ++++ xcompose/daily/index.xml | 2 +- xcompose/weekly/index.xml | 7 ++++ xml-property-list/daily/index.xml | 2 +- xml-property-list/weekly/index.xml | 7 ++++ xml/daily/index.xml | 2 +- xml/weekly/index.xml | 7 ++++ xojo/daily/index.xml | 2 +- xojo/weekly/index.xml | 7 ++++ xonsh/daily/index.xml | 2 +- xonsh/weekly/index.xml | 7 ++++ xpages/daily/index.xml | 2 +- xpages/weekly/index.xml | 7 ++++ xproc/daily/index.xml | 2 +- xproc/weekly/index.xml | 7 ++++ xquery/daily/index.xml | 2 +- xquery/weekly/index.xml | 7 ++++ xs/daily/index.xml | 2 +- xs/weekly/index.xml | 7 ++++ xslt/daily/index.xml | 2 +- xslt/weekly/index.xml | 7 ++++ xtend/daily/index.xml | 2 +- xtend/weekly/index.xml | 7 ++++ yacc/daily/index.xml | 2 +- yacc/weekly/index.xml | 7 ++++ yaml/daily/index.xml | 2 +- yaml/weekly/index.xml | 7 ++++ yang/daily/index.xml | 2 +- yang/weekly/index.xml | 7 ++++ yara/daily/index.xml | 2 +- yara/weekly/index.xml | 7 ++++ yasnippet/daily/index.xml | 2 +- yasnippet/weekly/index.xml | 7 ++++ zap/daily/index.xml | 2 +- zap/weekly/index.xml | 7 ++++ zeek/daily/index.xml | 2 +- zeek/weekly/index.xml | 7 ++++ zenscript/daily/index.xml | 2 +- zenscript/weekly/index.xml | 7 ++++ zephir/daily/index.xml | 2 +- zephir/weekly/index.xml | 7 ++++ zig/daily/index.xml | 9 +++++- zig/weekly/index.xml | 14 ++++++++ zil/daily/index.xml | 2 +- zil/weekly/index.xml | 7 ++++ zimpl/daily/index.xml | 2 +- zimpl/weekly/index.xml | 7 ++++ 1276 files changed, 6873 insertions(+), 692 deletions(-) create mode 100644 1c-enterprise/weekly/index.xml create mode 100644 2-dimensional-array/weekly/index.xml create mode 100644 4d/weekly/index.xml create mode 100644 abap-cds/weekly/index.xml create mode 100644 abap/weekly/index.xml create mode 100644 abnf/weekly/index.xml create mode 100644 actionscript/weekly/index.xml create mode 100644 ada/weekly/index.xml create mode 100644 adobe-font-metrics/weekly/index.xml create mode 100644 agda/weekly/index.xml create mode 100644 ags-script/weekly/index.xml create mode 100644 aidl/weekly/index.xml create mode 100644 al/weekly/index.xml create mode 100644 all/weekly/index.xml create mode 100644 alloy/weekly/index.xml create mode 100644 alpine-abuild/weekly/index.xml create mode 100644 altium-designer/weekly/index.xml create mode 100644 ampl/weekly/index.xml create mode 100644 angelscript/weekly/index.xml create mode 100644 ant-build-system/weekly/index.xml create mode 100644 antlr/weekly/index.xml create mode 100644 apacheconf/weekly/index.xml create mode 100644 apex/weekly/index.xml create mode 100644 api-blueprint/weekly/index.xml create mode 100644 apl/weekly/index.xml create mode 100644 apollo-guidance-computer/weekly/index.xml create mode 100644 applescript/weekly/index.xml create mode 100644 arc/weekly/index.xml create mode 100644 asciidoc/weekly/index.xml create mode 100644 asl/weekly/index.xml create mode 100644 asn.1/weekly/index.xml create mode 100644 asp.net/weekly/index.xml create mode 100644 aspectj/weekly/index.xml create mode 100644 assembly/weekly/index.xml create mode 100644 astro/weekly/index.xml create mode 100644 asymptote/weekly/index.xml create mode 100644 ats/weekly/index.xml create mode 100644 augeas/weekly/index.xml create mode 100644 autohotkey/weekly/index.xml create mode 100644 autoit/weekly/index.xml create mode 100644 avro-idl/weekly/index.xml create mode 100644 awk/weekly/index.xml create mode 100644 ballerina/weekly/index.xml create mode 100644 basic/weekly/index.xml create mode 100644 batchfile/weekly/index.xml create mode 100644 beef/weekly/index.xml create mode 100644 befunge/weekly/index.xml create mode 100644 berry/weekly/index.xml create mode 100644 bibtex/weekly/index.xml create mode 100644 bicep/weekly/index.xml create mode 100644 bison/weekly/index.xml create mode 100644 bitbake/weekly/index.xml create mode 100644 blade/weekly/index.xml create mode 100644 blitzbasic/weekly/index.xml create mode 100644 blitzmax/weekly/index.xml create mode 100644 bluespec/weekly/index.xml create mode 100644 boo/weekly/index.xml create mode 100644 boogie/weekly/index.xml create mode 100644 brainfuck/weekly/index.xml create mode 100644 brightscript/weekly/index.xml create mode 100644 browserslist/weekly/index.xml create mode 100644 c%23/weekly/index.xml create mode 100644 c++/weekly/index.xml create mode 100644 c-objdump/weekly/index.xml create mode 100644 c/weekly/index.xml create mode 100644 c2hs-haskell/weekly/index.xml create mode 100644 cabal-config/weekly/index.xml create mode 100644 cadence/weekly/index.xml create mode 100644 cairo/weekly/index.xml create mode 100644 cap'n-proto/weekly/index.xml create mode 100644 cartocss/weekly/index.xml create mode 100644 ceylon/weekly/index.xml create mode 100644 chapel/weekly/index.xml create mode 100644 charity/weekly/index.xml create mode 100644 chuck/weekly/index.xml create mode 100644 cil/weekly/index.xml create mode 100644 cirru/weekly/index.xml create mode 100644 clarion/weekly/index.xml create mode 100644 clarity/weekly/index.xml create mode 100644 classic-asp/weekly/index.xml create mode 100644 clean/weekly/index.xml create mode 100644 click/weekly/index.xml create mode 100644 clips/weekly/index.xml create mode 100644 clojure/weekly/index.xml create mode 100644 closure-templates/weekly/index.xml create mode 100644 cloud-firestore-security-rules/weekly/index.xml create mode 100644 cmake/weekly/index.xml create mode 100644 cobol/weekly/index.xml create mode 100644 codeowners/weekly/index.xml create mode 100644 codeql/weekly/index.xml create mode 100644 coffeescript/weekly/index.xml create mode 100644 coldfusion-cfc/weekly/index.xml create mode 100644 coldfusion/weekly/index.xml create mode 100644 collada/weekly/index.xml create mode 100644 common-lisp/weekly/index.xml create mode 100644 common-workflow-language/weekly/index.xml create mode 100644 component-pascal/weekly/index.xml create mode 100644 conll-u/weekly/index.xml create mode 100644 cool/weekly/index.xml create mode 100644 coq/weekly/index.xml create mode 100644 cpp-objdump/weekly/index.xml create mode 100644 creole/weekly/index.xml create mode 100644 crystal/weekly/index.xml create mode 100644 cson/weekly/index.xml create mode 100644 csound-document/weekly/index.xml create mode 100644 csound-score/weekly/index.xml create mode 100644 csound/weekly/index.xml create mode 100644 css/weekly/index.xml create mode 100644 csv/weekly/index.xml create mode 100644 cuda/weekly/index.xml create mode 100644 cue/weekly/index.xml create mode 100644 curl-config/weekly/index.xml create mode 100644 curry/weekly/index.xml create mode 100644 cweb/weekly/index.xml create mode 100644 cycript/weekly/index.xml create mode 100644 cython/weekly/index.xml create mode 100644 d-objdump/weekly/index.xml create mode 100644 d/weekly/index.xml create mode 100644 dafny/weekly/index.xml create mode 100644 darcs-patch/weekly/index.xml create mode 100644 dart/weekly/index.xml create mode 100644 dataweave/weekly/index.xml create mode 100644 debian-package-control-file/weekly/index.xml create mode 100644 denizenscript/weekly/index.xml create mode 100644 desktop/weekly/index.xml create mode 100644 dhall/weekly/index.xml create mode 100644 diff/weekly/index.xml create mode 100644 digital-command-language/weekly/index.xml create mode 100644 dircolors/weekly/index.xml create mode 100644 directx-3d-file/weekly/index.xml create mode 100644 dm/weekly/index.xml create mode 100644 dns-zone/weekly/index.xml create mode 100644 dockerfile/weekly/index.xml create mode 100644 dogescript/weekly/index.xml create mode 100644 dtrace/weekly/index.xml create mode 100644 dylan/weekly/index.xml create mode 100644 e-mail/weekly/index.xml create mode 100644 e/weekly/index.xml create mode 100644 eagle/weekly/index.xml create mode 100644 earthly/weekly/index.xml create mode 100644 easybuild/weekly/index.xml create mode 100644 ebnf/weekly/index.xml create mode 100644 ec/weekly/index.xml create mode 100644 ecere-projects/weekly/index.xml create mode 100644 ecl/weekly/index.xml create mode 100644 eclipse/weekly/index.xml create mode 100644 editorconfig/weekly/index.xml create mode 100644 edje-data-collection/weekly/index.xml create mode 100644 edn/weekly/index.xml create mode 100644 eiffel/weekly/index.xml create mode 100644 ejs/weekly/index.xml create mode 100644 elixir/weekly/index.xml create mode 100644 elm/weekly/index.xml create mode 100644 emacs-lisp/weekly/index.xml create mode 100644 emberscript/weekly/index.xml create mode 100644 eq/weekly/index.xml create mode 100644 erlang/weekly/index.xml create mode 100644 euphoria/weekly/index.xml create mode 100644 f%23/weekly/index.xml create mode 100644 f*/weekly/index.xml create mode 100644 factor/weekly/index.xml create mode 100644 fancy/weekly/index.xml create mode 100644 fantom/weekly/index.xml create mode 100644 faust/weekly/index.xml create mode 100644 fennel/weekly/index.xml create mode 100644 figlet-font/weekly/index.xml create mode 100644 filebench-wml/weekly/index.xml create mode 100644 filterscript/weekly/index.xml create mode 100644 fish/weekly/index.xml create mode 100644 fluent/weekly/index.xml create mode 100644 flux/weekly/index.xml create mode 100644 formatted/weekly/index.xml create mode 100644 forth/weekly/index.xml create mode 100644 fortran-free-form/weekly/index.xml create mode 100644 fortran/weekly/index.xml create mode 100644 freebasic/weekly/index.xml create mode 100644 freemarker/weekly/index.xml create mode 100644 frege/weekly/index.xml create mode 100644 futhark/weekly/index.xml create mode 100644 g-code/weekly/index.xml create mode 100644 game-maker-language/weekly/index.xml create mode 100644 gaml/weekly/index.xml create mode 100644 gams/weekly/index.xml create mode 100644 gap/weekly/index.xml create mode 100644 gcc-machine-description/weekly/index.xml create mode 100644 gdb/weekly/index.xml create mode 100644 gdscript/weekly/index.xml create mode 100644 gedcom/weekly/index.xml create mode 100644 gemfile.lock/weekly/index.xml create mode 100644 genero-forms/weekly/index.xml create mode 100644 genero/weekly/index.xml create mode 100644 genie/weekly/index.xml create mode 100644 genshi/weekly/index.xml create mode 100644 gentoo-ebuild/weekly/index.xml create mode 100644 gentoo-eclass/weekly/index.xml create mode 100644 gerber-image/weekly/index.xml create mode 100644 gettext-catalog/weekly/index.xml create mode 100644 gherkin/weekly/index.xml create mode 100644 git-attributes/weekly/index.xml create mode 100644 git-config/weekly/index.xml create mode 100644 gleam/weekly/index.xml create mode 100644 glsl/weekly/index.xml create mode 100644 glyph-bitmap-distribution-format/weekly/index.xml create mode 100644 glyph/weekly/index.xml create mode 100644 gn/weekly/index.xml create mode 100644 gnuplot/weekly/index.xml create mode 100644 go-checksums/weekly/index.xml create mode 100644 go-module/weekly/index.xml create mode 100644 go/weekly/index.xml create mode 100644 golo/weekly/index.xml create mode 100644 gosu/weekly/index.xml create mode 100644 grace/weekly/index.xml create mode 100644 gradle/weekly/index.xml create mode 100644 grammatical-framework/weekly/index.xml create mode 100644 graph-modeling-language/weekly/index.xml create mode 100644 graphql/weekly/index.xml create mode 100644 graphviz-(dot)/weekly/index.xml create mode 100644 groovy-server-pages/weekly/index.xml create mode 100644 groovy/weekly/index.xml create mode 100644 gsc/weekly/index.xml create mode 100644 hack/weekly/index.xml create mode 100644 haml/weekly/index.xml create mode 100644 handlebars/weekly/index.xml create mode 100644 haproxy/weekly/index.xml create mode 100644 harbour/weekly/index.xml create mode 100644 haskell/weekly/index.xml create mode 100644 haxe/weekly/index.xml create mode 100644 hcl/weekly/index.xml create mode 100644 hiveql/weekly/index.xml create mode 100644 hlsl/weekly/index.xml create mode 100644 holyc/weekly/index.xml create mode 100644 hoon/weekly/index.xml create mode 100644 html+ecr/weekly/index.xml create mode 100644 html+eex/weekly/index.xml create mode 100644 html+erb/weekly/index.xml create mode 100644 html+php/weekly/index.xml create mode 100644 html+razor/weekly/index.xml create mode 100644 html/weekly/index.xml create mode 100644 http/weekly/index.xml create mode 100644 hxml/weekly/index.xml create mode 100644 hy/weekly/index.xml create mode 100644 hyphy/weekly/index.xml create mode 100644 idl/weekly/index.xml create mode 100644 idris/weekly/index.xml create mode 100644 ignore-list/weekly/index.xml create mode 100644 igor-pro/weekly/index.xml create mode 100644 imagej-macro/weekly/index.xml create mode 100644 inform-7/weekly/index.xml create mode 100644 ini/weekly/index.xml create mode 100644 inno-setup/weekly/index.xml create mode 100644 io/weekly/index.xml create mode 100644 ioke/weekly/index.xml create mode 100644 irc-log/weekly/index.xml create mode 100644 isabelle-root/weekly/index.xml create mode 100644 isabelle/weekly/index.xml create mode 100644 j/weekly/index.xml create mode 100644 janet/weekly/index.xml create mode 100644 jar-manifest/weekly/index.xml create mode 100644 jasmin/weekly/index.xml create mode 100644 java-properties/weekly/index.xml create mode 100644 java-server-pages/weekly/index.xml create mode 100644 java/weekly/index.xml create mode 100644 javascript+erb/weekly/index.xml create mode 100644 javascript/weekly/index.xml create mode 100644 jest-snapshot/weekly/index.xml create mode 100644 jflex/weekly/index.xml create mode 100644 jinja/weekly/index.xml create mode 100644 jison-lex/weekly/index.xml create mode 100644 jison/weekly/index.xml create mode 100644 jolie/weekly/index.xml create mode 100644 jq/weekly/index.xml create mode 100644 json-with-comments/weekly/index.xml create mode 100644 json/weekly/index.xml create mode 100644 json5/weekly/index.xml create mode 100644 jsoniq/weekly/index.xml create mode 100644 jsonld/weekly/index.xml create mode 100644 jsonnet/weekly/index.xml create mode 100644 julia/weekly/index.xml create mode 100644 jupyter-notebook/weekly/index.xml create mode 100644 kaitai-struct/weekly/index.xml create mode 100644 kakounescript/weekly/index.xml create mode 100644 kicad-layout/weekly/index.xml create mode 100644 kicad-legacy-layout/weekly/index.xml create mode 100644 kicad-schematic/weekly/index.xml create mode 100644 kit/weekly/index.xml create mode 100644 kotlin/weekly/index.xml create mode 100644 krl/weekly/index.xml create mode 100644 kusto/weekly/index.xml create mode 100644 kvlang/weekly/index.xml create mode 100644 labview/weekly/index.xml create mode 100644 lark/weekly/index.xml create mode 100644 lasso/weekly/index.xml create mode 100644 latte/weekly/index.xml create mode 100644 lean/weekly/index.xml create mode 100644 less/weekly/index.xml create mode 100644 lex/weekly/index.xml create mode 100644 lfe/weekly/index.xml create mode 100644 ligolang/weekly/index.xml create mode 100644 lilypond/weekly/index.xml create mode 100644 limbo/weekly/index.xml create mode 100644 linker-script/weekly/index.xml create mode 100644 linux-kernel-module/weekly/index.xml create mode 100644 liquid/weekly/index.xml create mode 100644 literate-agda/weekly/index.xml create mode 100644 literate-coffeescript/weekly/index.xml create mode 100644 literate-haskell/weekly/index.xml create mode 100644 livescript/weekly/index.xml create mode 100644 llvm/weekly/index.xml create mode 100644 logos/weekly/index.xml create mode 100644 logtalk/weekly/index.xml create mode 100644 lolcode/weekly/index.xml create mode 100644 lookml/weekly/index.xml create mode 100644 loomscript/weekly/index.xml create mode 100644 lsl/weekly/index.xml create mode 100644 ltspice-symbol/weekly/index.xml create mode 100644 lua/weekly/index.xml create mode 100644 m/weekly/index.xml create mode 100644 m4/weekly/index.xml create mode 100644 m4sugar/weekly/index.xml create mode 100644 macaulay2/weekly/index.xml create mode 100644 makefile/weekly/index.xml create mode 100644 mako/weekly/index.xml create mode 100644 markdown/weekly/index.xml create mode 100644 marko/weekly/index.xml create mode 100644 mask/weekly/index.xml create mode 100644 mathematica/weekly/index.xml create mode 100644 matlab/weekly/index.xml create mode 100644 maven-pom/weekly/index.xml create mode 100644 max/weekly/index.xml create mode 100644 maxscript/weekly/index.xml create mode 100644 mcfunction/weekly/index.xml create mode 100644 mercury/weekly/index.xml create mode 100644 meson/weekly/index.xml create mode 100644 metal/weekly/index.xml create mode 100644 microsoft-developer-studio-project/weekly/index.xml create mode 100644 microsoft-visual-studio-solution/weekly/index.xml create mode 100644 minid/weekly/index.xml create mode 100644 mint/weekly/index.xml create mode 100644 mirah/weekly/index.xml create mode 100644 mirc-script/weekly/index.xml create mode 100644 mlir/weekly/index.xml create mode 100644 modelica/weekly/index.xml create mode 100644 modula-2/weekly/index.xml create mode 100644 modula-3/weekly/index.xml create mode 100644 module-management-system/weekly/index.xml create mode 100644 monkey-c/weekly/index.xml create mode 100644 monkey/weekly/index.xml create mode 100644 moocode/weekly/index.xml create mode 100644 moonscript/weekly/index.xml create mode 100644 motoko/weekly/index.xml create mode 100644 motorola-68k-assembly/weekly/index.xml create mode 100644 mql4/weekly/index.xml create mode 100644 mql5/weekly/index.xml create mode 100644 mtml/weekly/index.xml create mode 100644 muf/weekly/index.xml create mode 100644 mupad/weekly/index.xml create mode 100644 muse/weekly/index.xml create mode 100644 mustache/weekly/index.xml create mode 100644 myghty/weekly/index.xml create mode 100644 nanorc/weekly/index.xml create mode 100644 nasl/weekly/index.xml create mode 100644 ncl/weekly/index.xml create mode 100644 nearley/weekly/index.xml create mode 100644 nemerle/weekly/index.xml create mode 100644 neon/weekly/index.xml create mode 100644 nesc/weekly/index.xml create mode 100644 netlinx+erb/weekly/index.xml create mode 100644 netlinx/weekly/index.xml create mode 100644 netlogo/weekly/index.xml create mode 100644 newlisp/weekly/index.xml create mode 100644 nextflow/weekly/index.xml create mode 100644 nginx/weekly/index.xml create mode 100644 nim/weekly/index.xml create mode 100644 ninja/weekly/index.xml create mode 100644 nit/weekly/index.xml create mode 100644 nix/weekly/index.xml create mode 100644 nl/weekly/index.xml create mode 100644 npm-config/weekly/index.xml create mode 100644 nsis/weekly/index.xml create mode 100644 nu/weekly/index.xml create mode 100644 numpy/weekly/index.xml create mode 100644 nunjucks/weekly/index.xml create mode 100644 nwscript/weekly/index.xml create mode 100644 objdump/weekly/index.xml create mode 100644 object-data-instance-notation/weekly/index.xml create mode 100644 objective-c++/weekly/index.xml create mode 100644 objective-c/weekly/index.xml create mode 100644 objective-j/weekly/index.xml create mode 100644 objectscript/weekly/index.xml create mode 100644 ocaml/weekly/index.xml create mode 100644 odin/weekly/index.xml create mode 100644 omgrofl/weekly/index.xml create mode 100644 ooc/weekly/index.xml create mode 100644 opa/weekly/index.xml create mode 100644 opal/weekly/index.xml create mode 100644 open-policy-agent/weekly/index.xml create mode 100644 opencl/weekly/index.xml create mode 100644 openedge-abl/weekly/index.xml create mode 100644 openqasm/weekly/index.xml create mode 100644 openrc-runscript/weekly/index.xml create mode 100644 openscad/weekly/index.xml create mode 100644 openstep-property-list/weekly/index.xml create mode 100644 opentype-feature-file/weekly/index.xml create mode 100644 org/weekly/index.xml create mode 100644 ox/weekly/index.xml create mode 100644 oxygene/weekly/index.xml create mode 100644 oz/weekly/index.xml create mode 100644 p4/weekly/index.xml create mode 100644 pan/weekly/index.xml create mode 100644 papyrus/weekly/index.xml create mode 100644 parrot-assembly/weekly/index.xml create mode 100644 parrot-internal-representation/weekly/index.xml create mode 100644 parrot/weekly/index.xml create mode 100644 pascal/weekly/index.xml create mode 100644 pawn/weekly/index.xml create mode 100644 peg.js/weekly/index.xml create mode 100644 pep8/weekly/index.xml create mode 100644 perl/weekly/index.xml create mode 100644 php/weekly/index.xml create mode 100644 pic/weekly/index.xml create mode 100644 pickle/weekly/index.xml create mode 100644 picolisp/weekly/index.xml create mode 100644 piglatin/weekly/index.xml create mode 100644 pike/weekly/index.xml create mode 100644 plantuml/weekly/index.xml create mode 100644 plpgsql/weekly/index.xml create mode 100644 plsql/weekly/index.xml create mode 100644 pod-6/weekly/index.xml create mode 100644 pod/weekly/index.xml create mode 100644 pogoscript/weekly/index.xml create mode 100644 pony/weekly/index.xml create mode 100644 postcss/weekly/index.xml create mode 100644 postscript/weekly/index.xml create mode 100644 pov-ray-sdl/weekly/index.xml create mode 100644 powerbuilder/weekly/index.xml create mode 100644 powershell/weekly/index.xml create mode 100644 prisma/weekly/index.xml create mode 100644 processing/weekly/index.xml create mode 100644 procfile/weekly/index.xml create mode 100644 proguard/weekly/index.xml create mode 100644 prolog/weekly/index.xml create mode 100644 promela/weekly/index.xml create mode 100644 propeller-spin/weekly/index.xml create mode 100644 protocol-buffer-text-format/weekly/index.xml create mode 100644 protocol-buffer/weekly/index.xml create mode 100644 public-key/weekly/index.xml create mode 100644 pug/weekly/index.xml create mode 100644 puppet/weekly/index.xml create mode 100644 pure-data/weekly/index.xml create mode 100644 purebasic/weekly/index.xml create mode 100644 purescript/weekly/index.xml create mode 100644 python-console/weekly/index.xml create mode 100644 python-traceback/weekly/index.xml create mode 100644 python/weekly/index.xml create mode 100644 q%23/weekly/index.xml create mode 100644 q/weekly/index.xml create mode 100644 qmake/weekly/index.xml create mode 100644 qml/weekly/index.xml create mode 100644 qt-script/weekly/index.xml create mode 100644 quake/weekly/index.xml create mode 100644 r/weekly/index.xml create mode 100644 racket/weekly/index.xml create mode 100644 ragel/weekly/index.xml create mode 100644 raku/weekly/index.xml create mode 100644 raml/weekly/index.xml create mode 100644 rascal/weekly/index.xml create mode 100644 raw-token-data/weekly/index.xml create mode 100644 rdoc/weekly/index.xml create mode 100644 readline-config/weekly/index.xml create mode 100644 realbasic/weekly/index.xml create mode 100644 reason/weekly/index.xml create mode 100644 rebol/weekly/index.xml create mode 100644 record-jar/weekly/index.xml create mode 100644 red/weekly/index.xml create mode 100644 redcode/weekly/index.xml create mode 100644 redirect-rules/weekly/index.xml create mode 100644 regular-expression/weekly/index.xml create mode 100644 ren'py/weekly/index.xml create mode 100644 renderscript/weekly/index.xml create mode 100644 rescript/weekly/index.xml create mode 100644 restructuredtext/weekly/index.xml create mode 100644 rexx/weekly/index.xml create mode 100644 rich-text-format/weekly/index.xml create mode 100644 ring/weekly/index.xml create mode 100644 riot/weekly/index.xml create mode 100644 rmarkdown/weekly/index.xml create mode 100644 robotframework/weekly/index.xml create mode 100644 robots.txt/weekly/index.xml create mode 100644 roff-manpage/weekly/index.xml create mode 100644 roff/weekly/index.xml create mode 100644 rouge/weekly/index.xml create mode 100644 rpc/weekly/index.xml create mode 100644 rpgle/weekly/index.xml create mode 100644 rpm-spec/weekly/index.xml create mode 100644 ruby/weekly/index.xml create mode 100644 runoff/weekly/index.xml create mode 100644 rust/weekly/index.xml create mode 100644 sage/weekly/index.xml create mode 100644 saltstack/weekly/index.xml create mode 100644 sas/weekly/index.xml create mode 100644 sass/weekly/index.xml create mode 100644 scala/weekly/index.xml create mode 100644 scaml/weekly/index.xml create mode 100644 scheme/weekly/index.xml create mode 100644 scilab/weekly/index.xml create mode 100644 scss/weekly/index.xml create mode 100644 sed/weekly/index.xml create mode 100644 self/weekly/index.xml create mode 100644 selinux-policy/weekly/index.xml create mode 100644 shaderlab/weekly/index.xml create mode 100644 shell/weekly/index.xml create mode 100644 shellcheck-config/weekly/index.xml create mode 100644 shellsession/weekly/index.xml create mode 100644 shen/weekly/index.xml create mode 100644 sieve/weekly/index.xml create mode 100644 singularity/weekly/index.xml create mode 100644 slash/weekly/index.xml create mode 100644 slice/weekly/index.xml create mode 100644 slim/weekly/index.xml create mode 100644 smali/weekly/index.xml create mode 100644 smalltalk/weekly/index.xml create mode 100644 smarty/weekly/index.xml create mode 100644 smpl/weekly/index.xml create mode 100644 smt/weekly/index.xml create mode 100644 solidity/weekly/index.xml create mode 100644 soong/weekly/index.xml create mode 100644 sourcepawn/weekly/index.xml create mode 100644 sparql/weekly/index.xml create mode 100644 spline-font-database/weekly/index.xml create mode 100644 sqf/weekly/index.xml create mode 100644 sql/weekly/index.xml create mode 100644 sqlpl/weekly/index.xml create mode 100644 squirrel/weekly/index.xml create mode 100644 srecode-template/weekly/index.xml create mode 100644 ssh-config/weekly/index.xml create mode 100644 stan/weekly/index.xml create mode 100644 standard-ml/weekly/index.xml create mode 100644 starlark/weekly/index.xml create mode 100644 stata/weekly/index.xml create mode 100644 ston/weekly/index.xml create mode 100644 stringtemplate/weekly/index.xml create mode 100644 stylus/weekly/index.xml create mode 100644 subrip-text/weekly/index.xml create mode 100644 sugarss/weekly/index.xml create mode 100644 supercollider/weekly/index.xml create mode 100644 svelte/weekly/index.xml create mode 100644 svg/weekly/index.xml create mode 100644 swift/weekly/index.xml create mode 100644 swig/weekly/index.xml create mode 100644 systemverilog/weekly/index.xml create mode 100644 talon/weekly/index.xml create mode 100644 tcl/weekly/index.xml create mode 100644 tcsh/weekly/index.xml create mode 100644 tea/weekly/index.xml create mode 100644 terra/weekly/index.xml create mode 100644 tex/weekly/index.xml create mode 100644 texinfo/weekly/index.xml create mode 100644 text/weekly/index.xml create mode 100644 textile/weekly/index.xml create mode 100644 textmate-properties/weekly/index.xml create mode 100644 thrift/weekly/index.xml create mode 100644 ti-program/weekly/index.xml create mode 100644 tla/weekly/index.xml create mode 100644 toml/weekly/index.xml create mode 100644 tsql/weekly/index.xml create mode 100644 tsv/weekly/index.xml create mode 100644 tsx/weekly/index.xml create mode 100644 turing/weekly/index.xml create mode 100644 turtle/weekly/index.xml create mode 100644 twig/weekly/index.xml create mode 100644 txl/weekly/index.xml create mode 100644 type-language/weekly/index.xml create mode 100644 typescript/weekly/index.xml create mode 100644 unified-parallel-c/weekly/index.xml create mode 100644 unity3d-asset/weekly/index.xml create mode 100644 unix-assembly/weekly/index.xml create mode 100644 unknown/weekly/index.xml create mode 100644 uno/weekly/index.xml create mode 100644 unrealscript/weekly/index.xml create mode 100644 urweb/weekly/index.xml create mode 100644 v/weekly/index.xml create mode 100644 vala/weekly/index.xml create mode 100644 valve-data-format/weekly/index.xml create mode 100644 vba/weekly/index.xml create mode 100644 vbscript/weekly/index.xml create mode 100644 vcl/weekly/index.xml create mode 100644 verilog/weekly/index.xml create mode 100644 vhdl/weekly/index.xml create mode 100644 vim-help-file/weekly/index.xml create mode 100644 vim-script/weekly/index.xml create mode 100644 vim-snippet/weekly/index.xml create mode 100644 visual-basic-.net/weekly/index.xml create mode 100644 volt/weekly/index.xml create mode 100644 vue/weekly/index.xml create mode 100644 vyper/weekly/index.xml create mode 100644 wavefront-material/weekly/index.xml create mode 100644 wavefront-object/weekly/index.xml create mode 100644 wdl/weekly/index.xml create mode 100644 web-ontology-language/weekly/index.xml create mode 100644 webassembly/weekly/index.xml create mode 100644 webidl/weekly/index.xml create mode 100644 webvtt/weekly/index.xml create mode 100644 wget-config/weekly/index.xml create mode 100644 wikitext/weekly/index.xml create mode 100644 windows-registry-entries/weekly/index.xml create mode 100644 wisp/weekly/index.xml create mode 100644 witcher-script/weekly/index.xml create mode 100644 wollok/weekly/index.xml create mode 100644 world-of-warcraft-addon-data/weekly/index.xml create mode 100644 x-bitmap/weekly/index.xml create mode 100644 x-font-directory-index/weekly/index.xml create mode 100644 x-pixmap/weekly/index.xml create mode 100644 x10/weekly/index.xml create mode 100644 xbase/weekly/index.xml create mode 100644 xc/weekly/index.xml create mode 100644 xcompose/weekly/index.xml create mode 100644 xml-property-list/weekly/index.xml create mode 100644 xml/weekly/index.xml create mode 100644 xojo/weekly/index.xml create mode 100644 xonsh/weekly/index.xml create mode 100644 xpages/weekly/index.xml create mode 100644 xproc/weekly/index.xml create mode 100644 xquery/weekly/index.xml create mode 100644 xs/weekly/index.xml create mode 100644 xslt/weekly/index.xml create mode 100644 xtend/weekly/index.xml create mode 100644 yacc/weekly/index.xml create mode 100644 yaml/weekly/index.xml create mode 100644 yang/weekly/index.xml create mode 100644 yara/weekly/index.xml create mode 100644 yasnippet/weekly/index.xml create mode 100644 zap/weekly/index.xml create mode 100644 zeek/weekly/index.xml create mode 100644 zenscript/weekly/index.xml create mode 100644 zephir/weekly/index.xml create mode 100644 zig/weekly/index.xml create mode 100644 zil/weekly/index.xml create mode 100644 zimpl/weekly/index.xml diff --git a/1c-enterprise/daily/index.xml b/1c-enterprise/daily/index.xml index 7514202e380..65cb0821e15 100644 --- a/1c-enterprise/daily/index.xml +++ b/1c-enterprise/daily/index.xml @@ -1,7 +1,7 @@ GitHub 1C Enterprise Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:21:41Z + 2023-09-24T01:25:47Z Daily Trending of 1C Enterprise in GitHub \ No newline at end of file diff --git a/1c-enterprise/weekly/index.xml b/1c-enterprise/weekly/index.xml new file mode 100644 index 00000000000..2615ccc94ca --- /dev/null +++ b/1c-enterprise/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub 1C Enterprise Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:21Z + Weekly Trending of 1C Enterprise in GitHub + + \ No newline at end of file diff --git a/2-dimensional-array/daily/index.xml b/2-dimensional-array/daily/index.xml index d3e9e7d4c6a..047a14c31a2 100644 --- a/2-dimensional-array/daily/index.xml +++ b/2-dimensional-array/daily/index.xml @@ -1,7 +1,7 @@ GitHub 2-Dimensional Array Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:23Z + 2023-09-24T01:26:06Z Daily Trending of 2-Dimensional Array in GitHub \ No newline at end of file diff --git a/2-dimensional-array/weekly/index.xml b/2-dimensional-array/weekly/index.xml new file mode 100644 index 00000000000..a564e899980 --- /dev/null +++ b/2-dimensional-array/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub 2-Dimensional Array Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:42Z + Weekly Trending of 2-Dimensional Array in GitHub + + \ No newline at end of file diff --git a/4d/daily/index.xml b/4d/daily/index.xml index 1557924f11e..6cf6d9599a1 100644 --- a/4d/daily/index.xml +++ b/4d/daily/index.xml @@ -1,7 +1,7 @@ GitHub 4D Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:24Z + 2023-09-24T01:26:05Z Daily Trending of 4D in GitHub \ No newline at end of file diff --git a/4d/weekly/index.xml b/4d/weekly/index.xml new file mode 100644 index 00000000000..ed13b209fe4 --- /dev/null +++ b/4d/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub 4D Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:43Z + Weekly Trending of 4D in GitHub + + \ No newline at end of file diff --git a/abap-cds/daily/index.xml b/abap-cds/daily/index.xml index e0796009d7d..a9a764819c1 100644 --- a/abap-cds/daily/index.xml +++ b/abap-cds/daily/index.xml @@ -1,7 +1,7 @@ GitHub ABAP CDS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:22Z + 2023-09-24T01:26:06Z Daily Trending of ABAP CDS in GitHub \ No newline at end of file diff --git a/abap-cds/weekly/index.xml b/abap-cds/weekly/index.xml new file mode 100644 index 00000000000..e65f48489ad --- /dev/null +++ b/abap-cds/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ABAP CDS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:42Z + Weekly Trending of ABAP CDS in GitHub + + \ No newline at end of file diff --git a/abap/daily/index.xml b/abap/daily/index.xml index fe1f2c5e1af..6e5a79df6fd 100644 --- a/abap/daily/index.xml +++ b/abap/daily/index.xml @@ -1,7 +1,7 @@ GitHub ABAP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:25Z + 2023-09-24T01:26:07Z Daily Trending of ABAP in GitHub \ No newline at end of file diff --git a/abap/weekly/index.xml b/abap/weekly/index.xml new file mode 100644 index 00000000000..3d23eb83ab0 --- /dev/null +++ b/abap/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ABAP Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:44Z + Weekly Trending of ABAP in GitHub + + \ No newline at end of file diff --git a/abnf/daily/index.xml b/abnf/daily/index.xml index 9e0e3734c83..0bf411350bb 100644 --- a/abnf/daily/index.xml +++ b/abnf/daily/index.xml @@ -1,7 +1,7 @@ GitHub ABNF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:27Z + 2023-09-24T01:26:09Z Daily Trending of ABNF in GitHub \ No newline at end of file diff --git a/abnf/weekly/index.xml b/abnf/weekly/index.xml new file mode 100644 index 00000000000..a83b94d84bc --- /dev/null +++ b/abnf/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ABNF Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:46Z + Weekly Trending of ABNF in GitHub + + \ No newline at end of file diff --git a/actionscript/daily/index.xml b/actionscript/daily/index.xml index 535e782f48e..748b0d2d138 100644 --- a/actionscript/daily/index.xml +++ b/actionscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ActionScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:28Z + 2023-09-24T01:26:12Z Daily Trending of ActionScript in GitHub \ No newline at end of file diff --git a/actionscript/weekly/index.xml b/actionscript/weekly/index.xml new file mode 100644 index 00000000000..0e060dc28db --- /dev/null +++ b/actionscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ActionScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:49Z + Weekly Trending of ActionScript in GitHub + + \ No newline at end of file diff --git a/ada/daily/index.xml b/ada/daily/index.xml index b06a623aa04..83f0936fb72 100644 --- a/ada/daily/index.xml +++ b/ada/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ada Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:26Z + 2023-09-24T01:26:09Z Daily Trending of Ada in GitHub \ No newline at end of file diff --git a/ada/weekly/index.xml b/ada/weekly/index.xml new file mode 100644 index 00000000000..1ee23ecbe25 --- /dev/null +++ b/ada/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ada Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:46Z + Weekly Trending of Ada in GitHub + + \ No newline at end of file diff --git a/adobe-font-metrics/daily/index.xml b/adobe-font-metrics/daily/index.xml index 32bb69f8e38..fd04acfada9 100644 --- a/adobe-font-metrics/daily/index.xml +++ b/adobe-font-metrics/daily/index.xml @@ -1,7 +1,7 @@ GitHub Adobe Font Metrics Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:32Z + 2023-09-24T01:26:13Z Daily Trending of Adobe Font Metrics in GitHub \ No newline at end of file diff --git a/adobe-font-metrics/weekly/index.xml b/adobe-font-metrics/weekly/index.xml new file mode 100644 index 00000000000..86186a770d2 --- /dev/null +++ b/adobe-font-metrics/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Adobe Font Metrics Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:52Z + Weekly Trending of Adobe Font Metrics in GitHub + + \ No newline at end of file diff --git a/agda/daily/index.xml b/agda/daily/index.xml index 0ccdeb3a5f1..67156e5a323 100644 --- a/agda/daily/index.xml +++ b/agda/daily/index.xml @@ -1,7 +1,7 @@ GitHub Agda Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:31Z + 2023-09-24T01:26:15Z Daily Trending of Agda in GitHub \ No newline at end of file diff --git a/agda/weekly/index.xml b/agda/weekly/index.xml new file mode 100644 index 00000000000..dac49ff4136 --- /dev/null +++ b/agda/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Agda Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:51Z + Weekly Trending of Agda in GitHub + + \ No newline at end of file diff --git a/ags-script/daily/index.xml b/ags-script/daily/index.xml index a8bd8eba7f1..ef01226aa02 100644 --- a/ags-script/daily/index.xml +++ b/ags-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub AGS Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:33Z + 2023-09-24T01:26:13Z Daily Trending of AGS Script in GitHub \ No newline at end of file diff --git a/ags-script/weekly/index.xml b/ags-script/weekly/index.xml new file mode 100644 index 00000000000..b30c3aa0537 --- /dev/null +++ b/ags-script/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub AGS Script Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:53Z + Weekly Trending of AGS Script in GitHub + + \ No newline at end of file diff --git a/aidl/daily/index.xml b/aidl/daily/index.xml index 33939a9e269..cd98dd56db3 100644 --- a/aidl/daily/index.xml +++ b/aidl/daily/index.xml @@ -1,7 +1,7 @@ GitHub AIDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:30Z + 2023-09-24T01:26:14Z Daily Trending of AIDL in GitHub \ No newline at end of file diff --git a/aidl/weekly/index.xml b/aidl/weekly/index.xml new file mode 100644 index 00000000000..594cdcf6491 --- /dev/null +++ b/aidl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub AIDL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:50Z + Weekly Trending of AIDL in GitHub + + \ No newline at end of file diff --git a/al/daily/index.xml b/al/daily/index.xml index 7b3156f03ef..fd304697f1c 100644 --- a/al/daily/index.xml +++ b/al/daily/index.xml @@ -1,7 +1,7 @@ GitHub AL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:37Z + 2023-09-24T01:26:19Z Daily Trending of AL in GitHub \ No newline at end of file diff --git a/al/weekly/index.xml b/al/weekly/index.xml new file mode 100644 index 00000000000..77ca8c4ccdb --- /dev/null +++ b/al/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub AL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:54Z + Weekly Trending of AL in GitHub + + \ No newline at end of file diff --git a/all/daily/index.xml b/all/daily/index.xml index 164d8bccc6d..0e172607b7a 100644 --- a/all/daily/index.xml +++ b/all/daily/index.xml @@ -1,28 +1,28 @@ GitHub All Languages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:21:50Z + 2023-09-24T01:25:56Z Daily Trending of All Languages in GitHub - CorentinJ/Real-Time-Voice-Cloning - 2023-09-23T01:21:50Z - tag:github.com,2023-09-23:/CorentinJ/Real-Time-Voice-Cloning - - <p>Clone a voice in 5 seconds to generate arbitrary speech in real-time</p><hr><h1>Real-Time Voice Cloning</h1> <p>This repository is an implementation of <a href="https://arxiv.org/pdf/1806.04558.pdf">Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis</a> (SV2TTS) with a vocoder that works in real-time. This was my <a href="https://matheo.uliege.be/handle/2268.2/6801">master's thesis</a>.</p> <p>SV2TTS is a deep learning framework in three stages. In the first stage, one creates a digital representation of a voice from a few seconds of audio. In the second and third stages, this representation is used as reference to generate speech given arbitrary text.</p> <p><strong>Video demonstration</strong> (click the picture):</p> <p><a href="https://www.youtube.com/watch?v=-O_hYhToKoA"><img src="https://i.imgur.com/8lFUlgz.png" alt="Toolbox demo"></a></p> <h3>Papers implemented</h3> <table> <thead> <tr> <th>URL</th> <th>Designation</th> <th>Title</th> <th>Implementation source</th> </tr> </thead> <tbody> <tr> <td><a href="https://arxiv.org/pdf/1806.04558.pdf"><strong>1806.04558</strong></a></td> <td><strong>SV2TTS</strong></td> <td><strong>Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis</strong></td> <td>This repo</td> </tr> <tr> <td><a href="https://arxiv.org/pdf/1802.08435.pdf">1802.08435</a></td> <td>WaveRNN (vocoder)</td> <td>Efficient Neural Audio Synthesis</td> <td><a href="https://github.com/fatchord/WaveRNN">fatchord/WaveRNN</a></td> </tr> <tr> <td><a href="https://arxiv.org/pdf/1703.10135.pdf">1703.10135</a></td> <td>Tacotron (synthesizer)</td> <td>Tacotron: Towards End-to-End Speech Synthesis</td> <td><a href="https://github.com/fatchord/WaveRNN">fatchord/WaveRNN</a></td> </tr> <tr> <td><a href="https://arxiv.org/pdf/1710.10467.pdf">1710.10467</a></td> <td>GE2E (encoder)</td> <td>Generalized End-To-End Loss for Speaker Verification</td> <td>This repo</td> </tr> </tbody> </table> <h2>Heads up</h2> <p>Like everything else in Deep Learning, this repo is quickly getting old. Many other open-source repositories or SaaS apps (often paying) will give you a better audio quality than this repository will. If you care about the fidelity of the voice you're cloning, and its expressivity, here are some personal recommendations of alternative voice cloning solutions:</p> <ul> <li>Check out <a href="https://github.com/coqui-ai/tts">CoquiTTS</a> for an open source repository that is more up-to-date, with a better voice cloning quality and more functionalities.</li> <li>Check out <a href="https://paperswithcode.com/task/speech-synthesis/">paperswithcode</a> for other repositories and recent research in the field of speech synthesis.</li> <li>Check out <a href="https://www.resemble.ai/">Resemble.ai</a> (disclaimer: I work there) for state of the art voice cloning with little hassle.</li> </ul> <h2>Setup</h2> <h3>1. Install Requirements</h3> <ol> <li>Both Windows and Linux are supported. A GPU is recommended for training and for inference speed, but is not mandatory.</li> <li>Python 3.7 is recommended. Python 3.5 or greater should work, but you'll probably have to tweak the dependencies' versions. I recommend setting up a virtual environment using <code>venv</code>, but this is optional.</li> <li>Install <a href="https://ffmpeg.org/download.html#get-packages">ffmpeg</a>. This is necessary for reading audio files.</li> <li>Install <a href="https://pytorch.org/get-started/locally/">PyTorch</a>. Pick the latest stable version, your operating system, your package manager (pip by default) and finally pick any of the proposed CUDA versions if you have a GPU, otherwise pick CPU. Run the given command.</li> <li>Install the remaining requirements with <code>pip install -r requirements.txt</code></li> </ol> <h3>2. (Optional) Download Pretrained Models</h3> <p>Pretrained models are now downloaded automatically. If this doesn't work for you, you can manually download them <a href="https://github.com/CorentinJ/Real-Time-Voice-Cloning/wiki/Pretrained-models">here</a>.</p> <h3>3. (Optional) Test Configuration</h3> <p>Before you download any dataset, you can begin by testing your configuration with:</p> <p><code>python demo_cli.py</code></p> <p>If all tests pass, you're good to go.</p> <h3>4. (Optional) Download Datasets</h3> <p>For playing with the toolbox alone, I only recommend downloading <a href="https://www.openslr.org/resources/12/train-clean-100.tar.gz"><code>LibriSpeech/train-clean-100</code></a>. Extract the contents as <code>&lt;datasets_root&gt;/LibriSpeech/train-clean-100</code> where <code>&lt;datasets_root&gt;</code> is a directory of your choosing. Other datasets are supported in the toolbox, see <a href="https://github.com/CorentinJ/Real-Time-Voice-Cloning/wiki/Training#datasets">here</a>. You're free not to download any dataset, but then you will need your own data as audio files or you will have to record it with the toolbox.</p> <h3>5. Launch the Toolbox</h3> <p>You can then try the toolbox:</p> <p><code>python demo_toolbox.py -d &lt;datasets_root&gt;</code><br> or<br> <code>python demo_toolbox.py</code></p> <p>depending on whether you downloaded any datasets. If you are running an X-server or if you have the error <code>Aborted (core dumped)</code>, see <a href="https://github.com/CorentinJ/Real-Time-Voice-Cloning/issues/11#issuecomment-504733590">this issue</a>.</p> + krishnaik06/The-Grand-Complete-Data-Science-Materials + 2023-09-24T01:25:56Z + tag:github.com,2023-09-24:/krishnaik06/The-Grand-Complete-Data-Science-Materials + + <p></p><hr><h1>The Grand Complete Data Science Guide With Videos And Materials</h1> <h2>1. Complete Python Playlist For Data Analytics And Data Science</h2> <ul> <li>Python In English: <a href="https://www.youtube.com/watch?v=bPrmA1SEN2k&amp;list=PLZoTAELRMXVNUL99R4bDlVYsncUNvwUBB">https://www.youtube.com/watch?v=bPrmA1SEN2k&amp;list=PLZoTAELRMXVNUL99R4bDlVYsncUNvwUBB</a></li> <li>Python In Hindi: <a href="https://www.youtube.com/watch?v=MJd9d9Mpxg0&amp;list=PLTDARY42LDV4qqiJd1Z1tShm3mp9-rP4v">https://www.youtube.com/watch?v=MJd9d9Mpxg0&amp;list=PLTDARY42LDV4qqiJd1Z1tShm3mp9-rP4v</a></li> </ul> <h2>2. Complete Stats Playlist For Data Analytics And Data Science</h2> <ul> <li>Stats In English One Shot: <a href="https://www.youtube.com/watch?v=LZzq1zSL1bs">https://www.youtube.com/watch?v=LZzq1zSL1bs</a></li> <li>Stats In English Detailed Playlist: <a href="https://www.youtube.com/watch?v=zRUliXuwJCQ&amp;list=PLZoTAELRMXVMhVyr3Ri9IQ-t5QPBtxzJO">https://www.youtube.com/watch?v=zRUliXuwJCQ&amp;list=PLZoTAELRMXVMhVyr3Ri9IQ-t5QPBtxzJO</a></li> <li>Stats In Hindi Detailed Playlist: <a href="https://www.youtube.com/watch?v=7y3XckjaVOw&amp;list=PLTDARY42LDV6YHSRo669_uDDGmUEmQnDJ">https://www.youtube.com/watch?v=7y3XckjaVOw&amp;list=PLTDARY42LDV6YHSRo669_uDDGmUEmQnDJ</a></li> </ul> <h2>3. Complete SQL For Data Analytics And Data Science</h2> <ul> <li>Complete SQl Detailed Playlist English: <a href="https://www.youtube.com/watch?v=us1XyayQ6fU&amp;list=PLZoTAELRMXVNMRWlVf0bDDSxNEn38u9Cl">https://www.youtube.com/watch?v=us1XyayQ6fU&amp;list=PLZoTAELRMXVNMRWlVf0bDDSxNEn38u9Cl</a></li> <li>Complete SQL Detailed Playlist Hindi : <strong>Coming Soon</strong></li> <li>Complete SQL One Shot : <strong>Coming Soon</strong></li> </ul> <h2>4. Git And Github Tutorials</h2> <ul> <li>Git and Github Tutorials In English: <a href="https://www.youtube.com/watch?v=GW7B6vwktPA&amp;list=PLZoTAELRMXVOSsBerFZKsdCaA4RYr4RGW">https://www.youtube.com/watch?v=GW7B6vwktPA&amp;list=PLZoTAELRMXVOSsBerFZKsdCaA4RYr4RGW</a></li> <li>Git and Github Tutorials In Hindi: <a href="https://www.youtube.com/watch?v=8KtY8ihZ8ME">https://www.youtube.com/watch?v=8KtY8ihZ8ME</a></li> </ul> <h2>5. EDA And Feature Engineering And Feature Selection</h2> <ul> <li>Feature Engineering Detailed Playlist: <a href="https://www.youtube.com/watch?v=6WDFfaYtN6s&amp;list=PLZoTAELRMXVPwYGE2PXD3x0bfKnR0cJjN">https://www.youtube.com/watch?v=6WDFfaYtN6s&amp;list=PLZoTAELRMXVPwYGE2PXD3x0bfKnR0cJjN</a></li> <li>Feature Selection Detailed Playlist: <a href="https://www.youtube.com/watch?v=uMlU2JaiOd8&amp;list=PLZoTAELRMXVPgjwJ8VyRoqmfNs2CJwhVH">https://www.youtube.com/watch?v=uMlU2JaiOd8&amp;list=PLZoTAELRMXVPgjwJ8VyRoqmfNs2CJwhVH</a></li> <li>EDA Detailed Playlist : <a href="https://www.youtube.com/watch?v=F-X82zhIfBo&amp;list=PLxvLUL96MOO6F8x2fLgFlNrJVcKPQuS3a">https://www.youtube.com/watch?v=F-X82zhIfBo&amp;list=PLxvLUL96MOO6F8x2fLgFlNrJVcKPQuS3a</a></li> </ul> <h2>6. Machine Learning Playlist</h2> <ul> <li>Detailed ML Playlist In English: <a href="https://www.youtube.com/watch?v=bPrmA1SEN2k&amp;list=PLZoTAELRMXVPBTrWtJkn3wWQxZkmTXGwe">https://www.youtube.com/watch?v=bPrmA1SEN2k&amp;list=PLZoTAELRMXVPBTrWtJkn3wWQxZkmTXGwe</a></li> <li>New ML Playlist 2023 In English(In Progress)- <a href="https://www.youtube.com/watch?v=ip4WxEZwEPc&amp;list=PLZoTAELRMXVPMbdMTjwolBI0cJcvASePD">https://www.youtube.com/watch?v=ip4WxEZwEPc&amp;list=PLZoTAELRMXVPMbdMTjwolBI0cJcvASePD</a></li> <li>Machine Learning One Shot In English: <a href="https://www.youtube.com/watch?v=JxgmHe2NyeY">https://www.youtube.com/watch?v=JxgmHe2NyeY</a></li> <li>Machine Learning Playlist In Hindi: <a href="https://www.youtube.com/watch?v=7uwa9aPbBRU&amp;list=PLTDARY42LDV7WGmlzZtY-w9pemyPrKNUZ">https://www.youtube.com/watch?v=7uwa9aPbBRU&amp;list=PLTDARY42LDV7WGmlzZtY-w9pemyPrKNUZ</a></li> </ul> <h2>7. Complete Deep Learning And NLP Playlist:</h2> <ul> <li>Complete Deep Learning And NLP Detailed Playlist In English: <a href="https://www.youtube.com/watch?v=YFNKnUhm_-s&amp;list=PLZoTAELRMXVPGU70ZGsckrMdr0FteeRUi">https://www.youtube.com/watch?v=YFNKnUhm_-s&amp;list=PLZoTAELRMXVPGU70ZGsckrMdr0FteeRUi</a></li> <li>Complete NLP Live Playlist English: <a href="https://www.youtube.com/watch?v=w3coRFpyddQ&amp;list=PLZoTAELRMXVNNrHSKv36Lr3_156yCo6Nn">https://www.youtube.com/watch?v=w3coRFpyddQ&amp;list=PLZoTAELRMXVNNrHSKv36Lr3_156yCo6Nn</a></li> <li>Complete Deep Learning And NLP Playlist Hindi: <strong>Coming soon</strong></li> </ul> <h2>8. Important Frameworks for Production Deployments</h2> <ul> <li>Flask Detailed Playlist In English: <a href="https://www.youtube.com/watch?v=4L_xAWDRs7w&amp;list=PLZoTAELRMXVPBaLN3e-uoVRR9hlRFRfUc">https://www.youtube.com/watch?v=4L_xAWDRs7w&amp;list=PLZoTAELRMXVPBaLN3e-uoVRR9hlRFRfUc</a></li> <li>Flask One Shot Hindi: <a href="https://www.youtube.com/watch?v=KF-rDqQfqz0">https://www.youtube.com/watch?v=KF-rDqQfqz0</a></li> <li>Gradio Framework: <a href="https://www.youtube.com/watch?v=wruyZWre2sM">https://www.youtube.com/watch?v=wruyZWre2sM</a></li> <li>BentoML: <a href="https://www.youtube.com/watch?v=i_FtfdOKa2M">https://www.youtube.com/watch?v=i_FtfdOKa2M</a></li> <li>MLFLOw and Dagshub: <a href="https://www.youtube.com/watch?v=qdcHHrsXA48">https://www.youtube.com/watch?v=qdcHHrsXA48</a></li> </ul> <h2>9. Complete AWS Sagemaker And Sagemaker Studio Tools</h2> <ul> <li>Sagemaker Detailed Playlist: <a href="https://www.youtube.com/watch?v=LkR3GNDB0HI&amp;list=PLZoTAELRMXVONh5mHrXowH6-dgyWoC_Ew">https://www.youtube.com/watch?v=LkR3GNDB0HI&amp;list=PLZoTAELRMXVONh5mHrXowH6-dgyWoC_Ew</a></li> <li>Sagemaker End to End Projects- <strong>Coming Soon</strong></li> </ul> <h2>10. Complete MLOPS tutorials</h2> <ul> <li>Complete Dockers In One Shot English: <a href="https://www.youtube.com/watch?v=8vmKtS8W7IQ">https://www.youtube.com/watch?v=8vmKtS8W7IQ</a></li> <li>MLFLOW End to End Tutorials With Deployment: <a href="https://www.youtube.com/watch?v=pxk1Fr33-L4">https://www.youtube.com/watch?v=pxk1Fr33-L4</a></li> <li>Evidently AI Model Monitoring: <a href="https://www.youtube.com/watch?v=cgc3dSEAel0">https://www.youtube.com/watch?v=cgc3dSEAel0</a></li> <li>Complete Docker In One Shot Hindi: <strong>Coming soon</strong></li> <li>Complete Github Action In English: <strong>Coming soon</strong></li> <li>Complete Kubernetes And Kubeflow Tutorials: <strong>Coming Soon</strong></li> </ul> <h2>11. End To End ML,DL and NLP Projects- Entire Lifecycle Till Deployment Using Open Source Tools</h2> <ul> <li>End To End ML Projects Playlist In English: <a href="https://www.youtube.com/watch?v=S_F_c9e2bz4&amp;list=PLZoTAELRMXVPS-dOaVbAux22vzqdgoGhG&amp;index=1">https://www.youtube.com/watch?v=S_F_c9e2bz4&amp;list=PLZoTAELRMXVPS-dOaVbAux22vzqdgoGhG&amp;index=1</a></li> <li>End To End ML Playlist In Hindi: <a href="https://www.youtube.com/watch?v=NuwUnRpxq2c&amp;list=PLTDARY42LDV7jzL_f68SY-eOQ9tY2lYvR">https://www.youtube.com/watch?v=NuwUnRpxq2c&amp;list=PLTDARY42LDV7jzL_f68SY-eOQ9tY2lYvR</a></li> </ul> <h2>12. Generative AI And Open AI Playlist:</h2> <ul> <li>OPENAI Playlist English(In Progress): <a href="https://www.youtube.com/watch?v=CbpsDMwFG2g&amp;list=PLZoTAELRMXVMTWGW9iS45ZTcMsntos6VO">https://www.youtube.com/watch?v=CbpsDMwFG2g&amp;list=PLZoTAELRMXVMTWGW9iS45ZTcMsntos6VO</a></li> <li>Langchain Playlist(In Progress): <a href="https://www.youtube.com/watch?v=_FpT1cwcSLg&amp;list=PLZoTAELRMXVORE4VF7WQ_fAl0L1Gljtar">https://www.youtube.com/watch?v=_FpT1cwcSLg&amp;list=PLZoTAELRMXVORE4VF7WQ_fAl0L1Gljtar</a></li> <li>ChainLit Playlist <strong>(In Progress)</strong></li> </ul> <h2>13. Pyspark Complete Tutorials</h2> <ul> <li>Pyspark Detailed Playlist: <a href="https://www.youtube.com/watch?v=WyZmM6K7ubc&amp;list=PLZoTAELRMXVNjiiawhzZ0afHcPvC8jpcg">https://www.youtube.com/watch?v=WyZmM6K7ubc&amp;list=PLZoTAELRMXVNjiiawhzZ0afHcPvC8jpcg</a></li> </ul> <h2>14. Complete Data Science,Machine Learning And Deep Learning Interview Questions</h2> <p><a href="https://github.com/iNeuronai/interview-question-data-science-">https://github.com/iNeuronai/interview-question-data-science-</a></p> <h2>Internships</h2> <p><a href="https://internship.ineuron.ai/">https://internship.ineuron.ai/</a></p> <h2>Data Science TrackerSheet For Learning</h2> <p><a href="https://drive.google.com/file/d/18doA_wMja2nAawcE6imIcfnEMf-Pir2n/view">https://drive.google.com/file/d/18doA_wMja2nAawcE6imIcfnEMf-Pir2n/view</a></p> <h2>Youtube Channels For Referring All Videos. Consider Subscribing and pressing the bell icon.</h2> <ul> <li>Krish Naik : <a href="https://www.youtube.com/@krishnaik06">https://www.youtube.com/@krishnaik06</a></li> <li>Krish Naik Hindi: <a href="https://www.youtube.com/@krishnaikhindi">https://www.youtube.com/@krishnaikhindi</a></li> <li>Success Stories By Krish(Coming up): <a href="https://www.youtube.com/channel/UCNSHtBgZ3dhcpv190JrK_LQ">https://www.youtube.com/channel/UCNSHtBgZ3dhcpv190JrK_LQ</a></li> <li>Support Channel and Join this channel to get access to perks: <a href="https://www.youtube.com/channel/UCNU_lfiiWBdtULKOw6X0Dig/join">https://www.youtube.com/channel/UCNU_lfiiWBdtULKOw6X0Dig/join</a></li> </ul> - coder2gwy/coder2gwy - 2023-09-23T01:21:50Z - tag:github.com,2023-09-23:/coder2gwy/coder2gwy - - <p>互联网首份程序员考公指南,由3位已经进入体制内的前大厂程序员联合献上。</p><hr><h1>程序员考公指南</h1> <p>3个来自同一家大厂的程序员组团在职备考一年,上岸成功率100%。我们为想进体制内的程序员写了这份<strong>考公务员/事业编制/教师</strong>的指南。</p> <blockquote> <p>后端阿强考上了一线城市公务员,前端阿珍进了离家车程10分钟的事业单位,我在回家省内高校当教师:我们都有光明的前途。</p> </blockquote> <h2>本指南的内容概要和目标人群</h2> <p>该指南由本人主笔,我叫阿特,我与这两位同事17年进了某大厂同一个部门。走出校门的我们走进996的部门。996一年多以后,项目“顺利”被砍,通宵达旦写出的每一行代码都被下掉。</p> <p>18年虽然职场PUA这个词还没如同现在这般流行,但愈发激烈的竞争与倒排工期的项目也让我逐渐失去了对原本对编程的兴趣。我开始备考各种体制内的岗位,也鼓励这两位好友与我一起备考。</p> <p>我们在公司“遵守劳动法”的上班制度里面见缝插针地备考。经过一年多的在职备考,我们终于都上岸了,他们俩分别去了<strong>一线城市市直公务员岗、二线城市离家很近的事业编</strong>。而我则放弃了广州的要熬夜的行政编岗位,选择了老家省会的高校教师。</p> <p>这一年多的备考里面,我们遇到了各种阻碍:996没时间、家人不支持,但都一一克服。在觥筹交错的散伙饭之后,我写下您眼前的这篇指南,希望它能帮助到相同处境的朋友。</p> <p>本指南的目标人群是想要<strong>想进体制内的程序员</strong>,尤其适合那些经过深思熟虑之后,发现程序员这份职业不能满足自己需求的人。</p> <p><strong>建议、吐槽、提问请点进<a href="https://github.com/coder2gwy/coder2gwy/issues/1">这个issue</a>。写作不易,您的star✨是我继续完善指南的动力。</strong></p> <p>PS.由于高校带编教师岗位少、门槛愈发高,我会花较多的笔墨和精力在考公务员/事业编制方面。</p> <h2>更新&amp;交流</h2> <p><strong>后续更新</strong>:建议关注我的公众号「程序员考公」,往后所有文章会首发于公众号,坚持高质量原创。</p> <p><strong>交流</strong>:想进入程序员考公交流群,请在「程序员考公」的公众号点击「拉我进群」,添加客服微信后即被拉进交流群。(若进群邀请提示 有同事已经进群,可以私信客服进另外的群。)</p> <p><img src="https://raw.githubusercontent.com/coder2gwy/coder2gwy/main/img/%E4%BA%8C%E7%BB%B4%E7%A0%81.png" alt="img"></p> <h2>正文内容</h2> <p>请移步:</p> <ul> <li><a href="https://raw.githubusercontent.com/coder2gwy/coder2gwy/main/%E4%B8%8A%E5%B2%B8%E7%BB%8F%E5%8E%86/">程序员成功上岸经历</a></li> <li><a href="https://raw.githubusercontent.com/coder2gwy/coder2gwy/main/%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/">程序员备考的最佳实践</a></li> <li><a href="https://raw.githubusercontent.com/coder2gwy/coder2gwy/main/%E9%81%87%E5%88%B0%E9%97%AE%E9%A2%98/">程序员备考过程中会遇到哪些问题?</a></li> <li><a href="https://raw.githubusercontent.com/coder2gwy/coder2gwy/main/%E5%9F%BA%E6%9C%AC%E8%AE%A4%E8%AF%86/">公考公平吗,35岁再去考可以么?</a></li> <li><a href="https://raw.githubusercontent.com/coder2gwy/coder2gwy/main/%E7%9B%B8%E5%85%B3/">资料、工具推荐和扩展阅读</a></li> </ul> + dgtlmoon/changedetection.io + 2023-09-24T01:25:56Z + tag:github.com,2023-09-24:/dgtlmoon/changedetection.io + + <p>The best and simplest free open source website change detection, restock monitor and notification service. Restock Monitor, change detection. Designed for simplicity - Simply monitor which websites had a text change for free. Free Open source web page change detection, Website defacement monitoring, Price change and Price Drop notification</p><hr><h2>Web Site Change Detection, Restock monitoring and notifications.</h2> <p><strong><em>Detect website content changes and perform meaningful actions - trigger notifications via Discord, Email, Slack, Telegram, API calls and many more.</em></strong></p> <p><em>Live your data-life pro-actively.</em></p> <p><a href="https://changedetection.io?src=github"><img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/screenshot.png" style="max-width:100%;" alt="Self-hosted web page change monitoring" title="Self-hosted web page change monitoring"></a></p> <p><a href="https://github.com/dgtlmoon/changedetection.io/releases"><img src="https://img.shields.io:/github/v/release/dgtlmoon/changedetection.io?style=for-the-badge" alt="Release Version"></a> <a href="https://hub.docker.com/r/dgtlmoon/changedetection.io"><img src="https://img.shields.io/docker/pulls/dgtlmoon/changedetection.io?style=for-the-badge" alt="Docker Pulls"></a> <a href="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/LICENSE.md"><img src="https://img.shields.io/github/license/dgtlmoon/changedetection.io.svg?style=for-the-badge" alt="License"></a></p> <p><img src="https://github.com/dgtlmoon/changedetection.io/actions/workflows/test-only.yml/badge.svg?branch=master" alt="changedetection.io"></p> <p><a href="https://changedetection.io"><strong>Don't have time? Let us host it for you! try our $8.99/month subscription - use our proxies and support!</strong></a> , <em>half the price of other website change monitoring services!</em></p> <ul> <li>Chrome browser included.</li> <li>Super fast, no registration needed setup.</li> <li>Get started watching and receiving website change notifications straight away.</li> </ul> <h3>Target specific parts of the webpage using the Visual Selector tool.</h3> <p>Available when connected to a <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Playwright-content-fetcher">playwright content fetcher</a> (included as part of our subscription service)</p> <p><a href="https://changedetection.io?src=github"><img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/visualselector-anim.gif" style="max-width:100%;" alt="Self-hosted web page change monitoring context difference " title="Self-hosted web page change monitoring context difference "></a></p> <h3>Easily see what changed, examine by word, line, or individual character.</h3> <p><a href="https://changedetection.io?src=github"><img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/screenshot-diff.png" style="max-width:100%;" alt="Self-hosted web page change monitoring context difference " title="Self-hosted web page change monitoring context difference "></a></p> <h3>Perform interactive browser steps</h3> <p>Fill in text boxes, click buttons and more, setup your changedetection scenario.</p> <p>Using the <strong>Browser Steps</strong> configuration, add basic steps before performing change detection, such as logging into websites, adding a product to a cart, accept cookie logins, entering dates and refining searches.</p> <p><a href="https://changedetection.io?src=github"><img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/browsersteps-anim.gif" style="max-width:100%;" alt="Self-hosted web page change monitoring context difference " title="Website change detection with interactive browser steps, login, cookies etc"></a></p> <p>After <strong>Browser Steps</strong> have been run, then visit the <strong>Visual Selector</strong> tab to refine the content you're interested in. Requires Playwright to be enabled.</p> <h3>Example use cases</h3> <ul> <li>Products and services have a change in pricing</li> <li><em>Out of stock notification</em> and <em>Back In stock notification</em></li> <li>Monitor and track PDF file changes, know when a PDF file has text changes.</li> <li>Governmental department updates (changes are often only on their websites)</li> <li>New software releases, security advisories when you're not on their mailing list.</li> <li>Festivals with changes</li> <li>Discogs restock alerts and monitoring</li> <li>Realestate listing changes</li> <li>Know when your favourite whiskey is on sale, or other special deals are announced before anyone else</li> <li>COVID related news from government websites</li> <li>University/organisation news from their website</li> <li>Detect and monitor changes in JSON API responses</li> <li>JSON API monitoring and alerting</li> <li>Changes in legal and other documents</li> <li>Trigger API calls via notifications when text appears on a website</li> <li>Glue together APIs using the JSON filter and JSON notifications</li> <li>Create RSS feeds based on changes in web content</li> <li>Monitor HTML source code for unexpected changes, strengthen your PCI compliance</li> <li>You have a very sensitive list of URLs to watch and you do <em>not</em> want to use the paid alternatives. (Remember, <em>you</em> are the product)</li> <li>Get notified when certain keywords appear in Twitter search results</li> <li>Proactively search for jobs, get notified when companies update their careers page, search job portals for keywords.</li> <li>Get alerts when new job positions are open on Bamboo HR and other job platforms</li> <li>Website defacement monitoring</li> <li>Pokémon Card Restock Tracker / Pokémon TCG Tracker</li> <li>RegTech - stay ahead of regulatory changes, regulatory compliance</li> </ul> <p><em>Need an actual Chrome runner with Javascript support? We support fetching via WebDriver and Playwright!</em></p> <h4>Key Features</h4> <ul> <li>Lots of trigger filters, such as "Trigger on text", "Remove text by selector", "Ignore text", "Extract text", also using regular-expressions!</li> <li>Target elements with xPath(1.0) and CSS Selectors, Easily monitor complex JSON with JSONPath or jq</li> <li>Switch between fast non-JS and Chrome JS based "fetchers"</li> <li>Track changes in PDF files (Monitor text changed in the PDF, Also monitor PDF filesize and checksums)</li> <li>Easily specify how often a site should be checked</li> <li>Execute JS before extracting text (Good for logging in, see examples in the UI!)</li> <li>Override Request Headers, Specify <code>POST</code> or <code>GET</code> and other methods</li> <li>Use the "Visual Selector" to help target specific elements</li> <li>Configurable <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration">proxy per watch</a></li> <li>Send a screenshot with the notification when a change is detected in the web page</li> </ul> <p>We <a href="https://brightdata.grsm.io/n0r16zf7eivq">recommend and use Bright Data</a> global proxy services, Bright Data will match any first deposit up to $100 using our signup link.</p> <p><a href="https://oxylabs.go2cloud.org/SH2d">Oxylabs</a> is also an excellent proxy provider and well worth using, they offer Residental, ISP, Rotating and many other proxy types to suit your project.</p> <p>Please <span>⭐</span> star <span>⭐</span> this project and help it grow! <a href="https://github.com/dgtlmoon/changedetection.io/">https://github.com/dgtlmoon/changedetection.io/</a></p> <h2>Installation</h2> <h3>Docker</h3> <p>With Docker composer, just clone this repository and..</p> <pre><code class="language-bash">$ docker-compose up -d </code></pre> <p>Docker standalone</p> <pre><code class="language-bash">$ docker run -d --restart always -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io </code></pre> <p><code>:latest</code> tag is our latest stable release, <code>:dev</code> tag is our bleeding edge <code>master</code> branch.</p> <p>Alternative docker repository over at ghcr - <a href="https://ghcr.io/dgtlmoon/changedetection.io">ghcr.io/dgtlmoon/changedetection.io</a></p> <h3>Windows</h3> <p>See the install instructions at the wiki <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Microsoft-Windows">https://github.com/dgtlmoon/changedetection.io/wiki/Microsoft-Windows</a></p> <h3>Python Pip</h3> <p>Check out our pypi page <a href="https://pypi.org/project/changedetection.io/">https://pypi.org/project/changedetection.io/</a></p> <pre><code class="language-bash">$ pip3 install changedetection.io $ changedetection.io -d /path/to/empty/data/dir -p 5000 </code></pre> <p>Then visit <a href="http://127.0.0.1:5000">http://127.0.0.1:5000</a> , You should now be able to access the UI.</p> <p><em>Now with per-site configurable support for using a fast built in HTTP fetcher or use a Chrome based fetcher for monitoring of JavaScript websites!</em></p> <h2>Updating changedetection.io</h2> <h3>Docker</h3> <pre><code>docker pull dgtlmoon/changedetection.io docker kill $(docker ps -a -f name=changedetection.io -q) docker rm $(docker ps -a -f name=changedetection.io -q) docker run -d --restart always -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io </code></pre> <h3>docker-compose</h3> <pre><code class="language-bash">docker-compose pull &amp;&amp; docker-compose up -d </code></pre> <p>See the wiki for more information <a href="https://github.com/dgtlmoon/changedetection.io/wiki">https://github.com/dgtlmoon/changedetection.io/wiki</a></p> <h2>Filters</h2> <p>XPath(1.0), JSONPath, jq, and CSS support comes baked in! You can be as specific as you need, use XPath exported from various XPath element query creation tools. (We support LXML <code>re:test</code>, <code>re:match</code> and <code>re:replace</code>.)</p> <h2>Notifications</h2> <p>ChangeDetection.io supports a massive amount of notifications (including email, office365, custom APIs, etc) when a web-page has a change detected thanks to the <a href="https://github.com/caronc/apprise">apprise</a> library. Simply set one or more notification URL's in the <em>[edit]</em> tab of that watch.</p> <p>Just some examples</p> <pre><code>discord://webhook_id/webhook_token flock://app_token/g:channel_id gitter://token/room gchat://workspace/key/token msteams://TokenA/TokenB/TokenC/ o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail rocket://user:password@hostname/#Channel mailto://user:pass@example.com?to=receivingAddress@example.com json://someserver.com/custom-api syslog:// </code></pre> <p><a href="https://github.com/caronc/apprise#popular-notification-services">And everything else in this list!</a></p> <img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/screenshot-notifications.png" style="max-width:100%;" alt="Self-hosted web page change monitoring notifications" title="Self-hosted web page change monitoring notifications"> <p>Now you can also customise your notification content and use <a target="_new" href="https://jinja.palletsprojects.com/en/3.0.x/templates/">Jinja2 templating</a> for their title and body!</p> <h2>JSON API Monitoring</h2> <p>Detect changes and monitor data in JSON API's by using either JSONPath or jq to filter, parse, and restructure JSON as needed.</p> <p><img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/json-filter-field-example.png" alt="image"></p> <p>This will re-parse the JSON and apply formatting to the text, making it super easy to monitor and detect changes in JSON API results</p> <p><img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/json-diff-example.png" alt="image"></p> <h3>JSONPath or jq?</h3> <p>For more complex parsing, filtering, and modifying of JSON data, jq is recommended due to the built-in operators and functions. Refer to the <a href="https://stedolan.github.io/jq/manual/">documentation</a> for more specific information on jq.</p> <p>One big advantage of <code>jq</code> is that you can use logic in your JSON filter, such as filters to only show items that have a value greater than/less than etc.</p> <p>See the wiki <a href="https://github.com/dgtlmoon/changedetection.io/wiki/JSON-Selector-Filter-help">https://github.com/dgtlmoon/changedetection.io/wiki/JSON-Selector-Filter-help</a> for more information and examples</p> <h3>Parse JSON embedded in HTML!</h3> <p>When you enable a <code>json:</code> or <code>jq:</code> filter, you can even automatically extract and parse embedded JSON inside a HTML page! Amazingly handy for sites that build content based on JSON, such as many e-commerce websites.</p> <pre><code>&lt;html&gt; ... &lt;script type="application/ld+json"&gt; { "@context":"http://schema.org/", "@type":"Product", "offers":{ "@type":"Offer", "availability":"http://schema.org/InStock", "price":"3949.99", "priceCurrency":"USD", "url":"https://www.newegg.com/p/3D5-000D-001T1" }, "description":"Cobratype King Cobra Hero Desktop Gaming PC", "name":"Cobratype King Cobra Hero Desktop Gaming PC", "sku":"3D5-000D-001T1", "itemCondition":"NewCondition" } &lt;/script&gt; </code></pre> <p><code>json:$..price</code> or <code>jq:..price</code> would give <code>3949.99</code>, or you can extract the whole structure (use a JSONpath test website to validate with)</p> <p>The application also supports notifying you that it can follow this information automatically</p> <h2>Proxy Configuration</h2> <p>See the wiki <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration">https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration</a> , we also support using <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration#brightdata-proxy-support">Bright Data proxy services where possible</a></p> <h2>Raspberry Pi support?</h2> <p>Raspberry Pi and linux/arm/v6 linux/arm/v7 arm64 devices are supported! See the wiki for <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Fetching-pages-with-WebDriver">details</a></p> <h2>API Support</h2> <p>Supports managing the website watch list <a href="https://changedetection.io/docs/api_v1/index.html">via our API</a></p> <h2>Support us</h2> <p>Do you use changedetection.io to make money? does it save you time or money? Does it make your life easier? less stressful? Remember, we write this software when we should be doing actual paid work, we have to buy food and pay rent just like you.</p> <p>Firstly, consider taking out a <a href="https://changedetection.io?src=github">change detection monthly subscription - unlimited checks and watches</a> , even if you don't use it, you still get the warm fuzzy feeling of helping out the project. (And who knows, you might just use it!)</p> <p>Or directly donate an amount PayPal <a href="https://www.paypal.com/donate/?hosted_button_id=7CP6HR9ZCNDYJ"><img src="https://img.shields.io/badge/Donate-PayPal-green.svg?sanitize=true" alt="Donate"></a></p> <p>Or BTC <code>1PLFN327GyUarpJd7nVe7Reqg9qHx5frNn</code></p> <img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/btc-support.png" style="max-width:50%;" alt="Support us!"> <h2>Commercial Support</h2> <p>I offer commercial support, this software is depended on by network security, aerospace , data-science and data-journalist professionals just to name a few, please reach out at <a href="mailto:dgtlmoon@gmail.com">dgtlmoon@gmail.com</a> for any enquiries, I am more than glad to work with your organisation to further the possibilities of what can be done with changedetection.io</p> - zhudotexe/kani - 2023-09-23T01:21:50Z - tag:github.com,2023-09-23:/zhudotexe/kani - - <p>kani (カニ) is a highly hackable microframework for chat-based language models with tool usage/function calling.</p><hr><p align="center"> <img width="256" height="256" alt="kani" src="https://raw.githubusercontent.com/zhudotexe/kani/main/docs/_static/kani-logo@256.png"> </p> <p align="center"> <a href="https://github.com/zhudotexe/kani/actions/workflows/pytest.yml"> <img alt="Test Package" src="https://github.com/zhudotexe/kani/actions/workflows/pytest.yml/badge.svg?sanitize=true"> </a> <a href="https://kani.readthedocs.io/en/latest/?badge=latest"> <img alt="Documentation Status" src="https://readthedocs.org/projects/kani/badge/?version=latest"> </a> <a href="https://pypi.org/project/kani/"> <img alt="PyPI" src="https://img.shields.io/pypi/v/kani"> </a> <a href="https://colab.research.google.com/github/zhudotexe/kani/blob/main/examples/colab_examples.ipynb"> <img alt="Quickstart in Colab" src="https://colab.research.google.com/assets/colab-badge.svg?sanitize=true"> </a> <a href="https://discord.gg/eTepTNDxYT"> <img alt="Discord" src="https://img.shields.io/discord/1150902904773935214?color=5865F2&amp;label=discord&amp;logo=discord&amp;logoColor=white"> </a> </p> <h1>kani (カニ)</h1> <p>kani (カニ) is a lightweight and highly hackable framework for chat-based language models with tool usage/function calling.</p> <p>Compared to other LM frameworks, kani is less opinionated and offers more fine-grained customizability over the parts of the control flow that matter, making it the perfect choice for NLP researchers, hobbyists, and developers alike.</p> <p>kani comes with support for OpenAI models and LLaMA v2 out of the box, with a model-agnostic framework to add support for many more.</p> <p><a href="http://kani.readthedocs.io/">Read the docs on ReadTheDocs!</a></p> <p><a href="https://arxiv.org/abs/2309.05542">Read our preprint on arXiv!</a></p> <h2>Features</h2> <ul> <li><strong>Lightweight and high-level</strong> - kani implements common boilerplate to interface with language models without forcing you to use opinionated prompt frameworks or complex library-specific tooling.</li> <li><strong>Model agnostic</strong> - kani provides a simple interface to implement: token counting and completion generation. Implement these two, and kani can run with any language model.</li> <li><strong>Automatic chat memory management</strong> - Allow chat sessions to flow without worrying about managing the number of tokens in the history - kani takes care of it.</li> <li><strong>Function calling with model feedback and retry</strong> - Give models access to functions in just one line of code. kani elegantly provides feedback about hallucinated parameters and errors and allows the model to retry calls.</li> <li><strong>You control the prompts</strong> - There are no hidden prompt hacks. We will never decide for you how to format your own data, unlike other popular language model libraries.</li> <li><strong>Fast to iterate and intuitive to learn</strong> - With kani, you only write Python - we handle the rest.</li> <li><strong>Asynchronous design from the start</strong> - kani can scale to run multiple chat sessions in parallel easily, without having to manage multiple processes or programs.</li> </ul> <h2>Quickstart</h2> <a href="https://colab.research.google.com/github/zhudotexe/kani/blob/main/examples/colab_examples.ipynb"> <img alt="Quickstart in Colab" src="https://colab.research.google.com/assets/colab-badge.svg?sanitize=true"> </a> <p>kani requires Python 3.10 or above.</p> <p>First, install the library. In this quickstart, we'll use the OpenAI engine, though kani is <a href="https://kani.readthedocs.io/en/latest/engines.html">model-agnostic</a>.</p> <pre><code class="language-shell">$ pip install "kani[openai]" </code></pre> <p>Then, let's use kani to create a simple chatbot using ChatGPT as a backend.</p> <pre><code class="language-python"># import the library from kani import Kani, chat_in_terminal from kani.engines.openai import OpenAIEngine # Replace this with your OpenAI API key: https://platform.openai.com/account/api-keys api_key = "sk-..." # kani uses an Engine to interact with the language model. You can specify other model # parameters here, like temperature=0.7. engine = OpenAIEngine(api_key, model="gpt-3.5-turbo") # The kani manages the chat state, prompting, and function calling. Here, we only give # it the engine to call ChatGPT, but you can specify other parameters like # system_prompt="You are..." here. ai = Kani(engine) # kani comes with a utility to interact with a kani through your terminal! Check out # the docs for how to use kani programmatically. chat_in_terminal(ai) </code></pre> <p>kani makes the time to set up a working chat model short, while offering the programmer deep customizability over every prompt, function call, and even the underlying language model.</p> <h2>Function Calling</h2> <p>Function calling gives language models the ability to choose when to call a function you provide based off its documentation.</p> <p>With kani, you can write functions in Python and expose them to the model with just one line of code: the <code>@ai_function</code> decorator.</p> <pre><code class="language-python"># import the library from typing import Annotated from kani import AIParam, Kani, ai_function, chat_in_terminal from kani.engines.openai import OpenAIEngine # set up the engine as above api_key = "sk-..." engine = OpenAIEngine(api_key, model="gpt-3.5-turbo") # subclass Kani to add AI functions class MyKani(Kani): # Adding the annotation to a method exposes it to the AI @ai_function() def get_weather( self, # and you can provide extra documentation about specific parameters location: Annotated[str, AIParam(desc="The city and state, e.g. San Francisco, CA")], ): """Get the current weather in a given location.""" # In this example, we mock the return, but you could call a real weather API return f"Weather in {location}: Sunny, 72 degrees fahrenheit." ai = MyKani(engine) chat_in_terminal(ai) </code></pre> <p>kani guarantees that function calls are valid by the time they reach your methods while allowing you to focus on writing code. For more information, check out <a href="https://kani.readthedocs.io/en/latest/function_calling.html">the function calling docs</a>.</p> <h2>Why kani?</h2> <p>Existing frameworks for language models like langchain and simpleaichat are opinionated and/or heavyweight - they edit developers' prompts under the hood, are challenging to learn, and are difficult to customize without adding a lot of high-maintenance bloat to your codebase.</p> <p align="center"> <img style="max-width: 800px;" alt="kani" src="https://raw.githubusercontent.com/zhudotexe/kani/main/docs/_static/lib-comparison_white.png"> </p> <p>We built kani to be more flexible, simple, and robust. kani is appropriate for everyone from academic researchers to industry professionals to hobbyists to use without worrying about under-the-hood hacks.</p> <h2>Docs</h2> <p>To learn more about how to <a href="https://kani.readthedocs.io/en/latest/customization.html">customize kani with your own prompt wrappers</a>, <a href="https://kani.readthedocs.io/en/latest/function_calling.html">function calling</a>, and more, <a href="http://kani.readthedocs.io/">read the docs!</a></p> <p>Or take a look at the hands-on examples <a href="https://github.com/zhudotexe/kani/tree/main/examples">in this repo</a>.</p> <h2>Demo</h2> <p>Want to see kani in action? Using 4-bit quantization to shrink the model, we run LLaMA v2 as part of our test suite right on GitHub Actions:</p> <p><a href="https://github.com/zhudotexe/kani/actions/workflows/pytest.yml?query=branch%3Amain+is%3Asuccess">https://github.com/zhudotexe/kani/actions/workflows/pytest.yml?query=branch%3Amain+is%3Asuccess</a></p> <p>Simply click on the latest build to see LLaMA's output!</p> <h2>Citation</h2> <p>If you use Kani, please cite us as:</p> <pre><code>@misc{zhu2023kani, title={Kani: A Lightweight and Highly Hackable Framework for Building Language Model Applications}, author={Andrew Zhu and Liam Dugan and Alyssa Hwang and Chris Callison-Burch}, year={2023}, eprint={2309.05542}, archivePrefix={arXiv}, primaryClass={cs.SE} } </code></pre> <!-- For developers: ## Build and Publish `fastlmi` uses Hatchling to build. Make sure to bump the version in pyproject.toml before publishing. ```shell rm -r dist/ python -m build python -m twine upload dist/* ``` --> + Xwin-LM/Xwin-LM + 2023-09-24T01:25:56Z + tag:github.com,2023-09-24:/Xwin-LM/Xwin-LM + + <p>Xwin-LM: Powerful, Stable, and Reproducible LLM Alignment</p><hr><div align="center"> <img src="https://raw.githubusercontent.com/Xwin-LM/Xwin-LM/main/assets/_logo.png" style="width: 70%"> </div> <h3 align="center"> Powerful, Stable, and Reproducible LLM Alignment </h3> <p align="center"> <a href="https://huggingface.co/Xwin-LM"> <img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Models-blue"> </a> </p> <p><strong>Step up your LLM alignment with Xwin-LM!</strong></p> <p>Xwin-LM aims to develop and open-source alignment technologies for large language models, including supervised fine-tuning (SFT), reward models (RM), reject sampling, reinforcement learning from human feedback (RLHF), etc. Our first release, built-upon on the Llama2 base models, ranked <strong>TOP-1</strong> on <a href="https://tatsu-lab.github.io/alpaca_eval/">AlpacaEval</a>. Notably, it's <strong>the first to surpass GPT-4</strong> on this benchmark. The project will be continuously updated.</p> <h2>News</h2> <ul> <li><span>💥</span> [Sep, 2023] We released <a href="https://huggingface.co/Xwin-LM/Xwin-LM-70B-V0.1">Xwin-LM-70B-V0.1</a>, which has achieved a win-rate against Davinci-003 of <strong>95.57%</strong> on <a href="https://tatsu-lab.github.io/alpaca_eval/">AlpacaEval</a> benchmark, ranking as <strong>TOP-1</strong> on AlpacaEval. <strong>It was the FIRST model surpassing GPT-4</strong> on <a href="https://tatsu-lab.github.io/alpaca_eval/">AlpacaEval</a>. Also note its winrate v.s. GPT-4 is <strong>60.61</strong>.</li> <li><span>🔍</span> [Sep, 2023] RLHF plays crucial role in the strong performance of Xwin-LM-V0.1 release!</li> <li><span>💥</span> [Sep, 2023] We released <a href="https://huggingface.co/Xwin-LM/Xwin-LM-13B-V0.1">Xwin-LM-13B-V0.1</a>, which has achieved <strong>91.76%</strong> win-rate on <a href="https://tatsu-lab.github.io/alpaca_eval/">AlpacaEval</a>, ranking as <strong>top-1</strong> among all 13B models.</li> <li><span>💥</span> [Sep, 2023] We released <a href="https://huggingface.co/Xwin-LM/Xwin-LM-7B-V0.1">Xwin-LM-7B-V0.1</a>, which has achieved <strong>87.82%</strong> win-rate on <a href="https://tatsu-lab.github.io/alpaca_eval/">AlpacaEval</a>, ranking as <strong>top-1</strong> among all 7B models.</li> </ul> <h2>Model Card</h2> <table> <thead> <tr> <th>Model</th> <th>Checkpoint</th> <th>Report</th> <th>License</th> </tr> </thead> <tbody> <tr> <td>Xwin-LM-7B-V0.1</td> <td>🤗 <a href="https://huggingface.co/Xwin-LM/Xwin-LM-7B-V0.1" target="_blank">HF Link</a></td> <td>📃<strong>Coming soon (Stay tuned)</strong></td> <td><a href="https://ai.meta.com/resources/models-and-libraries/llama-downloads/" target="_blank">Llama 2 License</a></td> </tr> <tr> <td>Xwin-LM-13B-V0.1</td> <td>🤗 <a href="https://huggingface.co/Xwin-LM/Xwin-LM-13B-V0.1" target="_blank">HF Link</a></td> <td></td> <td><a href="https://ai.meta.com/resources/models-and-libraries/llama-downloads/" target="_blank">Llama 2 License</a></td> </tr> <tr> <td>Xwin-LM-70B-V0.1</td> <td>🤗 <a href="https://huggingface.co/Xwin-LM/Xwin-LM-70B-V0.1" target="_blank">HF Link</a></td> <td></td> <td><a href="https://ai.meta.com/resources/models-and-libraries/llama-downloads/" target="_blank">Llama 2 License</a></td> </tr> </tbody> </table> <h2>Benchmarks</h2> <h3>Xwin-LM performance on <a href="https://tatsu-lab.github.io/alpaca_eval/">AlpacaEval</a>.</h3> <p>The table below displays the performance of Xwin-LM on <a href="https://tatsu-lab.github.io/alpaca_eval/">AlpacaEval</a>, where evaluates its win-rate against Text-Davinci-003 across 805 questions. To provide a comprehensive evaluation, we present, for the first time, the win-rate against ChatGPT and GPT-4 as well. Our Xwin-LM model family establish a new state-of-the-art performance across all metrics. Notably, Xwin-LM-70B-V0.1 has eclipsed GPT-4 for the first time, achieving an impressive win-rate of <strong>95.57%</strong> to Text-Davinci-003 and <strong>60.61%</strong> to GPT-4.</p> <table> <thead> <tr> <th><strong>Model</strong></th> <th><strong>AlpacaEval (winrate %)</strong></th> <th><strong>AlpacaEval (winrate %)</strong></th> <th><strong>AlpacaEval (winrate %)</strong></th> </tr> </thead> <tbody> <tr> <td></td> <td><strong>v.s. Text-Davinci-003</strong></td> <td><strong>v.s. ChatGPT</strong></td> <td><strong>v.s. GPT4</strong></td> </tr> <tr> <td><strong>Xwin-LM-70B-V0.1</strong></td> <td><strong>95.57</strong></td> <td><strong>87.50</strong></td> <td><strong>60.61</strong></td> </tr> <tr> <td>GPT-4</td> <td>95.28</td> <td>84.66</td> <td>50.00</td> </tr> <tr> <td>WizardLM-70B-V1.0</td> <td>92.91</td> <td>80.19</td> <td>46.70</td> </tr> <tr> <td>Llama-2-70B-Chat</td> <td>92.66</td> <td>81.97</td> <td>51.19</td> </tr> <tr> <td><strong>Xwin-LM-13B-V0.1</strong></td> <td><strong>91.76</strong></td> <td><strong>81.79</strong></td> <td><strong>55.30</strong></td> </tr> <tr> <td>ChatGPT</td> <td>89.37</td> <td>50.00</td> <td>16.60</td> </tr> <tr> <td>WizardLM-13B-V1.2</td> <td>89.17</td> <td>75.75</td> <td>41.91</td> </tr> <tr> <td><strong>Xwin-LM-7B-V0.1</strong></td> <td><strong>87.35</strong></td> <td><strong>76.40</strong></td> <td><strong>47.57</strong></td> </tr> <tr> <td>Llama-2-13B-Chat</td> <td>81.09</td> <td>64.22</td> <td>30.92</td> </tr> </tbody> </table> <h3>Case study on <a href="https://tatsu-lab.github.io/alpaca_eval/">AlpacaEval</a></h3> <table> <thead> <tr> <th>Prompts</th> <th>GPT4 response</th> <th>Xwin-LM response</th> </tr> </thead> <tbody> <tr> <td>I've put a plate on top of an apple, and take the plate from kitchen to dinning room. Where is the apple now</td> <td>The apple is now in the dining room, as it was underneath the plate when you moved the plate from the kitchen to the dining room.</td> <td>The apple is still in the kitchen, as you have only moved the plate. The apple is under the plate, so if you want to bring the apple to the dining room, you should either move the apple directly or put the apple on the plate and then move the plate to the dining room.</td> </tr> <tr> <td>Answer the following question.<br> How do you say "good evening" in French.</td> <td>In French, "good evening" is said as "bonsoir."</td> <td>In French, "good evening" is translated to "bonsoir." This greeting is used in the evening and nighttime hours, typically after 6 p.m. It is a combination of "bon," which means "good," and "soir," which means "evening." To pronounce it, say "bone-swahr."</td> </tr> </tbody> </table> <h3>Xwin-LM performance on NLP foundation tasks.</h3> <p>The following table provides a comparison of Xwin-LMs with other LLMs on NLP foundation tasks in <a href="https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard">Open LLM Leaderboard</a>.</p> <table> <thead> <tr> <th>Model</th> <th>MMLU 5-shot</th> <th>ARC 25-shot</th> <th>TruthfulQA 0-shot</th> <th>HellaSwag 10-shot</th> <th>Average</th> </tr> </thead> <tbody> <tr> <td>Text-davinci-003</td> <td>56.9</td> <td><strong>85.2</strong></td> <td>59.3</td> <td>82.2</td> <td>70.9</td> </tr> <tr> <td>Vicuna-13b 1.1</td> <td>51.3</td> <td>53.0</td> <td>51.8</td> <td>80.1</td> <td>59.1</td> </tr> <tr> <td>Guanaco 30B</td> <td>57.6</td> <td>63.7</td> <td>50.7</td> <td>85.1</td> <td>64.3</td> </tr> <tr> <td>WizardLM-7B 1.0</td> <td>42.7</td> <td>51.6</td> <td>44.7</td> <td>77.7</td> <td>54.2</td> </tr> <tr> <td>WizardLM-13B 1.0</td> <td>52.3</td> <td>57.2</td> <td>50.5</td> <td>81.0</td> <td>60.2</td> </tr> <tr> <td>WizardLM-30B 1.0</td> <td>58.8</td> <td>62.5</td> <td>52.4</td> <td>83.3</td> <td>64.2</td> </tr> <tr> <td>Llama-2-7B-Chat</td> <td>48.3</td> <td>52.9</td> <td>45.6</td> <td>78.6</td> <td>56.4</td> </tr> <tr> <td>Llama-2-13B-Chat</td> <td>54.6</td> <td>59.0</td> <td>44.1</td> <td>81.9</td> <td>59.9</td> </tr> <tr> <td>Llama-2-70B-Chat</td> <td>63.9</td> <td>64.6</td> <td>52.8</td> <td>85.9</td> <td>66.8</td> </tr> <tr> <td><strong>Xwin-LM-7B-V0.1</strong></td> <td>49.7</td> <td>56.2</td> <td>48.1</td> <td>79.5</td> <td>58.4</td> </tr> <tr> <td><strong>Xwin-LM-13B-V0.1</strong></td> <td>56.6</td> <td>62.4</td> <td>45.5</td> <td>83.0</td> <td>61.9</td> </tr> <tr> <td><strong>Xwin-LM-70B-V0.1</strong></td> <td><strong>69.6</strong></td> <td>70.5</td> <td><strong>60.1</strong></td> <td><strong>87.1</strong></td> <td><strong>71.8</strong></td> </tr> </tbody> </table> <h2>Inference</h2> <h3>Conversation Template</h3> <p>To obtain desired results, please strictly follow the conversation templates when utilizing our model for inference. Our model adopts the prompt format established by <a href="https://github.com/lm-sys/FastChat">Vicuna</a> and is equipped to support <strong>multi-turn</strong> conversations.</p> <pre><code>A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: Hi! ASSISTANT: Hello.&lt;/s&gt;USER: Who are you? ASSISTANT: I am Xwin-LM.&lt;/s&gt;...... </code></pre> <h3>HuggingFace Example</h3> <pre><code class="language-python">from transformers import AutoTokenizer, AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("Xwin-LM/Xwin-LM-7B-V0.1") tokenizer = AutoTokenizer.from_pretrained("Xwin-LM/Xwin-LM-7B-V0.1") ( prompt := "A chat between a curious user and an artificial intelligence assistant. " "The assistant gives helpful, detailed, and polite answers to the user's questions. " "USER: Hello, can you help me? " "ASSISTANT:" ) inputs = tokenizer(prompt, return_tensors="pt") samples = model.generate(**inputs, max_new_tokens=4096, temperature=0.7) output = tokenizer.decode(samples[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True) print(output) # Of course! I'm here to help. Please feel free to ask your question or describe the issue you're having, and I'll do my best to assist you. </code></pre> <h3>vLLM Example</h3> <p>Because Xwin-LM is based on Llama2, it also offers support for rapid inference using <a href="https://github.com/vllm-project/vllm">vLLM</a>. Please refer to <a href="https://github.com/vllm-project/vllm">vLLM</a> for detailed installation instructions.</p> <pre><code class="language-python">from vllm import LLM, SamplingParams ( prompt := "A chat between a curious user and an artificial intelligence assistant. " "The assistant gives helpful, detailed, and polite answers to the user's questions. " "USER: Hello, can you help me? " "ASSISTANT:" ) sampling_params = SamplingParams(temperature=0.7, max_tokens=4096) llm = LLM(model="Xwin-LM/Xwin-LM-7B-V0.1") outputs = llm.generate([prompt,], sampling_params) for output in outputs: prompt = output.prompt generated_text = output.outputs[0].text print(generated_text) </code></pre> <h2>TODO</h2> <ul> <li><input type="checkbox" disabled> Release the source code</li> <li><input type="checkbox" disabled> Release more capabilities, such as math, reasoning, and etc.</li> </ul> <h2>Citation</h2> <p>Please consider citing our work if you use the data or code in this repo.</p> <pre><code>@software{xwin-lm, title = {Xwin-LM}, author = {Xwin-LM Team}, url = {https://github.com/Xwin-LM/Xwin-LM}, version = {pre-release}, year = {2023}, month = {9}, } </code></pre> <h2>Acknowledgements</h2> <p>Thanks to <a href="https://ai.meta.com/llama/">Llama 2</a>, <a href="https://github.com/lm-sys/FastChat">FastChat</a>, <a href="https://github.com/tatsu-lab/alpaca_farm">AlpacaFarm</a>, and <a href="https://github.com/vllm-project/vllm">vLLM</a>.</p> \ No newline at end of file diff --git a/all/weekly/index.xml b/all/weekly/index.xml new file mode 100644 index 00000000000..f228bb959a2 --- /dev/null +++ b/all/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub All Languages Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:31Z + Weekly Trending of All Languages in GitHub + + + zhile-io/pandora + 2023-09-24T01:45:31Z + tag:github.com,2023-09-24:/zhile-io/pandora + + <p>潘多拉,一个让你呼吸顺畅的ChatGPT。Pandora, a ChatGPT client that lets you breathe freely.</p><hr><h1>Pandora</h1> <p>潘多拉 (Pandora),一个让你呼吸顺畅的 ChatGPT。</p> <p>潘多拉实现了网页版 ChatGPT 的主要操作。后端优化,绕过 Cloudflare,速度喜人。</p> <!-- PROJECT SHIELDS --> <p><img src="https://img.shields.io/badge/python-%3E%3D3.7-green" alt="Python version"> <a href="https://github.com/zhile-io/pandora/issues"><img src="https://img.shields.io/github/issues-raw/zhile-io/pandora" alt="Issues"></a> <a href="https://github.com/zhile-io/pandora/commits/master"><img src="https://img.shields.io/github/last-commit/zhile-io/pandora/master" alt="Commits"></a> <a href="https://pypi.python.org/pypi/pandora-chatgpt"><img src="https://img.shields.io/pypi/v/pandora-chatgpt.svg?sanitize=true" alt="PyPi"></a> <a href="https://pypi.python.org/pypi/pandora-chatgpt"><img src="https://static.pepy.tech/badge/pandora-chatgpt" alt="Downloads"></a> <a href="https://github.com/zhile-io/pandora/actions/workflows/python-publish.yml"><img src="https://github.com/zhile-io/pandora/actions/workflows/python-publish.yml/badge.svg?sanitize=true" alt="PyPi workflow"></a> <a href="https://github.com/zhile-io/pandora/actions/workflows/docker-publish.yml"><img src="https://github.com/zhile-io/pandora/actions/workflows/docker-publish.yml/badge.svg?sanitize=true" alt="Docker workflow"></a> <a href="https://discord.gg/QBkd9JAaWa"><img src="https://img.shields.io/discord/1098772912242163795?label=Discord" alt="Discord"></a></p> <h2>体验地址</h2> <ul> <li>点击 <a href="https://chat.zhile.io" target="_blank" title="Pandora Cloud体验地址"></a><a href="https://chat.zhile.io">https://chat.zhile.io</a></li> <li>最新拿 <code>Access Token</code> 的技术原理,我记录在<a href="https://zhile.io/2023/05/19/how-to-get-chatgpt-access-token-via-pkce.html">这里</a>了。</li> <li>可以访问 <a href="http://ai-20230626.fakeopen.com/auth">这里</a> 拿 <code>Access Token</code></li> <li>也可以官方登录,然后访问 <a href="http://chat.openai.com/api/auth/session">这里</a> 拿 <code>Access Token</code></li> <li><code>Access Token</code> 有效期 <code>14</code> 天,期间访问<strong>不需要梯子</strong>。这意味着你在手机上也可随意使用。</li> <li>这个页面上还包含一个共享账号的链接,<strong>没有账号</strong>的可以点进去体验一下。</li> </ul> <h2>ChatGPT使用时可能会遇到:</h2> <h3>1. Please stand by, while we are checking your browser...</h3> <h3>&nbsp;&nbsp;&nbsp;动不动来一下,有时候还不动或者出人机验证。痛!</h3> <p><img src="https://github.com/zhile-io/pandora/raw/master/doc/images/t0.png" alt="t0"></p> <h3>2. Access denied. Sorry, you have been blocked</h3> <h3>&nbsp;&nbsp;&nbsp;经典问题,只能到处找可用VPN,费时费力,更费钱。移动端访问更难。痛!</h3> <p><img src="https://github.com/zhile-io/pandora/raw/master/doc/images/t1.1.png" alt="t1.1"></p> <h3>3. ChatGPT is at capacity right now</h3> <h3>&nbsp;&nbsp;&nbsp;系统负载高,白嫖用户不给用。痛!</h3> <p><img src="https://github.com/zhile-io/pandora/raw/master/doc/images/t2.png" alt="t2"></p> <h3>4. This content may violate our <u>content policy</u>.</h3> <h3>&nbsp;&nbsp;&nbsp;道德审查,多触发几次可能就封号了。痛!!!</h3> <p><img src="https://github.com/zhile-io/pandora/raw/master/doc/images/t3.png" alt="t3"></p> <h3>5. Something went wrong.</h3> <h3>&nbsp;&nbsp;&nbsp;吃着火锅唱着歌,突然就出故障了。痛!</h3> <p><img src="https://github.com/zhile-io/pandora/raw/master/doc/images/t4.png" alt="t4"></p> <h3>6. 手机和电脑的模型不通用,顾这个就顾不到那个,痛!</h3> <p><img src="https://github.com/zhile-io/pandora/raw/master/doc/images/t7.png" alt="t7"></p> <h3>7. 蹦字慢吞吞,卡顿不流畅,不知道的甚至想换电脑。痛!</h3> <h3>8. 想把 <code>ChatGPT</code> 接到其他系统,结果只能接个差强人意的 <code>gpt-3.5-turbo</code>。痛!</h3> <h3><em>一次看完上面的噩梦,血压上来了,拳头硬了!太痛了!!!以上痛点,<code>Pandora</code> 一次全部解决。</em></h3> <h2>界面截图</h2> <details> <summary> <p><img src="https://github.com/zhile-io/pandora/raw/master/doc/images/s05.png" alt="alt Screenshot5"><br> <img src="https://github.com/zhile-io/pandora/raw/master/doc/images/s12.jpeg" alt="alt Screenshot10"></p> </summary> <p><img src="https://github.com/zhile-io/pandora/raw/master/doc/images/s01.png" alt="alt Screenshot1"><br> <img src="https://github.com/zhile-io/pandora/raw/master/doc/images/s02.png" alt="alt Screenshot2"><br> <img src="https://github.com/zhile-io/pandora/raw/master/doc/images/s03.png" alt="alt Screenshot3"><br> <img src="https://github.com/zhile-io/pandora/raw/master/doc/images/s04.png" alt="alt Screenshot4"><br> <img src="https://github.com/zhile-io/pandora/raw/master/doc/images/s06.png" alt="alt Screenshot6"><br> <img src="https://github.com/zhile-io/pandora/raw/master/doc/images/s11.jpeg" alt="alt Screenshot11"></p> </details> <h2>如何搭建运行</h2> <ul> <li>访问 <a href="https://github.com/zhile-io/pandora/raw/master/doc/wiki.md">doc/wiki.md</a> 获得详细指导。</li> </ul> <h2>其他说明</h2> <ul> <li><code>开源项目可以魔改,但请保留原作者信息。确需去除,请联系作者,以免失去技术支持。</code></li> <li>项目是站在其他巨人的肩膀上,感谢!</li> <li>报错、BUG之类的提出<code>Issue</code>,我会修复。</li> <li>因为之后<code>ChatGPT</code>的API变动,我可能不会跟进修复。</li> <li>喜欢的可以给颗星,都是老朋友了。</li> <li>不影响<code>PHP是世界上最好的编程语言!</code></li> </ul> <h2>贡献者们</h2> <blockquote> <p>感谢所有让这个项目变得更好的贡献者们!</p> </blockquote> <p><a href="https://github.com/zhile-io/pandora/graphs/contributors"><img src="https://contrib.rocks/image?repo=zhile-io/pandora" alt="Star History Chart"></a></p> <h2>Star历史</h2> <p><img src="https://api.star-history.com/svg?repos=zhile-io/pandora&amp;type=Date" alt="Star History Chart"></p> + + + aiwaves-cn/agents + 2023-09-24T01:45:31Z + tag:github.com,2023-09-24:/aiwaves-cn/agents + + <p>An Open-source Framework for Autonomous Language Agents</p><hr><h1><p align="center"><img src="https://raw.githubusercontent.com/aiwaves-cn/agents/master/assets/agents-logo.png" width="300"> </p></h1> <h2><p align="center" style="display:inline-block;"><font face="Calisto MT"><font size="4">An Open-source Framework for Autonomous Language Agents</font></font></p></h2> <p align="center"><a href="https://arxiv.org/pdf/2309.07870.pdf">[📄 Paper]</a> <a href="http://www.aiwaves-agents.com/">[🌐 Website]</a> <a href="https://raw.githubusercontent.com/aiwaves-cn/agents/master/#web-demos">[🤖️ Demos]</a> <a href="https://discord.gg/DDPBeFt7">[🔥 Discord]</a> <a href="https://raw.githubusercontent.com/aiwaves-cn/agents/master/assets/wechat.jpg">[🔥 Wechat Group] </a> </p> <p></p> <hr> <h2>Overview</h2> <p><strong>Agents</strong> is an open-source library/framework for building autonomous language agents. The library is carefully engineered to support important features including <strong>long-short term memory</strong>, <strong>tool usage</strong>, <strong>web navigation</strong>, <strong>multi-agent communication</strong>, and brand new features including <strong>human-agent interaction</strong> and <strong>symbolic control</strong>. With <strong>Agents</strong>, one can customize a language agent or a multi-agent system by simply filling in a config file in natural language and deploy the language agents in a terminal, a Gradio interface, or a backend service.</p> <p>One major difference between <strong>Agents</strong> and other existing frameworks for language agents is that our framework allows users to provide fine-grained control and guidance to language agents via an <strong>SOP (Standard Operation Process)</strong>. An SOP defines subgoals/subtasks for the overall task and allows users to customize a fine-grained workflow for the language agents.</p> <p align="center"><img src="https://raw.githubusercontent.com/aiwaves-cn/agents/master/assets/agents-cover.png" width="800"></p> <h2>📢 Updates</h2> <ul> <li><input type="checkbox" disabled> Support LLM-based SOP generation</li> <li><input type="checkbox" checked disabled> 2023.9.20 Deploy Demos on Huggingface Space</li> <li><input type="checkbox" checked disabled> 2023.9.12 Official Release</li> </ul> <h2>💡 Highlights</h2> <ul> <li><strong>Long-short Term Memory</strong>: Language agents in the library are equipped with both long-term memory implemented via VectorDB + Semantic Search and short-term memory (working memory) maintained and updated by an LLM.</li> <li><strong>Tool Usage</strong>: Language agents in the library can use any external tools via <a href="https://platform.openai.com/docs/guides/gpt/function-calling">function-calling</a> and developers can add customized tools/APIs <a href="https://github.com/aiwaves-cn/agents/raw/master/src/agents/Component/ToolComponent.py">here</a>.</li> <li><strong>Web Navigation</strong>: Language agents in the library can use search engines to navigate the web and get useful information.</li> <li><strong>Multi-agent Communication</strong>: In addition to single language agents, the library supports building multi-agent systems in which language agents can communicate with other language agents and the environment. Different from most existing frameworks for multi-agent systems that use pre-defined rules to control the order for agents' action, <strong>Agents</strong> includes a <em>controller</em> function that dynamically decides which agent will perform the next action using an LLM by considering the previous actions, the environment, and the target of the current states. This makes multi-agent communication more flexible.</li> <li><strong>Human-Agent interaction</strong>: In addition to letting language agents communicate with each other in an environment, our framework seamlessly supports human users to play the role of the agent by himself/herself and input his/her own actions, and interact with other language agents in the environment.</li> <li><strong>Symbolic Control</strong>: Different from existing frameworks for language agents that only use a simple task description to control the entire multi-agent system over the whole task completion process, <strong>Agents</strong> allows users to use an <strong>SOP (Standard Operation Process)</strong> that defines subgoals/subtasks for the overall task to customize fine-grained workflows for the language agents.</li> </ul> <h2>🛠 Installation</h2> <h4>Option 1. Build from source</h4> <pre><code>git clone https://github.com/aiwaves-cn/agents.git cd agents pip install -e . </code></pre> <h4>Option 2. Install via PyPI</h4> <pre><code>pip install ai-agents </code></pre> <h2>📦 Usage</h2> <h3>🛠️ Generate the config file</h3> <h4>Option 1. Fill in the config template manually</h4> <p>Modify <code>example/{Muti|Single_Agent}/{target_agent}/config.json</code></p> <h4>Option 2. Try our <a href="http://www.aiwaves.cn/create-agent/">WebUI</a> for customizing the config file.</h4> <p>Haven't figured out how to write the JSON file yet? Check out our <a href="https://agents-readthedocsio.readthedocs.io/en/latest/index.html">documentation</a>!</p> <h3>🤖️ The Agent Hub</h3> <p>We provide an <strong>AgentHub</strong>, where you can search for interesting Agents shared by us or other developers, try them out or use them as the starting point to customize your own agent. We encourage you to share your customized agents to help others build their own agents more easily! You can share your customized agents by submitting PRs that adds configs and customized codes <a href="https://github.com/aiwaves-cn/agents/tree/master/examples/Community_Agent">here</a>. You can also send us your own config files and codes for customized agents by <a href="mailto:contact@aiwaves.cn">email</a>, and we will share your examples and acknowledge your contribution in future updates!</p> <p><em>A WebUI for automatically uploading of your customized agents will be available soon!</em></p> <h2>📷 Examples and Demos</h2> <p>We have provided exemplar config files, code, and demos for both single-agent and multi-agent systems <a href="https://github.com/aiwaves-cn/agents/tree/master/examples">here</a>.</p> <h3>Web demos</h3> <h4>Note</h4> <p>1.Due to massive traffic, our online demos may suffer from long queue time and unstable issues. <strong>Please follow our <a href="https://github.com/aiwaves-cn/agents/raw/master/examples/README.md">quick start guide</a>) and deploy language agents locally for testing. Or checkout our <a href="http://www.aiwaves-agents.com/">website</a></strong>. 2.Software Company is unable to generate executable code online, <strong>if you wish to generate executable code directly, please run it locally :)</strong></p> <ul> <li><a href="https://www.aiwaves.cn/customer-service-agent/">Customer Service Agent</a></li> <li><a href="https://huggingface.co/spaces/AIWaves/Debate">Debate</a>[now on Huggingface Space]</li> <li><a href="https://huggingface.co/spaces/AIWaves/Software_Company">Software Company</a>[now on Huggingface Space]</li> <li><a href="https://www.aiwaves.cn/fiction-studio/">Fiction Studio</a></li> </ul> <h2>Contributing to Agents</h2> <p>We appreciate your interest in contributing to our open-source initiative. Please feel free to submit a PR or share your thoughts on how to improve the library in Issues!</p> <h2>Note:</h2> <ol> <li>When running the code, we will download an embedding model, which will cause the code to run slowly. We will adjust it to the API interface later</li> <li>Currently, the shopping assistant cannot be used. We will replace the API later. Stay tuned</li> </ol> <h2>📚 Documentation</h2> <p>Please check our <a href="https://agents-readthedocsio.readthedocs.io/en/latest/index.html">documentation</a> for detailed documentation of the framework.</p> <h2>⭐ Star History</h2> <p><a href="https://star-history.com/#aiwaves-cn/agents&amp;Date"><img src="https://api.star-history.com/svg?repos=aiwaves-cn/agents&amp;type=Date" alt="Star History Chart"></a></p> <h2>Citation</h2> <p>If you find our repo useful in your research, please kindly consider cite:</p> <pre><code class="language-angular2">@misc{zhou2023agents, title={Agents: An Open-source Framework for Autonomous Language Agents}, author={Wangchunshu Zhou and Yuchen Eleanor Jiang and Long Li and Jialong Wu and Tiannan Wang and Shi Qiu and Jintian Zhang and Jing Chen and Ruipu Wu and Shuai Wang and Shiding Zhu and Jiyu Chen and Wentao Zhang and Ningyu Zhang and Huajun Chen and Peng Cui and Mrinmaya Sachan}, year={2023}, eprint={2309.07870}, archivePrefix={arXiv}, primaryClass={cs.CL} } </code></pre> + + + OpenBMB/ChatDev + 2023-09-24T01:45:31Z + tag:github.com,2023-09-24:/OpenBMB/ChatDev + + <p>Create Customized Software using Natural Language Idea (through LLM-powered Multi-Agent Collaboration)</p><hr><h1>Communicative Agents for Software Development</h1> <p align="center"> <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/misc/logo1.png" width="600"> </p> <p align="center"> 【English | <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/README-Chinese.md">Chinese</a> | <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/README-Japanese.md">Japanese</a> | <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/README-Korean.md">Korean</a>】 </p> <p align="center"> 【📚 <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/wiki.md">Wiki</a> | 🚀 <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/wiki.md#local-demo">Local Demo</a> | 👥 <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/Contribution.md">Community Built Software</a> | 🔧 <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/wiki.md#customization">Customization</a>】 </p> <h2>📖 Overview</h2> <ul> <li><strong>ChatDev</strong> stands as a <strong>virtual software company</strong> that operates through various <strong>intelligent agents</strong> holding different roles, including Chief Executive Officer <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/ceo.png" height="20">, Chief Product Officer <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/cpo.png" height="20">, Chief Technology Officer <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/cto.png" height="20">, programmer <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/programmer.png" height="20">, reviewer <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/reviewer.png" height="20">, tester <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/tester.png" height="20">, art designer <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/designer.png" height="20">. These agents form a multi-agent organizational structure and are united by a mission to "revolutionize the digital world through programming." The agents within ChatDev <strong>collaborate</strong> by participating in specialized functional seminars, including tasks such as designing, coding, testing, and documenting.</li> <li>The primary objective of ChatDev is to offer an <strong>easy-to-use</strong>, <strong>highly customizable</strong> and <strong>extendable</strong> framework, which is based on large language models (LLMs) and serves as an ideal scenario for studying collective intelligence.</li> </ul> <h2>📰 News</h2> <ul> <li><strong>September 20th, 2023: The <em>Human-Agent-Interaction</em> mode is now available! You can get involved with the ChatDev team by playing the role of reviewer <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/reviewer.png" height="20"> and making suggestions to the programmer <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/programmer.png" height="20">; try <code>python3 run.py --task [description_of_your_idea] --config "Human"</code>.</strong> See <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/wiki.md#human-agent-interaction">guide</a> and <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/WareHouse/Gomoku_HumanAgentInteraction_20230920135038">example</a>. <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/misc/Human_intro.png" width="800"></li> <li>September 1st, 2023: The <em>Art</em> mode is available now! You can activate the designer agent <img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/online_log/static/figures/designer.png" height="20"> to generate images used in the software; try <code>python3 run.py --task [description_of_your_idea] --config "Art"</code>. See <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/wiki.md#art">guide</a> and <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/WareHouse/gomokugameArtExample_THUNLP_20230831122822">example</a>.</li> <li>August 28th, 2023: The system is publicly available.</li> <li>August 17th, 2023: The V1.0.0 version was ready for release.</li> <li>July 30th, 2023: Users can customize ChatChain, Phase, and Role settings. Additionally, both online Log mode and replay mode are now supported.</li> <li>July 16th, 2023: The <a href="https://arxiv.org/abs/2307.07924">preprint paper</a> associated with this project was published.</li> <li>June 30th, 2023: The initial version of the <code>ChatDev</code> repository was released.</li> </ul> <h2>❓ What Can ChatDev Do?</h2> <p><img src="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/misc/intro.png" alt="intro"></p> <p><a href="https://github.com/OpenBMB/ChatDev/assets/11889052/80d01d2f-677b-4399-ad8b-f7af9bb62b72">https://github.com/OpenBMB/ChatDev/assets/11889052/80d01d2f-677b-4399-ad8b-f7af9bb62b72</a></p> <h2>⚡️ Quickstart</h2> <p>To get started, follow these steps:</p> <ol> <li><strong>Clone the GitHub Repository:</strong> Begin by cloning the repository using the command: <pre><code>git clone https://github.com/OpenBMB/ChatDev.git </code></pre> </li> <li><strong>Set Up Python Environment:</strong> Ensure you have a version 3.9 or higher Python environment. You can create and activate this environment using the following commands, replacing <code>ChatDev_conda_env</code> with your preferred environment name: <pre><code>conda create -n ChatDev_conda_env python=3.9 -y conda activate ChatDev_conda_env </code></pre> </li> <li><strong>Install Dependencies:</strong> Move into the <code>ChatDev</code> directory and install the necessary dependencies by running: <pre><code>cd ChatDev pip3 install -r requirements.txt </code></pre> </li> <li><strong>Set OpenAI API Key:</strong> Export your OpenAI API key as an environment variable. Replace <code>"your_OpenAI_API_key"</code> with your actual API key. Remember that this environment variable is session-specific, so you need to set it again if you open a new terminal session. On Unix/Linux: <pre><code>export OPENAI_API_KEY="your_OpenAI_API_key" </code></pre> On Windows: <pre><code>$env:OPENAI_API_KEY="your_OpenAI_API_key" </code></pre> </li> <li><strong>Build Your Software:</strong> Use the following command to initiate the building of your software, replacing <code>[description_of_your_idea]</code> with your idea's description and <code>[project_name]</code> with your desired project name: On Unix/Linux: <pre><code>python3 run.py --task "[description_of_your_idea]" --name "[project_name]" </code></pre> On Windows: <pre><code>python run.py --task "[description_of_your_idea]" --name "[project_name]" </code></pre> </li> <li><strong>Run Your Software:</strong> Once generated, you can find your software in the <code>WareHouse</code> directory under a specific project folder, such as <code>project_name_DefaultOrganization_timestamp</code>. Run your software using the following command within that directory: On Unix/Linux: <pre><code>cd WareHouse/project_name_DefaultOrganization_timestamp python3 main.py </code></pre> On Windows: <pre><code>cd WareHouse/project_name_DefaultOrganization_timestamp python main.py </code></pre> </li> </ol> <h2>✨️ Advanced Skills</h2> <p>For more detailed information, please refer to our <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/wiki.md">Wiki</a>, where you can find:</p> <ul> <li>An introduction to all command run parameters.</li> <li>A straightforward guide for setting up a local web demo, which includes enhanced visualized logs, a replay demo, and a simple ChatChain Visualizer.</li> <li>An overview of the ChatDev framework.</li> <li>A comprehensive introduction to all advanced parameters in ChatChain configuration.</li> <li>Guides for customizing ChatDev, including: <ul> <li>ChatChain: Design your own software development process (or any other process), such as <code>DemandAnalysis -&gt; Coding -&gt; Testing -&gt; Manual</code>.</li> <li>Phase: Design your own phase within ChatChain, like <code>DemandAnalysis</code>.</li> <li>Role: Defining the various agents in your company, such as the <code>Chief Executive Officer</code>.</li> </ul> </li> </ul> <h2>🤗 Share Your Software!</h2> <p><strong>Code</strong>: We are enthusiastic about your interest in participating in our open-source project. If you come across any problems, don't hesitate to report them. Feel free to create a pull request if you have any inquiries or if you are prepared to share your work with us! Your contributions are highly valued. Please let me know if there's anything else you need assistance!</p> <p><strong>Company</strong>: Creating your own customized "ChatDev Company" is a breeze. This personalized setup involves three simple configuration JSON files. Check out the example provided in the <code>CompanyConfig/Default</code> directory. For detailed instructions on customization, refer to our <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/wiki.md">Wiki</a>.</p> <p><strong>Software</strong>: Whenever you develop software using ChatDev, a corresponding folder is generated containing all the essential information. Sharing your work with us is as simple as making a pull request. Here's an example: execute the command <code>python3 run.py --task "design a 2048 game" --name "2048" --org "THUNLP" --config "Default"</code>. This will create a software package and generate a folder named <code>/WareHouse/2048_THUNLP_timestamp</code>. Inside, you'll find:</p> <ul> <li>All the files and documents related to the 2048 game software</li> <li>Configuration files of the company responsible for this software, including the three JSON config files from <code>CompanyConfig/Default</code></li> <li>A comprehensive log detailing the software's building process that can be used to replay (<code>timestamp.log</code>)</li> <li>The initial prompt used to create this software (<code>2048.prompt</code>)</li> </ul> <p><strong>See community contributed software <a href="https://raw.githubusercontent.com/OpenBMB/ChatDev/main/Contribution.md">here</a>!</strong></p> <h3>Software Contributors</h3> <p><a href="https://github.com/qianc62"><img src="https://avatars.githubusercontent.com/u/48988402?v=4" alt="Contributor" style="width:5%; border-radius: 50%;"></a> <a href="https://github.com/thinkwee"><img src="https://avatars.githubusercontent.com/u/11889052?v=4" alt="Contributor" style="width:5%; border-radius: 50%;"></a> <a href="https://github.com/NA-Wen"><img src="https://avatars.githubusercontent.com/u/92134380?v=4" alt="Contributor" style="width:5%; border-radius: 50%;"></a> <a href="https://github.com/lijiahao2022"><img src="https://avatars.githubusercontent.com/u/111221887?v=4" alt="Contributor" style="width:5%; border-radius: 50%;"></a> <a href="https://github.com/GeekyWizKid"><img src="https://avatars.githubusercontent.com/u/133981481?v=4" alt="Contributor" style="width:5%; border-radius: 50%;"></a> <a href="https://github.com/Munsif-Raza-T"><img src="https://avatars.githubusercontent.com/u/76085202?v=4" alt="Contributor" style="width:5%; border-radius: 50%;"></a></p> <h2>📑 Citation</h2> <pre><code>@misc{qian2023communicative, title={Communicative Agents for Software Development}, author={Chen Qian and Xin Cong and Wei Liu and Cheng Yang and Weize Chen and Yusheng Su and Yufan Dang and Jiahao Li and Juyuan Xu and Dahai Li and Zhiyuan Liu and Maosong Sun}, year={2023}, eprint={2307.07924}, archivePrefix={arXiv}, primaryClass={cs.SE} } </code></pre> <h2>⚖️ License</h2> <ul> <li>The purpose of ChatDev is exclusively for research purposes.</li> <li>The source code is licensed under Apache 2.0.</li> <li>The datasets are licensed under CC BY NC 4.0, which allows for non-commercial use only. It is important to note that any models trained using these datasets should not be employed for purposes other than research.</li> </ul> <h2>Star History</h2> <p><a href="https://star-history.com/#openbmb/chatdev&amp;Date"><img src="https://api.star-history.com/svg?repos=openbmb/chatdev&amp;type=Date" alt="Star History Chart"></a></p> <h2>Contact</h2> <p>If you have any questions, feedback, or would like to get in touch, please feel free to reach out to us via email at <a href="mailto:chatdev.openbmb@outlook.com">chatdev.openbmb@outlook.com</a></p> + + \ No newline at end of file diff --git a/alloy/daily/index.xml b/alloy/daily/index.xml index 2154abcdd90..cae3bb98861 100644 --- a/alloy/daily/index.xml +++ b/alloy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Alloy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:34Z + 2023-09-24T01:26:17Z Daily Trending of Alloy in GitHub \ No newline at end of file diff --git a/alloy/weekly/index.xml b/alloy/weekly/index.xml new file mode 100644 index 00000000000..b703fd44584 --- /dev/null +++ b/alloy/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Alloy Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:55Z + Weekly Trending of Alloy in GitHub + + \ No newline at end of file diff --git a/alpine-abuild/daily/index.xml b/alpine-abuild/daily/index.xml index 521b427ea54..baac4bddff3 100644 --- a/alpine-abuild/daily/index.xml +++ b/alpine-abuild/daily/index.xml @@ -1,7 +1,7 @@ GitHub Alpine Abuild Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:36Z + 2023-09-24T01:26:16Z Daily Trending of Alpine Abuild in GitHub \ No newline at end of file diff --git a/alpine-abuild/weekly/index.xml b/alpine-abuild/weekly/index.xml new file mode 100644 index 00000000000..ae9a78812c7 --- /dev/null +++ b/alpine-abuild/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Alpine Abuild Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:56Z + Weekly Trending of Alpine Abuild in GitHub + + \ No newline at end of file diff --git a/altium-designer/daily/index.xml b/altium-designer/daily/index.xml index b1c1a7755c3..025b5487ea1 100644 --- a/altium-designer/daily/index.xml +++ b/altium-designer/daily/index.xml @@ -1,7 +1,7 @@ GitHub Altium Designer Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:35Z + 2023-09-24T01:26:18Z Daily Trending of Altium Designer in GitHub \ No newline at end of file diff --git a/altium-designer/weekly/index.xml b/altium-designer/weekly/index.xml new file mode 100644 index 00000000000..e6447e57b61 --- /dev/null +++ b/altium-designer/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Altium Designer Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:54Z + Weekly Trending of Altium Designer in GitHub + + \ No newline at end of file diff --git a/ampl/daily/index.xml b/ampl/daily/index.xml index 63f1aa4a085..ab59556190f 100644 --- a/ampl/daily/index.xml +++ b/ampl/daily/index.xml @@ -1,7 +1,7 @@ GitHub AMPL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:39Z + 2023-09-24T01:26:23Z Daily Trending of AMPL in GitHub \ No newline at end of file diff --git a/ampl/weekly/index.xml b/ampl/weekly/index.xml new file mode 100644 index 00000000000..f5f41bc4a75 --- /dev/null +++ b/ampl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub AMPL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:59Z + Weekly Trending of AMPL in GitHub + + \ No newline at end of file diff --git a/angelscript/daily/index.xml b/angelscript/daily/index.xml index bff505b15be..3d211c4a1bb 100644 --- a/angelscript/daily/index.xml +++ b/angelscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub AngelScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:38Z + 2023-09-24T01:26:21Z Daily Trending of AngelScript in GitHub \ No newline at end of file diff --git a/angelscript/weekly/index.xml b/angelscript/weekly/index.xml new file mode 100644 index 00000000000..3c0ebb0b4c0 --- /dev/null +++ b/angelscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub AngelScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:57Z + Weekly Trending of AngelScript in GitHub + + \ No newline at end of file diff --git a/ant-build-system/daily/index.xml b/ant-build-system/daily/index.xml index 416e874dc23..878db2d1332 100644 --- a/ant-build-system/daily/index.xml +++ b/ant-build-system/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ant Build System Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:40Z + 2023-09-24T01:26:20Z Daily Trending of Ant Build System in GitHub \ No newline at end of file diff --git a/ant-build-system/weekly/index.xml b/ant-build-system/weekly/index.xml new file mode 100644 index 00000000000..be5feb960f6 --- /dev/null +++ b/ant-build-system/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ant Build System Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:00Z + Weekly Trending of Ant Build System in GitHub + + \ No newline at end of file diff --git a/antlr/daily/index.xml b/antlr/daily/index.xml index 561ee0709bc..ff38ad7c113 100644 --- a/antlr/daily/index.xml +++ b/antlr/daily/index.xml @@ -1,7 +1,7 @@ GitHub ANTLR Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:43Z + 2023-09-24T01:26:27Z Daily Trending of ANTLR in GitHub \ No newline at end of file diff --git a/antlr/weekly/index.xml b/antlr/weekly/index.xml new file mode 100644 index 00000000000..7cde2ad5fe2 --- /dev/null +++ b/antlr/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ANTLR Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:04Z + Weekly Trending of ANTLR in GitHub + + \ No newline at end of file diff --git a/apacheconf/daily/index.xml b/apacheconf/daily/index.xml index 87308234faf..ec2a1fe26ca 100644 --- a/apacheconf/daily/index.xml +++ b/apacheconf/daily/index.xml @@ -1,7 +1,7 @@ GitHub ApacheConf Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:42Z + 2023-09-24T01:26:24Z Daily Trending of ApacheConf in GitHub \ No newline at end of file diff --git a/apacheconf/weekly/index.xml b/apacheconf/weekly/index.xml new file mode 100644 index 00000000000..dc3d0f3d708 --- /dev/null +++ b/apacheconf/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ApacheConf Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:02Z + Weekly Trending of ApacheConf in GitHub + + \ No newline at end of file diff --git a/apex/daily/index.xml b/apex/daily/index.xml index 3973dfd2004..183a128afce 100644 --- a/apex/daily/index.xml +++ b/apex/daily/index.xml @@ -1,7 +1,7 @@ GitHub Apex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:44Z + 2023-09-24T01:26:26Z Daily Trending of Apex in GitHub \ No newline at end of file diff --git a/apex/weekly/index.xml b/apex/weekly/index.xml new file mode 100644 index 00000000000..4024eda229a --- /dev/null +++ b/apex/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Apex Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:03Z + Weekly Trending of Apex in GitHub + + \ No newline at end of file diff --git a/api-blueprint/daily/index.xml b/api-blueprint/daily/index.xml index 925810c8502..afc12cd8afa 100644 --- a/api-blueprint/daily/index.xml +++ b/api-blueprint/daily/index.xml @@ -1,7 +1,7 @@ GitHub API Blueprint Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:41Z + 2023-09-24T01:26:25Z Daily Trending of API Blueprint in GitHub \ No newline at end of file diff --git a/api-blueprint/weekly/index.xml b/api-blueprint/weekly/index.xml new file mode 100644 index 00000000000..ba8ae3255df --- /dev/null +++ b/api-blueprint/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub API Blueprint Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:01Z + Weekly Trending of API Blueprint in GitHub + + \ No newline at end of file diff --git a/apl/daily/index.xml b/apl/daily/index.xml index 2ad57618add..3a3680e8131 100644 --- a/apl/daily/index.xml +++ b/apl/daily/index.xml @@ -1,7 +1,7 @@ GitHub APL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:47Z + 2023-09-24T01:26:28Z Daily Trending of APL in GitHub \ No newline at end of file diff --git a/apl/weekly/index.xml b/apl/weekly/index.xml new file mode 100644 index 00000000000..459c839d506 --- /dev/null +++ b/apl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub APL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:06Z + Weekly Trending of APL in GitHub + + \ No newline at end of file diff --git a/apollo-guidance-computer/daily/index.xml b/apollo-guidance-computer/daily/index.xml index e3beae06a77..f297c42a19f 100644 --- a/apollo-guidance-computer/daily/index.xml +++ b/apollo-guidance-computer/daily/index.xml @@ -1,7 +1,7 @@ GitHub Apollo Guidance Computer Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:46Z + 2023-09-24T01:26:30Z Daily Trending of Apollo Guidance Computer in GitHub \ No newline at end of file diff --git a/apollo-guidance-computer/weekly/index.xml b/apollo-guidance-computer/weekly/index.xml new file mode 100644 index 00000000000..ff0fdd71731 --- /dev/null +++ b/apollo-guidance-computer/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Apollo Guidance Computer Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:05Z + Weekly Trending of Apollo Guidance Computer in GitHub + + \ No newline at end of file diff --git a/applescript/daily/index.xml b/applescript/daily/index.xml index 1770d5bafba..d795cf22b20 100644 --- a/applescript/daily/index.xml +++ b/applescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub AppleScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:46Z + 2023-09-24T01:26:29Z Daily Trending of AppleScript in GitHub \ No newline at end of file diff --git a/applescript/weekly/index.xml b/applescript/weekly/index.xml new file mode 100644 index 00000000000..7cc60fd47c5 --- /dev/null +++ b/applescript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub AppleScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:07Z + Weekly Trending of AppleScript in GitHub + + \ No newline at end of file diff --git a/arc/daily/index.xml b/arc/daily/index.xml index 5f05a732ba6..be130941447 100644 --- a/arc/daily/index.xml +++ b/arc/daily/index.xml @@ -1,7 +1,7 @@ GitHub Arc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:48Z + 2023-09-24T01:26:31Z Daily Trending of Arc in GitHub \ No newline at end of file diff --git a/arc/weekly/index.xml b/arc/weekly/index.xml new file mode 100644 index 00000000000..be4d49d5608 --- /dev/null +++ b/arc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Arc Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:08Z + Weekly Trending of Arc in GitHub + + \ No newline at end of file diff --git a/asciidoc/daily/index.xml b/asciidoc/daily/index.xml index a9ff581e695..477b024e5a0 100644 --- a/asciidoc/daily/index.xml +++ b/asciidoc/daily/index.xml @@ -1,7 +1,14 @@ GitHub AsciiDoc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:52Z + 2023-09-24T01:26:35Z Daily Trending of AsciiDoc in GitHub + + vaadin/docs + 2023-09-24T01:26:35Z + tag:github.com,2023-09-24:/vaadin/docs + + <p>Official documentation for Vaadin and Hilla.</p><hr> + \ No newline at end of file diff --git a/asciidoc/weekly/index.xml b/asciidoc/weekly/index.xml new file mode 100644 index 00000000000..2d82c7dcb66 --- /dev/null +++ b/asciidoc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub AsciiDoc Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:09Z + Weekly Trending of AsciiDoc in GitHub + + \ No newline at end of file diff --git a/asl/daily/index.xml b/asl/daily/index.xml index 37d6aa28724..6e053822037 100644 --- a/asl/daily/index.xml +++ b/asl/daily/index.xml @@ -1,7 +1,7 @@ GitHub ASL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:49Z + 2023-09-24T01:26:32Z Daily Trending of ASL in GitHub \ No newline at end of file diff --git a/asl/weekly/index.xml b/asl/weekly/index.xml new file mode 100644 index 00000000000..a18a00612bc --- /dev/null +++ b/asl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ASL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:11Z + Weekly Trending of ASL in GitHub + + \ No newline at end of file diff --git a/asn.1/daily/index.xml b/asn.1/daily/index.xml index 58286dd049b..18ce74c4e54 100644 --- a/asn.1/daily/index.xml +++ b/asn.1/daily/index.xml @@ -1,7 +1,7 @@ GitHub ASN.1 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:51Z + 2023-09-24T01:26:34Z Daily Trending of ASN.1 in GitHub \ No newline at end of file diff --git a/asn.1/weekly/index.xml b/asn.1/weekly/index.xml new file mode 100644 index 00000000000..44e93ea0fb0 --- /dev/null +++ b/asn.1/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ASN.1 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:12Z + Weekly Trending of ASN.1 in GitHub + + \ No newline at end of file diff --git a/asp.net/daily/index.xml b/asp.net/daily/index.xml index 8bd3f0290ce..981eaad8553 100644 --- a/asp.net/daily/index.xml +++ b/asp.net/daily/index.xml @@ -1,7 +1,7 @@ GitHub ASP.NET Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:53Z + 2023-09-24T01:26:37Z Daily Trending of ASP.NET in GitHub \ No newline at end of file diff --git a/asp.net/weekly/index.xml b/asp.net/weekly/index.xml new file mode 100644 index 00000000000..16781281c06 --- /dev/null +++ b/asp.net/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ASP.NET Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:13Z + Weekly Trending of ASP.NET in GitHub + + \ No newline at end of file diff --git a/aspectj/daily/index.xml b/aspectj/daily/index.xml index 00b924d2ac1..1d4fb67dcef 100644 --- a/aspectj/daily/index.xml +++ b/aspectj/daily/index.xml @@ -1,7 +1,7 @@ GitHub AspectJ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:54Z + 2023-09-24T01:26:36Z Daily Trending of AspectJ in GitHub \ No newline at end of file diff --git a/aspectj/weekly/index.xml b/aspectj/weekly/index.xml new file mode 100644 index 00000000000..81719caf67e --- /dev/null +++ b/aspectj/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub AspectJ Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:14Z + Weekly Trending of AspectJ in GitHub + + \ No newline at end of file diff --git a/assembly/daily/index.xml b/assembly/daily/index.xml index 9e817f80719..616f3fcbe32 100644 --- a/assembly/daily/index.xml +++ b/assembly/daily/index.xml @@ -1,7 +1,21 @@ GitHub Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:59Z + 2023-09-24T01:26:41Z Daily Trending of Assembly in GitHub + + tsoding/todo.asm + 2023-09-24T01:26:41Z + tag:github.com,2023-09-24:/tsoding/todo.asm + + <p>Todo Web Application in flat assembler</p><hr> + + + tgrysztar/fasm + 2023-09-24T01:26:41Z + tag:github.com,2023-09-24:/tgrysztar/fasm + + <p>flat assembler 1 - reconstructed source history</p><hr> + \ No newline at end of file diff --git a/assembly/weekly/index.xml b/assembly/weekly/index.xml new file mode 100644 index 00000000000..25616c1527a --- /dev/null +++ b/assembly/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Assembly Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:16Z + Weekly Trending of Assembly in GitHub + + \ No newline at end of file diff --git a/astro/daily/index.xml b/astro/daily/index.xml index 2034018ff3b..a959c20424c 100644 --- a/astro/daily/index.xml +++ b/astro/daily/index.xml @@ -1,7 +1,21 @@ GitHub Astro Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:22:56Z + 2023-09-24T01:26:38Z Daily Trending of Astro in GitHub + + unfolding-io/nebulix + 2023-09-24T01:26:38Z + tag:github.com,2023-09-24:/unfolding-io/nebulix + + <p>Nebulix, a Fast & Green Theme Based on Astro + Static CMS + Snipcart</p><hr> + + + shishkin/astro-pagefind + 2023-09-24T01:26:38Z + tag:github.com,2023-09-24:/shishkin/astro-pagefind + + <p>Astro integration for Pagefind static site search.</p><hr> + \ No newline at end of file diff --git a/astro/weekly/index.xml b/astro/weekly/index.xml new file mode 100644 index 00000000000..cfde0c4fd4d --- /dev/null +++ b/astro/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub Astro Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:19Z + Weekly Trending of Astro in GitHub + + + learnwithjason/astro-frontend-masters + 2023-09-24T01:46:19Z + tag:github.com,2023-09-24:/learnwithjason/astro-frontend-masters + + <p>Astro workshop demo for Frontend Masters</p><hr> + + + hackclub/harvest + 2023-09-24T01:46:19Z + tag:github.com,2023-09-24:/hackclub/harvest + + <p>All-female coding event in Vermont w/ Girl Scouts of the Green and White Mountains!</p><hr> + + \ No newline at end of file diff --git a/asymptote/daily/index.xml b/asymptote/daily/index.xml index c18b215bb0a..84c43d65361 100644 --- a/asymptote/daily/index.xml +++ b/asymptote/daily/index.xml @@ -1,7 +1,7 @@ GitHub Asymptote Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:02Z + 2023-09-24T01:26:43Z Daily Trending of Asymptote in GitHub \ No newline at end of file diff --git a/asymptote/weekly/index.xml b/asymptote/weekly/index.xml new file mode 100644 index 00000000000..0cb99322b4f --- /dev/null +++ b/asymptote/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Asymptote Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:22Z + Weekly Trending of Asymptote in GitHub + + \ No newline at end of file diff --git a/ats/daily/index.xml b/ats/daily/index.xml index fcce595c8d8..1bf4bb63889 100644 --- a/ats/daily/index.xml +++ b/ats/daily/index.xml @@ -1,7 +1,7 @@ GitHub ATS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:01Z + 2023-09-24T01:26:44Z Daily Trending of ATS in GitHub \ No newline at end of file diff --git a/ats/weekly/index.xml b/ats/weekly/index.xml new file mode 100644 index 00000000000..bc608c654c3 --- /dev/null +++ b/ats/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ATS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:21Z + Weekly Trending of ATS in GitHub + + \ No newline at end of file diff --git a/augeas/daily/index.xml b/augeas/daily/index.xml index 523e2b56821..26bfb44f800 100644 --- a/augeas/daily/index.xml +++ b/augeas/daily/index.xml @@ -1,7 +1,7 @@ GitHub Augeas Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:00Z + 2023-09-24T01:26:45Z Daily Trending of Augeas in GitHub \ No newline at end of file diff --git a/augeas/weekly/index.xml b/augeas/weekly/index.xml new file mode 100644 index 00000000000..98671a67147 --- /dev/null +++ b/augeas/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Augeas Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:20Z + Weekly Trending of Augeas in GitHub + + \ No newline at end of file diff --git a/autohotkey/daily/index.xml b/autohotkey/daily/index.xml index d2734602b37..45db349b9f3 100644 --- a/autohotkey/daily/index.xml +++ b/autohotkey/daily/index.xml @@ -1,7 +1,7 @@ GitHub AutoHotkey Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:03Z + 2023-09-24T01:26:42Z Daily Trending of AutoHotkey in GitHub \ No newline at end of file diff --git a/autohotkey/weekly/index.xml b/autohotkey/weekly/index.xml new file mode 100644 index 00000000000..610b8db946b --- /dev/null +++ b/autohotkey/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub AutoHotkey Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:23Z + Weekly Trending of AutoHotkey in GitHub + + + xianyukang/MyKeymap + 2023-09-24T01:46:23Z + tag:github.com,2023-09-24:/xianyukang/MyKeymap + + <p>一款基于 AutoHotkey 的键盘映射工具</p><hr> + + + SeanJM/bomberkeys + 2023-09-24T01:46:23Z + tag:github.com,2023-09-24:/SeanJM/bomberkeys + + <p>An Autohotkey script for Bombermine</p><hr> + + \ No newline at end of file diff --git a/autoit/daily/index.xml b/autoit/daily/index.xml index 77739b6e06d..b5d262c0a6e 100644 --- a/autoit/daily/index.xml +++ b/autoit/daily/index.xml @@ -1,7 +1,7 @@ GitHub AutoIt Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:06Z + 2023-09-24T01:26:46Z Daily Trending of AutoIt in GitHub \ No newline at end of file diff --git a/autoit/weekly/index.xml b/autoit/weekly/index.xml new file mode 100644 index 00000000000..78a7a7f00a3 --- /dev/null +++ b/autoit/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub AutoIt Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:27Z + Weekly Trending of AutoIt in GitHub + + \ No newline at end of file diff --git a/avro-idl/daily/index.xml b/avro-idl/daily/index.xml index 287b24b042c..58190332e55 100644 --- a/avro-idl/daily/index.xml +++ b/avro-idl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Avro IDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:05Z + 2023-09-24T01:26:49Z Daily Trending of Avro IDL in GitHub \ No newline at end of file diff --git a/avro-idl/weekly/index.xml b/avro-idl/weekly/index.xml new file mode 100644 index 00000000000..70a814e72de --- /dev/null +++ b/avro-idl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Avro IDL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:24Z + Weekly Trending of Avro IDL in GitHub + + \ No newline at end of file diff --git a/awk/daily/index.xml b/awk/daily/index.xml index 173bdd30118..cd20e73c314 100644 --- a/awk/daily/index.xml +++ b/awk/daily/index.xml @@ -1,7 +1,7 @@ GitHub Awk Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:07Z + 2023-09-24T01:26:47Z Daily Trending of Awk in GitHub \ No newline at end of file diff --git a/awk/weekly/index.xml b/awk/weekly/index.xml new file mode 100644 index 00000000000..47cc8b0eb99 --- /dev/null +++ b/awk/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Awk Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:26Z + Weekly Trending of Awk in GitHub + + \ No newline at end of file diff --git a/ballerina/daily/index.xml b/ballerina/daily/index.xml index e6a044e3244..66362c9a0e9 100644 --- a/ballerina/daily/index.xml +++ b/ballerina/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ballerina Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:04Z + 2023-09-24T01:26:48Z Daily Trending of Ballerina in GitHub \ No newline at end of file diff --git a/ballerina/weekly/index.xml b/ballerina/weekly/index.xml new file mode 100644 index 00000000000..e9f54834974 --- /dev/null +++ b/ballerina/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Ballerina Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:25Z + Weekly Trending of Ballerina in GitHub + + + ballerina-platform/module-ballerinax-zipkin + 2023-09-24T01:46:25Z + tag:github.com,2023-09-24:/ballerina-platform/module-ballerinax-zipkin + + <p>Ballerina Zipkin Observability Extension Module</p><hr> + + \ No newline at end of file diff --git a/basic/daily/index.xml b/basic/daily/index.xml index c913c35259f..dd0c956eb82 100644 --- a/basic/daily/index.xml +++ b/basic/daily/index.xml @@ -1,7 +1,7 @@ GitHub BASIC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:09Z + 2023-09-24T01:26:50Z Daily Trending of BASIC in GitHub \ No newline at end of file diff --git a/basic/weekly/index.xml b/basic/weekly/index.xml new file mode 100644 index 00000000000..f093a1b73a8 --- /dev/null +++ b/basic/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub BASIC Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:29Z + Weekly Trending of BASIC in GitHub + + \ No newline at end of file diff --git a/batchfile/daily/index.xml b/batchfile/daily/index.xml index 1f8b69d1644..75e55c939d9 100644 --- a/batchfile/daily/index.xml +++ b/batchfile/daily/index.xml @@ -1,7 +1,14 @@ GitHub Batchfile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:13Z + 2023-09-24T01:26:54Z Daily Trending of Batchfile in GitHub + + Zuntan03/EasyPromptAnime + 2023-09-24T01:26:54Z + tag:github.com,2023-09-24:/Zuntan03/EasyPromptAnime + + <p>ローカル PC でプロンプトから簡単に動画を生成します。</p><hr> + \ No newline at end of file diff --git a/batchfile/weekly/index.xml b/batchfile/weekly/index.xml new file mode 100644 index 00000000000..756c937a492 --- /dev/null +++ b/batchfile/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Batchfile Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:33Z + Weekly Trending of Batchfile in GitHub + + \ No newline at end of file diff --git a/beef/daily/index.xml b/beef/daily/index.xml index 67698d195b5..76daa0b7ac4 100644 --- a/beef/daily/index.xml +++ b/beef/daily/index.xml @@ -1,7 +1,7 @@ GitHub Beef Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:08Z + 2023-09-24T01:26:52Z Daily Trending of Beef in GitHub \ No newline at end of file diff --git a/beef/weekly/index.xml b/beef/weekly/index.xml new file mode 100644 index 00000000000..bcd58b3728a --- /dev/null +++ b/beef/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Beef Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:28Z + Weekly Trending of Beef in GitHub + + \ No newline at end of file diff --git a/befunge/daily/index.xml b/befunge/daily/index.xml index 491c6c649d8..185b4c5948f 100644 --- a/befunge/daily/index.xml +++ b/befunge/daily/index.xml @@ -1,7 +1,7 @@ GitHub Befunge Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:10Z + 2023-09-24T01:26:51Z Daily Trending of Befunge in GitHub \ No newline at end of file diff --git a/befunge/weekly/index.xml b/befunge/weekly/index.xml new file mode 100644 index 00000000000..349e1449438 --- /dev/null +++ b/befunge/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Befunge Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:30Z + Weekly Trending of Befunge in GitHub + + \ No newline at end of file diff --git a/berry/daily/index.xml b/berry/daily/index.xml index 6b8c265368d..5dc41b3f4bd 100644 --- a/berry/daily/index.xml +++ b/berry/daily/index.xml @@ -1,7 +1,7 @@ GitHub Berry Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:16Z + 2023-09-24T01:26:59Z Daily Trending of Berry in GitHub \ No newline at end of file diff --git a/berry/weekly/index.xml b/berry/weekly/index.xml new file mode 100644 index 00000000000..0b509c309df --- /dev/null +++ b/berry/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Berry Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:34Z + Weekly Trending of Berry in GitHub + + \ No newline at end of file diff --git a/bibtex/daily/index.xml b/bibtex/daily/index.xml index d6f404c91d2..a26aa6b3185 100644 --- a/bibtex/daily/index.xml +++ b/bibtex/daily/index.xml @@ -1,7 +1,7 @@ GitHub BibTeX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:14Z + 2023-09-24T01:26:55Z Daily Trending of BibTeX in GitHub \ No newline at end of file diff --git a/bibtex/weekly/index.xml b/bibtex/weekly/index.xml new file mode 100644 index 00000000000..e7e0c7c347f --- /dev/null +++ b/bibtex/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub BibTeX Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:35Z + Weekly Trending of BibTeX in GitHub + + \ No newline at end of file diff --git a/bicep/daily/index.xml b/bicep/daily/index.xml index 69e15c68f91..28ab6402f6e 100644 --- a/bicep/daily/index.xml +++ b/bicep/daily/index.xml @@ -1,7 +1,7 @@ GitHub Bicep Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:18Z + 2023-09-24T01:26:57Z Daily Trending of Bicep in GitHub \ No newline at end of file diff --git a/bicep/weekly/index.xml b/bicep/weekly/index.xml new file mode 100644 index 00000000000..0f7dd925290 --- /dev/null +++ b/bicep/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Bicep Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:36Z + Weekly Trending of Bicep in GitHub + + \ No newline at end of file diff --git a/bison/daily/index.xml b/bison/daily/index.xml index f2f973fdba2..9cc7568cb44 100644 --- a/bison/daily/index.xml +++ b/bison/daily/index.xml @@ -1,7 +1,7 @@ GitHub Bison Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:22Z + 2023-09-24T01:27:03Z Daily Trending of Bison in GitHub \ No newline at end of file diff --git a/bison/weekly/index.xml b/bison/weekly/index.xml new file mode 100644 index 00000000000..435532ca101 --- /dev/null +++ b/bison/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Bison Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:39Z + Weekly Trending of Bison in GitHub + + \ No newline at end of file diff --git a/bitbake/daily/index.xml b/bitbake/daily/index.xml index 2b42c820b95..d960595996b 100644 --- a/bitbake/daily/index.xml +++ b/bitbake/daily/index.xml @@ -1,7 +1,7 @@ GitHub BitBake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:21Z + 2023-09-24T01:27:01Z Daily Trending of BitBake in GitHub \ No newline at end of file diff --git a/bitbake/weekly/index.xml b/bitbake/weekly/index.xml new file mode 100644 index 00000000000..66368b64648 --- /dev/null +++ b/bitbake/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub BitBake Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:43Z + Weekly Trending of BitBake in GitHub + + + OE4T/meta-tegra-community + 2023-09-24T01:46:43Z + tag:github.com,2023-09-24:/OE4T/meta-tegra-community + + <p>Repository for community-maintained recipes for additional packages for NVIDIA Jetson platforms</p><hr> + + \ No newline at end of file diff --git a/blade/daily/index.xml b/blade/daily/index.xml index e17806ae7dc..4737a9a6eea 100644 --- a/blade/daily/index.xml +++ b/blade/daily/index.xml @@ -1,7 +1,14 @@ GitHub Blade Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:24Z + 2023-09-24T01:27:04Z Daily Trending of Blade in GitHub + + sssreddys/StudentManagement + 2023-09-24T01:27:04Z + tag:github.com,2023-09-24:/sssreddys/StudentManagement + + <p></p><hr> + \ No newline at end of file diff --git a/blade/weekly/index.xml b/blade/weekly/index.xml new file mode 100644 index 00000000000..728f8545a07 --- /dev/null +++ b/blade/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub Blade Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:41Z + Weekly Trending of Blade in GitHub + + + takielias/tablar + 2023-09-24T01:46:41Z + tag:github.com,2023-09-24:/takielias/tablar + + <p>Tablar: A Laravel Dashboard Preset Based on Tabler HTML Template + Vite. https://tablar.ebuz.xyz/docs</p><hr> + + + cedev935/OpenChat + 2023-09-24T01:46:41Z + tag:github.com,2023-09-24:/cedev935/OpenChat + + <p></p><hr> + + \ No newline at end of file diff --git a/blitzbasic/daily/index.xml b/blitzbasic/daily/index.xml index 33d83d4ba80..e4287fd6262 100644 --- a/blitzbasic/daily/index.xml +++ b/blitzbasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub BlitzBasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:19Z + 2023-09-24T01:27:02Z Daily Trending of BlitzBasic in GitHub \ No newline at end of file diff --git a/blitzbasic/weekly/index.xml b/blitzbasic/weekly/index.xml new file mode 100644 index 00000000000..0b4877d1f3c --- /dev/null +++ b/blitzbasic/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub BlitzBasic Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:39Z + Weekly Trending of BlitzBasic in GitHub + + \ No newline at end of file diff --git a/blitzmax/daily/index.xml b/blitzmax/daily/index.xml index 9b2321a6b11..04eb52db11d 100644 --- a/blitzmax/daily/index.xml +++ b/blitzmax/daily/index.xml @@ -1,7 +1,7 @@ GitHub BlitzMax Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:25Z + 2023-09-24T01:27:06Z Daily Trending of BlitzMax in GitHub \ No newline at end of file diff --git a/blitzmax/weekly/index.xml b/blitzmax/weekly/index.xml new file mode 100644 index 00000000000..212c7b86cc9 --- /dev/null +++ b/blitzmax/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub BlitzMax Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:46Z + Weekly Trending of BlitzMax in GitHub + + \ No newline at end of file diff --git a/bluespec/daily/index.xml b/bluespec/daily/index.xml index 792a72219c6..b0ced404276 100644 --- a/bluespec/daily/index.xml +++ b/bluespec/daily/index.xml @@ -1,7 +1,7 @@ GitHub Bluespec Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:26Z + 2023-09-24T01:27:05Z Daily Trending of Bluespec in GitHub \ No newline at end of file diff --git a/bluespec/weekly/index.xml b/bluespec/weekly/index.xml new file mode 100644 index 00000000000..2760a0757ab --- /dev/null +++ b/bluespec/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Bluespec Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:47Z + Weekly Trending of Bluespec in GitHub + + \ No newline at end of file diff --git a/boo/daily/index.xml b/boo/daily/index.xml index 413f6808133..54ac3615d2f 100644 --- a/boo/daily/index.xml +++ b/boo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Boo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:27Z + 2023-09-24T01:27:07Z Daily Trending of Boo in GitHub \ No newline at end of file diff --git a/boo/weekly/index.xml b/boo/weekly/index.xml new file mode 100644 index 00000000000..a6fdb9a0838 --- /dev/null +++ b/boo/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Boo Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:44Z + Weekly Trending of Boo in GitHub + + \ No newline at end of file diff --git a/boogie/daily/index.xml b/boogie/daily/index.xml index a8cbd1eff97..49457cdce7d 100644 --- a/boogie/daily/index.xml +++ b/boogie/daily/index.xml @@ -1,7 +1,7 @@ GitHub Boogie Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:29Z + 2023-09-24T01:27:11Z Daily Trending of Boogie in GitHub \ No newline at end of file diff --git a/boogie/weekly/index.xml b/boogie/weekly/index.xml new file mode 100644 index 00000000000..aaf08b7f37e --- /dev/null +++ b/boogie/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Boogie Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:50Z + Weekly Trending of Boogie in GitHub + + \ No newline at end of file diff --git a/brainfuck/daily/index.xml b/brainfuck/daily/index.xml index d363adac0be..615a24496b8 100644 --- a/brainfuck/daily/index.xml +++ b/brainfuck/daily/index.xml @@ -1,7 +1,7 @@ GitHub Brainfuck Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:30Z + 2023-09-24T01:27:12Z Daily Trending of Brainfuck in GitHub \ No newline at end of file diff --git a/brainfuck/weekly/index.xml b/brainfuck/weekly/index.xml new file mode 100644 index 00000000000..6e76a0cdae5 --- /dev/null +++ b/brainfuck/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Brainfuck Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:48Z + Weekly Trending of Brainfuck in GitHub + + \ No newline at end of file diff --git a/brightscript/daily/index.xml b/brightscript/daily/index.xml index ccaf7b2c7a6..cef15b53646 100644 --- a/brightscript/daily/index.xml +++ b/brightscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Brightscript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:31Z + 2023-09-24T01:27:10Z Daily Trending of Brightscript in GitHub \ No newline at end of file diff --git a/brightscript/weekly/index.xml b/brightscript/weekly/index.xml new file mode 100644 index 00000000000..75fbbb01770 --- /dev/null +++ b/brightscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Brightscript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:49Z + Weekly Trending of Brightscript in GitHub + + \ No newline at end of file diff --git a/browserslist/daily/index.xml b/browserslist/daily/index.xml index 921e142eacc..1c9fb3db02d 100644 --- a/browserslist/daily/index.xml +++ b/browserslist/daily/index.xml @@ -1,7 +1,7 @@ GitHub Browserslist Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:32Z + 2023-09-24T01:27:13Z Daily Trending of Browserslist in GitHub \ No newline at end of file diff --git a/browserslist/weekly/index.xml b/browserslist/weekly/index.xml new file mode 100644 index 00000000000..e6efafbb782 --- /dev/null +++ b/browserslist/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Browserslist Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:51Z + Weekly Trending of Browserslist in GitHub + + \ No newline at end of file diff --git a/c%23/daily/index.xml b/c%23/daily/index.xml index e8ff38622b7..134b70114c9 100644 --- a/c%23/daily/index.xml +++ b/c%23/daily/index.xml @@ -1,7 +1,21 @@ GitHub C# Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:39Z + 2023-09-24T01:27:20Z Daily Trending of C# in GitHub + + Crypto137/MHServerEmu + 2023-09-24T01:27:20Z + tag:github.com,2023-09-24:/Crypto137/MHServerEmu + + <p>A server emulator for Marvel Heroes</p><hr><h1>MHServerEmu</h1> <p>MHServerEmu is an experimental server emulator for Marvel Heroes.</p> <p>The only currently supported version of the game client is <strong>1.52.0.1700</strong> (also known as <strong>2.16a</strong>).</p> <p>Please see <a href="https://github.com/Crypto137/MHServerEmu/raw/master/docs/Overview.md">Overview.md</a> to find out how everything works.</p> <p>If you want to ask questions about the server emulator or help with the development, feel free to join our Discord: <a href="https://discord.gg/hjR8Bj52t3">https://discord.gg/hjR8Bj52t3</a></p> <h2>Features</h2> <p>This server emulator is currently in early stages of development. Currently it features:</p> <ul> <li> <p>Network protocol implementation.</p> </li> <li> <p>Exploration of all hubs, as well as a number of combat zones.</p> </li> <li> <p>Hero and costume selection.</p> </li> <li> <p>Rudimentary implementation of hero powers.</p> </li> <li> <p>Basic multiplayer functionality: handling multiple clients, remote connections, chat.</p> </li> </ul> <h2>Setup</h2> <p>See <a href="https://github.com/Crypto137/MHServerEmu/raw/master/docs/Setup.md">Setup.md</a> for information on how to set the server up. Please note that since MHServerEmu is still in early stages in development, the process is currently not particularly user friendly.</p> + + + SlejmUr/PayCheck3 + 2023-09-24T01:27:20Z + tag:github.com,2023-09-24:/SlejmUr/PayCheck3 + + <p>PayDay 3 Server Emulator Attempt</p><hr><h1>PayCheck3</h1> <p>PayDay 3 (Live/Master Branch) Server emulator</p> <h2>Disclaimer</h2> <ul> <li>You must own a legitimate copy of PAYDAY 3 to use this software, which can be purchased at <a href="https://www.paydaythegame.com/payday3/#buy">https://www.paydaythegame.com/payday3/#buy</a></li> <li>The contributors of PayCheck3 in no way support piracy, and actively ensure that PayCheck3 does not work with an illegitimate copy. We're sorry to have caused any confusion that this could be used for piracy.</li> <li>This project is in no way affliated or endorsed by Starbreeze Entertainment.</li> </ul> <h2>CURRENTLY MATCHMAKING IS NOT WORKING!</h2> <p>Thank you for understanding! I working on a solution, no ETA yet.</p> <h2>Current State</h2> <p>Left to do (&amp; Working on it):</p> <ul> <li>WSS Response</li> <li>Party and GameSessions</li> <li>New Responses</li> </ul> <p>Need more Interogation:<br> UDP Connection</p> <p>How to run:</p> <ol> <li>Go To Cert folder and follow readme.txt</li> <li>Copy crt &amp; pfx files and paste next to PayCheck3ServerApp.exe</li> <li>Start the server.</li> <li>Go to your c:\Windows\System32\Drivers\etc\hosts and open it.</li> <li>Copy all stuff from hosts_edit.txt</li> <li>Run your Client &amp; Have fun.</li> </ol> <p>If you want your friends to join you, they need to edit the 127.0.0.1 to your IP (Can be Lan or your External)</p> <h1>Where can I get the built server?</h1> <p>In <a href="https://github.com/SlejmUr/PayCheck3/actions">Github Actions</a> you find most recent pushes/request Build version.</p> <h1>Configurate your server.</h1> <p>You see a config.json where you can edit some things that can edit server stuff.</p> <h3>Saves</h3> <p>SaveRequest: In here you can save each request when client send any change in the inventory. (Usefull for debug)<br> Extension: It basicly a json but with a funny extension</p> <h3>Hosting</h3> <p>IP: Currently is its 127.0.0.1 but can be changed to your IP or anything as IP (IT HOST GSTATIC,WSS,UDP too!!!)<br> WSS: Can enable/disable to run the HTTPS/WSS Server<br> UDP: Can enable/disable to run the UDP Server (GameServer?) [NOT USED]<br> GSTATIC: Can enable/disable to run the GSTATIC server (Enable you to play without internet)<br> UDP_PORT: Can set Port for UDP connection</p> <h3>InDevFeatures</h3> <p>Can enable/disable certain features that could land you something now work perfectly.</p> <h1>Soon stuff's</h1> <p>Aka just ideas</p> <h3>How to add your server</h3> <p>Open servers.json<br> Duplicate the eu-central-1 alias server<br> Edit the Status, Region, Port, IP to your UDP one</p> + \ No newline at end of file diff --git a/c%23/weekly/index.xml b/c%23/weekly/index.xml new file mode 100644 index 00000000000..b54de93129d --- /dev/null +++ b/c%23/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub C# Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:04Z + Weekly Trending of C# in GitHub + + + gabe-k/themebleed + 2023-09-24T01:47:04Z + tag:github.com,2023-09-24:/gabe-k/themebleed + + <p>Proof-of-Concept for CVE-2023-38146 ("ThemeBleed")</p><hr><h1>ThemeBleed</h1> <p>Proof-of-Concept for CVE-2023-38146 ("ThemeBleed")</p> <pre><code>Usage: ThemeBleed.exe &lt;command&gt; Commands: server - Runs the server make_theme &lt;host&gt; &lt;output path&gt; - Generates a .theme file referencing the specified host make_themepack &lt;host&gt; &lt;output_path&gt; - Generates a .themepack file referencing the specified host </code></pre> <h2>Data files</h2> <p>The binaries in data correspond to the 3 files returned to the target by the PoC.</p> <ul> <li><code>stage_1</code> - An <code>msstyles</code> file with the <code>PACKTHEM_VERSION</code> set to 999.</li> <li><code>stage_2</code> - A valid unmodified <code>msstyles</code> file to pass the signature check.</li> <li><code>stage_3</code> - The DLL that will be loaded and executed. The provided example simply launches <code>calc.exe</code>.</li> </ul> <p>To make your own payload, create a DLL with an export named <code>VerifyThemeVersion</code> containing your code, and replace <code>stage_3</code> with your newly created DLL.</p> + + + FNA-XNA/FNA + 2023-09-24T01:47:04Z + tag:github.com,2023-09-24:/FNA-XNA/FNA + + <p>FNA - Accuracy-focused XNA4 reimplementation for open platforms</p><hr><p>This is FNA, an XNA4 reimplementation that focuses solely on developing a fully accurate XNA4 runtime for the desktop.</p> <p>Project Website: <a href="https://fna-xna.github.io/">https://fna-xna.github.io/</a></p> <h2>License</h2> <p>FNA is released under the Microsoft Public License. See LICENSE for details.</p> <p>FNA uses LzxDecoder.cs, released under a dual MSPL/LGPL license. See lzxdecoder.LICENSE for details.</p> <p>FNA uses code from the Mono.Xna project, released under the MIT license. See monoxna.LICENSE for details.</p> <h2>Documentation</h2> <p>Documentation for FNA can be found on the FNA wiki:</p> <p><a href="https://github.com/FNA-XNA/FNA/wiki">https://github.com/FNA-XNA/FNA/wiki</a></p> <h2>Found an issue?</h2> <p>Issues and patches can be reported via GitHub:</p> <p><a href="https://github.com/FNA-XNA/FNA/issues">https://github.com/FNA-XNA/FNA/issues</a></p> + + + stride3d/stride + 2023-09-24T01:47:04Z + tag:github.com,2023-09-24:/stride3d/stride + + <p>Stride Game Engine (formerly Xenko)</p><hr><p> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://media.githubusercontent.com/media/stride3d/stride/84092e8aa924e2039b3f8d968907b48fc699c6b3/sources/data/images/Logo/stride-logo-readme-white.png"> <source media="(prefers-color-scheme: light)" srcset="https://media.githubusercontent.com/media/stride3d/stride/84092e8aa924e2039b3f8d968907b48fc699c6b3/sources/data/images/Logo/stride-logo-readme-black.png"> <img alt="The stride logo, a geometrical 'S' in the form of a cube" src="https://media.githubusercontent.com/media/stride3d/stride/84092e8aa924e2039b3f8d968907b48fc699c6b3/sources/data/images/Logo/stride-logo-readme-black.png"> </picture> </p> <p><a href="https://discord.gg/f6aerfE"><img src="https://img.shields.io/discord/500285081265635328.svg?style=flat&amp;logo=discord&amp;label=discord&amp;logoColor=f2f2f2" alt="Join the chat at https://discord.gg/f6aerfE"></a> <a href="https://raw.githubusercontent.com/stride3d/stride/master/#contributors"><img src="https://img.shields.io/github/all-contributors/stride3d/stride?color=ee8449" alt="All Contributors"></a> <a href="https://opencollective.com/stride3d"><img src="https://img.shields.io/opencollective/all/stride3d?logo=opencollective" alt="Financial sponsors"></a> <a href="https://github.com/stride3d/stride/raw/master/LICENSE.md"><img src="https://img.shields.io/badge/license-MIT-blue" alt="License"></a></p> <p>Welcome to the Stride source code repository!</p> <p>Stride is an open-source C# game engine for realistic rendering and VR. The engine is highly modular and aims at giving game makers more flexibility in their development. Stride comes with an editor that allows you to create and manage the content of your games or applications visually and intuitively.</p> <p><img src="https://stride3d.net/images/external/script-editor.png" alt="Stride Editor"></p> <p>To learn more about Stride, visit <a href="https://stride3d.net/">stride3d.net</a>.</p> <h2>License and governance</h2> <h3>.NET Foundation</h3> <p>This project is supported by the <a href="https://dotnetfoundation.org">.NET Foundation</a>.</p> <h3>License</h3> <p>Stride is covered by the <a href="https://raw.githubusercontent.com/stride3d/stride/master/LICENSE.md">MIT License</a> unless stated otherwise (i.e. for some files that are copied from other projects). You can find the list of third-party projects <a href="https://raw.githubusercontent.com/stride3d/stride/master/THIRD%20PARTY.md">here</a>. Contributors need to sign the following <a href="https://raw.githubusercontent.com/stride3d/stride/master/docs/ContributorLicenseAgreement.md">Contribution License Agreement</a>.</p> <h3>Code of conduct</h3> <p>Stride being a <a href="https://www.dotnetfoundation.org/">.NET Foundation</a> project, it has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the <a href="https://dotnetfoundation.org/code-of-conduct">.NET Foundation Code of Conduct</a>.</p> <h3>Earn money by contributing</h3> <p>If you are a developer with solid experience in C#, rendering techniques, or game development, we want to hire you! We have allocated funds from supporters on OpenCollective and can pay for work on certain projects. <a href="https://github.com/stride3d/stride/wiki/Bounty">More info about this here</a>.</p> <h2>Documentation</h2> <p>Find explanations and information about Stride:</p> <ul> <li><a href="https://doc.stride3d.net/latest/manual/index.html">Stride Manual</a></li> <li><a href="https://doc.stride3d.net/latest/en/tutorials/">Tutorials</a></li> <li><a href="https://doc.stride3d.net/latest/api/index.html">API Reference</a></li> <li><a href="https://doc.stride3d.net/latest/ReleaseNotes/index.html">Release Notes</a></li> </ul> <h2>Community</h2> <p>Ask for help or report issues:</p> <ul> <li><a href="https://discord.gg/f6aerfE">Chat with the community on Discord</a></li> <li><a href="https://github.com/stride3d/stride/discussions">Discuss topics on GitHub discussions</a></li> <li><a href="https://github.com/stride3d/stride/issues">Report engine issues</a></li> <li><a href="https://opencollective.com/stride3d/">Donate to support the project</a></li> <li><a href="https://github.com/stride3d/stride/wiki/Community-Projects">List of Projects made by users</a></li> <li><a href="https://github.com/Doprez/Awesome-Stride">Awesome Stride - Huge List of Stride Resources</a></li> <li><a href="https://raw.githubusercontent.com/stride3d/stride/master/docs/localization.md">Localization</a></li> </ul> <h2>Building from source</h2> <h3>Prerequisites</h3> <ol> <li><strong>Latest</strong> <a href="https://git-scm.com/downloads">Git</a> <strong>with Large File Support</strong> selected in the setup on the components dialog.</li> <li><a href="https://dotnet.microsoft.com/en-us/download/dotnet/6.0">DotNet SDK 6.0</a> <ul> <li>Run <code>dotnet --info</code> in a console or powershell window to see which versions you have installed</li> </ul> </li> <li><a href="https://www.visualstudio.com/downloads/">Visual Studio 2022</a> with the following workloads: <ul> <li><code>.NET desktop development</code> with <code>.NET Framework 4.7.2 targeting pack</code></li> <li><code>Desktop development with C++</code> with <ul> <li><code>Windows 10 SDK (10.0.18362.0)</code> (it's currently enabled by default but it might change)</li> <li><code>MSVC v143 - VS2022 C++ x64/x86 build tools (v14.30)</code> or later version (should be enabled by default)</li> <li><code>C++/CLI support for v143 build tools (v14.30)</code> or later version <strong>(not enabled by default)</strong></li> </ul> </li> <li>Optional (to target iOS/Android): <code>Mobile development with .NET</code> and <code>Android SDK setup (API level 27)</code> individual component, then in Visual Studio go to <code>Tools &gt; Android &gt; Android SDK Manager</code> and install <code>NDK</code> (version 19+) from <code>Tools</code> tab.</li> </ul> </li> <li><strong><a href="https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2019-0">FBX SDK 2019.0 VS2015</a></strong></li> </ol> <h3>Build Stride</h3> <ol> <li>Open a command prompt, point it to a directory and clone Stride to it: <code>git clone https://github.com/stride3d/stride.git</code> <ul> <li>Note that when you use GitHub -&gt; Code -&gt; Download ZIP, this doesn't support Large File Support <code>lfs</code>, make sure you use the command above or that your git client does it for you</li> </ul> </li> <li>Open <code>&lt;StrideDir&gt;\build\Stride.sln</code> with Visual Studio 2022 and build <code>Stride.GameStudio</code> in the 60-Editor solution folder (it should be the default startup project) or run it from VS's toolbar. <ul> <li>Optionally, open and build <code>Stride.Android.sln</code>, <code>Stride.iOS.sln</code>, etc.</li> </ul> </li> </ol> <h4>Build Stride without Visual Studio</h4> <ol> <li>Install <a href="https://aka.ms/vs/17/release/vs_BuildTools.exe">Visual Studio Build Tools</a> with the same prerequisites listed above</li> <li>Add MSBuild's directory to your system's <em>PATH</em> (ex: <code>C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin</code>)</li> <li>Open a command prompt, point it to a directory and clone Stride to it: <code>git lfs clone https://github.com/stride3d/stride.git</code></li> <li>Navigate to <code>/Build</code> with the command prompt, input <code>msbuild /t:Restore Stride.sln</code> then <code>compile.bat</code></li> </ol> <p>If building failed:</p> <ul> <li>If you skipped one of the <code>Prerequisites</code> thinking that you already have the latest version, update to the latest anyway just to be sure.</li> <li>Visual Studio might have issues properly building if an anterior version is present alongside 2022. If you want to keep those version make sure that they are up to date and that you are building Stride through VS 2022.</li> <li>Your system's <em>PATH</em> should not contain older versions of MSBuild (ex: <code>...\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin</code> should be removed)</li> <li>Some changes might require a system reboot, try that if you haven't yet.</li> <li>Make sure that Git, Git LFS and Visual Studio can access the internet.</li> <li>Close VS, clear the nuget cache (in your cmd <code>dotnet nuget locals all --clear</code>), delete the hidden <code>.vs</code> folder inside <code>\build</code> and the files inside <code>bin\packages</code>, kill any msbuild and other vs processes, build the whole solution then build and run GameStudio.</li> </ul> <p>Do note that test solutions might fail but it should not prevent you from building <code>Stride.GameStudio</code>.</p> <h3>Contribution Guidelines</h3> <p>Please check our <a href="https://raw.githubusercontent.com/stride3d/stride/master/docs/CONTRIBUTING.md">Contributing Guidelines</a>.</p> <h3>Build Status</h3> <table> <thead> <tr> <th align="center">Branch</th> <th align="center"><strong>master</strong></th> </tr> </thead> <tbody> <tr> <td align="center">Windows D3D11</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_BuildWindowsD3d11&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_BuildWindowsD3d11),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">Windows D3D12</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_BuildWindowsD3d12&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_BuildWindowsD3d12),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">Windows Vulkan</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_BuildWindowsVulkan&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_BuildWindowsVulkan),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">Windows OpenGL</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_BuildWindowsOpenGL&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_BuildWindowsOpenGL),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">Windows OpenGL ES</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_BuildWindowsOpenGLES&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_BuildWindowsOpenGLES),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">iOS</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_BuildiOS&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_BuildiOS),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">Android</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_BuildAndroid&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_BuildAndroid),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">Linux Vulkan</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_BuildLinuxVulkan&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_BuildLinuxVulkan),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">Linux OpenGL</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_BuildLinuxOpenGL&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_BuildLinuxOpenGL),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">Tests Windows Simple</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_Tests_WindowsSimple&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_Tests_WindowsSimple),branch:master/statusIcon"></a></td> </tr> <tr> <td align="center">Tests Windows D3D11</td> <td align="center"><a href="https://teamcity.stride3d.net/viewType.html?buildTypeId=Engine_Tests_WindowsD3D11&amp;branch=master&amp;guest=1"><img src="https://teamcity.stride3d.net/app/rest/builds/buildType:(id:Engine_Tests_WindowsD3D11),branch:master/statusIcon"></a></td> </tr> </tbody> </table> <h2>Contributors ✨</h2> <p>Thanks goes to these wonderful people (<a href="https://allcontributors.org/docs/en/emoji-key">emoji key</a>):</p> <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="https://stride3d.net"><img src="https://avatars.githubusercontent.com/u/527565?v=4?s=100" width="100px;" alt="xen2"><br><sub><b>xen2</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=xen2" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Eideren"><img src="https://avatars.githubusercontent.com/u/5742236?v=4?s=100" width="100px;" alt="Eideren"><br><sub><b>Eideren</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=Eideren" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://www.aggror.com"><img src="https://avatars.githubusercontent.com/u/3499539?v=4?s=100" width="100px;" alt="Jorn Theunissen"><br><sub><b>Jorn Theunissen</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=Aggror" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/tebjan"><img src="https://avatars.githubusercontent.com/u/1094716?v=4?s=100" width="100px;" alt="Tebjan Halm"><br><sub><b>Tebjan Halm</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=tebjan" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/azeno"><img src="https://avatars.githubusercontent.com/u/573618?v=4?s=100" width="100px;" alt="Elias Holzer"><br><sub><b>Elias Holzer</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=azeno" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="http://www.tinyrocket.se"><img src="https://avatars.githubusercontent.com/u/204513?v=4?s=100" width="100px;" alt="Johan Gustafsson"><br><sub><b>Johan Gustafsson</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=johang88" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ykafia"><img src="https://avatars.githubusercontent.com/u/32330908?v=4?s=100" width="100px;" alt="Youness KAFIA"><br><sub><b>Youness KAFIA</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=ykafia" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="http://md-techblog.net.pl"><img src="https://avatars.githubusercontent.com/u/10709060?v=4?s=100" width="100px;" alt="Marian Dziubiak"><br><sub><b>Marian Dziubiak</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=manio143" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/AmbulantRex"><img src="https://avatars.githubusercontent.com/u/21176662?v=4?s=100" width="100px;" alt="AmbulantRex"><br><sub><b>AmbulantRex</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=AmbulantRex" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Basewq"><img src="https://avatars.githubusercontent.com/u/1356956?v=4?s=100" width="100px;" alt="Basewq"><br><sub><b>Basewq</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=Basewq" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/herocrab"><img src="https://avatars.githubusercontent.com/u/35175947?v=4?s=100" width="100px;" alt="Jarmo"><br><sub><b>Jarmo</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=herocrab" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://junakovic.com"><img src="https://avatars.githubusercontent.com/u/60072552?v=4?s=100" width="100px;" alt="Antonio Junaković"><br><sub><b>Antonio Junaković</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=cstdbool" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Kryptos-FR"><img src="https://avatars.githubusercontent.com/u/3006525?v=4?s=100" width="100px;" alt="Nicolas Musset"><br><sub><b>Nicolas Musset</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=Kryptos-FR" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jasonswearingen"><img src="https://avatars.githubusercontent.com/u/814134?v=4?s=100" width="100px;" alt="Novaleaf"><br><sub><b>Novaleaf</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=jasonswearingen" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/salahchafai"><img src="https://avatars.githubusercontent.com/u/64394387?v=4?s=100" width="100px;" alt="salahchafai"><br><sub><b>salahchafai</b></sub></a><br><a href="https://raw.githubusercontent.com/stride3d/stride/master/#design-salahchafai" title="Design">🎨</a></td> <td align="center" valign="top" width="14.28%"><a href="https://digitaltheory.biz/"><img src="https://avatars.githubusercontent.com/u/397608?v=4?s=100" width="100px;" alt="Mehar"><br><sub><b>Mehar</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=MeharDT" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="http://www.VaclavElias.com"><img src="https://avatars.githubusercontent.com/u/4528464?v=4?s=100" width="100px;" alt="Vaclav Elias"><br><sub><b>Vaclav Elias</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=VaclavElias" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/EternalTamago"><img src="https://avatars.githubusercontent.com/u/13661631?v=4?s=100" width="100px;" alt="EternalTamago"><br><sub><b>EternalTamago</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=EternalTamago" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/WhyPenguins"><img src="https://avatars.githubusercontent.com/u/42032199?v=4?s=100" width="100px;" alt="WhyPenguins"><br><sub><b>WhyPenguins</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=WhyPenguins" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/aunpyz"><img src="https://avatars.githubusercontent.com/u/14342782?v=4?s=100" width="100px;" alt="Aunnop Kattiyanet"><br><sub><b>Aunnop Kattiyanet</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=aunpyz" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/makotech222"><img src="https://avatars.githubusercontent.com/u/4389156?v=4?s=100" width="100px;" alt="Anon"><br><sub><b>Anon</b></sub></a><br><a href="https://raw.githubusercontent.com/stride3d/stride/master/#design-makotech222" title="Design">🎨</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/D3ZAX"><img src="https://avatars.githubusercontent.com/u/15343372?v=4?s=100" width="100px;" alt="D3ZAX"><br><sub><b>D3ZAX</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=D3ZAX" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/phr00t"><img src="https://avatars.githubusercontent.com/u/5983470?v=4?s=100" width="100px;" alt="Phr00t"><br><sub><b>Phr00t</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=phr00t" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="http://schnellebuntebilder.de/"><img src="https://avatars.githubusercontent.com/u/646501?v=4?s=100" width="100px;" alt="sebl"><br><sub><b>sebl</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=sebllll" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Artromskiy"><img src="https://avatars.githubusercontent.com/u/47901401?v=4?s=100" width="100px;" alt="Artromskiy"><br><sub><b>Artromskiy</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=Artromskiy" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/TheKeyblader"><img src="https://avatars.githubusercontent.com/u/30444673?v=4?s=100" width="100px;" alt="Jean-François Pustay"><br><sub><b>Jean-François Pustay</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=TheKeyblader" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Earthmark"><img src="https://avatars.githubusercontent.com/u/1251609?v=4?s=100" width="100px;" alt="Daniel Miller"><br><sub><b>Daniel Miller</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=Earthmark" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="http://joreg.ath.cx"><img src="https://avatars.githubusercontent.com/u/1067952?v=4?s=100" width="100px;" alt="joreg"><br><sub><b>joreg</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=joreg" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jrinker03"><img src="https://avatars.githubusercontent.com/u/49572939?v=4?s=100" width="100px;" alt="James Rinker"><br><sub><b>James Rinker</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=jrinker03" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/tristanmcpherson"><img src="https://avatars.githubusercontent.com/u/979937?v=4?s=100" width="100px;" alt="Tristan McPherson"><br><sub><b>Tristan McPherson</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=tristanmcpherson" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ericwj"><img src="https://avatars.githubusercontent.com/u/9473119?v=4?s=100" width="100px;" alt="Eric"><br><sub><b>Eric</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=ericwj" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/gregsn"><img src="https://avatars.githubusercontent.com/u/575557?v=4?s=100" width="100px;" alt="Sebastian Gregor"><br><sub><b>Sebastian Gregor</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=gregsn" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="http://insomnyawolf.github.io"><img src="https://avatars.githubusercontent.com/u/18150917?v=4?s=100" width="100px;" alt="insomnyawolf"><br><sub><b>insomnyawolf</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=insomnyawolf" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Doprez"><img src="https://avatars.githubusercontent.com/u/73259914?v=4?s=100" width="100px;" alt="Doprez"><br><sub><b>Doprez</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=Doprez" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Jklawreszuk"><img src="https://avatars.githubusercontent.com/u/31008367?v=4?s=100" width="100px;" alt="Jakub Ławreszuk"><br><sub><b>Jakub Ławreszuk</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=Jklawreszuk" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Ethereal77"><img src="https://avatars.githubusercontent.com/u/8967302?v=4?s=100" width="100px;" alt="Mario Guerra"><br><sub><b>Mario Guerra</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=Ethereal77" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/tamamutu"><img src="https://avatars.githubusercontent.com/u/62577086?v=4?s=100" width="100px;" alt="tamamutu"><br><sub><b>tamamutu</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=tamamutu" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/IXLLEGACYIXL"><img src="https://avatars.githubusercontent.com/u/107197024?v=4?s=100" width="100px;" alt="IXLLEGACYIXL"><br><sub><b>IXLLEGACYIXL</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=IXLLEGACYIXL" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/arturoc"><img src="https://avatars.githubusercontent.com/u/48240?v=4?s=100" width="100px;" alt="arturo"><br><sub><b>arturo</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=arturoc" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/garychia"><img src="https://avatars.githubusercontent.com/u/88014292?v=4?s=100" width="100px;" alt="Chia-Hsiang Cheng"><br><sub><b>Chia-Hsiang Cheng</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=garychia" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://nicusorn5.github.io/"><img src="https://avatars.githubusercontent.com/u/20599225?v=4?s=100" width="100px;" alt="Nicolae Tugui"><br><sub><b>Nicolae Tugui</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=NicusorN5" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://mattiascibien.net"><img src="https://avatars.githubusercontent.com/u/1300681?v=4?s=100" width="100px;" alt="Mattias Cibien"><br><sub><b>Mattias Cibien</b></sub></a><br><a href="https://github.com/stride3d/stride/commits?author=mattiascibien" title="Code">💻</a></td> </tr> </tbody> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END --> <p>This project follows the <a href="https://github.com/all-contributors/all-contributors">all-contributors</a> specification. Contributions of any kind welcome!</p> + + \ No newline at end of file diff --git a/c++/daily/index.xml b/c++/daily/index.xml index cc9512b6ba0..f3a19882dee 100644 --- a/c++/daily/index.xml +++ b/c++/daily/index.xml @@ -1,7 +1,14 @@ GitHub C++ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:02Z + 2023-09-24T01:27:43Z Daily Trending of C++ in GitHub + + AngusJohnson/Clipper2 + 2023-09-24T01:27:43Z + tag:github.com,2023-09-24:/AngusJohnson/Clipper2 + + <p>Polygon Clipping and Offsetting - C++, C# and Delphi</p><hr><h1>Clipper2</h1> <h3>A Polygon <a href="https://en.wikipedia.org/wiki/Clipping_(computer_graphics)">Clipping</a> and <a href="https://en.wikipedia.org/wiki/Parallel_curve">Offsetting</a> library (in C++, C# &amp; Delphi)<br></h3> <p><a href="https://github.com/AngusJohnson/Clipper2/actions/workflows/actions_cpp.yml"><img src="https://github.com/AngusJohnson/Clipper2/actions/workflows/actions_cpp.yml/badge.svg?sanitize=true" alt="GitHub Actions C++ status"></a>&nbsp;<a href="https://github.com/AngusJohnson/Clipper2/actions/workflows/actions_csharp.yml"><img src="https://github.com/AngusJohnson/Clipper2/actions/workflows/actions_csharp.yml/badge.svg?sanitize=true" alt="C#"></a>&nbsp;<a href="https://www.boost.org/LICENSE_1_0.txt"><img src="https://img.shields.io/badge/License-Boost_1.0-lightblue.svg?sanitize=true" alt="License"></a> <a href="https://www.nuget.org/packages/Clipper2"><img src="https://img.shields.io/nuget/v/Clipper2?color=green" alt="Nuget"></a> <a href="http://www.angusj.com/clipper2/Docs/Overview.htm"><img src="https://user-images.githubusercontent.com/5280692/187832279-b2a43890-da80-4888-95fe-793f092be372.svg?sanitize=true" alt="documentation"></a></p> <p>The <b>Clipper2</b> library performs <strong>intersection</strong>, <strong>union</strong>, <strong>difference</strong> and <strong>XOR</strong> boolean operations on both simple and complex polygons. It also performs polygon offsetting. This is a major update of my original <a href="https://sourceforge.net/projects/polyclipping/"><b>Clipper</b></a> library that was written over 10 years ago. That library I'm now calling <b>Clipper1</b> and while it still works very well, Clipper2 is <a href="http://www.angusj.com/clipper2/Docs/Changes.htm">better</a> in just about every way.</p> <h3>Compilers</h3> <p>C++: Requires C++17 (but could be modified to C++11 with only minor changes)<br> C#: The core library uses Standard Library 2.0 but the sample code uses .NET6<br> Delphi: Compiles with any version of Delphi back to Delphi 7.</p> <h3>Documentation</h3> <p><a href="http://www.angusj.com/clipper2/Docs/Overview.htm"><b>Extensive HTML documentation</b></a> <br><br></p> <h3>Examples</h3> <pre> //C++ Paths64 subject, clip, solution; subject.push_back(MakePath({100, 50, 10, 79, 65, 2, 65, 98, 10, 21})); clip.push_back(MakePath({98, 63, 4, 68, 77, 8, 52, 100, 19, 12})); solution = Intersect(subject, clip, FillRule::NonZero);</pre> <pre> //C# Paths64 subj = new Paths64(); Paths64 clip = new Paths64(); subj.Add(Clipper.MakePath(new int[] { 100, 50, 10, 79, 65, 2, 65, 98, 10, 21 })); clip.Add(Clipper.MakePath(new int[] { 98, 63, 4, 68, 77, 8, 52, 100, 19, 12 })); Paths64 solution = Clipper.Intersect(subj, clip, FillRule.NonZero);</pre> <pre> //Delphi var subject, clip, solution: TPaths64; begin SetLength(subject, 1); subject[0] := MakePath([100, 50, 10, 79, 65, 2, 65, 98, 10, 21]); SetLength(clip, 1); clip[0] := MakePath([98, 63, 4, 68, 77, 8, 52, 100, 19, 12]); solution := Intersect( subject, clip, frNonZero);</pre> <p><img src="https://user-images.githubusercontent.com/5280692/178123810-1719a1f5-25c3-4a9e-b419-e575ff056272.svg?sanitize=true" alt="clipperB"></p> <hr> <h3>Ports to other languages</h3> <p><strong>Java</strong>: <a href="https://github.com/micycle1/Clipper2-java/">https://github.com/micycle1/Clipper2-java/</a><br> <strong>Kotlin</strong>: <a href="https://github.com/Monkey-Maestro/clipper2-kotlin">https://github.com/Monkey-Maestro/clipper2-kotlin</a><br> <strong>golang</strong>: <a href="https://github.com/epit3d/goclipper2">https://github.com/epit3d/goclipper2</a></p> + \ No newline at end of file diff --git a/c++/weekly/index.xml b/c++/weekly/index.xml new file mode 100644 index 00000000000..dc01ac2a77f --- /dev/null +++ b/c++/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub C++ Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:18Z + Weekly Trending of C++ in GitHub + + + cocos2d/cocos2d-x + 2023-09-24T01:47:18Z + tag:github.com,2023-09-24:/cocos2d/cocos2d-x + + <p>Cocos2d-x is a suite of open-source, cross-platform, game-development tools utilized by millions of developers across the globe. Its core has evolved to serve as the foundation for Cocos Creator 1.x & 2.x.</p><hr><img src="http://www.cocos2d-x.org/attachments/801/cocos2dx_portrait.png" width="200"> <h1>cocos2d-x</h1> <table> <thead> <tr> <th>Win32</th> <th>Others</th> </tr> </thead> <tbody> <tr> <td><a href="https://ci.appveyor.com/project/minggo/cocos2d-x/branch/v4"><img src="https://ci.appveyor.com/api/projects/status/nlgirox464j6ldg5/branch/v4?svg=true" alt="Build status"></a></td> <td><a href="https://travis-ci.org/cocos2d/cocos2d-x"><img src="https://travis-ci.org/cocos2d/cocos2d-x.svg?branch=v4" alt="Build Status"></a></td> </tr> </tbody> </table> <p><a href="https://www.cocos.com/en/cocos2d-x" title="cocos2d-x">cocos2d-x</a> is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is based on <strong>cocos2d-iphone</strong>, but instead of using Objective-C, it uses C++. It works on iOS, Android, macOS, Windows and Linux.</p> <p><strong>Cocos2d-x Framework Architecture</strong>:</p> <p><img src="https://raw.githubusercontent.com/cocos2d/cocos2d-x/v4/docs/framework_architecture_v4.png" alt=""></p> <p>cocos2d-x is:</p> <ul> <li>Fast</li> <li>Free</li> <li>Easy to use</li> <li>Community supported</li> </ul> <h2>Git user attention</h2> <ol> <li> <p>Clone the repo from GitHub.</p> <pre><code> $ git clone https://github.com/cocos2d/cocos2d-x.git </code></pre> </li> <li> <p>After cloning the repo, please execute <code>download-deps.py</code> to download and install dependencies.</p> <pre><code> $ cd cocos2d-x cocos2d-x $ python download-deps.py </code></pre> </li> <li> <p>After running <code>download-deps.py</code>.</p> <pre><code> cocos2d-x $ git submodule update --init </code></pre> </li> </ol> <h2>Download stable versions</h2> <ul> <li><a href="https://cocos2d-x.org/download">Cocos2d-x stable versions</a></li> </ul> <h2>Documentations and samples</h2> <ul> <li><a href="http://docs.cocos2d-x.org/">All Docs in a single place!</a></li> <li><a href="http://docs.cocos2d-x.org/api-ref/index.html">Online API Reference</a> <em>Note that Cocos2d-x and Cocos Creator have different API set</em></li> <li><a href="https://docs.cocos2d-x.org/cocos2d-x/v4/en/basic_concepts/">Programmers Guide</a></li> <li><a href="https://github.com/cocos2d/cocos2d-x/raw/v4/docs/RELEASE_NOTES.md">Latest Release Note</a></li> <li><a href="https://github.com/cocos2d/cocos2d-x/raw/v4/CHANGELOG">Changelog</a></li> </ul> <h2>Main features</h2> <ul> <li>Scene management (workflow)</li> <li>Transitions between scenes</li> <li>Sprites and Sprite Sheets</li> <li>Effects: Lens, Ripple, Waves, Liquid, etc.</li> <li>Actions (behaviours): <ul> <li>Transformation Actions: Move, Rotate, Scale, Fade, Tint, etc.</li> <li>Composable actions: Sequence, Spawn, Repeat, Reverse</li> <li>Ease Actions: Exp, Sin, Cubic, Elastic, etc.</li> <li>Misc actions: CallFunc, OrbitCamera, Follow, Tween</li> </ul> </li> <li>Basic menus and buttons</li> <li>Integrated with physics engines: <a href="http://www.box2d.org" title="Box2D">Box2d</a> and <a href="http://www.chipmunk-physics.net" title="Chipmunk2D">Chipmunk</a></li> <li>Particle system</li> <li>Skeleton Animations: <a href="http://esotericsoftware.com/" title="http://esotericsoftware.com/">Spine</a> and Armature support</li> <li>Fonts: <ul> <li>Fast font rendering using Fixed and Variable width fonts</li> <li>Support for .ttf fonts</li> </ul> </li> <li>Tile Map support: Orthogonal, Isometric and Hexagonal</li> <li>Parallax scrolling</li> <li>Motion Streak</li> <li>Render To Texture</li> <li>Touch/Accelerometer on mobile devices</li> <li>Touch/Mouse/Keyboard on desktop</li> <li>Sound Engine support</li> <li>Integrated Slow motion/Fast forward</li> <li>Fast and compressed textures: PVR compressed and uncompressed textures, ETC1 compressed textures, and more</li> <li>Resolution Independent</li> <li>Language: C++, with Lua and JavaScript bindings</li> <li>Open Source Commercial Friendly(MIT): Compatible with open and closed source projects</li> <li>OpenGL ES 2.0 (mobile) / OpenGL 2.1 (desktop) / metal(macos and iOS) based</li> </ul> <h2>Build Requirements</h2> <ul> <li>Mac OS X 10.7+, Xcode 8+</li> <li>or Ubuntu 14.04+, CMake 3.1+</li> <li>or Windows 7+, VS 2015</li> <li>Python 2.7.5+(NOT Python 3)</li> <li>NDK r16+ is required to build Android games</li> <li>Android Studio 3.0.0+ to build Android games(tested with 3.0.0)</li> <li>JRE or JDK 1.6+ is required for web publishing</li> </ul> <h2>Runtime Requirements</h2> <ul> <li>iOS 8.0+ for iPhone / iPad games</li> <li>Android 3.0.0+ for Android</li> <li>OS X v10.9+ for Mac games</li> <li>Windows 7+ for Win games</li> </ul> <h2>Environment Setup</h2> <p>Should set up environment before starting a new game or running tests</p> <pre><code>$ cd cocos2d-x $ ./setup.py $ source FILE_TO_SAVE_SYSTEM_VARIABLE </code></pre> <p>Should invoke this script if using linux system</p> <pre><code>$ cd cocos2d-x $ ./install-linux-deps.sh </code></pre> <h2>Running Tests</h2> <pre><code>$ cd cocos2d-x $ mkdir build $ cd build $ cocos run --proj-dir .. -p [mac|win32|android|linux|ios] </code></pre> <h2>How to start a new game</h2> <pre><code>$ cd cocos2d-x $ ./setup.py $ source FILE_TO_SAVE_SYSTEM_VARIABLE $ cocos new MyGame -p com.your_company.mygame -l cpp -d NEW_PROJECTS_DIR $ cd NEW_PROJECTS_DIR/MyGame $ mkdir build $ cd build $ cocos run --proj-dir .. -p [mac|win32|android|linux|ios] </code></pre> <p>You can also create a Lua project with <code>-l lua</code>.</p> <h2>Using IDE</h2> <p>If need to debug program, then it is more convinent to use IDE to run and debug it. All platforms other than Android can use CMake to generate corresponding project file. Can refer to <a href="https://raw.githubusercontent.com/cocos2d/cocos2d-x/v4/cmake/README.md">Detail CMake Guide</a> for detail information.</p> <p>For Android, the Android Studio project file lies in <code>PROJECT_DIR/proj.android</code>. Can just use Android Studio to import the exsting project file.</p> <h2>Learning Resources</h2> <ul> <li><a href="https://docs.cocos2d-x.org/cocos2d-x/v4/en/basic_concepts/">Programmers Guide</a></li> <li><a href="https://developer.android.com/guide/components/fundamentals.html">Android Fundamentals</a></li> <li><a href="http://www.gamefromscratch.com/page/Cocos2d-x-CPP-Game-Programming-Tutorial-Series.aspx">Games From Scratch</a></li> <li><a href="https://github.com/MakeSchool?utf8=%E2%9C%93&amp;q=cocos2d&amp;type=&amp;language=">Make School Tutorials</a></li> </ul> <h2>Spreading the word!</h2> <p>You can help us spread the word about cocos2d-x! We would surely appreciate it!</p> <ul> <li>Twitter: <a href="https://twitter.com/CocosEngine">@CocosEngine</a></li> <li>Facebook: <a href="https://www.facebook.com/CocosEngine">https://www.facebook.com/CocosEngine</a></li> <li>YouTube: <a href="https://www.youtube.com/cocosengine">https://www.youtube.com/cocosengine</a></li> <li>Weibo: <a href="https://weibo.com/cocos2dx">@Cocos引擎</a></li> <li>bilibili: <a href="https://space.bilibili.com/491120849">https://space.bilibili.com/491120849</a></li> </ul> <h2>Where to get help</h2> <ul> <li><a href="https://discuss.cocos2d-x.org/c/cocos2d-x/21">English Forums</a></li> <li><a href="https://forum.cocos.org/c/cocos2d-x/16">中文社区</a></li> <li><a href="https://github.com/cocos2d/cocos2d-x/issues">Bug Tracker</a></li> <li><a href="http://docs.cocos2d-x.org/api-ref/index.html">API Reference</a>.</li> <li><a href="https://github.com/cocos2d/cocos2d-x/raw/v4/docs/RELEASE_NOTES.md">Latest Release Note</a></li> <li><a href="https://github.com/cocos2d/cocos2d-x/raw/v4/CHANGELOG">Changelog</a></li> <li><a href="https://discord.gg/pVqab4K">Discord Channel</a></li> <li><code>cpp-tests</code> project. This project is our basis for testing. Use this project to learn how we implement the functionality of the engine. This project is located in <strong>cocos2d-x_root/build.</strong></li> </ul> <h2>Contributing to the Project</h2> <p>Cocos2d-x is licensed under the <a href="https://opensource.org/licenses/MIT">MIT License</a>. We welcome participation!</p> <p>Did you find a bug? Do you have feature request? Do you want to merge a feature?</p> <ul> <li><a href="https://github.com/cocos2d/cocos2d-x/raw/v3/CONTRIBUTING.md">contributing to cocos2d-x</a></li> </ul> <h2>Embrace the Future: Switch to Cocos Creator for a Better Experience</h2> <p><a href="https://www.cocos.com/en/creator">Cocos Creator</a> is the new generation of Cocos game engine with a full featured editor and content creation friendly workflow. It supports all major platforms allowing games to be quickly released for the web, iOS, Android, Windows, Mac, and various mini-game platforms. Millions of developers have built 2D / 3D experiences, from hardcore games to web instant entertainment. A pure JavaScript-developed engine runtime is available on the web and mini-game platforms for better performance and smaller packages. On other native platforms, C++ is used to implement the underlying framework, providing greater operational efficiency. The engine is completely <a href="https://github.com/cocos/cocos-engine">open source</a>, and retains the advantages of Cocos2d-x which includes high performance, customizability, ease for debugging, easy to learn, and small package size.</p> <p>Therefore, we no longer recommend new users to start with Cocos2d-x. Instead, please use the brand-new <a href="https://www.cocos.com/en/creator">Cocos Creator</a> for project development to enjoy the best editor and 3D support.</p> + + + FlaxEngine/FlaxEngine + 2023-09-24T01:47:18Z + tag:github.com,2023-09-24:/FlaxEngine/FlaxEngine + + <p>Flax Engine – multi-platform 3D game engine</p><hr><img align="left" src="https://raw.githubusercontent.com/FlaxEngine/FlaxEngine/master/Development/Images/Logo.png" width="100px"> <h1>Flax Engine</h1> <a href="https://marketplace.visualstudio.com/items?itemName=Flax.FlaxVS"><img src="https://img.shields.io/badge/vs-extension-green.svg?sanitize=true"></a> <a href="https://flaxengine.com/discord"><img src="https://discordapp.com/api/guilds/437989205315158016/widget.png"></a> <p>Flax Engine is a high quality modern 3D game engine written in C++ and C#. From stunning graphics to powerful scripts - Flax can give everything for your games. Designed for fast workflow with many ready to use features waiting for you right now. To learn more see the website (<a href="https://flaxengine.com">www.flaxengine.com</a>).</p> <p>This repository contains full source code of the Flax Engine (excluding NDA-protected platforms support). Anyone is welcome to contribute or use the modified source in Flax-based games.</p> <h1>Development</h1> <ul> <li><a href="https://flaxengine.com">Homepage</a></li> <li><a href="https://flaxengine.com/blog">Dev Blog</a></li> <li><a href="https://docs.flaxengine.com">Documentation</a></li> <li><a href="https://forum.flaxengine.com">Forum</a></li> <li><a href="https://trello.com/b/NQjLXRCP/flax-roadmap">Roadmap</a></li> </ul> <h1>Screenshots</h1> <p><img src="https://raw.githubusercontent.com/FlaxEngine/FlaxEngine/master/Development/Images/flax-pic-2.jpg" alt="pbr-rendering" title="PBR Rendering and Global Illumination"> <img src="https://raw.githubusercontent.com/FlaxEngine/FlaxEngine/master/Development/Images/flax-pic-1.jpg" alt="rendering" title="Rendering"> <img src="https://raw.githubusercontent.com/FlaxEngine/FlaxEngine/master/Development/Images/flax-pic-3.jpg" alt="performance" title="High Performance"></p> <h1>Getting started</h1> <p>Follow the instructions below to compile and run the engine from source.</p> <h2>Windows</h2> <ul> <li>Install Visual Studio 2022 or newer</li> <li>Install Windows 8.1 SDK or newer (via Visual Studio Installer)</li> <li>Install Microsoft Visual C++ 2015 v140 toolset or newer (via Visual Studio Installer)</li> <li>Install .NET 7 SDK for <strong>Windows x64</strong> (via Visual Studio Installer or <a href="https://dotnet.microsoft.com/en-us/download/dotnet/7.0">from web</a>)</li> <li>Install Git with LFS</li> <li>Clone repo (with LFS)</li> <li>Run <strong>GenerateProjectFiles.bat</strong></li> <li>Open <code>Flax.sln</code> and set solution configuration to <strong>Editor.Development</strong> and solution platform to <strong>Win64</strong></li> <li>Set Flax (C++) or FlaxEngine (C#) as startup project</li> <li>Compile Flax project (hit F7 or CTRL+Shift+B)</li> <li>Optionally set Debug Type to <strong>Managed Only (.NET Core)</strong> to debug C#-only, or <strong>Mixed (.NET Core)</strong> to debug both C++ and C#</li> <li>Run Flax (hit F5 key)</li> </ul> <h2>Linux</h2> <ul> <li>Install Visual Studio Code</li> <li>Install .NET 7 SDK (<a href="https://dotnet.microsoft.com/en-us/download/dotnet/7.0">https://dotnet.microsoft.com/en-us/download/dotnet/7.0</a>) <ul> <li>Ubuntu: <code>sudo apt install dotnet-sdk-7.0</code></li> </ul> </li> <li>Install Vulkan SDK (<a href="https://vulkan.lunarg.com/">https://vulkan.lunarg.com/</a>) <ul> <li>Ubuntu: <code>sudo apt install vulkan-sdk</code></li> <li>Arch: <code>sudo pacman -S spirv-tools vulkan-headers vulkan-tools vulkan-validation-layers</code></li> </ul> </li> <li>Install Git with LFS <ul> <li>Ubuntu: <code>sudo apt-get install git git-lfs</code></li> <li>Arch: <code>sudo pacman -S git git-lfs</code></li> <li><code>git-lfs install</code></li> </ul> </li> <li>Install the required packages: <ul> <li>Ubuntu: <code>sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev zlib1g-dev</code></li> <li>Arch: <code>sudo pacman -S base-devel libx11 libxcursor libxinerama zlib</code></li> </ul> </li> <li>Install Clang compiler (version 6 or later): <ul> <li>Ubuntu: <code>sudo apt-get install clang lldb lld</code></li> <li>Arch: <code>sudo pacman -S clang lldb lld</code></li> </ul> </li> <li>Clone the repository (with LFS)</li> <li>Run <code>./GenerateProjectFiles.sh</code></li> <li>Open workspace with Visual Code</li> <li>Build and run (configuration and task named <code>Flax|Editor.Linux.Development|x64</code>)</li> </ul> <h2>Mac</h2> <ul> <li>Install XCode</li> <li>Install .NET 7 SDK (<a href="https://dotnet.microsoft.com/en-us/download/dotnet/7.0">https://dotnet.microsoft.com/en-us/download/dotnet/7.0</a>)</li> <li>Install Vulkan SDK (<a href="https://vulkan.lunarg.com/">https://vulkan.lunarg.com/</a>)</li> <li>Clone repo (with LFS)</li> <li>Run <code>GenerateProjectFiles.command</code></li> <li>Open workspace with XCode or Visual Studio Code</li> <li>Build and run (configuration <code>Editor.Mac.Development</code>)</li> </ul> <h4>Troubleshooting</h4> <ul> <li><code>Could not execute because the specified command or file was not found.</code></li> </ul> <p>Restart PC - ensure DotNet is added to PATH for command line tools execution.</p> <ul> <li><code>Microsoft.NET.TargetFrameworkInference.targets(141,5): error NETSDK1045: The current .NET SDK does not support targeting .NET 7.0. Either target .NET 5.0 or lower, or use a version of the .NET SDK that supports .NET 7.0</code></li> </ul> <p>Use Visual Studio 2022, older versions are not supported by .NET SDK 7.</p> <ul> <li><code>Building for Windows without Vulkan rendering backend (Vulkan SDK is missing)</code></li> </ul> <p>Install the Vulkan SDK then set an environment variable to provide the path to the SDK prior to running GenerateProjectFiles.bat: <code>set VULKAN_SDK=%sdk_path%</code>.</p> <ul> <li><code>The NuGetSdkResolver did not resolve this SDK</code></li> </ul> <p>Install <code>.NET SDK</code>, <code>NuGet package manager</code> and <code>NuGet targets and build tasks</code> in Visual Studio components.</p> <h2>Workspace directory</h2> <ul> <li><strong>Binaries/</strong> - executable files <ul> <li><strong>Editor/</strong> - Flax Editor binaries</li> <li><strong>Tools/</strong> - tools binaries</li> </ul> </li> <li><strong>Cache/</strong> - local data cache folder used by the engine and tools <ul> <li><strong>Intermediate/</strong> - intermediate files and cache for engine build <ul> <li><strong><em>ProjectName</em>/</strong> - per-project build cache data</li> <li><strong>Deps/</strong> - Flax.Build dependencies building cache</li> </ul> </li> <li><strong>Projects/</strong> - project files location</li> </ul> </li> <li><strong>Content/</strong> - assets and binary files used by the engine and editor</li> <li><strong>Development/</strong> - engine development files <ul> <li><strong>Scripts/</strong> - utility scripts</li> </ul> </li> <li><strong>Source/</strong> - source code location <ul> <li><strong>Editor/</strong> - Flax Editor source code</li> <li><strong>Engine/</strong> - Flax Engine source code</li> <li><strong>Platforms/</strong> - per-platform sources and dependency files <ul> <li><strong>DotNet/</strong> - C# dependencies</li> <li><strong>Editor/</strong> - Flax Editor binaries</li> <li><strong><em>PlatformName</em>/</strong> - per-platform files <ul> <li><strong>Binaries/</strong> - per-platform binaries <ul> <li><strong>Game/</strong> - Flax Game binaries</li> <li><strong>ThirdParty/</strong> - prebuilt 3rd Party binaries</li> </ul> </li> </ul> </li> </ul> </li> <li><strong>Shaders/</strong> - shaders source code</li> <li><strong>ThirdParty/</strong> - 3rd Party source code</li> <li><strong>Tools/</strong> - development tools source code</li> </ul> </li> </ul> <h1>Licensing and Contributions</h1> <p>Using Flax source code is strictly governed by the Flax Engine End User License Agreement. If you don't agree to those terms, as amended from time to time, you are not permitted to access or use Flax Engine.</p> <p>We welcome any contributions to Flax Engine development through pull requests on GitHub. Most of our active development is in the master branch, so we prefer to take pull requests there (particularly for new features). We try to make sure that all new code adheres to the Flax coding standards. All contributions are governed by the terms of the <a href="https://flaxengine.com/licensing/">EULA</a>.</p> + + + SoftFever/OrcaSlicer + 2023-09-24T01:47:18Z + tag:github.com,2023-09-24:/SoftFever/OrcaSlicer + + <p>G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.)</p><hr><p><a href="https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_orca.yml"><img src="https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_orca.yml/badge.svg?branch=main" alt="Build OrcaSlicer"></a></p> <h1>Orca Slicer</h1> <p>Orca Slicer is an open source slicer for FDM printers.<br> You can download Orca Slicer here: <a href="https://github.com/SoftFever/OrcaSlicer/releases/">github releases page</a>.<br> <img src="https://github.com/SoftFever/OrcaSlicer/assets/103989404/b97d5ffc-072d-4d0a-bbda-e67ef373876f" alt="discord-mark-blue"> Join community: <a href="https://discord.gg/WTEkCR6SnV">OrcaSlicer Official Discord Server</a></p> <h1>Main features</h1> <ul> <li>Auto calibrations for all printers</li> <li>Sandwich(inner-outer-inner) mode - an improved version of the <code>External perimeters first</code> mode</li> <li>Precise wall</li> <li>Klipper support</li> <li>More granular controls</li> <li>More features can be found in <a href="https://github.com/SoftFever/OrcaSlicer/releases/">change notes</a></li> </ul> <h3>Some background</h3> <p>OrcaSlicer is fork of Bambu Studio<br> It was previously known as BambuStudio-SoftFever<br> Bambu Studio is forked from <a href="https://github.com/prusa3d/PrusaSlicer">PrusaSlicer</a> by Prusa Research, which is from <a href="https://github.com/Slic3r/Slic3r">Slic3r</a> by Alessandro Ranellucci and the RepRap community. Orca Slicer incorporates a lot of features from SuperSlicer by @supermerill Orca Slicer's logo is designed by community member Justin Levine(@freejstnalxndr)</p> <h1>How to install</h1> <p><strong>Windows</strong>:</p> <ol> <li>Install and run <ul> <li><em>If you have troubles to run the build, you might need to install following runtimes:</em> <ul> <li><a href="https://github.com/SoftFever/BambuStudio-SoftFever/releases/download/v1.0.10-sf2/MicrosoftEdgeWebView2RuntimeInstallerX64.exe">MicrosoftEdgeWebView2RuntimeInstallerX64</a></li> <li><a href="https://github.com/SoftFever/BambuStudio-SoftFever/releases/download/v1.0.10-sf2/vcredist2019_x64.exe">vcredist2019_x64</a></li> </ul> </li> </ul> </li> </ol> <p><strong>Mac</strong>:</p> <ol> <li> <p>Download the DMG for your computer: <code>arm64</code> version for Apple Silicon and <code>x86_64</code> for Intel CPU.</p> </li> <li> <p>Drag OrcaSlicer.app to Application folder.</p> </li> <li> <p><em>If you want to run a build from a PR, you also need following instructions bellow</em></p> <details quarantine> - Option 1 (You only need to do this once. After that the app can be oppened normally.): - Step 1: Hold _cmd_ and right click the app, from the context menu choose **Open**. - Step 2: A warning window will pop up, click _Open_ <ul> <li>Option 2:<br> Execute this command in terminal: <code>xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app</code> <pre><code class="language-console"> softfever@mac:~$ xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app </code></pre> </li> <li>Option 3: <ul> <li>Step 1: open the app, a warning window will pop up<br> <img src="https://raw.githubusercontent.com/SoftFever/OrcaSlicer/main/SoftFever_doc/mac_cant_open.png" alt="image"></li> <li>Step 2: in <code>System Settings</code> -&gt; <code>Privacy &amp; Security</code>, click <code>Open Anyway</code>:<br> <img src="https://raw.githubusercontent.com/SoftFever/OrcaSlicer/main/SoftFever_doc/mac_security_setting.png" alt="image"></li> </ul> </li> </ul> </details> </li> </ol> <p><strong>Linux(Ubuntu)</strong>:</p> <ol> <li>If you run into trouble to execute it, try this command in terminal:<br> <code>chmod +x /path_to_appimage/OrcaSlicer_ubu64.AppImage</code></li> </ol> <h1>How to compile</h1> <ul> <li> <p>Windows 64-bit</p> <ul> <li>Tools needed: Visual Studio 2019, Cmake, git, Strawberry Perl.</li> <li>Run <code>build_release.bat</code> in <code>x64 Native Tools Command Prompt for VS 2019</code></li> </ul> </li> <li> <p>Mac 64-bit</p> <ul> <li>Tools needed: Xcode, Cmake, git, gettext</li> <li>run <code>build_release_macos.sh</code></li> </ul> </li> <li> <p>Ubuntu</p> <ul> <li>run 'sudo ./BuildLinux.sh -u'</li> <li>run './BuildLinux.sh -dsir'</li> </ul> </li> </ul> <h1>Note:</h1> <p>If you're running Klipper, it's recommended to add the following configuration to your <code>printer.cfg</code> file.</p> <pre><code># Enable object exclusion [exclude_object] # Enable arcs support [gcode_arcs] resolution: 0.1 </code></pre> <h1>Supports</h1> <p><strong>Orca Slicer</strong> is an open-source project, and I'm deeply grateful to all my sponsors and backers.<br> Their generous support enables me to purchase filaments and other essential 3D printing materials for the project.<br> Thank you! :)</p> <h3>Sponsors:</h3> <a href="https://peopoly.net/"> <img src="SoftFever_doc\sponsor_logos\peopoly-standard-logo.png" alt="Peopoly" width="64" height=""> </a> <h3>Backers:</h3> <p><em>todo: extract ko-fi backers list</em></p> <p>Support me<br> <a href="https://ko-fi.com/G2G5IP3CP"><img src="https://ko-fi.com/img/githubbutton_sm.svg?sanitize=true" alt="ko-fi"></a></p> <h1>License</h1> <p>Orca Slicer is licensed under the GNU Affero General Public License, version 3. Orca Slicer is based on Bambu Studio by BambuLab.</p> <p>Bambu Studio is licensed under the GNU Affero General Public License, version 3. Bambu Studio is based on PrusaSlicer by PrusaResearch.</p> <p>PrusaSlicer is licensed under the GNU Affero General Public License, version 3. PrusaSlicer is owned by Prusa Research. PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci.</p> <p>Slic3r is licensed under the GNU Affero General Public License, version 3. Slic3r was created by Alessandro Ranellucci with the help of many other contributors.</p> <p>The GNU Affero General Public License, version 3 ensures that if you use any part of this software in any way (even behind a web server), your software must be released under the same license.</p> <p>Orca Slicer includes a pressure advance calibration pattern test adapted from Andrew Ellis' generator, which is licensed under GNU General Public License, version 3. Ellis' generator is itself adapted from a generator developed by Sineos for Marlin, which is licensed under GNU General Public License, version 3.</p> <p>The bambu networking plugin is based on non-free libraries from Bambulab. It is optional to the Orca Slicer and provides extended functionalities for Bambulab printer users.</p> + + \ No newline at end of file diff --git a/c-objdump/daily/index.xml b/c-objdump/daily/index.xml index e9f88f0feff..039a7cd9266 100644 --- a/c-objdump/daily/index.xml +++ b/c-objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub C-ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:59Z + 2023-09-24T01:27:38Z Daily Trending of C-ObjDump in GitHub \ No newline at end of file diff --git a/c-objdump/weekly/index.xml b/c-objdump/weekly/index.xml new file mode 100644 index 00000000000..0e260882c86 --- /dev/null +++ b/c-objdump/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub C-ObjDump Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:13Z + Weekly Trending of C-ObjDump in GitHub + + \ No newline at end of file diff --git a/c/daily/index.xml b/c/daily/index.xml index 4bb83249dd0..90d0fd2047b 100644 --- a/c/daily/index.xml +++ b/c/daily/index.xml @@ -1,7 +1,14 @@ GitHub C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:49Z + 2023-09-24T01:27:28Z Daily Trending of C in GitHub + + risinek/esp32-wifi-penetration-tool + 2023-09-24T01:27:28Z + tag:github.com,2023-09-24:/risinek/esp32-wifi-penetration-tool + + <p>Exploring possibilities of ESP32 platform to attack on nearby Wi-Fi networks.</p><hr><h1>ESP32 Wi-Fi Penetration Tool</h1> <p>This project introduces an universal tool for ESP32 platform for implementing various Wi-Fi attacks. It provides some common functionality that is commonly used in Wi-Fi attacks and makes implementing new attacks a bit simpler. It also includes Wi-Fi attacks itself like capturing PMKIDs from handshakes, or handshakes themselves by different methods like starting rogue duplicated AP or sending deauthentication frames directly, etc...</p> <p>Obviously cracking is not part of this project, as ESP32 is not sufficient to crack hashes in effective way. The rest can be done on this small, cheap, low-power SoC.</p> <p align="center"> <img src="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/doc/images/logo.png" alt="Logo"> </p> <h2>Features</h2> <ul> <li><strong>PMKID capture</strong></li> <li><strong>WPA/WPA2 handshake capture</strong> and parsing</li> <li><strong>Deauthentication attacks</strong> using various methods</li> <li><strong>Denial of Service attacks</strong></li> <li>Formatting captured traffic into <strong>PCAP format</strong></li> <li>Parsing captured handshakes into <strong>HCCAPX file</strong> ready to be cracked by Hashcat</li> <li>Passive handshake sniffing</li> <li>Easily extensible framework for new attacks implementations</li> <li>Management AP for easy configuration on the go using smartphone for example</li> <li>And more...</li> </ul> <h3>Demo video</h3> <p><a href="https://www.youtube.com/watch?v=9I3BxRu86GE"><img src="https://img.youtube.com/vi/9I3BxRu86GE/0.jpg" alt="Demonstration Youtube video"></a></p> <h2>Usage</h2> <ol> <li> <p><a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/#Build">Build</a> and <a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/#Flash">flash</a> project onto ESP32 (DevKit or module)</p> </li> <li> <p>Power ESP32</p> </li> <li> <p>Management AP is started automatically after boot</p> </li> <li> <p>Connect to this AP<br> By default: <em>SSID:</em> <code>ManagementAP</code> and <em>password:</em> <code>mgmtadmin</code></p> </li> <li> <p>In browser open <code>192.168.4.1</code> and you should see a web client to configure and control tool like this:</p> <p><img src="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/doc/images/ui-config.png" alt="Web client UI"></p> </li> </ol> <h2>Build</h2> <p>This project is currently developed using ESP-IDF 4.1 (commit <code>5ef1b390026270503634ac3ec9f1ec2e364e23b2</code>). It may be broken on newer version.</p> <p>Project can be built in the usual ESP-IDF way:</p> <pre><code class="language-shell">idf.py build </code></pre> <p>Legacy method using <code>make</code> is not supported by this project.</p> <h2>Flash</h2> <p>If you have setup ESP-IDF, the easiest way is to use <code>idf.py flash</code>.</p> <p>In case you don't want to setup whole ESP-IDF, you can use pre-build binaries included in <a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/build/"><code>build/</code></a> and flash them using <a href="https://github.com/espressif/esptool"><code>esptool.py</code></a> (requires Python).</p> <p>Example command (follow instructions in <a href="https://github.com/espressif/esptool">esptool repo</a>):</p> <pre><code>esptool.py -p /dev/ttyS5 -b 115200 --after hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size detect 0x8000 build/partition_table/partition-table.bin 0x1000 build/bootloader/bootloader.bin 0x10000 build/esp32-wifi-penetration-tool.bin </code></pre> <p>On Windows you can use official <a href="https://www.espressif.com/en/support/download/other-tools">Flash Download Tool</a>.</p> <h2>Documentation</h2> <h3>Wi-Fi attacks</h3> <p>Attacks implementations in this project are described in <a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/main/">main component README</a>. Theory behind these attacks is located in <a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/doc/ATTACKS_THEORY.md">doc/ATTACKS_THEORY.md</a></p> <h3>API reference</h3> <p>This project uses Doxygen notation for documenting components API and implementation. Doxyfile is included so if you want to generate API reference, just run <code>doxygen</code> from root directory. It will generate HTML API reference into <code>doc/api/html</code>.</p> <h3>Components</h3> <p>This project consists of multiple components, that can be reused in other projects. Each component has it's own README with detailed description. Here comes brief description of components:</p> <ul> <li><a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/main"><strong>Main</strong></a> component is entry point for this project. All neccessary initialisation steps are done here. Management AP is started and the control is handed to webserver.</li> <li><a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/components/wifi_controller"><strong>Wifi Controller</strong></a> component wraps all Wi-Fi related operations. It's used to start AP, connect as STA, scan nearby APs etc.</li> <li><a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/components/webserver"><strong>Webserver</strong></a> component provides web UI to configure attacks. It expects that AP is started and no additional security features like SSL encryption are enabled.</li> <li><a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/components/wsl_bypasser"><strong>Wi-Fi Stack Libraries Bypasser</strong></a> component bypasses Wi-Fi Stack Libraries restriction to send some types of arbitrary 802.11 frames.</li> <li><a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/components/frame_analyzer"><strong>Frame Analyzer</strong></a> component processes captured frames and provides parsing functionality to other components.</li> <li><a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/components/pcap_serializer"><strong>PCAP Serializer</strong></a> component serializes captured frames into PCAP binary format and provides it to other components (mostly for webserver/UI)</li> <li><a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/components/hccapx_serializer"><strong>HCCAPX Serializer</strong></a> component serializes captured frames into HCCAPX binary format and provides it to other components (mostly for webserver/UI)</li> </ul> <h3>Further reading</h3> <ul> <li><a href="https://excel.fit.vutbr.cz/submissions/2021/048/48.pdf">Academic paper about this project (PDF)</a></li> </ul> <h2>Hardware</h2> <p>This project was mostly build and tested on <strong>ESP32-DEVKITC-32E</strong> but there should not be any differences for any <strong>ESP32-WROOM-32</strong> modules.</p> <p align="center"> <img src="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/doc/images/soucastky_8b.png" alt="Hw components" width="400"> </p> <p>On the following pictures you can see a battery (Li-Pol accumulator) powered ESP32 DevKitC using following hardware:</p> <ul> <li><strong>ESP32-DEVKITC-32E</strong> (cost 213 CZK/8.2 EUR/9.6 USD)</li> <li>220mAh Li-Pol 3.7V accumulator (weights ±5g, cost 77 CZK/3 EUR/3.5 USD)</li> <li>MCP1702-3302ET step-down 3.3V voltage regulator (cost 11 CZK/0.42 EUR/0.50 USD)</li> <li>Czech 5-koruna coin for scale (weights 4.8g, diameter 23 mm, cost 0.19 EUR/0.23 USD)</li> </ul> <p align="center"> <img src="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/doc/images/mini.jpg" alt="Hw components" width="300"> <img src="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/doc/images/mini2.jpg" alt="Hw components" width="300"> </p> <p>Altogether (without coin) this setup weights around 17g. This can be further downsized by using smaller Li-Pol accumulator and using ESP32-WROOM-32 modul directly instead of whole dev board.</p> <p>This setup cost me around 300 CZK (± 11.50 EUR/13.50 USD). Using the modul directly that costs around 80 CZK (± 3 EUR/3.5 USD) we can get to price of 160 CZK (± 6.5 EUR/7.5 USD) which makes this tool really cheap and available to almost everybody.</p> <h3>Power consumption</h3> <p>Based on experimental measurements, ESP32 consumes around 100mA during attack executions.</p> <h2>Similar projects</h2> <ul> <li><a href="https://github.com/GANESH-ICMC/esp32-deauther">GANESH-ICMC/esp32-deauther</a></li> <li><a href="https://github.com/SpacehuhnTech/esp8266_deauther">SpacehuhnTech/esp8266_deauther</a></li> <li><a href="https://github.com/justcallmekoko/ESP32Marauder">justcallmekoko/ESP32Marauder</a></li> <li><a href="https://www.tindie.com/products/klhnikov/esp32-network-toolbox/">EParisot/esp32-network-toolbox</a></li> <li><a href="https://github.com/Jeija/esp32free80211">Jeija/esp32free80211</a></li> </ul> <h2>Contributing</h2> <p>Feel free to contribute. Don't hestitate to refactor current code base. Please stick to Doxygen notation when commenting new functions and files. This project is mainly build for educational and demonstration purposes, so verbose documentation is welcome.</p> <h2>Disclaimer</h2> <p>This project demonstrates vulnerabilities of Wi-Fi networks and its underlaying 802.11 standard and how ESP32 platform can be utilised to attack on those vulnerable spots. Use responsibly against networks you have permission to attack on.</p> <h2>License</h2> <p>Even though this project is licensed under MIT license (see <a href="https://raw.githubusercontent.com/risinek/esp32-wifi-penetration-tool/master/LICENSE">LICENSE</a> file for details), don't be shy or greedy and share your work.</p> + \ No newline at end of file diff --git a/c/weekly/index.xml b/c/weekly/index.xml new file mode 100644 index 00000000000..7d20e1bd83c --- /dev/null +++ b/c/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub C Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:46:58Z + Weekly Trending of C in GitHub + + + mit-pdos/xv6-riscv + 2023-09-24T01:46:58Z + tag:github.com,2023-09-24:/mit-pdos/xv6-riscv + + <p>Xv6 for RISC-V</p><hr><p>xv6 is a re-implementation of Dennis Ritchie's and Ken Thompson's Unix Version 6 (v6). xv6 loosely follows the structure and style of v6, but is implemented for a modern RISC-V multiprocessor using ANSI C.</p> <p>ACKNOWLEDGMENTS</p> <p>xv6 is inspired by John Lions's Commentary on UNIX 6th Edition (Peer to Peer Communications; ISBN: 1-57398-013-7; 1st edition (June 14, 2000)). See also <a href="https://pdos.csail.mit.edu/6.1810/">https://pdos.csail.mit.edu/6.1810/</a>, which provides pointers to on-line resources for v6.</p> <p>The following people have made contributions: Russ Cox (context switching, locking), Cliff Frey (MP), Xiao Yu (MP), Nickolai Zeldovich, and Austin Clements.</p> <p>We are also grateful for the bug reports and patches contributed by Takahiro Aoyagi, Silas Boyd-Wickizer, Anton Burtsev, carlclone, Ian Chen, Dan Cross, Cody Cutler, Mike CAT, Tej Chajed, Asami Doi, eyalz800, Nelson Elhage, Saar Ettinger, Alice Ferrazzi, Nathaniel Filardo, flespark, Peter Froehlich, Yakir Goaron, Shivam Handa, Matt Harvey, Bryan Henry, jaichenhengjie, Jim Huang, Matúš Jókay, John Jolly, Alexander Kapshuk, Anders Kaseorg, kehao95, Wolfgang Keller, Jungwoo Kim, Jonathan Kimmitt, Eddie Kohler, Vadim Kolontsov, Austin Liew, l0stman, Pavan Maddamsetti, Imbar Marinescu, Yandong Mao, Matan Shabtay, Hitoshi Mitake, Carmi Merimovich, Mark Morrissey, mtasm, Joel Nider, Hayato Ohhashi, OptimisticSide, Harry Porter, Greg Price, Jude Rich, segfault, Ayan Shafqat, Eldar Sehayek, Yongming Shen, Fumiya Shigemitsu, Cam Tenny, tyfkda, Warren Toomey, Stephen Tu, Rafael Ubal, Amane Uehara, Pablo Ventura, Xi Wang, WaheedHafez, Keiichi Watanabe, Nicolas Wolovick, wxdao, Grant Wu, Jindong Zhang, Icenowy Zheng, ZhUyU1997, and Zou Chang Wei.</p> <p>The code in the files that constitute xv6 is Copyright 2006-2022 Frans Kaashoek, Robert Morris, and Russ Cox.</p> <p>ERROR REPORTS</p> <p>Please send errors and suggestions to Frans Kaashoek and Robert Morris (kaashoek,<a href="mailto:rtm@mit.edu">rtm@mit.edu</a>). The main purpose of xv6 is as a teaching operating system for MIT's 6.1810, so we are more interested in simplifications and clarifications than new features.</p> <p>BUILDING AND RUNNING XV6</p> <p>You will need a RISC-V "newlib" tool chain from <a href="https://github.com/riscv/riscv-gnu-toolchain">https://github.com/riscv/riscv-gnu-toolchain</a>, and qemu compiled for riscv64-softmmu. Once they are installed, and in your shell search path, you can run "make qemu".</p> + + + pgbouncer/pgbouncer + 2023-09-24T01:46:58Z + tag:github.com,2023-09-24:/pgbouncer/pgbouncer + + <p>lightweight connection pooler for PostgreSQL</p><hr><h1>PgBouncer</h1> <p>Lightweight connection pooler for PostgreSQL.</p> <p>Homepage: <a href="https://www.pgbouncer.org/">https://www.pgbouncer.org/</a></p> <p>Sources, bug tracking: <a href="https://github.com/pgbouncer/pgbouncer">https://github.com/pgbouncer/pgbouncer</a></p> <h2>Building</h2> <p>PgBouncer depends on few things to get compiled:</p> <ul> <li><a href="https://www.gnu.org/software/make/">GNU Make</a> 3.81+</li> <li><a href="http://libevent.org/">Libevent</a> 2.0+</li> <li><a href="https://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a></li> <li><a href="https://www.openssl.org/">OpenSSL</a> 1.0.1+ for TLS support</li> <li>(optional) <a href="http://c-ares.haxx.se/">c-ares</a> as alternative to Libevent's evdns</li> <li>(optional) PAM libraries</li> </ul> <p>When dependencies are installed just run:</p> <pre><code>$ ./configure --prefix=/usr/local $ make $ make install </code></pre> <p>If you are building from Git, or are building for Windows, please see separate build instructions below.</p> <h2>DNS lookup support</h2> <p>PgBouncer does host name lookups at connect time instead of just once at configuration load time. This requires an asynchronous DNS implementation. The following table shows supported backends and their probing order:</p> <table> <thead> <tr> <th>backend</th> <th>parallel</th> <th>EDNS0 (1)</th> <th>/etc/hosts</th> <th>SOA lookup (2)</th> <th>note</th> </tr> </thead> <tbody> <tr> <td>c-ares</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>IPv6+CNAME buggy in &lt;=1.10</td> </tr> <tr> <td>evdns, libevent 2.x</td> <td>yes</td> <td>no</td> <td>yes</td> <td>no</td> <td>does not check /etc/hosts updates</td> </tr> <tr> <td>getaddrinfo_a, glibc 2.9+</td> <td>yes</td> <td>yes (3)</td> <td>yes</td> <td>no</td> <td>N/A on non-glibc</td> </tr> <tr> <td>getaddrinfo, libc</td> <td>no</td> <td>yes (3)</td> <td>yes</td> <td>no</td> <td>requires pthreads</td> </tr> </tbody> </table> <ol> <li>EDNS0 is required to have more than 8 addresses behind one host name.</li> <li>SOA lookup is needed to re-check host names on zone serial change.</li> <li>To enable EDNS0, add <code>options edns0</code> to <code>/etc/resolv.conf</code>.</li> </ol> <p>c-ares is the most fully-featured implementation and is recommended for most uses and binary packaging (if a sufficiently new version is available). Libevent's built-in evdns is also suitable for many uses, with the listed restrictions. The other backends are mostly legacy options at this point and don't receive much testing anymore.</p> <p>By default, c-ares is used if it can be found. Its use can be forced with <code>configure --with-cares</code> or disabled with <code>--without-cares</code>. If c-ares is not used (not found or disabled), then Libevent is used. Specify <code>--disable-evdns</code> to disable the use of Libevent's evdns and fall back to a libc-based implementation.</p> <h2>PAM authentication</h2> <p>To enable PAM authentication, <code>./configure</code> has a flag <code>--with-pam</code> (default value is no). When compiled with PAM support, a new global authentication type <code>pam</code> is available to validate users through PAM.</p> <h2>systemd integration</h2> <p>To enable systemd integration, use the <code>configure</code> option <code>--with-systemd</code>. This allows using <code>Type=notify</code> service units as well as socket activation. See <code>etc/pgbouncer.service</code> and <code>etc/pgbouncer.socket</code> for examples.</p> <h2>Building from Git</h2> <p>Building PgBouncer from Git requires that you fetch the libusual submodule and generate the header and configuration files before you can run <code>configure</code>:</p> <pre><code>$ git clone https://github.com/pgbouncer/pgbouncer.git $ cd pgbouncer $ git submodule init $ git submodule update $ ./autogen.sh $ ./configure ... $ make $ make install </code></pre> <p>Additional packages required: autoconf, automake, libtool, pandoc</p> <h2>Testing</h2> <p>See the <a href="https://github.com/pgbouncer/pgbouncer/raw/master/test/README.md"><code>README.md</code> file in the test directory</a> on how to run the tests.</p> <h2>Building on Windows</h2> <p>The only supported build environment on Windows is MinGW. Cygwin and Visual $ANYTHING are not supported.</p> <p>To build on MinGW, do the usual:</p> <pre><code>$ ./configure ... $ make </code></pre> <p>If cross-compiling from Unix:</p> <pre><code>$ ./configure --host=i586-mingw32msvc ... </code></pre> <h2>Running on Windows</h2> <p>Running from the command line goes as usual, except that the <code>-d</code> (daemonize), <code>-R</code> (reboot), and <code>-u</code> (switch user) switches will not work.</p> <p>To run PgBouncer as a Windows service, you need to configure the <code>service_name</code> parameter to set a name for the service. Then:</p> <pre><code>$ pgbouncer -regservice config.ini </code></pre> <p>To uninstall the service:</p> <pre><code>$ pgbouncer -unregservice config.ini </code></pre> <p>To use the Windows event log, set <code>syslog = 1</code> in the configuration file. But before that, you need to register <code>pgbevent.dll</code>:</p> <pre><code>$ regsvr32 pgbevent.dll </code></pre> <p>To unregister it, do:</p> <pre><code>$ regsvr32 /u pgbevent.dll </code></pre> + + + OISF/suricata + 2023-09-24T01:46:58Z + tag:github.com,2023-09-24:/OISF/suricata + + <p>Suricata is a network Intrusion Detection System, Intrusion Prevention System and Network Security Monitoring engine developed by the OISF and the Suricata community.</p><hr><h1>Suricata</h1> <p><a href="https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&amp;can=1&amp;q=proj:suricata"><img src="https://oss-fuzz-build-logs.storage.googleapis.com/badges/suricata.svg?sanitize=true" alt="Fuzzing Status"></a> <a href="https://codecov.io/gh/OISF/suricata"><img src="https://codecov.io/gh/OISF/suricata/branch/master/graph/badge.svg?token=QRyyn2BSo1" alt="codecov"></a></p> <h2>Introduction</h2> <p><a href="https://suricata.io">Suricata</a> is a network IDS, IPS and NSM engine developed by the <a href="https://oisf.net">OISF</a> and the Suricata community.</p> <h2>Installation</h2> <p><a href="https://docs.suricata.io/en/latest/install.html">https://docs.suricata.io/en/latest/install.html</a></p> <h2>User Guide</h2> <p>You can follow the <a href="https://docs.suricata.io/en/latest/">Suricata user guide</a> to get started.</p> <h2>Contributing</h2> <p>We're happily taking patches and other contributions. Please see our <a href="https://docs.suricata.io/en/latest/devguide/codebase/contributing/contribution-process.html">Contribution Process</a> for how to get started.</p> <p>Suricata is a complex piece of software dealing with mostly untrusted input. Mishandling this input will have serious consequences:</p> <ul> <li>in IPS mode a crash may knock a network offline;</li> <li>in passive mode a compromise of the IDS may lead to loss of critical and confidential data;</li> <li>missed detection may lead to undetected compromise of the network.</li> </ul> <p>In other words, we think the stakes are pretty high, especially since in many common cases the IDS/IPS will be directly reachable by an attacker.</p> <p>For this reason, we have developed a QA process that is quite extensive. A consequence is that contributing to Suricata can be a somewhat lengthy process.</p> <p>On a high level, the steps are:</p> <ol> <li> <p>GitHub-CI based checks. This runs automatically when a pull request is made.</p> </li> <li> <p>Review by devs from the team and community</p> </li> <li> <p>QA runs from private QA setups. These are private due to the nature of the test traffic.</p> </li> </ol> <h3>Overview of Suricata's QA steps</h3> <p>OISF team members are able to submit builds to our private QA setup. It will run a series of build tests and a regression suite to confirm no existing features break.</p> <p>The final QA runs takes a few hours minimally, and generally runs overnight. It currently runs:</p> <ul> <li>extensive build tests on different OS', compilers, optimization levels, configure features</li> <li>static code analysis using cppcheck, scan-build</li> <li>runtime code analysis using valgrind, AddressSanitizer, LeakSanitizer</li> <li>regression tests for past bugs</li> <li>output validation of logging</li> <li>unix socket testing</li> <li>pcap based fuzz testing using ASAN and LSAN</li> <li>traffic replay based IDS and IPS tests</li> </ul> <p>Next to these tests, based on the type of code change further tests can be run manually:</p> <ul> <li>traffic replay testing (multi-gigabit)</li> <li>large pcap collection processing (multi-terabytes)</li> <li>fuzz testing (might take multiple days or even weeks)</li> <li>pcap based performance testing</li> <li>live performance testing</li> <li>various other manual tests based on evaluation of the proposed changes</li> </ul> <p>It's important to realize that almost all of the tests above are used as acceptance tests. If something fails, it's up to you to address this in your code.</p> <p>One step of the QA is currently run post-merge. We submit builds to the Coverity Scan program. Due to limitations of this (free) service, we can submit once a day max. Of course it can happen that after the merge the community will find issues. For both cases we request you to help address the issues as they may come up.</p> <h3>FAQ</h3> <p><strong>Q: Will you accept my PR?</strong></p> <p>A: That depends on a number of things, including the code quality. With new features it also depends on whether the team and/or the community think the feature is useful, how much it affects other code and features, the risk of performance regressions, etc.</p> <p><strong>Q: When will my PR be merged?</strong></p> <p>A: It depends, if it's a major feature or considered a high risk change, it will probably go into the next major version.</p> <p><strong>Q: Why was my PR closed?</strong></p> <p>A: As documented in the <a href="https://docs.suricata.io/en/latest/devguide/codebase/contributing/github-pr-workflow.html">Suricata GitHub workflow</a>, we expect a new pull request for every change.</p> <p>Normally, the team (or community) will give feedback on a pull request after which it is expected to be replaced by an improved PR. So look at the comments. If you disagree with the comments we can still discuss them in the closed PR.</p> <p>If the PR was closed without comments it's likely due to QA failure. If the GitHub-CI checks failed, the PR should be fixed right away. No need for a discussion about it, unless you believe the QA failure is incorrect.</p> <p><strong>Q: the compiler/code analyser/tool is wrong, what now?</strong></p> <p>A: To assist in the automation of the QA, we're not accepting warnings or errors to stay. In some cases this could mean that we add a suppression if the tool supports that (e.g. valgrind, DrMemory). Some warnings can be disabled. In some exceptional cases the only 'solution' is to refactor the code to work around a static code checker limitation false positive. While frustrating, we prefer this over leaving warnings in the output. Warnings tend to get ignored and then increase risk of hiding other warnings.</p> <p><strong>Q: I think your QA test is wrong</strong></p> <p>A: If you really think it is, we can discuss how to improve it. But don't come to this conclusion too quickly, more often it's the code that turns out to be wrong.</p> <p><strong>Q: do you require signing of a contributor license agreement?</strong></p> <p>A: Yes, we do this to keep the ownership of Suricata in one hand: the Open Information Security Foundation. See <a href="http://suricata.io/about/open-source/">http://suricata.io/about/open-source/</a> and <a href="http://suricata.io/about/contribution-agreement/">http://suricata.io/about/contribution-agreement/</a></p> + + \ No newline at end of file diff --git a/c2hs-haskell/daily/index.xml b/c2hs-haskell/daily/index.xml index 83e407c9057..8ae638e2206 100644 --- a/c2hs-haskell/daily/index.xml +++ b/c2hs-haskell/daily/index.xml @@ -1,7 +1,7 @@ GitHub C2hs Haskell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:58Z + 2023-09-24T01:27:37Z Daily Trending of C2hs Haskell in GitHub \ No newline at end of file diff --git a/c2hs-haskell/weekly/index.xml b/c2hs-haskell/weekly/index.xml new file mode 100644 index 00000000000..9202df83d72 --- /dev/null +++ b/c2hs-haskell/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub C2hs Haskell Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:14Z + Weekly Trending of C2hs Haskell in GitHub + + \ No newline at end of file diff --git a/cabal-config/daily/index.xml b/cabal-config/daily/index.xml index ce59276346e..76c1188bdeb 100644 --- a/cabal-config/daily/index.xml +++ b/cabal-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cabal Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:23:58Z + 2023-09-24T01:27:39Z Daily Trending of Cabal Config in GitHub \ No newline at end of file diff --git a/cabal-config/weekly/index.xml b/cabal-config/weekly/index.xml new file mode 100644 index 00000000000..b55f4224e3b --- /dev/null +++ b/cabal-config/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Cabal Config Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:15Z + Weekly Trending of Cabal Config in GitHub + + \ No newline at end of file diff --git a/cadence/daily/index.xml b/cadence/daily/index.xml index da2837eadba..35fd31395d9 100644 --- a/cadence/daily/index.xml +++ b/cadence/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cadence Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:14Z + 2023-09-24T01:27:52Z Daily Trending of Cadence in GitHub \ No newline at end of file diff --git a/cadence/weekly/index.xml b/cadence/weekly/index.xml new file mode 100644 index 00000000000..60554c9fd02 --- /dev/null +++ b/cadence/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Cadence Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:28Z + Weekly Trending of Cadence in GitHub + + \ No newline at end of file diff --git a/cairo/daily/index.xml b/cairo/daily/index.xml index 06ff998234b..85a75ce0805 100644 --- a/cairo/daily/index.xml +++ b/cairo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cairo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:15Z + 2023-09-24T01:27:53Z Daily Trending of Cairo in GitHub \ No newline at end of file diff --git a/cairo/weekly/index.xml b/cairo/weekly/index.xml new file mode 100644 index 00000000000..4417b9b6a90 --- /dev/null +++ b/cairo/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Cairo Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:27Z + Weekly Trending of Cairo in GitHub + + + keep-starknet-strange/satoru + 2023-09-24T01:47:27Z + tag:github.com,2023-09-24:/keep-starknet-strange/satoru + + <p>Synthetics platform for Starknet, inspired by GMX v2 design.</p><hr> + + \ No newline at end of file diff --git a/cap'n-proto/daily/index.xml b/cap'n-proto/daily/index.xml index 23e29d26a7a..bf828189678 100644 --- a/cap'n-proto/daily/index.xml +++ b/cap'n-proto/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cap'n Proto Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:18Z + 2023-09-24T01:27:54Z Daily Trending of Cap'n Proto in GitHub \ No newline at end of file diff --git a/cap'n-proto/weekly/index.xml b/cap'n-proto/weekly/index.xml new file mode 100644 index 00000000000..7a54c5432bb --- /dev/null +++ b/cap'n-proto/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Cap'n Proto Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:30Z + Weekly Trending of Cap'n Proto in GitHub + + \ No newline at end of file diff --git a/cartocss/daily/index.xml b/cartocss/daily/index.xml index 07520a2e38a..f414dd47c34 100644 --- a/cartocss/daily/index.xml +++ b/cartocss/daily/index.xml @@ -1,7 +1,7 @@ GitHub CartoCSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:17Z + 2023-09-24T01:27:57Z Daily Trending of CartoCSS in GitHub \ No newline at end of file diff --git a/cartocss/weekly/index.xml b/cartocss/weekly/index.xml new file mode 100644 index 00000000000..eb82865224d --- /dev/null +++ b/cartocss/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CartoCSS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:32Z + Weekly Trending of CartoCSS in GitHub + + \ No newline at end of file diff --git a/ceylon/daily/index.xml b/ceylon/daily/index.xml index dfa6ec1c943..dab871ece3a 100644 --- a/ceylon/daily/index.xml +++ b/ceylon/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ceylon Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:16Z + 2023-09-24T01:27:55Z Daily Trending of Ceylon in GitHub \ No newline at end of file diff --git a/ceylon/weekly/index.xml b/ceylon/weekly/index.xml new file mode 100644 index 00000000000..add18c55b1a --- /dev/null +++ b/ceylon/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ceylon Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:29Z + Weekly Trending of Ceylon in GitHub + + \ No newline at end of file diff --git a/chapel/daily/index.xml b/chapel/daily/index.xml index 257c1f38b7e..5ff802674f9 100644 --- a/chapel/daily/index.xml +++ b/chapel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Chapel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:17Z + 2023-09-24T01:27:56Z Daily Trending of Chapel in GitHub \ No newline at end of file diff --git a/chapel/weekly/index.xml b/chapel/weekly/index.xml new file mode 100644 index 00000000000..80605a874a9 --- /dev/null +++ b/chapel/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Chapel Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:31Z + Weekly Trending of Chapel in GitHub + + \ No newline at end of file diff --git a/charity/daily/index.xml b/charity/daily/index.xml index 13fde34e892..a2d3c185f42 100644 --- a/charity/daily/index.xml +++ b/charity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Charity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:23Z + 2023-09-24T01:28:00Z Daily Trending of Charity in GitHub \ No newline at end of file diff --git a/charity/weekly/index.xml b/charity/weekly/index.xml new file mode 100644 index 00000000000..c29bbd3039d --- /dev/null +++ b/charity/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Charity Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:36Z + Weekly Trending of Charity in GitHub + + \ No newline at end of file diff --git a/chuck/daily/index.xml b/chuck/daily/index.xml index 52f93538088..510e2ce196f 100644 --- a/chuck/daily/index.xml +++ b/chuck/daily/index.xml @@ -1,7 +1,7 @@ GitHub ChucK Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:19Z + 2023-09-24T01:27:59Z Daily Trending of ChucK in GitHub \ No newline at end of file diff --git a/chuck/weekly/index.xml b/chuck/weekly/index.xml new file mode 100644 index 00000000000..da261a6f9db --- /dev/null +++ b/chuck/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ChucK Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:33Z + Weekly Trending of ChucK in GitHub + + \ No newline at end of file diff --git a/cil/daily/index.xml b/cil/daily/index.xml index c616cfbf524..58fd2950843 100644 --- a/cil/daily/index.xml +++ b/cil/daily/index.xml @@ -1,7 +1,7 @@ GitHub CIL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:20Z + 2023-09-24T01:27:58Z Daily Trending of CIL in GitHub \ No newline at end of file diff --git a/cil/weekly/index.xml b/cil/weekly/index.xml new file mode 100644 index 00000000000..1eabd5cb13e --- /dev/null +++ b/cil/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CIL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:35Z + Weekly Trending of CIL in GitHub + + \ No newline at end of file diff --git a/cirru/daily/index.xml b/cirru/daily/index.xml index cae71b4e263..feb93b17022 100644 --- a/cirru/daily/index.xml +++ b/cirru/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cirru Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:25Z + 2023-09-24T01:28:04Z Daily Trending of Cirru in GitHub \ No newline at end of file diff --git a/cirru/weekly/index.xml b/cirru/weekly/index.xml new file mode 100644 index 00000000000..b62b78c0710 --- /dev/null +++ b/cirru/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Cirru Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:39Z + Weekly Trending of Cirru in GitHub + + \ No newline at end of file diff --git a/clarion/daily/index.xml b/clarion/daily/index.xml index 224736f3abe..51d35714c69 100644 --- a/clarion/daily/index.xml +++ b/clarion/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clarion Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:24Z + 2023-09-24T01:28:03Z Daily Trending of Clarion in GitHub \ No newline at end of file diff --git a/clarion/weekly/index.xml b/clarion/weekly/index.xml new file mode 100644 index 00000000000..d472963f73c --- /dev/null +++ b/clarion/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Clarion Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:37Z + Weekly Trending of Clarion in GitHub + + \ No newline at end of file diff --git a/clarity/daily/index.xml b/clarity/daily/index.xml index 3790d557550..75c65060710 100644 --- a/clarity/daily/index.xml +++ b/clarity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clarity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:26Z + 2023-09-24T01:28:01Z Daily Trending of Clarity in GitHub \ No newline at end of file diff --git a/clarity/weekly/index.xml b/clarity/weekly/index.xml new file mode 100644 index 00000000000..5bd6b762acd --- /dev/null +++ b/clarity/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Clarity Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:38Z + Weekly Trending of Clarity in GitHub + + \ No newline at end of file diff --git a/classic-asp/daily/index.xml b/classic-asp/daily/index.xml index 4b31a1ca1df..4e405afc050 100644 --- a/classic-asp/daily/index.xml +++ b/classic-asp/daily/index.xml @@ -1,7 +1,7 @@ GitHub Classic ASP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:29Z + 2023-09-24T01:28:06Z Daily Trending of Classic ASP in GitHub \ No newline at end of file diff --git a/classic-asp/weekly/index.xml b/classic-asp/weekly/index.xml new file mode 100644 index 00000000000..b53c71ab9d5 --- /dev/null +++ b/classic-asp/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Classic ASP Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:43Z + Weekly Trending of Classic ASP in GitHub + + + adahera222/GameDesignProjects + 2023-09-24T01:47:43Z + tag:github.com,2023-09-24:/adahera222/GameDesignProjects + + <p>Games made with Unity3D</p><hr> + + \ No newline at end of file diff --git a/clean/daily/index.xml b/clean/daily/index.xml index 2fb0c4cf589..6da81af1756 100644 --- a/clean/daily/index.xml +++ b/clean/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clean Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:29Z + 2023-09-24T01:28:07Z Daily Trending of Clean in GitHub \ No newline at end of file diff --git a/clean/weekly/index.xml b/clean/weekly/index.xml new file mode 100644 index 00000000000..f44ce4cf8ec --- /dev/null +++ b/clean/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Clean Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:42Z + Weekly Trending of Clean in GitHub + + \ No newline at end of file diff --git a/click/daily/index.xml b/click/daily/index.xml index 5839653b920..1f8348e1488 100644 --- a/click/daily/index.xml +++ b/click/daily/index.xml @@ -1,7 +1,7 @@ GitHub Click Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:28Z + 2023-09-24T01:28:07Z Daily Trending of Click in GitHub \ No newline at end of file diff --git a/click/weekly/index.xml b/click/weekly/index.xml new file mode 100644 index 00000000000..1fc33df99b1 --- /dev/null +++ b/click/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Click Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:42Z + Weekly Trending of Click in GitHub + + \ No newline at end of file diff --git a/clips/daily/index.xml b/clips/daily/index.xml index 8121c8a5c66..5b09fb7fb49 100644 --- a/clips/daily/index.xml +++ b/clips/daily/index.xml @@ -1,7 +1,7 @@ GitHub CLIPS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:30Z + 2023-09-24T01:28:05Z Daily Trending of CLIPS in GitHub \ No newline at end of file diff --git a/clips/weekly/index.xml b/clips/weekly/index.xml new file mode 100644 index 00000000000..8015e7e1781 --- /dev/null +++ b/clips/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CLIPS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:41Z + Weekly Trending of CLIPS in GitHub + + \ No newline at end of file diff --git a/clojure/daily/index.xml b/clojure/daily/index.xml index 38563776ce5..c5d06678950 100644 --- a/clojure/daily/index.xml +++ b/clojure/daily/index.xml @@ -1,7 +1,14 @@ GitHub Clojure Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:35Z + 2023-09-24T01:28:12Z Daily Trending of Clojure in GitHub + + metosin/arcone + 2023-09-24T01:28:12Z + tag:github.com,2023-09-24:/metosin/arcone + + <p>Archetype ONE</p><hr> + \ No newline at end of file diff --git a/clojure/weekly/index.xml b/clojure/weekly/index.xml new file mode 100644 index 00000000000..f09a723cf87 --- /dev/null +++ b/clojure/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Clojure Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:48Z + Weekly Trending of Clojure in GitHub + + + nubank/nodely + 2023-09-24T01:47:48Z + tag:github.com,2023-09-24:/nubank/nodely + + <p></p><hr> + + \ No newline at end of file diff --git a/closure-templates/daily/index.xml b/closure-templates/daily/index.xml index 830613e00ed..25aeae8e73a 100644 --- a/closure-templates/daily/index.xml +++ b/closure-templates/daily/index.xml @@ -1,7 +1,7 @@ GitHub Closure Templates Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:31Z + 2023-09-24T01:28:09Z Daily Trending of Closure Templates in GitHub \ No newline at end of file diff --git a/closure-templates/weekly/index.xml b/closure-templates/weekly/index.xml new file mode 100644 index 00000000000..bcc6bca9727 --- /dev/null +++ b/closure-templates/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Closure Templates Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:45Z + Weekly Trending of Closure Templates in GitHub + + \ No newline at end of file diff --git a/cloud-firestore-security-rules/daily/index.xml b/cloud-firestore-security-rules/daily/index.xml index 91eef75fe0d..2016c37f619 100644 --- a/cloud-firestore-security-rules/daily/index.xml +++ b/cloud-firestore-security-rules/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cloud Firestore Security Rules Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:32Z + 2023-09-24T01:28:09Z Daily Trending of Cloud Firestore Security Rules in GitHub \ No newline at end of file diff --git a/cloud-firestore-security-rules/weekly/index.xml b/cloud-firestore-security-rules/weekly/index.xml new file mode 100644 index 00000000000..e6828a4682e --- /dev/null +++ b/cloud-firestore-security-rules/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Cloud Firestore Security Rules Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:44Z + Weekly Trending of Cloud Firestore Security Rules in GitHub + + \ No newline at end of file diff --git a/cmake/daily/index.xml b/cmake/daily/index.xml index b2b64bd29d9..f920ebcffbb 100644 --- a/cmake/daily/index.xml +++ b/cmake/daily/index.xml @@ -1,7 +1,7 @@ GitHub CMake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:38Z + 2023-09-24T01:28:15Z Daily Trending of CMake in GitHub \ No newline at end of file diff --git a/cmake/weekly/index.xml b/cmake/weekly/index.xml new file mode 100644 index 00000000000..286787c5550 --- /dev/null +++ b/cmake/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub CMake Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:51Z + Weekly Trending of CMake in GitHub + + + sudara/cmake-includes + 2023-09-24T01:47:51Z + tag:github.com,2023-09-24:/sudara/cmake-includes + + <p>CMake include files used by Pamplejuce, the JUCE CMake template</p><hr> + + + KDE/extra-cmake-modules + 2023-09-24T01:47:51Z + tag:github.com,2023-09-24:/KDE/extra-cmake-modules + + <p>Extra modules and scripts for CMake.</p><hr> + + \ No newline at end of file diff --git a/cobol/daily/index.xml b/cobol/daily/index.xml index 2297cf76880..a0d876d1112 100644 --- a/cobol/daily/index.xml +++ b/cobol/daily/index.xml @@ -1,7 +1,7 @@ GitHub COBOL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:40Z + 2023-09-24T01:28:16Z Daily Trending of COBOL in GitHub \ No newline at end of file diff --git a/cobol/weekly/index.xml b/cobol/weekly/index.xml new file mode 100644 index 00000000000..076a90ca856 --- /dev/null +++ b/cobol/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub COBOL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:52Z + Weekly Trending of COBOL in GitHub + + + IonicaBizau/node-cobol + 2023-09-24T01:47:52Z + tag:github.com,2023-09-24:/IonicaBizau/node-cobol + + <p>📺 COBOL bridge for NodeJS which allows you to run COBOL code from NodeJS.</p><hr> + + \ No newline at end of file diff --git a/codeowners/daily/index.xml b/codeowners/daily/index.xml index 61123b1a154..1bf9240c572 100644 --- a/codeowners/daily/index.xml +++ b/codeowners/daily/index.xml @@ -1,7 +1,7 @@ GitHub CODEOWNERS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:41Z + 2023-09-24T01:28:17Z Daily Trending of CODEOWNERS in GitHub \ No newline at end of file diff --git a/codeowners/weekly/index.xml b/codeowners/weekly/index.xml new file mode 100644 index 00000000000..b688c77a3c4 --- /dev/null +++ b/codeowners/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CODEOWNERS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:53Z + Weekly Trending of CODEOWNERS in GitHub + + \ No newline at end of file diff --git a/codeql/daily/index.xml b/codeql/daily/index.xml index 903e144d3b7..0e9d81059c9 100644 --- a/codeql/daily/index.xml +++ b/codeql/daily/index.xml @@ -1,7 +1,7 @@ GitHub CodeQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:39Z + 2023-09-24T01:28:18Z Daily Trending of CodeQL in GitHub \ No newline at end of file diff --git a/codeql/weekly/index.xml b/codeql/weekly/index.xml new file mode 100644 index 00000000000..74435e8d0af --- /dev/null +++ b/codeql/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CodeQL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:54Z + Weekly Trending of CodeQL in GitHub + + \ No newline at end of file diff --git a/coffeescript/daily/index.xml b/coffeescript/daily/index.xml index 7d30dbe31a2..de7d7ee2b86 100644 --- a/coffeescript/daily/index.xml +++ b/coffeescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub CoffeeScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:43Z + 2023-09-24T01:28:20Z Daily Trending of CoffeeScript in GitHub \ No newline at end of file diff --git a/coffeescript/weekly/index.xml b/coffeescript/weekly/index.xml new file mode 100644 index 00000000000..aca76e5bd3d --- /dev/null +++ b/coffeescript/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub CoffeeScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:57Z + Weekly Trending of CoffeeScript in GitHub + + + karma-runner/karma-ng-html2js-preprocessor + 2023-09-24T01:47:57Z + tag:github.com,2023-09-24:/karma-runner/karma-ng-html2js-preprocessor + + <p>A Karma plugin. Compile AngularJS 1.x and 2.x templates to JavaScript on the fly.</p><hr> + + + FurqanSoftware/node-whois + 2023-09-24T01:47:57Z + tag:github.com,2023-09-24:/FurqanSoftware/node-whois + + <p>A simple WHOIS client for NodeJS</p><hr> + + + piotrm/planer-wydatkow + 2023-09-24T01:47:57Z + tag:github.com,2023-09-24:/piotrm/planer-wydatkow + + <p></p><hr> + + \ No newline at end of file diff --git a/coldfusion-cfc/daily/index.xml b/coldfusion-cfc/daily/index.xml index a7bb84dca5b..4f9acd56aa2 100644 --- a/coldfusion-cfc/daily/index.xml +++ b/coldfusion-cfc/daily/index.xml @@ -1,7 +1,7 @@ GitHub ColdFusion CFC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:44Z + 2023-09-24T01:28:23Z Daily Trending of ColdFusion CFC in GitHub \ No newline at end of file diff --git a/coldfusion-cfc/weekly/index.xml b/coldfusion-cfc/weekly/index.xml new file mode 100644 index 00000000000..e560139fc9a --- /dev/null +++ b/coldfusion-cfc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ColdFusion CFC Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:59Z + Weekly Trending of ColdFusion CFC in GitHub + + \ No newline at end of file diff --git a/coldfusion/daily/index.xml b/coldfusion/daily/index.xml index d2001abb3f2..264db63cc27 100644 --- a/coldfusion/daily/index.xml +++ b/coldfusion/daily/index.xml @@ -1,7 +1,7 @@ GitHub ColdFusion Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:46Z + 2023-09-24T01:28:21Z Daily Trending of ColdFusion in GitHub \ No newline at end of file diff --git a/coldfusion/weekly/index.xml b/coldfusion/weekly/index.xml new file mode 100644 index 00000000000..f98407241bc --- /dev/null +++ b/coldfusion/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ColdFusion Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:00Z + Weekly Trending of ColdFusion in GitHub + + \ No newline at end of file diff --git a/collada/daily/index.xml b/collada/daily/index.xml index 99992d1af4d..ffbdf7b24ad 100644 --- a/collada/daily/index.xml +++ b/collada/daily/index.xml @@ -1,7 +1,7 @@ GitHub COLLADA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:47Z + 2023-09-24T01:28:22Z Daily Trending of COLLADA in GitHub \ No newline at end of file diff --git a/collada/weekly/index.xml b/collada/weekly/index.xml new file mode 100644 index 00000000000..94d741ca74e --- /dev/null +++ b/collada/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub COLLADA Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:47:58Z + Weekly Trending of COLLADA in GitHub + + \ No newline at end of file diff --git a/common-lisp/daily/index.xml b/common-lisp/daily/index.xml index d1c6bcca670..3d395dd3116 100644 --- a/common-lisp/daily/index.xml +++ b/common-lisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub Common Lisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:47Z + 2023-09-24T01:28:23Z Daily Trending of Common Lisp in GitHub \ No newline at end of file diff --git a/common-lisp/weekly/index.xml b/common-lisp/weekly/index.xml new file mode 100644 index 00000000000..26d400a3652 --- /dev/null +++ b/common-lisp/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Common Lisp Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:01Z + Weekly Trending of Common Lisp in GitHub + + \ No newline at end of file diff --git a/common-workflow-language/daily/index.xml b/common-workflow-language/daily/index.xml index f806d21174c..98bbb2111db 100644 --- a/common-workflow-language/daily/index.xml +++ b/common-workflow-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Common Workflow Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:49Z + 2023-09-24T01:28:27Z Daily Trending of Common Workflow Language in GitHub \ No newline at end of file diff --git a/common-workflow-language/weekly/index.xml b/common-workflow-language/weekly/index.xml new file mode 100644 index 00000000000..8edcd1e869c --- /dev/null +++ b/common-workflow-language/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Common Workflow Language Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:05Z + Weekly Trending of Common Workflow Language in GitHub + + \ No newline at end of file diff --git a/component-pascal/daily/index.xml b/component-pascal/daily/index.xml index e6bada83500..15e7f8dea07 100644 --- a/component-pascal/daily/index.xml +++ b/component-pascal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Component Pascal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:51Z + 2023-09-24T01:28:25Z Daily Trending of Component Pascal in GitHub \ No newline at end of file diff --git a/component-pascal/weekly/index.xml b/component-pascal/weekly/index.xml new file mode 100644 index 00000000000..fd29f231ef7 --- /dev/null +++ b/component-pascal/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Component Pascal Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:04Z + Weekly Trending of Component Pascal in GitHub + + \ No newline at end of file diff --git a/conll-u/daily/index.xml b/conll-u/daily/index.xml index f0da43c6511..a86cfaa151e 100644 --- a/conll-u/daily/index.xml +++ b/conll-u/daily/index.xml @@ -1,7 +1,7 @@ GitHub CoNLL-U Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:49Z + 2023-09-24T01:28:26Z Daily Trending of CoNLL-U in GitHub \ No newline at end of file diff --git a/conll-u/weekly/index.xml b/conll-u/weekly/index.xml new file mode 100644 index 00000000000..fa9e0994c43 --- /dev/null +++ b/conll-u/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CoNLL-U Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:04Z + Weekly Trending of CoNLL-U in GitHub + + \ No newline at end of file diff --git a/cool/daily/index.xml b/cool/daily/index.xml index b4929dfec2d..7b3c1ae288d 100644 --- a/cool/daily/index.xml +++ b/cool/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cool Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:50Z + 2023-09-24T01:28:27Z Daily Trending of Cool in GitHub \ No newline at end of file diff --git a/cool/weekly/index.xml b/cool/weekly/index.xml new file mode 100644 index 00000000000..e5cea121f7b --- /dev/null +++ b/cool/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Cool Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:03Z + Weekly Trending of Cool in GitHub + + \ No newline at end of file diff --git a/coq/daily/index.xml b/coq/daily/index.xml index d603a56a0c1..1ec7f954983 100644 --- a/coq/daily/index.xml +++ b/coq/daily/index.xml @@ -1,7 +1,7 @@ GitHub Coq Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:53Z + 2023-09-24T01:28:31Z Daily Trending of Coq in GitHub \ No newline at end of file diff --git a/coq/weekly/index.xml b/coq/weekly/index.xml new file mode 100644 index 00000000000..f99be6a121a --- /dev/null +++ b/coq/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Coq Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:08Z + Weekly Trending of Coq in GitHub + + \ No newline at end of file diff --git a/cpp-objdump/daily/index.xml b/cpp-objdump/daily/index.xml index 29045d82c1a..8af43eb8578 100644 --- a/cpp-objdump/daily/index.xml +++ b/cpp-objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cpp-ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:52Z + 2023-09-24T01:28:29Z Daily Trending of Cpp-ObjDump in GitHub \ No newline at end of file diff --git a/cpp-objdump/weekly/index.xml b/cpp-objdump/weekly/index.xml new file mode 100644 index 00000000000..9c3c3ee3b5c --- /dev/null +++ b/cpp-objdump/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Cpp-ObjDump Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:07Z + Weekly Trending of Cpp-ObjDump in GitHub + + \ No newline at end of file diff --git a/creole/daily/index.xml b/creole/daily/index.xml index f5b7008bb68..b7470315eb9 100644 --- a/creole/daily/index.xml +++ b/creole/daily/index.xml @@ -1,7 +1,7 @@ GitHub Creole Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:55Z + 2023-09-24T01:28:30Z Daily Trending of Creole in GitHub \ No newline at end of file diff --git a/creole/weekly/index.xml b/creole/weekly/index.xml new file mode 100644 index 00000000000..7f9d30a15a7 --- /dev/null +++ b/creole/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Creole Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:06Z + Weekly Trending of Creole in GitHub + + \ No newline at end of file diff --git a/crystal/daily/index.xml b/crystal/daily/index.xml index 6e9752c04aa..b12ebedad36 100644 --- a/crystal/daily/index.xml +++ b/crystal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Crystal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:54Z + 2023-09-24T01:28:29Z Daily Trending of Crystal in GitHub \ No newline at end of file diff --git a/crystal/weekly/index.xml b/crystal/weekly/index.xml new file mode 100644 index 00000000000..1719eafcc4d --- /dev/null +++ b/crystal/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Crystal Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:09Z + Weekly Trending of Crystal in GitHub + + \ No newline at end of file diff --git a/cson/daily/index.xml b/cson/daily/index.xml index 50b758c35c1..f9bffa7d8f4 100644 --- a/cson/daily/index.xml +++ b/cson/daily/index.xml @@ -1,7 +1,7 @@ GitHub CSON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:57Z + 2023-09-24T01:28:35Z Daily Trending of CSON in GitHub \ No newline at end of file diff --git a/cson/weekly/index.xml b/cson/weekly/index.xml new file mode 100644 index 00000000000..adfd4c5aa7a --- /dev/null +++ b/cson/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CSON Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:10Z + Weekly Trending of CSON in GitHub + + \ No newline at end of file diff --git a/csound-document/daily/index.xml b/csound-document/daily/index.xml index 03df6cf4337..ce8a439bbd3 100644 --- a/csound-document/daily/index.xml +++ b/csound-document/daily/index.xml @@ -1,7 +1,7 @@ GitHub Csound Document Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:59Z + 2023-09-24T01:28:34Z Daily Trending of Csound Document in GitHub \ No newline at end of file diff --git a/csound-document/weekly/index.xml b/csound-document/weekly/index.xml new file mode 100644 index 00000000000..709ba37b3d8 --- /dev/null +++ b/csound-document/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Csound Document Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:11Z + Weekly Trending of Csound Document in GitHub + + \ No newline at end of file diff --git a/csound-score/daily/index.xml b/csound-score/daily/index.xml index f8c06727b8d..6db35bdacfc 100644 --- a/csound-score/daily/index.xml +++ b/csound-score/daily/index.xml @@ -1,7 +1,7 @@ GitHub Csound Score Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:56Z + 2023-09-24T01:28:32Z Daily Trending of Csound Score in GitHub \ No newline at end of file diff --git a/csound-score/weekly/index.xml b/csound-score/weekly/index.xml new file mode 100644 index 00000000000..6c542979e98 --- /dev/null +++ b/csound-score/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Csound Score Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:12Z + Weekly Trending of Csound Score in GitHub + + \ No newline at end of file diff --git a/csound/daily/index.xml b/csound/daily/index.xml index 5156e30878e..7b50fca17a4 100644 --- a/csound/daily/index.xml +++ b/csound/daily/index.xml @@ -1,7 +1,7 @@ GitHub Csound Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:24:58Z + 2023-09-24T01:28:33Z Daily Trending of Csound in GitHub \ No newline at end of file diff --git a/csound/weekly/index.xml b/csound/weekly/index.xml new file mode 100644 index 00000000000..17d6ad07444 --- /dev/null +++ b/csound/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Csound Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:13Z + Weekly Trending of Csound in GitHub + + \ No newline at end of file diff --git a/css/daily/index.xml b/css/daily/index.xml index f21ef2926fe..b4c2fcad747 100644 --- a/css/daily/index.xml +++ b/css/daily/index.xml @@ -1,7 +1,28 @@ GitHub CSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:07Z + 2023-09-24T01:28:41Z Daily Trending of CSS in GitHub + + leonjza/frida-boot + 2023-09-24T01:28:41Z + tag:github.com,2023-09-24:/leonjza/frida-boot + + <p>Frida Boot 👢- A binary instrumentation workshop, with Frida, for beginners!</p><hr><h1 align="center"> <br> <br> frida-boot 👢 <br> </h1> <h4 align="center"> A binary instrumentation workshop, using <a href="https://frida.re" target="_blank">Frida</a>, for beginners! <br> <p align="center"> <a href="https://twitter.com/leonjza"><img src="https://img.shields.io/badge/twitter-%40leonjza-blue.svg?sanitize=true" alt="@leonjza" height="18"></a> <a href="https://hub.docker.com/r/leonjza/frida-boot"><img alt="Docker Cloud Build Status" src="https://img.shields.io/docker/cloud/build/leonjza/frida-boot"></a> </p> </h4> <h2>quickstart</h2> <img align="right" src="https://raw.githubusercontent.com/leonjza/frida-boot/master/images/frida-boot-web.png" height="320" alt="frida-boot"> <ul> <li><code>git clone https://github.com/leonjza/frida-boot</code></li> <li><code>cd frida-boot</code></li> <li><code>./docker.sh pull</code></li> <li><code>./docker.sh run</code></li> </ul> <p>After running the container, all of the offline workshop content will be available at <a href="http://localhost:9999">http://localhost:9999</a>.</p> <h2>slides &amp; stream</h2> <p>This workshop was streamed on YouTube <a href="https://www.youtube.com/watch?v=CLpW1tZCblo">here</a>.</p> <p>The slides for the workshop can be found on Google Slides <a href="https://docs.google.com/presentation/d/1BK4CsGChSKI8BCVsg9Rlv0lY5AfsrbanhIRWnKaP0TI/edit?usp=sharing">here</a>, with a PDF copy available in the <code>slides/</code> directory of this repository.</p> <h2>manually building</h2> <p>The <code>Dockerfile</code> in this repository can be used to manually build the container. Feel free to edit it to suit your needs.</p> <pre><code class="language-bash">docker build -t frida-boot:local . </code></pre> + + + EBAS-ID/lpkarum_software_developer + 2023-09-24T01:28:41Z + tag:github.com,2023-09-24:/EBAS-ID/lpkarum_software_developer + + <p>Modul pelatihan untuk lpk arum software developer</p><hr> + + + Sommerwiesel/invidious + 2023-09-24T01:28:41Z + tag:github.com,2023-09-24:/Sommerwiesel/invidious + + <p>Invidious fork with customizations for invidious.nerdvpn.de</p><hr><h1>invidious</h1> <p>Invidious fork with customizations for invidious.nerdvpn.de</p> <p>Modifications differing from the original repo are only in one file: assets/css/default.css</p> <p>Original repo at: <a href="https://github.com/iv-org/invidious">https://github.com/iv-org/invidious</a></p> + \ No newline at end of file diff --git a/css/weekly/index.xml b/css/weekly/index.xml new file mode 100644 index 00000000000..94e9e79f1af --- /dev/null +++ b/css/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub CSS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:19Z + Weekly Trending of CSS in GitHub + + + zhile-io/ChatGPTAuthHelper + 2023-09-24T01:48:19Z + tag:github.com,2023-09-24:/zhile-io/ChatGPTAuthHelper + + <p>一个简单的Chrome插件,用来帮助你登录ChatGPT。</p><hr><h1>ChatGPT Auth Helper</h1> <p>一个简单的 <code>Chrome</code> 插件,用来帮助你登录 <code>ChatGPT</code>。</p> <h3>使用步骤:</h3> <ol> <li>前往 <a href="https://github.com/zhile-io/ChatGPTAuthHelper/releases">Release</a> 下载 <code>zip</code> / <code>tar.gz</code> 并解压缩。</li> <li>打开 <code>Chrome</code> ,地址栏输入: <code>chrome://extensions</code> 打开 <code>扩展程序</code> 设置页面。</li> <li>右上角打开 <code>开发者模式</code> 。</li> <li>点击左上角 <code>加载已解压的扩展程序</code> 按钮,选择刚下载解压的插件文件夹内的 <code>src</code> 目录,确定安装。</li> <li>你可以在 <code>扩展程序</code> 中看到 <code>ChatGPT Auth Helper</code> 说明安装成功。</li> <li>现在你的 <code>Chrome</code> 可以用来使用 <code>https://ai.fakeopen.com/auth</code> 服务了。</li> </ol> + + + joy-of-react/project-wordle + 2023-09-24T01:48:19Z + tag:github.com,2023-09-24:/joy-of-react/project-wordle + + <p></p><hr><h1>Word Game</h1> <h2>Joy of React, Project I</h2> <p>In this project, we'll recreate a popular online word game, Wordle:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/wordle-demo.gif" alt="Demo showing the finished product, our Wordle clone"></p> <p>In Wordle, users have 6 attempts to guess a 5-letter word. You're helped along the way by ruling out letters that aren't in the word, and being told whether the correct letters are in the correct location or not.</p> <h2>Getting Started</h2> <p>This project is created with <a href="https://parceljs.org/">Parcel</a>, a modern JS build tool. It's intended to be run locally, on your computer, using Node.js and NPM.</p> <p>If you're not sure how to run a local development server, or if you run into some trouble, check out the <a href="https://courses.joshwcomeau.com/joy-of-react/project-wordle/03-dev-server">“Local Development” instructions</a>. It includes all the info you need to know, including troubleshooting common issues.</p> <blockquote> <p><strong>NOTE: This project is tricky!</strong></p> <p>This project is meant to be challenging, because I believe that the best way to learn is to be challenged. Depending on your experience level, though, you may feel like it's unreasonably difficult.</p> <p>This workshop is split into 5 exercises, and each exercise has a solution video. If you spend more than 10 minutes stuck on an exercise, I encourage you to <strong>watch the solution.</strong> If things are still unclear after that, please ask questions in the Discord community!</p> </blockquote> <h2>Exercise 1: GuessInput</h2> <p>First thing’s first: we need a way to submit guesses!</p> <p>In the standard Wordle game, a global event listener registers keypresses. This isn't very accessible, and so we're going to do things a little bit differently.</p> <p>We'll render a little form that holds a text input:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/guess-input.png" alt="Screenshot showing the guess input UI"></p> <p>Your job in this first exercise is to create a new component for this UI, and render it inside the <code>Game</code> component.</p> <p>Here's a minimal representation of the markup expected to be produced by this new component:</p> <pre><code class="language-html">&lt;form class="guess-input-wrapper"&gt; &lt;label for="guess-input"&gt;Enter guess:&lt;/label&gt; &lt;input id="guess-input" type="text" /&gt; &lt;/form&gt; </code></pre> <p><strong>NOTE:</strong> This is the <em>minimal</em> markup required, for the styles to be applied and for accessibility. <strong>It isn't set in stone!</strong> Feel free to make tweaks in order to match all of the acceptance criteria below.</p> <p>Here's a quick screen recording of the expected result:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/submit-guess.gif" alt="Screen recording showing the guess being entered. It gets logged to the console, and erased from the input"></p> <p><strong>Acceptance Criteria:</strong></p> <ul> <li>Create a new component. <ul> <li>Don't forget, you can use an NPM script to generate the scaffolding for you! We learn how to do this in the <a href="https://courses.joshwcomeau.com/joy-of-react/project-wordle/04-overview">“Getting Started” video</a></li> </ul> </li> <li>This component should render a <code>&lt;form&gt;</code> tag, including a label and a text input.</li> <li>The text input should be controlled by React state.</li> <li>When the form is submitted: <ul> <li>The entered value should be logged to the console (for now).</li> <li>The input should be reset to an empty string.</li> </ul> </li> <li><strong>The user's input should be converted to ALL UPPERCASE.</strong> No lower-case letters allowed.</li> <li>The input should have a minimum and maximum length of 5. <ul> <li><strong>NOTE:</strong> The <code>minLength</code> validator is a bit funky; you may wish to use the <code>pattern</code> attribute instead. This is discussed in more detail on the <a href="https://courses.joshwcomeau.com/joy-of-react/project-wordle/06-solution#an-alternative-to-minlength">Solution page</a>.</li> </ul> </li> </ul> <h2>Exercise 2: Keeping track of guesses</h2> <p>Instead of obliterating the user's guess, let's add it to a list, so we can show the user all of their previously-submitted guesses!</p> <p>For now, we aren't worrying about any game-logic stuff. We're still setting up the scaffolding, getting some of the component + DOM structure in place.</p> <p>Our goal in this exercise is to render each of the user's guesses:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/printed-word-list.gif" alt="Screen recording showing each guess printed out above the text input from the last exercise"></p> <p>And here's an example of the expected DOM structure:</p> <pre><code class="language-html">&lt;div class="guess-results"&gt; &lt;p class="guess"&gt;FIRST&lt;/p&gt; &lt;p class="guess"&gt;GUESS&lt;/p&gt; &lt;/div&gt; </code></pre> <p><strong>Acceptance Criteria:</strong></p> <ul> <li>A new component should be created, to render previous guesses.</li> <li>When the user submits their guess, that value should be rendered within this new component.</li> <li>There should be no key warnings in the console!</li> </ul> <h2>Exercise 3: Guess slots</h2> <p>In the real Wordle game, the initial screen shows 6 rows of 5 squares:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/wordle-squares.png" alt="Screenshot of real Wordle, showing a 5x6 grid"></p> <p>In this exercise, we'll update our code to display a similar grid. We'll show 6 rows of guesses, no matter how many guesses the user has submitted, and each row will consist of 5 cells.</p> <p>As the user submits guesses, their guess will populate the cells:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/words-in-cells.gif" alt="Screen recording showing each guess being added to the 5x6 grid"></p> <p>We need to update our DOM structure for the <code>GuessResults</code> component so that it looks something like this:</p> <pre><code class="language-html">&lt;div class="guess-results"&gt; &lt;p class="guess"&gt; &lt;span class="cell"&gt;F&lt;/span&gt; &lt;span class="cell"&gt;I&lt;/span&gt; &lt;span class="cell"&gt;R&lt;/span&gt; &lt;span class="cell"&gt;S&lt;/span&gt; &lt;span class="cell"&gt;T&lt;/span&gt; &lt;/p&gt; &lt;p class="guess"&gt; &lt;span class="cell"&gt;G&lt;/span&gt; &lt;span class="cell"&gt;U&lt;/span&gt; &lt;span class="cell"&gt;E&lt;/span&gt; &lt;span class="cell"&gt;S&lt;/span&gt; &lt;span class="cell"&gt;S&lt;/span&gt; &lt;/p&gt; &lt;p class="guess"&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="guess"&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="guess"&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;span class="cell"&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; </code></pre> <p><strong>Things to know:</strong></p> <p>There are two things that should help you tackle this exercise:</p> <ol> <li>You can use the <code>range</code> utility to create arrays of a specified length to map over. It's provided in <code>/src/utils.js</code>. Check out the “Range Utility” lesson in the course for more info on how to use it.</li> <li>Inside <code>/src/constants.js</code>, you'll find a constant, <code>NUM_OF_GUESSES_ALLOWED</code>. You should import and use this constant when generating the set of guesses. This would make it easy for us to change the difficulty of the game later on, by increasing/decreasing the # of guesses.</li> </ol> <p><strong>Acceptance Criteria:</strong></p> <ul> <li>Create a new <code>Guess</code> component. 6 instances should be rendered at all times, no matter how many guesses have been submitted.</li> <li>The <code>Guess</code> component should render 5 spans, each with the class of <code>cell</code>.</li> <li>Each cell should contain a letter, if the <code>Guess</code> instance has been given a value. If not, the cell should be blank.</li> <li>Use the <code>NUM_OF_GUESSES_ALLOWED</code> constant, when needed.</li> <li>No <code>key</code> warnings in the console.</li> </ul> <h2>Exercise 4: Game logic</h2> <p>Alright: over the first 3 exercises, we've been setting up all of the structure and scaffolding. It's time to do some game-logic stuff!</p> <p>In this exercise, we'll add some CSS classes to color the background of each cell, based on the results and the correct answer:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/words-with-backgrounds.gif" alt="Screen recording. The guesses are applied to the game board, and the background colors update accordingly"></p> <p>Inside <code>/src/game-helpers.js</code>, you'll find a helper function, <code>checkGuess</code>. As parameters, it takes a single guess, as well as the correct answer. It returns an array that contains the status for each letter.</p> <p>For example:</p> <pre><code class="language-js">checkGuess('WHALE', 'LEARN'); /* Returns: [ { letter: 'W', status: 'incorrect' }, { letter: 'H', status: 'incorrect' }, { letter: 'A', status: 'correct' }, { letter: 'L', status: 'misplaced' }, { letter: 'E', status: 'misplaced' }, ] */ </code></pre> <p>There are 3 possible statuses:</p> <ul> <li><strong>correct</strong> — this slot is perfect. It's the right letter in the right place.</li> <li><strong>misplaced</strong> — this letter does exist in the word, but in a different slot.</li> <li><strong>incorrect</strong> — this letter is not found in the word at all.</li> </ul> <p>In the example above, <code>W</code> and <code>H</code> aren't found in the word <code>LEARN</code>, and so they're marked as “incorrect”. <code>A</code> is correct, since it's in the 3rd slot in each word. The other two letters, <code>L</code> and <code>E</code>, are meant to be in other slots.</p> <p><strong>These statuses correspond with CSS classes.</strong> The <code>correct</code> status has a <code>correct</code> class name, which will apply the green background when applied to a cell. Same thing for <code>misplaced</code> and <code>incorrect</code>.</p> <p>Your task is to use this function to validate the user's guesses, and apply the correct CSS classes. The final output for a given guess should look like this:</p> <pre><code class="language-html">&lt;p class="guess"&gt; &lt;span class="cell incorrect"&gt;W&lt;/span&gt; &lt;span class="cell incorrect"&gt;H&lt;/span&gt; &lt;span class="cell correct"&gt;A&lt;/span&gt; &lt;span class="cell misplaced"&gt;L&lt;/span&gt; &lt;span class="cell misplaced"&gt;E&lt;/span&gt; &lt;/p&gt; </code></pre> <p><strong>Acceptance Criteria:</strong></p> <ul> <li>Import the <code>checkGuess</code> function from <code>/src/game-helpers.js</code>, and use it to validate each of the user's guesses</li> <li>When rendering the letters in the <code>Guess</code> component, apply the letter's <code>status</code> to the <code>cell</code> element.</li> <li>"Empty" guess slots should have the same markup as before: <code>&lt;span class="cell"&gt;&lt;/span&gt;</code>.</li> </ul> <h2>Exercise 5: winning and losing</h2> <p>We're so close! We only have one concern left: ending the game.</p> <p>If the user wins the game, a happy banner should be shown:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/happy-banner.png" alt="Screenshot of a won game, showing a green success banner"></p> <p>If the user loses the game, by contrast, a sad banner should be shown:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/sad-banner.png" alt="Screenshot of a won game, showing a red failure banner"></p> <p>The user wins the game when their guessed word is identical to the <code>answer</code>. They lose the game if they submit 6 guesses without winning.</p> <pre><code class="language-html">&lt;div class="happy banner"&gt; &lt;p&gt; &lt;strong&gt;Congratulations!&lt;/strong&gt; Got it in &lt;strong&gt;3 guesses&lt;/strong&gt;. &lt;/p&gt; &lt;/div&gt; </code></pre> <pre><code class="language-html">&lt;div class="sad banner"&gt; &lt;p&gt;Sorry, the correct answer is &lt;strong&gt;LEARN&lt;/strong&gt;.&lt;/p&gt; &lt;/div&gt; </code></pre> <p>When the game is over, one of these banners should be shown, and the text input should be disabled so that no new guesses can be typed or submitted.</p> <p><strong>Acceptance Criteria:</strong></p> <ul> <li>If the user wins the game, a happy banner should be shown.</li> <li>If the user loses the game, a sad banner should be shown</li> <li>When the game is over, the text input should be disabled.</li> <li>It's up to you to decide how to structure the banner! Feel free to create new component(s) if you think it's warranted.</li> </ul> <hr> <h1>Stretch Goals</h1> <p>If you're looking for an additional challenge, give these stretch goals a shot!</p> <p>Unlike the standard exercises, no solution video is available for these goals, though the raw solution source code is available. See the solutions page on the Course Platform.</p> <p>Also, feel free to come up with <em>your own</em> stretch goals! If there's a thing you'd like to implement, go for it!!</p> <h2>Visual Keyboard</h2> <p>In the real Wordle game, a keyboard is shown below the guesses:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/bottom-keyboard-original.png" alt="Screenshot of the Wordle game, showing a keyboard below the game board"></p> <p>This keyboard is an important game element, since it makes it easy to tell which letters have already been tested.</p> <p>Here's what the keyboard looked like in my implementation:</p> <p><img src="https://raw.githubusercontent.com/joy-of-react/project-wordle/main/docs/bottom-keyboard-clone.png" alt="Screenshot of our Wordle clone, showing a keyboard below the game board"></p> <p><strong>Note: Styling isn't provided for stretch goals.</strong> You'll need to come up with your own CSS. You can add it to <code>src/styles.css</code>.</p> <p><strong>Relatedly:</strong> When you add a keyboard, it'll likely be pushed "below the fold" on smaller windows. Don't worry about trying to fit everything in the viewport at once.</p> <p><strong>Acceptance Criteria:</strong></p> <ul> <li>Render 3 rows of letters at the bottom of the screen</li> <li>The colors of each letter should match the colors shown in the game board: <ul> <li>Correct letters should have a green background and white text</li> <li>Misplaced letters should have a yellow background and white text</li> <li>Incorrect letters should have a dark gray background and white text</li> <li>Unused letters should have a light gray background and black text</li> </ul> </li> <li>No need to include "Enter" and "Backspace" keys.</li> <li>Don't worry too much about the styling, trying to get the alignment to look exactly like a real keyboard.</li> </ul> <h2>Restart button</h2> <p>One of Wordle's hooks is that you can only play 1 game per day: there's a new word for all users every day. As a result, there's no "restart button", you just have to wait until the next day.</p> <p>In our clone, we aren't picking a new word every day, we're picking a new word when the app first loads.</p> <p>Update the game so that it can be restarted. Add a "Restart game" button to the banner shown when the user wins or loses.</p> <p><em>HINT:</em> This will require moving the <code>answer</code> into state. You'll want to do the random word selection inside a callback function, the secondary way to initialize state described here: <a href="https://courses.joshwcomeau.com/joy-of-react/02-state/03-use-state#initial-value">https://courses.joshwcomeau.com/joy-of-react/02-state/03-use-state#initial-value</a></p> <p><strong>Acceptance Criteria:</strong></p> <ul> <li>A "Restart Game" button is shown at the end of the game. You can put this button in the <code>GameOverBanner</code>, or wherever else you'd like!</li> <li>Clicking the button should select a new correct word and reset all other state.</li> </ul> + + + whosmatt/uvmod + 2023-09-24T01:48:19Z + tag:github.com,2023-09-24:/whosmatt/uvmod + + <p>Web-based firmware patcher for various Quansheng radios</p><hr><h1><a href="https://whosmatt.github.io/uvmod/">CLICK HERE TO OPEN UVMOD</a></h1> <h2><a href="https://uvmod.xanyi.eu.org/">中文版 Open Chinese Version (maintained independently)</a></h2> <h2><a href="https://uvmod.valek.net.ru/">Open Russian Version (maintained independently)</a></h2> <h2><a href="https://meshtastic.pt/QuanSheng/">Open Portuguese Version (maintained independently)</a></h2> <h3>Info about v26/v27</h3> <p>UVMOD is based on v26 because the newer v27 firmware brings no important changes other than one small fix that only applies to a small number of units.<br> Depending on the factory calibration of some radios, the TX power above 435MHz can be lower than it should be due to a programming oversight.<br> v27 fixes this so that the TX power is always correct. To see if your unit is affected you can either use a power meter, or you can use a receiver with rssi to check if the output power on the L setting is higher than the output power on the H setting.</p> <p>For now, the russian and portuguese version of UVMOD includes limited v27 support, so you can use those if your unit is affected.</p> <p>We are working on a mod that fixes this in v26 as well.</p> <h2>Introduction</h2> <p>Web-based client-side Quansheng firmware patcher and Web Serial flasher written in Javascript and HTML using <a href="https://getbootstrap.com/docs/4.6/getting-started/introduction/">Bootstrap 4.6.0</a>, jQuery and parts of the <a href="https://startbootstrap.com/theme/sb-admin-2">SB Admin 2 Theme</a>.<br> It is based on the discoveries by the many contributors in the <a href="https://github.com/amnemonic/Quansheng_UV-K5_Firmware/tree/main/uvmod_kitchen">uvmod-kitchen</a> and implements the same functionality in a modular and flexible javascript structure.</p> <p>Visitors can generate a patched firmware image by selecting the desired patches. Patches modify the firmware on a binary level and can accept user input to customize variables. A custom base image can be supplied to allow support for mods that are compiled and linked directly into the firmware.<br> The generated firmware can be flashed directly to the radio with supported browsers, no external software is needed.</p> <h2>Mod development</h2> <p>Clone this repository and execute <code>python3 -m http.server</code> or <code>python -m http.server</code> in the root directory for an instant local web server, allowing easy testing.<br> Mods are defined in <a href="https://raw.githubusercontent.com/whosmatt/uvmod/main/mods.js">mods.js</a>, with an example mod to outline the pattern.<br> Also <strong>refer to the helper functions and documentation in</strong> <a href="https://raw.githubusercontent.com/whosmatt/uvmod/main/js/modframework.js">modframework.js</a>.</p> <p>The supported format for binary data is in the format of a hex string <strong>without separators</strong>. You can use find and replace to remove all <code>\x</code> from a regular hex string or directly export the correct format from a bytes object in python using <code>print(''.join('%02x'%i for i in BYTES_OBJECT))</code>.</p> <h2>Statement regarding dangerous clones of UVMOD</h2> <p>The radio spectrum is used by many different people and organizations, some of which are very important to critical infrastructure. Modifying the firmware of a radio needs to be done with care and consideration for the consequences.<br> UVMOD makes it easy and accessible for anyone without any background knowledge to modify the firmware of their radio. <strong>However, certain mods such as TX Unlock mods can not be used legally and safely without a certain amount of background knowledge because the behaviour of these mods is counterintuitive.</strong><br> UVMOD is designed to hide all high-risk mods behind a information section in the instructions to ensure that users are aware of the risks and consequences.</p> <p><strong>Sadly, there has been one person (RE3CON) who has cloned UVMOD and removed all of the safety precautions and warnings.</strong> The team behind UVMOD and the Quansheng modding scene do not condone this behavior and we strongly advise against using this clone.<br> <strong>Use the links at the top of this file to access all approved versions.</strong></p> <h2>Code of Conduct</h2> <p>For the reasons outlined above, we have decided to implement a code of conduct for this project.<br> While we can not stop intentional abuse of the software for illegal purposes, we must at least try to prevent accidental abuse.<br> To accomplish this:</p> <ul> <li>Mods are considered dangerous when they can be abused to break the law or cause harm to others.</li> <li>Mods that are considered dangerous must be hidden using the this.hidden property.</li> <li>Mods that are considered dangerous must have a clear description and an unambiguous title.</li> </ul> <p>Failing to follow the rules above on a fork/clone of the main project may result in a negative public statement and/or a DMCA takedown request from the contributors involved.</p> <p>To further improve the quality of the main project, we also ask that you:</p> <ul> <li>Only include mods that function correctly and have been tested.</li> <li>Only include mods that work without side effects (or at least document the side effects in the description).</li> <li>Avoid putting credit to yourself in the Mod title or description. Any work you do on this project is a collaborative effort building on the work of the people before you, and claiming sole credit for a mod is not in the spirit of this project.</li> </ul> + + \ No newline at end of file diff --git a/csv/daily/index.xml b/csv/daily/index.xml index f021b493bb5..ef7ac325a13 100644 --- a/csv/daily/index.xml +++ b/csv/daily/index.xml @@ -1,7 +1,7 @@ GitHub CSV Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:01Z + 2023-09-24T01:28:36Z Daily Trending of CSV in GitHub \ No newline at end of file diff --git a/csv/weekly/index.xml b/csv/weekly/index.xml new file mode 100644 index 00000000000..4df732442ab --- /dev/null +++ b/csv/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CSV Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:16Z + Weekly Trending of CSV in GitHub + + \ No newline at end of file diff --git a/cuda/daily/index.xml b/cuda/daily/index.xml index d4c8f5fb341..28839abf854 100644 --- a/cuda/daily/index.xml +++ b/cuda/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cuda Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:03Z + 2023-09-24T01:28:38Z Daily Trending of Cuda in GitHub \ No newline at end of file diff --git a/cuda/weekly/index.xml b/cuda/weekly/index.xml new file mode 100644 index 00000000000..047ae7d6f60 --- /dev/null +++ b/cuda/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Cuda Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:14Z + Weekly Trending of Cuda in GitHub + + + punica-ai/punica + 2023-09-24T01:48:14Z + tag:github.com,2023-09-24:/punica-ai/punica + + <p></p><hr> + + \ No newline at end of file diff --git a/cue/daily/index.xml b/cue/daily/index.xml index 8f23a4f5ece..d9f69b1a8ee 100644 --- a/cue/daily/index.xml +++ b/cue/daily/index.xml @@ -1,7 +1,7 @@ GitHub CUE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:02Z + 2023-09-24T01:28:37Z Daily Trending of CUE in GitHub \ No newline at end of file diff --git a/cue/weekly/index.xml b/cue/weekly/index.xml new file mode 100644 index 00000000000..90a51b9e606 --- /dev/null +++ b/cue/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CUE Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:15Z + Weekly Trending of CUE in GitHub + + \ No newline at end of file diff --git a/curl-config/daily/index.xml b/curl-config/daily/index.xml index 75318cf9319..de12c619c61 100644 --- a/curl-config/daily/index.xml +++ b/curl-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub cURL Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:15Z + 2023-09-24T01:28:54Z Daily Trending of cURL Config in GitHub \ No newline at end of file diff --git a/curl-config/weekly/index.xml b/curl-config/weekly/index.xml new file mode 100644 index 00000000000..3b12914532b --- /dev/null +++ b/curl-config/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub cURL Config Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:27Z + Weekly Trending of cURL Config in GitHub + + \ No newline at end of file diff --git a/curry/daily/index.xml b/curry/daily/index.xml index 7544cb81e0d..5e655f7830d 100644 --- a/curry/daily/index.xml +++ b/curry/daily/index.xml @@ -1,7 +1,7 @@ GitHub Curry Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:16Z + 2023-09-24T01:28:53Z Daily Trending of Curry in GitHub \ No newline at end of file diff --git a/curry/weekly/index.xml b/curry/weekly/index.xml new file mode 100644 index 00000000000..5940b5c7087 --- /dev/null +++ b/curry/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Curry Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:29Z + Weekly Trending of Curry in GitHub + + \ No newline at end of file diff --git a/cweb/daily/index.xml b/cweb/daily/index.xml index a77a5905aba..bda184dce14 100644 --- a/cweb/daily/index.xml +++ b/cweb/daily/index.xml @@ -1,7 +1,7 @@ GitHub CWeb Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:16Z + 2023-09-24T01:28:52Z Daily Trending of CWeb in GitHub \ No newline at end of file diff --git a/cweb/weekly/index.xml b/cweb/weekly/index.xml new file mode 100644 index 00000000000..970dea69e2e --- /dev/null +++ b/cweb/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub CWeb Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:29Z + Weekly Trending of CWeb in GitHub + + \ No newline at end of file diff --git a/cycript/daily/index.xml b/cycript/daily/index.xml index 785dea3ad19..a3a83cba7bf 100644 --- a/cycript/daily/index.xml +++ b/cycript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cycript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:18Z + 2023-09-24T01:28:57Z Daily Trending of Cycript in GitHub \ No newline at end of file diff --git a/cycript/weekly/index.xml b/cycript/weekly/index.xml new file mode 100644 index 00000000000..1bd28baa52c --- /dev/null +++ b/cycript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Cycript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:30Z + Weekly Trending of Cycript in GitHub + + \ No newline at end of file diff --git a/cython/daily/index.xml b/cython/daily/index.xml index d244c54eee8..50d9a36fcc5 100644 --- a/cython/daily/index.xml +++ b/cython/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cython Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:22Z + 2023-09-24T01:29:00Z Daily Trending of Cython in GitHub \ No newline at end of file diff --git a/cython/weekly/index.xml b/cython/weekly/index.xml new file mode 100644 index 00000000000..e825fb3c256 --- /dev/null +++ b/cython/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Cython Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:34Z + Weekly Trending of Cython in GitHub + + + pysam-developers/pysam + 2023-09-24T01:48:34Z + tag:github.com,2023-09-24:/pysam-developers/pysam + + <p>Pysam is a Python module for reading and manipulating SAM/BAM/VCF/BCF files. It's a lightweight wrapper of the htslib C-API, the same one that powers samtools, bcftools, and tabix.</p><hr> + + \ No newline at end of file diff --git a/d-objdump/daily/index.xml b/d-objdump/daily/index.xml index 52efbeec7af..90eeff77e72 100644 --- a/d-objdump/daily/index.xml +++ b/d-objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub D-ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:25Z + 2023-09-24T01:29:03Z Daily Trending of D-ObjDump in GitHub \ No newline at end of file diff --git a/d-objdump/weekly/index.xml b/d-objdump/weekly/index.xml new file mode 100644 index 00000000000..a9bb29818b1 --- /dev/null +++ b/d-objdump/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub D-ObjDump Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:36Z + Weekly Trending of D-ObjDump in GitHub + + \ No newline at end of file diff --git a/d/daily/index.xml b/d/daily/index.xml index c19243586de..a80ae32399c 100644 --- a/d/daily/index.xml +++ b/d/daily/index.xml @@ -1,7 +1,7 @@ GitHub D Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:20Z + 2023-09-24T01:28:58Z Daily Trending of D in GitHub \ No newline at end of file diff --git a/d/weekly/index.xml b/d/weekly/index.xml new file mode 100644 index 00000000000..f599b0ed76e --- /dev/null +++ b/d/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub D Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:33Z + Weekly Trending of D in GitHub + + + liamesler/viconia + 2023-09-24T01:48:33Z + tag:github.com,2023-09-24:/liamesler/viconia + + <p>Viconia friendship mod for Baldur's Gate II: Shadows of Amn and Throne of Bhaal.</p><hr> + + + tapg24/xlsx_reader + 2023-09-24T01:48:33Z + tag:github.com,2023-09-24:/tapg24/xlsx_reader + + <p></p><hr> + + \ No newline at end of file diff --git a/dafny/daily/index.xml b/dafny/daily/index.xml index 57253ccbc8f..cb9832415b5 100644 --- a/dafny/daily/index.xml +++ b/dafny/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dafny Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:23Z + 2023-09-24T01:29:03Z Daily Trending of Dafny in GitHub \ No newline at end of file diff --git a/dafny/weekly/index.xml b/dafny/weekly/index.xml new file mode 100644 index 00000000000..9e750e254a9 --- /dev/null +++ b/dafny/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Dafny Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:37Z + Weekly Trending of Dafny in GitHub + + \ No newline at end of file diff --git a/darcs-patch/daily/index.xml b/darcs-patch/daily/index.xml index 2fc49d52be3..bbfb0f4de5a 100644 --- a/darcs-patch/daily/index.xml +++ b/darcs-patch/daily/index.xml @@ -1,7 +1,7 @@ GitHub Darcs Patch Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:24Z + 2023-09-24T01:29:01Z Daily Trending of Darcs Patch in GitHub \ No newline at end of file diff --git a/darcs-patch/weekly/index.xml b/darcs-patch/weekly/index.xml new file mode 100644 index 00000000000..6461b85415f --- /dev/null +++ b/darcs-patch/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Darcs Patch Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:38Z + Weekly Trending of Darcs Patch in GitHub + + \ No newline at end of file diff --git a/dart/daily/index.xml b/dart/daily/index.xml index 7dcc2af2e77..115a3ac8725 100644 --- a/dart/daily/index.xml +++ b/dart/daily/index.xml @@ -1,7 +1,14 @@ GitHub Dart Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:32Z + 2023-09-24T01:29:09Z Daily Trending of Dart in GitHub + + Auties00/reboot_launcher + 2023-09-24T01:29:09Z + tag:github.com,2023-09-24:/Auties00/reboot_launcher + + <p>GUI(Flutter & Fluent UI) and CLI Launcher for the Reboot Project</p><hr><h1>Reboot Launcher</h1> <p><img src="https://github.com/Auties00/reboot_launcher/assets/28218457/de2cac8e-7060-4e11-a91f-e01e3c174b9c" alt="Screenshot (34)"> <img src="https://github.com/Auties00/reboot_launcher/assets/28218457/de43d2b8-09fc-4d34-beb1-aa6f7fcaa479" alt="Screenshot (35)"> <img src="https://github.com/Auties00/reboot_launcher/assets/28218457/3337f5cd-81d6-45d8-ab47-8018fb8a6cee" alt="Screenshot (36)"> <img src="https://github.com/Auties00/reboot_launcher/assets/28218457/51086ec7-5e68-4411-b704-7837970741c8" alt="Screenshot (37)"> <img src="https://github.com/Auties00/reboot_launcher/assets/28218457/9aca3e00-85e3-4580-95bd-fef8b389f40b" alt="Screenshot (38)"> <img src="https://github.com/Auties00/reboot_launcher/assets/28218457/faa5d3a3-18c2-4d53-84c5-6eadc0bf4069" alt="Screenshot (39)"> <img src="https://github.com/Auties00/reboot_launcher/assets/28218457/6c449aa6-e515-4680-9ee2-d219761f3268" alt="Screenshot (33)"></p> + \ No newline at end of file diff --git a/dart/weekly/index.xml b/dart/weekly/index.xml new file mode 100644 index 00000000000..f56e129b020 --- /dev/null +++ b/dart/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Dart Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:43Z + Weekly Trending of Dart in GitHub + + + krille-chan/fluffychat + 2023-09-24T01:48:43Z + tag:github.com,2023-09-24:/krille-chan/fluffychat + + <p>The cutest instant messenger in the [matrix]</p><hr><p><img src="https://github.com/krille-chan/fluffychat/raw/main/assets/banner_transparent.png?raw=true" alt="Screenshot"></p> <p><a href="https://fluffychat.im">FluffyChat</a> is an open source, nonprofit and cute [<a href="https://matrix.org">matrix</a>] client written in <a href="https://flutter.dev">Flutter</a>. The goal of the app is to create an easy to use instant messenger which is open source and accessible for everyone.</p> <h3>Links:</h3> <ul> <li>🌐 <a href="https://hosted.weblate.org/projects/fluffychat/">[Weblate] Translate FluffyChat into your language</a></li> <li>🌍 <a href="https://matrix.to/#/#fluffychat:matrix.org">[m] Join the community</a></li> <li>📰 <a href="https://mastodon.art/@krille">[Mastodon] Get updates on social media</a></li> <li>🖥️ <a href="https://famedly.com/kontakt">[Famedly] Server hosting and professional support</a></li> <li>💝 <a href="https://de.liberapay.com/KrilleChritzelius">[Liberapay] Support FluffyChat development</a></li> </ul> <p><a href="https://ko-fi.com/C1C86VN53" target="_blank"><img height="36" style="border:0px;height:36px;" src="https://storage.ko-fi.com/cdn/kofi5.png?v=3" border="0" alt="Buy Me a Coffee at ko-fi.com"></a></p> <h3>Screenshots:</h3> <p><img src="https://github.com/krille-chan/fluffychat/raw/main/docs/screenshots/product.jpeg?raw=true" alt="Screenshot"></p> <h1>Features</h1> <ul> <li>📩 Send all kinds of messages, images and files</li> <li>🎙️ Voice messages</li> <li>📍 Location sharing</li> <li>🔔 Push notifications</li> <li>💬 Unlimited private and public group chats</li> <li>📣 Public channels with thousands of participants</li> <li>🛠️ Feature rich group moderation including all matrix features</li> <li>🔍 Discover and join public groups</li> <li>🌙 Dark mode</li> <li>🎨 Material You design</li> <li>📟 Hides complexity of Matrix IDs behind simple QR codes</li> <li>😄 Custom emotes and stickers</li> <li>🌌 Spaces</li> <li>🔄 Compatible with Element, Nheko, NeoChat and all other Matrix apps</li> <li>🔐 End to end encryption</li> <li>🔒 Encrypted chat backup</li> <li>😀 Emoji verification &amp; cross signing</li> </ul> <p>... and much more.</p> <h1>Installation</h1> <p>Please visit the website for installation instructions:</p> <ul> <li><a href="https://fluffychat.im">https://fluffychat.im</a></li> </ul> <h1>How to build</h1> <p>Please visit the <a href="https://github.com/krille-chan/fluffychat/wiki">Wiki</a> for build instructions:</p> <ul> <li><a href="https://github.com/krille-chan/fluffychat/wiki/How-To-Build">https://github.com/krille-chan/fluffychat/wiki/How-To-Build</a></li> </ul> <h1>Special thanks</h1> <ul> <li> <p><a href="https://github.com/fabiyamada">Fabiyamada</a> is a graphics designer from Brasil and has made the fluffychat logo and the banner. Big thanks for her great designs.</p> </li> <li> <p><a href="https://github.com/advocatux">Advocatux</a> has made the Spanish translation with great love and care. He always stands by my side and supports my work with great commitment.</p> </li> <li> <p>Thanks to MTRNord and Sorunome for developing.</p> </li> <li> <p>Also thanks to all translators and testers! With your help, fluffychat is now available in more than 12 languages.</p> </li> <li> <p><a href="https://github.com/googlefonts/noto-emoji/">Noto Emoji Font</a> for the awesome emojis.</p> </li> <li> <p><a href="https://github.com/madsrh/WoodenBeaver">WoodenBeaver</a> sound theme for the notification sound.</p> </li> <li> <p>The Matrix Foundation for making and maintaining the <a href="https://github.com/matrix-org/matrix-doc/raw/main/data-definitions/sas-emoji.json">emoji translations</a> used for emoji verification, licensed Apache 2.0</p> </li> </ul> + + + fzyzcjy/flutter_rust_bridge + 2023-09-24T01:48:43Z + tag:github.com,2023-09-24:/fzyzcjy/flutter_rust_bridge + + <p>High-level memory-safe binding generator for Flutter/Dart <-> Rust</p><hr><h1><a href="https://github.com/fzyzcjy/flutter_rust_bridge">flutter_rust_bridge</a>: High-level memory-safe binding generator for Flutter/Dart &lt;-&gt; Rust</h1> <p><a href="https://crates.io/crates/flutter_rust_bridge"><img src="https://img.shields.io/crates/v/flutter_rust_bridge.svg?sanitize=true" alt="Rust Package"></a> <a href="https://pub.dev/packages/flutter_rust_bridge"><img src="https://img.shields.io/pub/v/flutter_rust_bridge.svg?sanitize=true" alt="Flutter Package"></a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge"><img src="https://img.shields.io/github/stars/fzyzcjy/flutter_rust_bridge" alt="Stars"></a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/actions/workflows/ci.yaml"><img src="https://github.com/fzyzcjy/flutter_rust_bridge/actions/workflows/ci.yaml/badge.svg?sanitize=true" alt="CI"></a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/actions/workflows/post_release.yaml"><img src="https://github.com/fzyzcjy/flutter_rust_bridge/actions/workflows/post_release.yaml/badge.svg?sanitize=true" alt="Example"></a> <a href="https://app.codacy.com/gh/fzyzcjy/flutter_rust_bridge?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=fzyzcjy/flutter_rust_bridge&amp;utm_campaign=Badge_Grade_Settings"><img src="https://api.codacy.com/project/badge/Grade/6afbdad19e7245adbf9e9771777be3d7" alt="Codacy Badge"></a></p> <p><a href="https://flutter.dev/docs/development/packages-and-plugins/favorites"><img src="https://github.com/fzyzcjy/flutter_rust_bridge/raw/master/book/flutter_favorite.png" width="200"></a></p> <p><img src="https://github.com/fzyzcjy/flutter_rust_bridge/raw/master/book/logo.png" alt="Logo"></p> <p>Want to combine the best between <a href="https://flutter.dev/">Flutter</a>, a cross-platform hot-reload rapid-development UI toolkit, and <a href="https://www.rust-lang.org/">Rust</a>, a language empowering everyone to build reliable and efficient software? Here it comes!</p> <h2>🚀 Advantages</h2> <ul> <li><strong>Memory-safe</strong>: Never need to think about malloc/free.</li> <li><strong>Feature-rich</strong>: <code>enum</code>s with values, platform-optimized <code>Vec</code>, possibly recursive <code>struct</code>, zero-copy big arrays, opaque types on arbitrary structs/classes, <code>Stream</code> (iterator) abstraction, error (<code>Result</code>) handling, cancellable tasks, concurrency control, and more. See full features <a href="https://fzyzcjy.github.io/flutter_rust_bridge/feature.html">here</a>.</li> <li><strong>Async programming</strong>: Rust code will never block the Flutter. Call Rust naturally from Flutter's main isolate (thread); sync mode also equally supported.</li> <li><strong>Lightweight</strong>: This is not a huge framework that includes everything, so you are free to use your favorite Flutter and Rust libraries. <sub>For example, state-management with Flutter library (e.g. MobX) can be elegant and simple (contrary to implementing in Rust); implementing a photo manipulation algorithm in Rust will be fast and safe (countrary to implementing in Flutter).</sub></li> <li><strong>Cross-platform</strong>: Android, iOS, Windows, Linux, MacOS, and Web.</li> <li><strong>Easy to code-review &amp; convince yourself</strong>: This package simply simulates how humans write boilerplate code. If you want to convince yourself (or your team) that it is safe, there is not much code to look at. No magic at all! (<a href="https://fzyzcjy.github.io/flutter_rust_bridge/safety.html">More about</a> safety concerns.)</li> <li><strong>Fast</strong>: It is only a thin (though feature-rich) wrapper, without overhead such as protobuf serialization, thus performant. (More <a href="https://github.com/fzyzcjy/flutter_rust_bridge/issues/318#issuecomment-1034536815">benchmarks</a> later) <small>(Throw away components like thread-pool to make it even faster)</small></li> <li><strong>Pure-Dart compatible:</strong> Despite the name, this package is 100% compatible with <a href="https://github.com/fzyzcjy/flutter_rust_bridge/raw/master/frb_example/pure_dart/README.md">pure</a> Dart.</li> </ul> <h2>💡 User Guide</h2> <p>Check out <a href="https://fzyzcjy.github.io/flutter_rust_bridge/">the user guide</a> for <a href="https://fzyzcjy.github.io/flutter_rust_bridge/quickstart.html">show-me-the-code</a>, <a href="https://fzyzcjy.github.io/flutter_rust_bridge/tutorial_with_flutter.html">tutorials</a>, <a href="https://fzyzcjy.github.io/flutter_rust_bridge/feature.html">features</a> and much more.</p> <h2>📎 P.S. Achieve ~60 FPS, no matter how janky the Flutter app was due to build/layout</h2> <p>Here is my another open-source library :) <a href="https://github.com/fzyzcjy/flutter_smooth">https://github.com/fzyzcjy/flutter_smooth</a>.</p> <h2>✨ Contributors</h2> <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> <p><a href="https://raw.githubusercontent.com/fzyzcjy/flutter_rust_bridge/master/#contributors-"><img src="https://img.shields.io/badge/all_contributors-74-orange.svg?style=flat-square" alt="All Contributors"></a></p> <!-- ALL-CONTRIBUTORS-BADGE:END --> <p>Thanks goes to these wonderful people (<a href="https://allcontributors.org/docs/en/emoji-key">emoji key</a> following <a href="https://github.com/all-contributors/all-contributors">all-contributors</a> specification):</p> <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/fzyzcjy"><img src="https://avatars.githubusercontent.com/u/5236035?v=4?s=100" width="100px;" alt="fzyzcjy"><br><sub><b>fzyzcjy</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=fzyzcjy" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=fzyzcjy" title="Documentation">📖</a> <a href="https://raw.githubusercontent.com/fzyzcjy/flutter_rust_bridge/master/#example-fzyzcjy" title="Examples">💡</a> <a href="https://raw.githubusercontent.com/fzyzcjy/flutter_rust_bridge/master/#ideas-fzyzcjy" title="Ideas, Planning, &amp; Feedback">🤔</a> <a href="https://raw.githubusercontent.com/fzyzcjy/flutter_rust_bridge/master/#maintenance-fzyzcjy" title="Maintenance">🚧</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Desdaemon"><img src="https://avatars.githubusercontent.com/u/36768030?v=4?s=100" width="100px;" alt="Viet Dinh"><br><sub><b>Viet Dinh</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Desdaemon" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Desdaemon" title="Tests">⚠️</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Desdaemon" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/SecondFlight"><img src="https://avatars.githubusercontent.com/u/6700184?v=4?s=100" width="100px;" alt="Joshua Wade"><br><sub><b>Joshua Wade</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=SecondFlight" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/smw-wagnerma"><img src="https://avatars.githubusercontent.com/u/66412697?v=4?s=100" width="100px;" alt="Marcel"><br><sub><b>Marcel</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=smw-wagnerma" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/rustui"><img src="https://avatars.githubusercontent.com/u/90625190?v=4?s=100" width="100px;" alt="rustui"><br><sub><b>rustui</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=rustui" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://adventures.michaelfbryan.com/"><img src="https://avatars.githubusercontent.com/u/17380079?v=4?s=100" width="100px;" alt="Michael Bryan"><br><sub><b>Michael Bryan</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Michael-F-Bryan" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://bus710.net"><img src="https://avatars.githubusercontent.com/u/8920680?v=4?s=100" width="100px;" alt="bus710"><br><sub><b>bus710</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=bus710" title="Documentation">📖</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://scholar.google.com/citations?user=RbAto7EAAAAJ"><img src="https://avatars.githubusercontent.com/u/1213857?v=4?s=100" width="100px;" alt="Sebastian Urban"><br><sub><b>Sebastian Urban</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=surban" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/trobanga"><img src="https://avatars.githubusercontent.com/u/8888869?v=4?s=100" width="100px;" alt="Daniel"><br><sub><b>Daniel</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=trobanga" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/AlienKevin"><img src="https://avatars.githubusercontent.com/u/22850071?v=4?s=100" width="100px;" alt="Kevin Li"><br><sub><b>Kevin Li</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=AlienKevin" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=AlienKevin" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://valeth.me"><img src="https://avatars.githubusercontent.com/u/3198362?v=4?s=100" width="100px;" alt="Patrick Auernig"><br><sub><b>Patrick Auernig</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=valeth" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://antonok.com"><img src="https://avatars.githubusercontent.com/u/22821309?v=4?s=100" width="100px;" alt="Anton Lazarev"><br><sub><b>Anton Lazarev</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=antonok-edm" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Unoqwy"><img src="https://avatars.githubusercontent.com/u/65187632?v=4?s=100" width="100px;" alt="Unoqwy"><br><sub><b>Unoqwy</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Unoqwy" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://feber.dev"><img src="https://avatars.githubusercontent.com/u/1727318?v=4?s=100" width="100px;" alt="Febrian Setianto"><br><sub><b>Febrian Setianto</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=feber" title="Documentation">📖</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Syndim"><img src="https://avatars.githubusercontent.com/u/835035?v=4?s=100" width="100px;" alt="syndim"><br><sub><b>syndim</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=syndim" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/sagudev"><img src="https://avatars.githubusercontent.com/u/16504129?v=4?s=100" width="100px;" alt="sagu"><br><sub><b>sagu</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=sagudev" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=sagudev" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://bandism.net/"><img src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;" alt="Ikko Ashimine"><br><sub><b>Ikko Ashimine</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=eltociear" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/alanlzhang"><img src="https://avatars.githubusercontent.com/u/59032810?v=4?s=100" width="100px;" alt="alanlzhang"><br><sub><b>alanlzhang</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=alanlzhang" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=alanlzhang" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/sccheruku"><img src="https://avatars.githubusercontent.com/u/5800058?v=4?s=100" width="100px;" alt="Sai Chaitanya"><br><sub><b>Sai Chaitanya</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=sccheruku" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://ares.zone (国内)"><img src="https://avatars.githubusercontent.com/u/40336192?v=4?s=100" width="100px;" alt="Ares Andrew"><br><sub><b>Ares Andrew</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=TENX-S" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/raphaelrobert"><img src="https://avatars.githubusercontent.com/u/9882746?v=4?s=100" width="100px;" alt="raphaelrobert"><br><sub><b>raphaelrobert</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=raphaelrobert" title="Documentation">📖</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/thomas725"><img src="https://avatars.githubusercontent.com/u/68635351?v=4?s=100" width="100px;" alt="thomas725"><br><sub><b>thomas725</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=thomas725" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://dport.me"><img src="https://avatars.githubusercontent.com/u/7816187?v=4?s=100" width="100px;" alt="Daniel Porteous (dport)"><br><sub><b>Daniel Porteous (dport)</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=banool" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/w-ensink"><img src="https://avatars.githubusercontent.com/u/46427708?v=4?s=100" width="100px;" alt="Wouter Ensink"><br><sub><b>Wouter Ensink</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=w-ensink" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/dbsxdbsx"><img src="https://avatars.githubusercontent.com/u/17372655?v=4?s=100" width="100px;" alt="老董"><br><sub><b>老董</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=dbsxdbsx" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=dbsxdbsx" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/lattice0"><img src="https://avatars.githubusercontent.com/u/6632321?v=4?s=100" width="100px;" alt="Lattice 0"><br><sub><b>Lattice 0</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=lattice0" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=lattice0" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://soeur.dev"><img src="https://avatars.githubusercontent.com/u/26034975?v=4?s=100" width="100px;" alt="orange soeur"><br><sub><b>orange soeur</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=juzi5201314" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Roms1383"><img src="https://avatars.githubusercontent.com/u/21016014?v=4?s=100" width="100px;" alt="Rom's"><br><sub><b>Rom's</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Roms1383" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Roms1383" title="Documentation">📖</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Cupnfish"><img src="https://avatars.githubusercontent.com/u/40173605?v=4?s=100" width="100px;" alt="Cupnfish"><br><sub><b>Cupnfish</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Cupnfish" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/SoLongAndThanksForAllThePizza"><img src="https://avatars.githubusercontent.com/u/103753680?v=4?s=100" width="100px;" alt="SoLongAnd..."><br><sub><b>SoLongAnd...</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=SoLongAndThanksForAllThePizza" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=SoLongAndThanksForAllThePizza" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Stonks3141"><img src="https://avatars.githubusercontent.com/u/82178396?v=4?s=100" width="100px;" alt="Sam Nystrom"><br><sub><b>Sam Nystrom</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Stonks3141" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://i.hsfzxjy.site"><img src="https://avatars.githubusercontent.com/u/4702188?v=4?s=100" width="100px;" alt="hsfzxjy"><br><sub><b>hsfzxjy</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=hsfzxjy" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://tmpfs.org"><img src="https://avatars.githubusercontent.com/u/238069?v=4?s=100" width="100px;" alt="muji"><br><sub><b>muji</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=tmpfs" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Zaitam"><img src="https://avatars.githubusercontent.com/u/71014214?v=4?s=100" width="100px;" alt="Zaitam"><br><sub><b>Zaitam</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Zaitam" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/alexthe2"><img src="https://avatars.githubusercontent.com/u/33789063?v=4?s=100" width="100px;" alt="Alex Procelewski"><br><sub><b>Alex Procelewski</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=alexthe2" title="Documentation">📖</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=alexthe2" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://matrix.to/#/@vincentherl:matrix.org"><img src="https://avatars.githubusercontent.com/u/5569193?v=4?s=100" width="100px;" alt="Vincent Herlemont"><br><sub><b>Vincent Herlemont</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=vincent-herlemont" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/CicadaCinema"><img src="https://avatars.githubusercontent.com/u/52425971?v=4?s=100" width="100px;" alt="CicadaCinema"><br><sub><b>CicadaCinema</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=CicadaCinema" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=CicadaCinema" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/rogurotus"><img src="https://avatars.githubusercontent.com/u/61418195?v=4?s=100" width="100px;" alt="rogurotus"><br><sub><b>rogurotus</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=rogurotus" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=rogurotus" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/huang12zheng"><img src="https://avatars.githubusercontent.com/u/28038074?v=4?s=100" width="100px;" alt="huang12zheng"><br><sub><b>huang12zheng</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=huang12zheng" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=huang12zheng" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://svenstaro.org"><img src="https://avatars.githubusercontent.com/u/1664?v=4?s=100" width="100px;" alt="Sven-Hendrik Haase"><br><sub><b>Sven-Hendrik Haase</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=svenstaro" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ngasull"><img src="https://avatars.githubusercontent.com/u/912991?v=4?s=100" width="100px;" alt="Nicolas Gasull"><br><sub><b>Nicolas Gasull</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=ngasull" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/codercengiz"><img src="https://avatars.githubusercontent.com/u/45819755?v=4?s=100" width="100px;" alt="codercengiz"><br><sub><b>codercengiz</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=codercengiz" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://www.floeschner.de/"><img src="https://avatars.githubusercontent.com/u/12967904?v=4?s=100" width="100px;" alt="Fabian Löschner"><br><sub><b>Fabian Löschner</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=w1th0utnam3" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://gsconrad.com"><img src="https://avatars.githubusercontent.com/u/15874617?v=4?s=100" width="100px;" alt="Gregory Conrad"><br><sub><b>Gregory Conrad</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=GregoryConrad" title="Documentation">📖</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=GregoryConrad" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://www.zaynetro.com/"><img src="https://avatars.githubusercontent.com/u/627197?v=4?s=100" width="100px;" alt="Roman Zaynetdinov"><br><sub><b>Roman Zaynetdinov</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=zaynetro" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jsonmona"><img src="https://avatars.githubusercontent.com/u/105187344?v=4?s=100" width="100px;" alt="jsonmona"><br><sub><b>jsonmona</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=jsonmona" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/utilForever"><img src="https://avatars.githubusercontent.com/u/5622661?v=4?s=100" width="100px;" alt="Chris Ohk"><br><sub><b>Chris Ohk</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=utilForever" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Demezy"><img src="https://avatars.githubusercontent.com/u/38487319?v=4?s=100" width="100px;" alt="._."><br><sub><b>._.</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Demezy" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/elliotsayes"><img src="https://avatars.githubusercontent.com/u/7699058?v=4?s=100" width="100px;" alt="elliotsayes"><br><sub><b>elliotsayes</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=elliotsayes" title="Documentation">📖</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/temeddix"><img src="https://avatars.githubusercontent.com/u/66480156?v=4?s=100" width="100px;" alt="Kim Dong-Hyun"><br><sub><b>Kim Dong-Hyun</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=temeddix" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=temeddix" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Voklen"><img src="https://avatars.githubusercontent.com/u/56766748?v=4?s=100" width="100px;" alt="Alex Gorichev"><br><sub><b>Alex Gorichev</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=Voklen" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/nitn3lav"><img src="https://avatars.githubusercontent.com/u/77448526?v=4?s=100" width="100px;" alt="nitn3lav"><br><sub><b>nitn3lav</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=nitn3lav" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=nitn3lav" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/polypixeldev"><img src="https://avatars.githubusercontent.com/u/79737178?v=4?s=100" width="100px;" alt="polypixeldev"><br><sub><b>polypixeldev</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=polypixeldev" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/anstadnik"><img src="https://avatars.githubusercontent.com/u/40110937?v=4?s=100" width="100px;" alt="Andrii Stadnik"><br><sub><b>Andrii Stadnik</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=anstadnik" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/coder0xff"><img src="https://avatars.githubusercontent.com/u/2261949?v=4?s=100" width="100px;" alt="Brent Lewis"><br><sub><b>Brent Lewis</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=coder0xff" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=coder0xff" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/erikas-taroza"><img src="https://avatars.githubusercontent.com/u/68450090?v=4?s=100" width="100px;" alt="Erikas Taroza"><br><sub><b>Erikas Taroza</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=erikas-taroza" title="Code">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/escwxyz"><img src="https://avatars.githubusercontent.com/u/124119483?v=4?s=100" width="100px;" alt="J"><br><sub><b>J</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=escwxyz" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://monitzer.com"><img src="https://avatars.githubusercontent.com/u/644763?v=4?s=100" width="100px;" alt="Andreas Monitzer"><br><sub><b>Andreas Monitzer</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=anlumo" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://satvikpendem.com"><img src="https://avatars.githubusercontent.com/u/42670561?v=4?s=100" width="100px;" alt="Satvik Pendem"><br><sub><b>Satvik Pendem</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=satvikpendem" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://phlip9.com"><img src="https://avatars.githubusercontent.com/u/918989?v=4?s=100" width="100px;" alt="Philip Kannegaard Hayes"><br><sub><b>Philip Kannegaard Hayes</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=phlip9" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://thesimplekid.com"><img src="https://avatars.githubusercontent.com/u/8606367?v=4?s=100" width="100px;" alt="thesimplekid"><br><sub><b>thesimplekid</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=thesimplekid" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jaiakash"><img src="https://avatars.githubusercontent.com/u/33419526?v=4?s=100" width="100px;" alt="Akash Jaiswal"><br><sub><b>Akash Jaiswal</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=jaiakash" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/MnlPhlp"><img src="https://avatars.githubusercontent.com/u/33608297?v=4?s=100" width="100px;" alt="Manuel Philipp"><br><sub><b>Manuel Philipp</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=MnlPhlp" title="Code">💻</a> <a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=MnlPhlp" title="Documentation">📖</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/lker-dev"><img src="https://avatars.githubusercontent.com/u/40730443?v=4?s=100" width="100px;" alt="Jonathan"><br><sub><b>Jonathan</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=lker-dev" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://lipoic.org"><img src="https://avatars.githubusercontent.com/u/48402225?v=4?s=100" width="100px;" alt="菘菘"><br><sub><b>菘菘</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=SiongSng" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://gutenfries.deno.dev"><img src="https://avatars.githubusercontent.com/u/79616833?v=4?s=100" width="100px;" alt="Marc Gutenberger"><br><sub><b>Marc Gutenberger</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=gutenfries" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/aran"><img src="https://avatars.githubusercontent.com/u/5295?v=4?s=100" width="100px;" alt="Aran Donohue"><br><sub><b>Aran Donohue</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=aran" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/powpingdone"><img src="https://avatars.githubusercontent.com/u/20116021?v=4?s=100" width="100px;" alt="Aidan"><br><sub><b>Aidan</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=powpingdone" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/vimaxwell"><img src="https://avatars.githubusercontent.com/u/19898639?v=4?s=100" width="100px;" alt="max"><br><sub><b>max</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=vimaxwell" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/DMouayad"><img src="https://avatars.githubusercontent.com/u/82384138?v=4?s=100" width="100px;" alt="Mouayad Alhamwi"><br><sub><b>Mouayad Alhamwi</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=DMouayad" title="Documentation">📖</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://blog.nightfeather.dev/"><img src="https://avatars.githubusercontent.com/u/77222233?v=4?s=100" width="100px;" alt="NightFeather"><br><sub><b>NightFeather</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=NightFeather0615" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/JustSimplyKyle"><img src="https://avatars.githubusercontent.com/u/68589851?v=4?s=100" width="100px;" alt="SimplyKyle!"><br><sub><b>SimplyKyle!</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=JustSimplyKyle" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://www.upsuper.org/"><img src="https://avatars.githubusercontent.com/u/333750?v=4?s=100" width="100px;" alt="Xidorn Quan"><br><sub><b>Xidorn Quan</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=upsuper" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/not-holar"><img src="https://avatars.githubusercontent.com/u/58831297?v=4?s=100" width="100px;" alt="Vitalii Hurianov"><br><sub><b>Vitalii Hurianov</b></sub></a><br><a href="https://github.com/fzyzcjy/flutter_rust_bridge/commits?author=not-holar" title="Documentation">📖</a></td> </tr> </tbody> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END --> <p>More specifically, thanks for all these contributions:</p> <ul> <li><a href="https://github.com/Desdaemon">Desdaemon</a>: Support not only simple enums but also enums with fields which gets translated to native enum or sealed freezed class in Dart. Support the Option type as nullable types in Dart. Support Vec of Strings type. Support tuple type. Support comments in code. Add marker attributes for future usage. Add Linux and Windows support for with-flutter example, and make CI works for that. Avoid parameter collision. Overhaul the documentation and add several chapters to demonstrate configuring a Flutter+Rust project in all five platforms. Refactor command module. Precompiled binary CI workflow. Fix bugs. Add support for the Web platform, parallel to the existing mobile/desktop platforms, via WASM and JavaScript as intermediate values. GitHub retry actions. Implement draft of opaque types. Refactor Boxed and Option. Impl list of dates. Parameter defaults. Refactor CLI. Refactor codegen errors.</li> <li><a href="https://github.com/rogurotus">rogurotus</a>: Add Rust opaque types, enabling arbitrary Rust structs to be used as opaque Dart objects by generating wrappers and raw Arc pointers, as well as Dart opaque types, allowing to use any Dart objects in Rust code. Extend <code>SyncReturn</code> for more types. Fix generation bug. Fix SyncReturn. Migrate to dart-sys. Update CI. Fix linters.</li> <li><a href="https://github.com/ngasull">ngasull</a>: Make sync mode support whatever types that classical async mode supports. Bump sdk.</li> <li><a href="https://github.com/SecondFlight">SecondFlight</a>: Allow structs and enums to be imported from other files within the crate by creating source graph. Auto-create relevant dir. Fix <code>store_dart_post_cobject</code> error with ffigen 6.0.</li> <li><a href="https://github.com/lattice0">lattice0</a>: Implement hierarchy of exceptions. Support methods, such that Rust struct impls can be converted to Dart class methods. StreamSink at any argument.</li> <li><a href="https://github.com/Unoqwy">Unoqwy</a>: Add struct mirrors, such that types in the external crates can be imported and used without redefining and copying.</li> <li><a href="https://github.com/antonok-edm">antonok-edm</a>: Avoid converting syn types to strings before parsing to improve code and be more robust.</li> <li><a href="https://github.com/sagudev">sagudev</a>: Make code generator a <code>lib</code>. Add error types. Depend on <code>cbindgen</code>. Fix LLVM paths. Update deps. Fix CI errors.</li> <li><a href="https://github.com/surban">surban</a>: Support unit return type. Skip unresolvable modules. Ignore prefer_const_constructors. Non-final Dart fields.</li> <li><a href="https://github.com/Roms1383">Roms1383</a>: Fix build_runner calling bug. Remove global <code>ffigen</code> dependency. Improve version check. Fix enum name-variant conflicts. Support Chrono date time and UUID types. Migrate to Rust 1.64 workspace. Update and refactor CI. Update header comments. Code cleanup.</li> <li><a href="https://github.com/GregoryConrad">GregoryConrad</a>: Add doc to setup frb inside a Dart/Flutter library.</li> <li><a href="https://github.com/dbsxdbsx">dbsxdbsx</a>: Allow generating multiple Rust and Dart files. Fix lint. Update doc. Add logging.</li> <li><a href="https://github.com/huang12zheng">huang12zheng</a>: Support type aliases and nested ones. Tweak code generation. Fix rust_build_and_test on Mac. Improve CI logic and cache. Remove bridge field in model.</li> <li><a href="https://github.com/trobanga">trobanga</a>: Add support for <code>[T;N]</code> structs. Add <code>usize</code> support. Add a cmd argument. Separate dart tests. Fix fallible list case.</li> <li><a href="https://github.com/MnlPhlp">MnlPhlp</a>: Support macros and will auto expand. Allow mirror types in streams.</li> <li><a href="https://github.com/SoLongAndThanksForAllThePizza">SoLongAndThanksForAllThePizza</a>: Refactor and enhance SyncReturn to support more types. Refactor post-release CI.</li> <li><a href="https://github.com/hsfzxjy">hsfzxjy</a>: Fix SyncReturn use-after-free bug.</li> <li><a href="https://github.com/Cupnfish">Cupnfish</a>: Support arrays as function parameters. Allow multi mirror.</li> <li><a href="https://github.com/alanlzhang">alanlzhang</a>: Add generation for Dart metadata. Enhance module parser. Fix enum in struct. Fix linter.</li> <li><a href="https://github.com/temeddix">temeddix</a>: Fix broken CI. Custom num workers. Fix MacOS doc steps. Update doc. Make zero-copy defaultable.</li> <li><a href="https://github.com/Zaitam">Zaitam</a>: Fix when method return struct. Partial migration to Dart 3.</li> <li><a href="https://github.com/erikas-taroza">erikas-taroza</a>: Support list of primitive enums. Make enum camelCase. Warn wrong path. Fix cargo expand.</li> <li><a href="https://github.com/nitn3lav">nitn3lav</a>: nested <code>struct</code>s without <code>Box</code>.</li> <li><a href="https://github.com/alexthe2">alexthe2</a>: Add Option Datetime. Add empty structs. Improve doc. Add <code>r#</code>. Fix mirror enum bug.</li> <li><a href="https://github.com/SiongSng">SiongSng</a>: Finish implementing exception hierarchy. Fix SyncReturn bug.</li> <li><a href="https://github.com/AlienKevin">AlienKevin</a>: Add flutter example for macOS. Add doc for Android NDK bug.</li> <li><a href="https://github.com/banool">banool</a>: Fix pubspec parsing. Fix symbol-stripping doc.</li> <li><a href="https://github.com/coder0xff">coder0xff</a>: Refactor SupportedInnerType. Extra codegen tester.</li> <li><a href="https://github.com/anlumo">anlumo</a>: Fix freezed + methods. Non-clone RustOpaque.</li> <li><a href="https://github.com/NightFeather0615">NightFeather0615</a>: Fix Vec bool.</li> <li><a href="https://github.com/powpingdone">powpingdone</a>: Document JNI init and libc++_static linking.</li> <li><a href="https://github.com/efc-mw">efc-mw</a>: Improve Windows encoding handling.</li> <li><a href="https://github.com/valeth">valeth</a>: Rename callFfi's port.</li> <li><a href="https://github.com/sccheruku">sccheruku</a>: Prevent double-generating utility.</li> <li><a href="https://github.com/jsonmona">jsonmona</a>: Add import.</li> <li><a href="https://github.com/upsuper">upsuper</a>: Refactor delegate-attr.</li> <li><a href="https://github.com/w-ensink">w-ensink</a>: Improve doc. Fix CI. Refactor. Add tests.</li> <li><a href="https://github.com/codercengiz">codercengiz</a>: Fix mirroring bug.</li> <li><a href="https://github.com/Michael-F-Bryan">Michael-F-Bryan</a>: Detect broken bindings.</li> <li><a href="https://github.com/phlip9">phlip9</a>: Fix no-serde compilation.</li> <li><a href="https://github.com/bus710">bus710</a>: Add a case in troubleshooting.</li> <li><a href="https://github.com/Demezy">Demezy</a>: Mention troubleshooting.</li> <li><a href="https://github.com/gutenfries">gutenfries</a>: Bump proc-macros.</li> <li><a href="https://github.com/anstadnik">anstadnik</a>: Check keywords.</li> <li><a href="https://github.com/aran">aran</a>: Fix pubspec. Bump version.</li> <li><a href="https://github.com/Syndim">Syndim</a>: Add a bracket to box.</li> <li><a href="https://github.com/TENX-S">TENX-S</a>: Improve doc. Reproduce a bug.</li> <li><a href="https://github.com/polypixeldev">polypixeldev</a>: Improve doc.</li> <li><a href="https://github.com/CicadaCinema">CicadaCinema</a>: Bump version. Improve doc.</li> <li><a href="https://github.com/w1th0utnam3">w1th0utnam3</a>: Improve message.</li> <li><a href="https://github.com/vincent-herlemont">vincent-herlemont</a>: Loosen version.</li> <li><a href="https://github.com/zaynetro">zaynetro</a>: Improve doc.</li> <li><a href="https://github.com/raphaelrobert">raphaelrobert</a>: Remove oudated doc.</li> <li><a href="https://github.com/DMouayad">DMouayad</a>: Improve doc.</li> <li><a href="https://github.com/elliotsayes">elliotsayes</a>: Improve doc.</li> <li><a href="https://github.com/tmpfs">tmpfs</a>: Improve doc.</li> <li><a href="https://github.com/thomas725">thomas725</a>: Improve doc.</li> <li><a href="https://github.com/juzi5201314">juzi5201314</a>: Improve doc.</li> <li><a href="https://github.com/Voklen">Voklen</a>: Improve doc.</li> <li><a href="https://github.com/svenstaro">svenstaro</a>: Improve doc.</li> <li><a href="https://github.com/utilForever">utilForever</a>: Fix typos.</li> <li><a href="https://github.com/not-holar">not-holar</a>: Fix typos.</li> <li><a href="https://github.com/Stonks3141">Stonks3141</a>: Fix doc credit.</li> <li><a href="https://github.com/vimaxwell">vimaxwell</a>: Fix doc link.</li> <li><a href="https://github.com/lker-dev">lker-dev</a>: Fix doc link.</li> <li><a href="https://github.com/jaiakash">jaiakash</a>: Fix doc link.</li> <li><a href="https://github.com/feber">feber</a>: Fix doc link.</li> <li><a href="https://github.com/satvikpendem">satvikpendem</a>: Little co-work #989.</li> <li><a href="https://github.com/rustui">rustui</a>: Fix a typo.</li> <li><a href="https://github.com/escwxyz">escwxyz</a>: Fix a typo.</li> <li><a href="https://github.com/eltociear">eltociear</a>: Fix a typo.</li> <li><a href="https://github.com/thesimplekid">thesimplekid</a>: Fix a typo.</li> </ul> + + + wuba/Fair + 2023-09-24T01:48:43Z + tag:github.com,2023-09-24:/wuba/Fair + + <p>A Flutter package used to update widget tree dynamically. Fair提供一整套Flutter动态化解决方案</p><hr><p><img src="https://raw.githubusercontent.com/wuba/Fair/main/resources/social-dark.png" alt="social preview"></p> <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> <p align="center"> <a href="https://pub.dev/packages/fair"><img src="https://img.shields.io/badge/pub-3.2.1-orange" alt="pub"></a> <a href="https://github.com/wuba/fair"><img src="https://img.shields.io/badge/platform-flutter-blue.svg?sanitize=true" alt="github"></a> <a href="https://fair.58.com/"><img src="https://img.shields.io/badge/doc-fair.58.com-green.svg?sanitize=true" alt="doc"></a> <a href="https://github.com/wuba/fair/LICENSE"><img src="https://img.shields.io/badge/license-BSD-green.svg?sanitize=true" alt="license"></a> <a href="https://github.com/wuba/fair/actions"><img src="https://github.com/wuba/fair/workflows/build/badge.svg?sanitize=true" alt="build"></a> <a href="https://gitter.im/flutter_fair/community?utm_source=badge&amp;utm_medium=badge&amp;utm_campaign=pr-badge"><img src="https://badges.gitter.im/flutter_fair/community.svg?sanitize=true" alt="Gitter"></a> </p> <p><a href="https://raw.githubusercontent.com/wuba/Fair/main/README-zh.md">简体中文</a>|<a href="https://raw.githubusercontent.com/wuba/Fair/main/README.md">English</a></p> <hr> <p>Fair is a dynamic framework designed for Flutter. Through the automatic conversion of native Dart source files by the Fair Compiler tool, the project can obtain the ability to dynamically update the Widget Tree and State.</p> <p>The goal of creating Fair is to support updates through business bundles and JS distribution without the release of versions (Android, iOS, Web), similar to React Native. After integrating with Flutter Fair, you can quickly publish new pages without waiting for your app's next release date. Fair provides standard widgets, which can be used as a new dynamic page or as part of an existing Flutter page, such as typography/style modification of operation bits, full page replacement, partial replacement, etc.</p> <p><img src="https://raw.githubusercontent.com/wuba/Fair/main/resources/what-is-fair-en.png" alt=""></p> <p>Fair's UI rendering is lossless and can be restored at the pixel level. Take a look at the effect of escaping some pages of Best Flutter UI Templates:</p> <p><img src="https://raw.githubusercontent.com/wuba/Fair/main/resources/best-ui-template.png" alt="best-ui-template"></p> <blockquote> <p>The project used is from <a href="https://github.com/mitesh77/Best-Flutter-UI-Templates">https://github.com/mitesh77/Best-Flutter-UI-Templates</a> <br> location:/example/lib/best_flutter_ui</p> </blockquote> <h2>🏛Architecture</h2> <p><img src="https://raw.githubusercontent.com/wuba/Fair/main/resources/fair.png" alt="fair architecture"></p> <h2>🚀 Running</h2> <p>Use Flutter Fair require few steps.</p> <p><strong>step1:download fair project source code</strong></p> <p>It is recommended to download <a href="https://github.com/wuba/fair">fair</a> to the local and dependencies on the relative path.</p> <p>The download method is as follows:</p> <pre><code>git clone https://github.com/wuba/fair.git </code></pre> <p><strong>step2:Add dependency inside <code>pubspec.yaml</code></strong></p> <p>Assuming that the fair project and your own project are in the same folder:</p> <pre><code class="language-yaml"># add Fair dependency dependencies: fair: 3.2.1 # add build_runner and compiler dependency dev_dependencies: build_runner: ^2.0.0 fair_compiler: ^1.7.0 # switch "fair_version" according to the local Flutter SDK version # Flutter SDK 3.7.x(3.7.0、3.7.1、3.7.2、3.7.3、3.7.4、3.7.5、3.7.6、3.7.7、3.7.8、3.7.9、3.7.10) -&gt; flutter_3_7_0 # Flutter SDK 3.3.x(3.3.0、3.3.1、3.3.2、3.3.3、3.3.4、3.3.5、3.3.6、3.3.7、3.3.8、3.3.9、3.3.10) -&gt; flutter_3_3_0 # Flutter SDK 3.0.x(3.0.0、3.0.1、3.0.2、3.0.3、3.0.4、3.0.5) -&gt; flutter_3_0_0 # Flutter SDK 2.10.x(2.10.0、2.10.1、2.10.2、2.10.3) -&gt; flutter_2_10_0 # Flutter SDK 2.8.x(2.8.0、2.8.1) -&gt; flutter_2_8_0 # Flutter SDK 2.5.x(2.5.0、2.5.1、2.5.2、2.5.3) -&gt; flutter_2_5_0 # Flutter SDK 2.0.6 -&gt; flutter_2_0_6 # Flutter SDK 1.22.6 -&gt; flutter_1_22_6 dependency_overrides: fair_version: path: ../fair/flutter_version/flutter_3_7_0 </code></pre> <p><strong>step3:Wrap your app with FairApp Widget</strong></p> <pre><code class="language-dart">void main() { WidgetsFlutterBinding.ensureInitialized(); FairApp.runApplication( _getApp(), plugins: { }, ); } dynamic _getApp() =&gt; FairApp( modules: { }, delegate: { }, child: MaterialApp( home: FairWidget( name: 'DynamicWidget', path: 'assets/bundle/lib_src_page_dynamic_widget.fair.json', data: {"fairProps": json.encode({})}), ), ); </code></pre> <p><strong>step4:Import a dynamic widget as FairWidget</strong></p> <pre><code class="language-dart">FairWidget( name: 'DynamicWidget', path: 'assets/bundle/lib_src_page_dynamic_widget.fair.json', data: {"fairProps": json.encode({})}), </code></pre> <h2>DevTools</h2> <p>fair development tools</p> <h3>Dart Commandline Tool <a href="https://pub.dev/packages/faircli">faircli</a></h3> <p>create fair project</p> <p><strong>faircli install</strong></p> <pre><code class="language-dart">dart pub global activate faircli </code></pre> <p><strong>create fair dynamic project</strong></p> <pre><code class="language-dart">faircli create -n dynamic_project_name </code></pre> <p><strong>create fair carrier project</strong></p> <pre><code class="language-dart">faircli create -k carrier -n carrier_project_name </code></pre> <h3>IDEA Plugin <a href="https://plugins.jetbrains.com/plugin/20323-fairtemplate">FairTemplate</a></h3> <p>Page/Component Template Code</p> <img src="https://raw.githubusercontent.com/wuba/Fair/main/resources/fair_template.png" width="80%"> <h3>DevTools flow chart</h3> <p><img src="https://raw.githubusercontent.com/wuba/Fair/main/resources/fair_tools.png" alt="fair tools"></p> <h3>DevTools demo</h3> <p>After using faircli to configure the local hot update service, open the developer options on the mobile device, select the local mode, enter the ip of the development machine, then preview fair dynamic effect</p> <div align="center"> <img src="https://raw.githubusercontent.com/wuba/Fair/main/resources/fair_tools.gif" width="30%"> </div> <p>For more details, please refer to <a href="https://raw.githubusercontent.com/wuba/Fair/main/fair_tools.md">fair_tools</a></p> <h2>Fair-Online Platform</h2> <p>Fair-Online is an integrated cloud development platform for Flutter developers, from online development of Flutter, to real-time compilation and preview, packaging and publishing, and dynamic release of end-side updates, to realize the dynamic online Flutter.</p> <p>Developers do not need to configure the Flutter development environment, develop and debug code online, compile and preview in real time, and what you see is what you get. Combined with the Flutter dynamic framework Fair and the hot update platform FairPushy created by the 58 open source team, Flutter online dynamics are realized.</p> <div align="center"> <img src="https://raw.githubusercontent.com/wuba/Fair/main/fair_online/fair_online.gif" width="90%"> </div> <p>Online experience URL: <a href="https://fair-online.58.com/">Fair-Online Platform</a></p> <p>For more details, please refer to <a href="https://raw.githubusercontent.com/wuba/Fair/main/fair_online/README.md">fair_online</a></p> <h2>Documentation</h2> <p>For more details, please refer to <a href="https://fair.58.com">https://fair.58.com</a></p> <h3>Tools</h3> <p>Fair Cli: <a href="https://pub.dev/packages/faircli">Fair_CLI</a><br> IEDA plugin: <a href="https://plugins.jetbrains.com/plugin/20323-fairtemplate">jetbrains_plugin_fair_template</a><br> Hot update platform: <a href="https://github.com/wuba/FairPushy">FAIR PUSHY</a></p> <h2>versions</h2> <h2>3.10.0</h2> <p>updateDate: 2023.08.15</p> <ul> <li>Adapted to Flutter 3.10.0, released Fair Version 3.10</li> <li>Fix known bugs, fix DSL parser issues</li> </ul> <h3>3.2.1</h3> <p>updateDate:2023.04.13</p> <ul> <li>Fixed some issues.</li> </ul> <h3>3.2.0</h3> <p>updateDate:2023.04.12</p> <ul> <li>Adjust the order of dispose calls, not above the tree, subsequent operations stop</li> <li>Add generic FairPlugin js and dart code, reuse the same interaction logic, add example comments</li> <li>Json parsing compatibility</li> <li>Add exception catching and log printing when executeFunction is called with V8 engine in Android</li> <li>Fix SliverGridDelegateWithFixedCrossAxisCount conversion error.</li> <li>SugarMap and SugarMapEach inputs support other Sugar expressions</li> <li>Optimize the performance of ifEqual ifEqualBool switchCase</li> <li>Fix Domain not recognizing index and item in sugar</li> <li>Make AOT also follow conditions before executing code</li> <li>Fix SugarMap and SugarMapEach set input does not support other Sugar syntax</li> <li>Abstract Domain, add IndexDomain, MapEachDomain, support nested Domains</li> <li>New FunctionDomain generic Domain, generate corresponding parameters for function callbacks for FunctionDomain to use.</li> <li>Added NullableIndexedWidgetBuilder, IndexedWidgetBuilder, WidgetBuilder, TransitionBuilder common Sugar support</li> <li>Some known issues fixed</li> </ul> <h3>3.1.0</h3> <p>updateDate:2023.03.14</p> <ul> <li>Upgrade analyzer library to 5.5.0;</li> <li>Dart function to JS supports parameter passing;</li> <li>JS Object value compatibility;</li> <li>Remove kotlin dependencies from fair/android;</li> <li>Add custom parsing for IconData;</li> <li>The generation of optional positional parameters is modified to obtain pa;</li> <li>Fixed missing OptionalPositional default values;</li> <li>Remove the generation time from the generation.fair. dart comment;</li> <li>Added the ignore unnecessary_import operation;</li> <li>Fixed incorrect assignment of Sugar.switchCase key and defaultValue;</li> <li>binding was changed to SplayTreeMap to increase search efficiency, especially for lists, where duplicate tags are searched for a short time;</li> <li>Exposing specialBinding so that users can override a value;</li> <li>When the provider is added to the _binding, the Settings set by the user prevail for quick modification;</li> <li>Fixed the loadCoreJs package splicing problem;</li> <li>Reduced minSdkVersion to 16;</li> <li>runApplication supports specifying the package in which the JS resides;</li> <li>Fixed error in calling context in the _reload method.</li> </ul> <h3>3.0.0</h3> <p>updateDate:2022.11.17</p> <ul> <li>Fix class constructor parsing exception.</li> <li>Fair Compatible Web.</li> <li>Bindmap logic optimization.</li> </ul> <h3>2.8.1</h3> <p>updateDate:2022.11.01</p> <ul> <li>Fixed:CustomScrollView reference external function builder bug.</li> </ul> <h3>2.8.0</h3> <p>updateDate:2022.10.21</p> <ul> <li>Add support of Flutter SDK 3.3.0+.</li> <li>Add Sugar:Sugar.isNestedScrollViewHeaderSliversBuilder、Sugar.isButtonStyle、Sugar.isDuration、Sugar.popMenuButton、Sugar.sliverChildBuilderDelegate、Sugar.sliverGridDelegateWithFixedCrossAxisCount.</li> <li>Fixed some bugs.</li> </ul> <h3>2.7.0</h3> <p>updateDate:2022.08.10</p> <ul> <li>Add support of Flutter SDK 3.0.0、3.0.1、3.0.2、3.0.3、3.0.4、3.0.5.</li> <li>Fixed some bugs.</li> </ul> <h4>Fair</h4> <ul> <li>Fair supports loading bundle files on the phone disk path;</li> <li>Adapt to Flutter SDK 2.10.0, 2.10.1, 2.10.2, 2.10.3;</li> <li>Dart2JS supports parsing static methods;</li> <li>When running, the page error message prompts optimization;</li> <li>Syntactic sugar supports parsing Model data.</li> </ul> <h3>2.6.0</h3> <p>updateDate:2022.07.05</p> <h4>Fair</h4> <ul> <li>Fair supports loading bundle files on the phone disk path;</li> <li>Adapt to Flutter SDK 2.10.0, 2.10.1, 2.10.2, 2.10.3;</li> <li>Dart2JS supports parsing static methods;</li> <li>When running, the page error message prompts optimization;</li> <li>Syntactic sugar supports parsing Model data.</li> </ul> <h3>2.5.0</h3> <p>updateDate:2022.05.31</p> <h4>Fair</h4> <p>Adapt to flutter SDK 2.8.0, 2.8.1<br> Dart2js supports parsing singletons<br> New syntax Sugar.switchCase、Sugar.colorsWithOpacity、Sugar.convertToString, etc</p> <h4>example</h4> <p>Comprehensively optimize the example structure and upgrade the example experience, which is more suitable for beginners.</p> <p>In the source code, an example project is added to provide the standard usage of fair API.</p> <p>example location:<code>fair/example</code></p> <h3>v2.4.1</h3> <p>updateDate:2022.05.12</p> <p>Fix FairLogger import problem.<br> Upgrade Analyzer to 2.3.0.</p> <h3>v2.4.0</h3> <p>updateDate:2022.04.26</p> <p>FlatBuffers supports generating bin files in a null safe environment</p> <h3>v2.3.0</h3> <p>updateDate: 2022.04.22</p> <h4>Fair</h4> <p>supports null-safe<br> Adapt to Flutter SDK 2.5.0, 2.5.1, 2.5.2, 2.5.3 and other versions</p> <h4>demo</h4> <p>Upgrade the outdated demo in the sample project<br> Supplement the iOS runtime environment in the sample project</p> <h2>🕰2022 Roadmap</h2> <ul> <li>Major release plan <ul> <li>null-safe version support, expected to be launched on April 22 ✅</li> <li>Flutter 2.8.0 version adaptation, expected to be launched in mid-May ✅</li> <li>Flutter 2.10.0 version adaptation, is expected to be launched in early June ✅</li> <li>Flutter 3.0 version adaptation ✅</li> <li>IDE syntax detection and hint plugin ✅</li> <li>Rich syntactic sugar ✅</li> </ul> </li> <li>Hot update platform <ul> <li>Dart Server project construction ✅</li> <li>Flutter Web project construction ✅</li> <li>Patch/resource management ✅</li> <li>Project management ✅</li> <li>Mobile Update&amp;Download ✅</li> </ul> </li> <li>Online dynamic <ul> <li>Flutter Web project construction ✅</li> <li>Dart Server project construction ✅</li> <li>ActionEdit ✅</li> <li>Code editing ✅</li> <li>Component editing ✅</li> <li>Page editing ✅</li> <li>Engineering editor ✅</li> <li>Flutter effect preview ✅</li> <li>Fair DSL preview ✅</li> </ul> </li> <li>IDE plug-in <ul> <li>Fair project generation ✅</li> <li>Fair template generation ✅</li> <li>Fair syntax detection ✅</li> </ul> </li> </ul> <h2>📱Accessed APPs</h2> <table> <tbody> <tr> <td align="center"><img src="https://pic3.58cdn.com.cn/nowater/frs/n_v303052b2c3f3b4ea5a5989f5e52d71481.jpg" width="100px;" alt=""><br><sub><b>58阿姨</b></sub><br></td> <td align="center"><img src="https://pic5.58cdn.com.cn/nowater/frs/n_v3ba05182f1dc9460dab8e02d22914f700.jpg" width="100px;" alt=""><br><sub><b>移动经纪人</b></sub><br></td> <td align="center"><img src="https://pic7.58cdn.com.cn/nowater/frs/n_v35eecf738ac6c4ec992bfc0d1b8d910d4.jpg" width="100px;" alt=""><br><sub><b>安居拍房</b></sub><br></td> <td align="center"><img src="https://pic1.58cdn.com.cn/nowater/frs/n_v3b4fd1abf1e484d3da864a177a12a28e2.jpg" width="100px;" alt=""><br><sub><b>神奇保</b></sub><br></td> <td align="center"><img src="https://pic6.58cdn.com.cn/nowater/frs/n_v36e650b70b7834204959547bf616869ef.jpg" width="100px;" alt=""><br><sub><b>58商办通</b></sub><br></td> <td align="center"><img src="https://pic1.58cdn.com.cn/nowater/frs/n_v378fdb523858b4475b05fb04f66f105ae.jpg" width="100px;" alt=""><br><sub><b>58商家版</b></sub><br></td> <td align="center"><img src="https://pic6.58cdn.com.cn/nowater/frs/n_v31394c57d6c234aecad820c94dd1c8dc6.png" width="100px;" alt=""><br><sub><b>中华英才网</b></sub><br></td> </tr> </tbody> </table> <h2>✨Contributors</h2> <p>Thanks goes to these wonderful people (<a href="https://allcontributors.org/docs/en/emoji-key">emoji key</a>):</p> <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center"><a href="https://github.com/gongpengyang"><img src="https://avatars.githubusercontent.com/u/11691321?v=4?s=100" width="100px;" alt=""><br><sub><b>gongpengyang</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=gongpengyang" title="Code">💻</a></td> <td align="center"><a href="https://github.com/XIAOYUAOQISHI"><img src="https://avatars.githubusercontent.com/u/25222933?v=4?s=100" width="100px;" alt=""><br><sub><b>qixu</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=XIAOYUAOQISHI" title="Code">💻</a></td> <td align="center"><a href="https://yancechen.github.io/"><img src="https://avatars.githubusercontent.com/u/19757728?v=4?s=100" width="100px;" alt=""><br><sub><b>陈有余</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=yancechen" title="Code">💻</a></td> <td align="center"><a href="https://github.com/yyzl0418"><img src="https://avatars.githubusercontent.com/u/14289945?v=4?s=100" width="100px;" alt=""><br><sub><b>yangyang</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=yyzl0418" title="Code">💻</a></td> <td align="center"><a href="https://github.com/wanbing"><img src="https://avatars.githubusercontent.com/u/7804234?v=4?s=100" width="100px;" alt=""><br><sub><b>wan</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=wanbing" title="Code">💻</a></td> <td align="center"><a href="https://github.com/bujiee"><img src="https://avatars.githubusercontent.com/u/16713978?v=4?s=100" width="100px;" alt=""><br><sub><b>bujie</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=bujiee" title="Code">💻</a></td> <td align="center"><a href="https://github.com/windkc"><img src="https://avatars.githubusercontent.com/u/59242966?v=4?s=100" width="100px;" alt=""><br><sub><b>Kc</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=windkc" title="Code">💻</a></td> <td align="center"><a href="http://blog.hacktons.cn/"><img src="https://avatars.githubusercontent.com/u/1622234?v=4?s=100" width="100px;" alt=""><br><sub><b>Wu</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=avenwu" title="Code">💻</a> <a href="https://github.com/wuba/fair/commits?author=avenwu" title="Documentation">📖</a></td> </tr> <tr> <td align="center"><a href="https://github.com/LinLeyang"><img src="https://avatars.githubusercontent.com/u/13174498?v=4?s=100" width="100px;" alt=""><br><sub><b>Penta</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=LinLeyang" title="Code">💻</a> <a href="https://github.com/wuba/fair/commits?author=LinLeyang" title="Documentation">📖</a></td> <td align="center"><a href="https://github.com/153493932"><img src="https://avatars.githubusercontent.com/u/10431131?v=4?s=100" width="100px;" alt=""><br><sub><b>haijun</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=153493932" title="Code">💻</a> <a href="https://github.com/wuba/fair/commits?author=153493932" title="Documentation">📖</a></td> <td align="center"><a href="https://github.com/waynesonic"><img src="https://avatars.githubusercontent.com/u/5502794?v=4?s=100" width="100px;" alt=""><br><sub><b>waynesonic</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=waynesonic" title="Code">💻</a></td> <td align="center"><a href="https://github.com/paozhuanyinyu"><img src="https://avatars.githubusercontent.com/u/16041238?v=4?s=100" width="100px;" alt=""><br><sub><b>paozhuanyinyu</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=paozhuanyinyu" title="Code">💻</a></td> <td align="center"><a href="https://github.com/Alzzzz"><img src="https://avatars.githubusercontent.com/u/19664495?v=4?s=100" width="100px;" alt=""><br><sub><b>alzzzz</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=Alzzzz" title="Code">💻</a> <a href="https://github.com/wuba/fair/commits?author=Alzzzz" title="Documentation">📖</a></td> <td align="center"><a href="https://github.com/xiangwc"><img src="https://avatars.githubusercontent.com/u/22017021?v=4?s=100" width="100px;" alt=""><br><sub><b>xiangwc</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=xiangwc" title="Code">💻</a></td> <td align="center"><a href="https://github.com/KKProject"><img src="https://avatars.githubusercontent.com/u/14860258?v=4?s=100" width="100px;" alt=""><br><sub><b>WangYk</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=KKProject" title="Code">💻</a></td> <td align="center"><a href="https://github.com/JunZiJianYi"><img src="https://avatars.githubusercontent.com/u/34125737?v=4?s=100" width="100px;" alt=""><br><sub><b>SunWei</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=JunZiJianYi" title="Code">💻</a></td> </tr> <tr> <td align="center"><a href="https://github.com/shanpengtao"><img src="https://avatars.githubusercontent.com/u/7127463?v=4?s=100" width="100px;" alt=""><br><sub><b>单鹏涛</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=shanpengtao" title="Code">💻</a></td> <td align="center"><a href="https://github.com/lswc225"><img src="https://avatars.githubusercontent.com/u/16609338?v=4?s=100" width="100px;" alt=""><br><sub><b>lswc225</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=lswc225" title="Code">💻</a></td> <td align="center"><a href="http://www.gaofeiyu.com/"><img src="https://avatars.githubusercontent.com/u/6150536?v=4?s=100" width="100px;" alt=""><br><sub><b>Goofy</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=gaofeiyu" title="Code">💻</a></td> <td align="center"><a href="https://github.com/itzhaoqian"><img src="https://avatars.githubusercontent.com/u/23277488?v=4?s=100" width="100px;" alt=""><br><sub><b>itzhaoqian</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=itzhaoqian" title="Code">💻</a></td> <td align="center"><a href="https://github.com/xxliang"><img src="https://avatars.githubusercontent.com/u/5005255?v=4?s=100" width="100px;" alt=""><br><sub><b>Sunlight Xie</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=xxliang" title="Code">💻</a></td> <td align="center"><a href="https://github.com/a303268287"><img src="https://avatars.githubusercontent.com/u/19368353?v=4?s=100" width="100px;" alt=""><br><sub><b>lhdycxgghb</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=a303268287" title="Code">💻</a></td> <td align="center"><a href="https://github.com/hlwhl"><img src="https://avatars.githubusercontent.com/u/7610615?v=4?s=100" width="100px;" alt=""><br><sub><b>Prome</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=hlwhl" title="Code">💻</a></td> <td align="center"><a href="https://github.com/hlwhl"><img src="https://avatars.githubusercontent.com/u/16477333?v=4" width="100px;" alt=""><br><sub><b>zmtzawqlp</b></sub></a><br><a href="https://github.com/wuba/fair/commits?author=zmtzawqlp" title="Code">💻</a></td> </tr> </tbody> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END --> <p>This project follows the <a href="https://github.com/all-contributors/all-contributors">all-contributors</a> specification. Contributions of any kind welcome!</p> <h2>👏🏻Supporters</h2> <p><a href="https://github.com/wuba/fair/stargazers"><img src="https://reporoster.com/stars/wuba/fair" alt="Stargazers repo roster for @wuba/fair"></a></p> <p><a href="https://github.com/wuba/fair/network/members"><img src="https://reporoster.com/forks/wuba/fair" alt="Forkers repo roster for @wuba/fair"></a></p> <h2>🔧Build together</h2> <p>Submit issues through <a href="https://github.com/wuba/fair/issues">Issue</a>, contribute code through Pull Request, and the administrator will review the code.</p> <p>Friends who are interested in Fair can join the exchange group. For technical consultation and discussion, please go to</p> <table> <thead> <tr> <th>WeChat secretary</th> <th>WeChat group</th> </tr> </thead> <tbody> <tr> <td><img src="https://raw.githubusercontent.com/wuba/Fair/main/resources/weixin.jpeg" alt="wechat"></td> <td><img src="https://raw.githubusercontent.com/wuba/Fair/main/resources/wechat-group-02.png" alt="wechat_group"></td> </tr> </tbody> </table> <h2>License</h2> <p>Copyright (C) 2005-present, 58.com. All rights reserved.</p> <p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</p> <pre><code>* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of 58.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. </code></pre> <p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p> + + \ No newline at end of file diff --git a/dataweave/daily/index.xml b/dataweave/daily/index.xml index e54ef7679f5..65ab07bc63b 100644 --- a/dataweave/daily/index.xml +++ b/dataweave/daily/index.xml @@ -1,7 +1,7 @@ GitHub DataWeave Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:29Z + 2023-09-24T01:29:06Z Daily Trending of DataWeave in GitHub \ No newline at end of file diff --git a/dataweave/weekly/index.xml b/dataweave/weekly/index.xml new file mode 100644 index 00000000000..bcd71b2ab3b --- /dev/null +++ b/dataweave/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub DataWeave Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:40Z + Weekly Trending of DataWeave in GitHub + + \ No newline at end of file diff --git a/debian-package-control-file/daily/index.xml b/debian-package-control-file/daily/index.xml index d226d13b3be..5e7c3f15a58 100644 --- a/debian-package-control-file/daily/index.xml +++ b/debian-package-control-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub Debian Package Control File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:28Z + 2023-09-24T01:29:04Z Daily Trending of Debian Package Control File in GitHub \ No newline at end of file diff --git a/debian-package-control-file/weekly/index.xml b/debian-package-control-file/weekly/index.xml new file mode 100644 index 00000000000..ee7a99ef27c --- /dev/null +++ b/debian-package-control-file/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Debian Package Control File Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:39Z + Weekly Trending of Debian Package Control File in GitHub + + \ No newline at end of file diff --git a/denizenscript/daily/index.xml b/denizenscript/daily/index.xml index c5fcb4a0c56..9ded9bee5e5 100644 --- a/denizenscript/daily/index.xml +++ b/denizenscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub DenizenScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:27Z + 2023-09-24T01:29:05Z Daily Trending of DenizenScript in GitHub \ No newline at end of file diff --git a/denizenscript/weekly/index.xml b/denizenscript/weekly/index.xml new file mode 100644 index 00000000000..1145178fcd1 --- /dev/null +++ b/denizenscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub DenizenScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:41Z + Weekly Trending of DenizenScript in GitHub + + \ No newline at end of file diff --git a/desktop/daily/index.xml b/desktop/daily/index.xml index 08c6dd50fdf..60e2c9bb5dd 100644 --- a/desktop/daily/index.xml +++ b/desktop/daily/index.xml @@ -1,7 +1,7 @@ GitHub desktop Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:44Z + 2023-09-24T01:29:25Z Daily Trending of desktop in GitHub \ No newline at end of file diff --git a/desktop/weekly/index.xml b/desktop/weekly/index.xml new file mode 100644 index 00000000000..6921a423d49 --- /dev/null +++ b/desktop/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub desktop Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:55Z + Weekly Trending of desktop in GitHub + + \ No newline at end of file diff --git a/dhall/daily/index.xml b/dhall/daily/index.xml index 833d52d474c..1ed910dd7af 100644 --- a/dhall/daily/index.xml +++ b/dhall/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dhall Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:41Z + 2023-09-24T01:29:24Z Daily Trending of Dhall in GitHub \ No newline at end of file diff --git a/dhall/weekly/index.xml b/dhall/weekly/index.xml new file mode 100644 index 00000000000..80824829666 --- /dev/null +++ b/dhall/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Dhall Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:53Z + Weekly Trending of Dhall in GitHub + + \ No newline at end of file diff --git a/diff/daily/index.xml b/diff/daily/index.xml index 612586c9e84..5c0b8261779 100644 --- a/diff/daily/index.xml +++ b/diff/daily/index.xml @@ -1,7 +1,7 @@ GitHub Diff Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:40Z + 2023-09-24T01:29:22Z Daily Trending of Diff in GitHub \ No newline at end of file diff --git a/diff/weekly/index.xml b/diff/weekly/index.xml new file mode 100644 index 00000000000..1f7cc0f71bd --- /dev/null +++ b/diff/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Diff Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:54Z + Weekly Trending of Diff in GitHub + + \ No newline at end of file diff --git a/digital-command-language/daily/index.xml b/digital-command-language/daily/index.xml index 94882800bff..064c991e144 100644 --- a/digital-command-language/daily/index.xml +++ b/digital-command-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub DIGITAL Command Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:42Z + 2023-09-24T01:29:23Z Daily Trending of DIGITAL Command Language in GitHub \ No newline at end of file diff --git a/digital-command-language/weekly/index.xml b/digital-command-language/weekly/index.xml new file mode 100644 index 00000000000..2f00ef75822 --- /dev/null +++ b/digital-command-language/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub DIGITAL Command Language Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:52Z + Weekly Trending of DIGITAL Command Language in GitHub + + \ No newline at end of file diff --git a/dircolors/daily/index.xml b/dircolors/daily/index.xml index 14bf628a052..ebc5aab4061 100644 --- a/dircolors/daily/index.xml +++ b/dircolors/daily/index.xml @@ -1,7 +1,7 @@ GitHub dircolors Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:46Z + 2023-09-24T01:29:26Z Daily Trending of dircolors in GitHub \ No newline at end of file diff --git a/dircolors/weekly/index.xml b/dircolors/weekly/index.xml new file mode 100644 index 00000000000..886985911fc --- /dev/null +++ b/dircolors/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub dircolors Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:56Z + Weekly Trending of dircolors in GitHub + + \ No newline at end of file diff --git a/directx-3d-file/daily/index.xml b/directx-3d-file/daily/index.xml index f134def87f9..2768c5c9973 100644 --- a/directx-3d-file/daily/index.xml +++ b/directx-3d-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub DirectX 3D File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:47Z + 2023-09-24T01:29:28Z Daily Trending of DirectX 3D File in GitHub \ No newline at end of file diff --git a/directx-3d-file/weekly/index.xml b/directx-3d-file/weekly/index.xml new file mode 100644 index 00000000000..b143e4d2055 --- /dev/null +++ b/directx-3d-file/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub DirectX 3D File Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:57Z + Weekly Trending of DirectX 3D File in GitHub + + \ No newline at end of file diff --git a/dm/daily/index.xml b/dm/daily/index.xml index 77604e9a2ed..d77a740a0d5 100644 --- a/dm/daily/index.xml +++ b/dm/daily/index.xml @@ -1,7 +1,7 @@ GitHub DM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:48Z + 2023-09-24T01:29:30Z Daily Trending of DM in GitHub \ No newline at end of file diff --git a/dm/weekly/index.xml b/dm/weekly/index.xml new file mode 100644 index 00000000000..0bbec1f0d92 --- /dev/null +++ b/dm/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub DM Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:59Z + Weekly Trending of DM in GitHub + + \ No newline at end of file diff --git a/dns-zone/daily/index.xml b/dns-zone/daily/index.xml index ca4ac997f16..1a477898a81 100644 --- a/dns-zone/daily/index.xml +++ b/dns-zone/daily/index.xml @@ -1,7 +1,7 @@ GitHub DNS Zone Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:45Z + 2023-09-24T01:29:27Z Daily Trending of DNS Zone in GitHub \ No newline at end of file diff --git a/dns-zone/weekly/index.xml b/dns-zone/weekly/index.xml new file mode 100644 index 00000000000..6930a8edc67 --- /dev/null +++ b/dns-zone/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub DNS Zone Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:48:58Z + Weekly Trending of DNS Zone in GitHub + + \ No newline at end of file diff --git a/dockerfile/daily/index.xml b/dockerfile/daily/index.xml index bce4874517a..a6008c46b7a 100644 --- a/dockerfile/daily/index.xml +++ b/dockerfile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dockerfile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:54Z + 2023-09-24T01:29:36Z Daily Trending of Dockerfile in GitHub \ No newline at end of file diff --git a/dockerfile/weekly/index.xml b/dockerfile/weekly/index.xml new file mode 100644 index 00000000000..9b2c392c802 --- /dev/null +++ b/dockerfile/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub Dockerfile Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:06Z + Weekly Trending of Dockerfile in GitHub + + + karaage0703/open-interpreter-docker + 2023-09-24T01:49:06Z + tag:github.com,2023-09-24:/karaage0703/open-interpreter-docker + + <p>open interpreter docker environment</p><hr><h1>open-interpreter-docker</h1> <p><a href="https://github.com/KillianLucas/open-interpreter">Open Interpreter</a> docker environment</p> <h2>Setup</h2> <p>Execute following command:</p> <pre><code class="language-sh">$ cd &amp;&amp; git clone https://github.com/karaage0703/open-interpreter-docker </code></pre> <h2>Simple</h2> <h3>Docker build</h3> <pre><code class="language-sh">$ cd ~/open-interpreter-docker $ docker build -t open-interpreter-simple ./container-simple </code></pre> <h3>Docker run</h3> <pre><code class="language-sh">$ cd ~/open-interpreter-docker $ docker run -it --rm -v $(pwd):/root open-interpreter-simple </code></pre> <h3>Run app</h3> <p>Execute following command in container:</p> <pre><code class="language-sh">root@hostname:~# interpreter -y </code></pre> <p>And enjoy open interpreter</p> <h2>GUI</h2> <h3>Docker build</h3> <pre><code class="language-sh">$ cd ~/open-interpreter-docker $ docker build -t open-interpreter-gui ./container-gui </code></pre> <h3>Docker run</h3> <pre><code class="language-sh">$ cd ~/open-interpreter-docker $ docker run -v $(pwd):/root -p 6080:80 open-interpreter-gui </code></pre> <h3>Run app</h3> <p>Browse <a href="http://127.0.0.1:6080/">http://127.0.0.1:6080/</a></p> <p>Enjoy open interpreter</p> <h2>References</h2> <ul> <li><a href="https://note.com/masia02/n/n630d091c4a02">https://note.com/masia02/n/n630d091c4a02</a></li> <li><a href="https://github.com/Frederic-Boulanger-UPS/docker-ubuntu_22-04-novnc">https://github.com/Frederic-Boulanger-UPS/docker-ubuntu_22-04-novnc</a></li> <li><a href="https://rooter.jp/infra-ops/build_docker_jp_env/">https://rooter.jp/infra-ops/build_docker_jp_env/</a></li> </ul> + + + DataDog/workload-security-evaluator + 2023-09-24T01:49:06Z + tag:github.com,2023-09-24:/DataDog/workload-security-evaluator + + <p>Tooling to simulate runtime attacks and test default runtime detections from Datadog Cloud Security Management.</p><hr><p>Workload Security Evaluator provides tooling to simulate runtime attacks and test default runtime detections from Datadog Cloud Security Management. Tests are completed using <a href="https://atomicredteam.io/">Atomic Red Team</a>.</p> <p>Read the <a href="https://datadoghq.com/blog/workload-security-evaluator">corresponding blog post</a> for more details.</p> <ul> <li><a href="https://raw.githubusercontent.com/DataDog/workload-security-evaluator/main/#requirements">Requirements</a></li> <li><a href="https://raw.githubusercontent.com/DataDog/workload-security-evaluator/main/#getting-started">Getting started</a></li> <li><a href="https://raw.githubusercontent.com/DataDog/workload-security-evaluator/main/#atomic-test-organization">Atomic test organization</a></li> <li><a href="https://raw.githubusercontent.com/DataDog/workload-security-evaluator/main/#test-against-real-world-threats">Test against real-world threats</a></li> <li><a href="https://raw.githubusercontent.com/DataDog/workload-security-evaluator/main/#techniques-not-relevant-to-production-workloads">Techniques not relevant to production workloads</a></li> </ul> <h2>Requirements</h2> <p>Workload Security Evaluator runs on Docker. For the most accurate results, Datadog recommends launching a compute instance in your preferred cloud provider. Alternatively, use a virtual machine or Docker Desktop. Apple silicon is not supported.</p> <h2>Getting started</h2> <ol> <li>Build and run the containers with the following commands.</li> </ol> <pre><code>export DD_API_KEY="&lt;api-key&gt;" # Found at https://app.datadoghq.com/organization-settings/api-keys docker compose build docker compose up -d </code></pre> <ol start="2"> <li>Enter the evaluator container and run atomics.</li> </ol> <pre><code>docker exec -it atomicredteam /usr/bin/pwsh Invoke-AtomicTest T1105-27 -ShowDetails Invoke-AtomicTest T1105-27 -GetPrereqs # Download packages or payloads Invoke-AtomicTest T1105-27 </code></pre> <ol start="3"> <li>Check for a signal in the Datadog <a href="https://app.datadoghq.com/security?query=env%3Aemulation">Signals Explorer</a> page. Signals from Workload Security Evaluator are tagged with <code>env:emulation</code> to differentiate them from real security threats.</li> <li>Revert the changes made by the atomic.</li> </ol> <pre><code>Invoke-AtomicTest T1053.003-2 -Cleanup </code></pre> <ol start="5"> <li>Repeat with a different atomic.</li> <li>Shutdown the containers.</li> </ol> <pre><code>docker compose down </code></pre> <h2>Atomic test organization</h2> <p><a href="https://atomicredteam.io/">Atomic Red Team</a> often contains multiple tests for the same ATT&amp;CK technique. For example, the test identifier T1136.001-1 refers to the first test for MITRE ATT&amp;CK technique T1136.001 (Create Account: Local Account). This test creates an account on a Linux system. The second test, T1136.001-2, creates an account on a MacOS system.</p> <h2>Test against real-world threats</h2> <p>The following atomics are recommended as a starting point. They emulate techniques that were observed in real attacks targeting cloud workloads.</p> <table> <thead> <tr> <th>Atomic ID</th> <th>Atomic Name</th> <th>Datadog Rule</th> <th>Source</th> </tr> </thead> <tbody> <tr> <td>T1105-27</td> <td><a href="https://atomicredteam.io/command-and-control/T1105/#atomic-test-27---linux-download-file-and-run">Linux Download File and Run</a></td> <td><a href="https://docs.datadoghq.com/security/default_rules/executable_bit_added/">Executable bit added to new file</a></td> <td><a href="https://blog.talosintelligence.com/teamtnt-targeting-aws-alibaba-2/">Source</a></td> </tr> <tr> <td>T1046-2</td> <td><a href="https://atomicredteam.io/discovery/T1046/#atomic-test-2---port-scan-nmap">Port Scan Nmap</a></td> <td><a href="https://docs.datadoghq.com/security/default_rules/common_net_intrusion_util/">Network scanning utility executed</a></td> <td><a href="https://blog.talosintelligence.com/teamtnt-targeting-aws-alibaba-2/">Source</a></td> </tr> <tr> <td>T1574.006-1</td> <td><a href="https://atomicredteam.io/defense-evasion/T1574.006/#atomic-test-1---shared-library-injection-via-etcldsopreload">Shared Library Injection via /etc/ld.so.preload</a></td> <td><a href="https://docs.datadoghq.com/security/default_rules/suspected_dynamic_linker_hijacking/">Suspected dynamic linker hijacking attempt</a></td> <td><a href="https://unit42.paloaltonetworks.com/hildegard-malware-teamtnt/">Source</a></td> </tr> <tr> <td>T1053.003-2</td> <td><a href="https://atomicredteam.io/privilege-escalation/T1053.003/#atomic-test-2---cron---add-script-to-all-cron-subfolders">Cron - Add script to all cron subfolders</a></td> <td><a href="https://docs.datadoghq.com/security/default_rules/cron_at_job_injection/">Cron job modified</a></td> <td><a href="https://blog.talosintelligence.com/rocke-champion-of-monero-miners/">Source</a></td> </tr> <tr> <td>T1070.003-1</td> <td><a href="https://atomicredteam.io/defense-evasion/T1070.003/#atomic-test-1---clear-bash-history-(rm)">Clear Bash history (rm)</a></td> <td><a href="https://docs.datadoghq.com/security/default_rules/shell_history_tamper/">Shell command history modified</a></td> <td><a href="https://unit42.paloaltonetworks.com/hildegard-malware-teamtnt/">Source</a></td> </tr> </tbody> </table> <p>For a full list of Datadog's runtime detections, visit the <a href="https://docs.datadoghq.com/security/default_rules/#cat-workload-security">Out-of-the-box (OOTB) rules</a> page. MITRE ATT&amp;CK tactic and technique information is provided for every rule.</p> <h2>Techniques not relevant to production workloads</h2> <p>The MITRE ATT&amp;CK <a href="https://attack.mitre.org/matrices/enterprise/linux/">Linux Matrix</a> contains techniques for Linux hosts with a variety of purposes. Testing the techniques located in <a href="https://raw.githubusercontent.com/DataDog/workload-security-evaluator/main/notrelevant.md">notrelevant.md</a> is not recommended, because they are focused on Linux workstations or are unlikely to be detected using operating system events.</p> <p><a href="https://mitre-attack.github.io/attack-navigator//#layerURL=https%3A%2F%2Fraw%2Egithubusercontent%2Ecom%2FDataDog%2Fworkload-security-evaluator%2Fmain%2Fnotrelevant_layer%2Ejson">Visualize with ATT&amp;CK Navigator</a>.</p> + + \ No newline at end of file diff --git a/dogescript/daily/index.xml b/dogescript/daily/index.xml index 14ae0b6c245..1a1297b2285 100644 --- a/dogescript/daily/index.xml +++ b/dogescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dogescript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:50Z + 2023-09-24T01:29:32Z Daily Trending of Dogescript in GitHub \ No newline at end of file diff --git a/dogescript/weekly/index.xml b/dogescript/weekly/index.xml new file mode 100644 index 00000000000..3afac32009e --- /dev/null +++ b/dogescript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Dogescript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:01Z + Weekly Trending of Dogescript in GitHub + + \ No newline at end of file diff --git a/dtrace/daily/index.xml b/dtrace/daily/index.xml index c976ee012d8..e501368c6cc 100644 --- a/dtrace/daily/index.xml +++ b/dtrace/daily/index.xml @@ -1,7 +1,7 @@ GitHub DTrace Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:25:50Z + 2023-09-24T01:29:31Z Daily Trending of DTrace in GitHub \ No newline at end of file diff --git a/dtrace/weekly/index.xml b/dtrace/weekly/index.xml new file mode 100644 index 00000000000..0f077635c2a --- /dev/null +++ b/dtrace/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub DTrace Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:02Z + Weekly Trending of DTrace in GitHub + + \ No newline at end of file diff --git a/dylan/daily/index.xml b/dylan/daily/index.xml index b1ef5554889..94ff2b15518 100644 --- a/dylan/daily/index.xml +++ b/dylan/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dylan Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:26Z + 2023-09-24T01:29:51Z Daily Trending of Dylan in GitHub \ No newline at end of file diff --git a/dylan/weekly/index.xml b/dylan/weekly/index.xml new file mode 100644 index 00000000000..dd15ebce5b1 --- /dev/null +++ b/dylan/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Dylan Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:29Z + Weekly Trending of Dylan in GitHub + + \ No newline at end of file diff --git a/e-mail/daily/index.xml b/e-mail/daily/index.xml index 6cc3673003e..a6b1ce07311 100644 --- a/e-mail/daily/index.xml +++ b/e-mail/daily/index.xml @@ -1,7 +1,7 @@ GitHub E-mail Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:46Z + 2023-09-24T01:30:12Z Daily Trending of E-mail in GitHub \ No newline at end of file diff --git a/e-mail/weekly/index.xml b/e-mail/weekly/index.xml new file mode 100644 index 00000000000..ebc692186f7 --- /dev/null +++ b/e-mail/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub E-mail Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:49Z + Weekly Trending of E-mail in GitHub + + \ No newline at end of file diff --git a/e/daily/index.xml b/e/daily/index.xml index 5c3db0eb76a..4fde4b286e2 100644 --- a/e/daily/index.xml +++ b/e/daily/index.xml @@ -1,7 +1,7 @@ GitHub E Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:24Z + 2023-09-24T01:29:49Z Daily Trending of E in GitHub \ No newline at end of file diff --git a/e/weekly/index.xml b/e/weekly/index.xml new file mode 100644 index 00000000000..dfd64ee067b --- /dev/null +++ b/e/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub E Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:28Z + Weekly Trending of E in GitHub + + \ No newline at end of file diff --git a/eagle/daily/index.xml b/eagle/daily/index.xml index 9297015fd00..641e4748c39 100644 --- a/eagle/daily/index.xml +++ b/eagle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Eagle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:23Z + 2023-09-24T01:29:50Z Daily Trending of Eagle in GitHub \ No newline at end of file diff --git a/eagle/weekly/index.xml b/eagle/weekly/index.xml new file mode 100644 index 00000000000..f9ac6567bfb --- /dev/null +++ b/eagle/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Eagle Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:27Z + Weekly Trending of Eagle in GitHub + + \ No newline at end of file diff --git a/earthly/daily/index.xml b/earthly/daily/index.xml index 98bf3042bb5..0258928006c 100644 --- a/earthly/daily/index.xml +++ b/earthly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Earthly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:29Z + 2023-09-24T01:29:55Z Daily Trending of Earthly in GitHub \ No newline at end of file diff --git a/earthly/weekly/index.xml b/earthly/weekly/index.xml new file mode 100644 index 00000000000..337c670d9b3 --- /dev/null +++ b/earthly/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Earthly Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:33Z + Weekly Trending of Earthly in GitHub + + \ No newline at end of file diff --git a/easybuild/daily/index.xml b/easybuild/daily/index.xml index f4a2972a4ab..3da5f79fe2b 100644 --- a/easybuild/daily/index.xml +++ b/easybuild/daily/index.xml @@ -1,7 +1,7 @@ GitHub Easybuild Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:30Z + 2023-09-24T01:29:54Z Daily Trending of Easybuild in GitHub \ No newline at end of file diff --git a/easybuild/weekly/index.xml b/easybuild/weekly/index.xml new file mode 100644 index 00000000000..7c0f62f738b --- /dev/null +++ b/easybuild/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Easybuild Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:31Z + Weekly Trending of Easybuild in GitHub + + \ No newline at end of file diff --git a/ebnf/daily/index.xml b/ebnf/daily/index.xml index 9b39bab3341..d2fad1759eb 100644 --- a/ebnf/daily/index.xml +++ b/ebnf/daily/index.xml @@ -1,7 +1,7 @@ GitHub EBNF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:28Z + 2023-09-24T01:29:52Z Daily Trending of EBNF in GitHub \ No newline at end of file diff --git a/ebnf/weekly/index.xml b/ebnf/weekly/index.xml new file mode 100644 index 00000000000..9209ea15905 --- /dev/null +++ b/ebnf/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub EBNF Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:32Z + Weekly Trending of EBNF in GitHub + + \ No newline at end of file diff --git a/ec/daily/index.xml b/ec/daily/index.xml index ba191d0e73a..c58f97ae597 100644 --- a/ec/daily/index.xml +++ b/ec/daily/index.xml @@ -1,7 +1,7 @@ GitHub eC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:27Z + 2023-09-24T01:29:53Z Daily Trending of eC in GitHub \ No newline at end of file diff --git a/ec/weekly/index.xml b/ec/weekly/index.xml new file mode 100644 index 00000000000..406a7a27d4c --- /dev/null +++ b/ec/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub eC Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:34Z + Weekly Trending of eC in GitHub + + \ No newline at end of file diff --git a/ecere-projects/daily/index.xml b/ecere-projects/daily/index.xml index a9aa55af18d..44a6dff727b 100644 --- a/ecere-projects/daily/index.xml +++ b/ecere-projects/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ecere Projects Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:33Z + 2023-09-24T01:29:58Z Daily Trending of Ecere Projects in GitHub \ No newline at end of file diff --git a/ecere-projects/weekly/index.xml b/ecere-projects/weekly/index.xml new file mode 100644 index 00000000000..2b5bf23a4d7 --- /dev/null +++ b/ecere-projects/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ecere Projects Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:36Z + Weekly Trending of Ecere Projects in GitHub + + \ No newline at end of file diff --git a/ecl/daily/index.xml b/ecl/daily/index.xml index fc945f33b1a..792f7992181 100644 --- a/ecl/daily/index.xml +++ b/ecl/daily/index.xml @@ -1,7 +1,7 @@ GitHub ECL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:34Z + 2023-09-24T01:29:56Z Daily Trending of ECL in GitHub \ No newline at end of file diff --git a/ecl/weekly/index.xml b/ecl/weekly/index.xml new file mode 100644 index 00000000000..dfac0376125 --- /dev/null +++ b/ecl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ECL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:36Z + Weekly Trending of ECL in GitHub + + \ No newline at end of file diff --git a/eclipse/daily/index.xml b/eclipse/daily/index.xml index f310c6d66ba..2f6c3c917c2 100644 --- a/eclipse/daily/index.xml +++ b/eclipse/daily/index.xml @@ -1,7 +1,7 @@ GitHub ECLiPSe Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:31Z + 2023-09-24T01:29:57Z Daily Trending of ECLiPSe in GitHub \ No newline at end of file diff --git a/eclipse/weekly/index.xml b/eclipse/weekly/index.xml new file mode 100644 index 00000000000..ece8d085302 --- /dev/null +++ b/eclipse/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ECLiPSe Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:37Z + Weekly Trending of ECLiPSe in GitHub + + \ No newline at end of file diff --git a/editorconfig/daily/index.xml b/editorconfig/daily/index.xml index e91e494d194..d8553b0cc2c 100644 --- a/editorconfig/daily/index.xml +++ b/editorconfig/daily/index.xml @@ -1,7 +1,7 @@ GitHub EditorConfig Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:36Z + 2023-09-24T01:30:01Z Daily Trending of EditorConfig in GitHub \ No newline at end of file diff --git a/editorconfig/weekly/index.xml b/editorconfig/weekly/index.xml new file mode 100644 index 00000000000..1df78a83b32 --- /dev/null +++ b/editorconfig/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub EditorConfig Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:41Z + Weekly Trending of EditorConfig in GitHub + + \ No newline at end of file diff --git a/edje-data-collection/daily/index.xml b/edje-data-collection/daily/index.xml index 85451cadc6c..dad9a5e690b 100644 --- a/edje-data-collection/daily/index.xml +++ b/edje-data-collection/daily/index.xml @@ -1,7 +1,7 @@ GitHub Edje Data Collection Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:37Z + 2023-09-24T01:30:03Z Daily Trending of Edje Data Collection in GitHub \ No newline at end of file diff --git a/edje-data-collection/weekly/index.xml b/edje-data-collection/weekly/index.xml new file mode 100644 index 00000000000..8f9398b73e6 --- /dev/null +++ b/edje-data-collection/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Edje Data Collection Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:40Z + Weekly Trending of Edje Data Collection in GitHub + + \ No newline at end of file diff --git a/edn/daily/index.xml b/edn/daily/index.xml index 8b56b8dc39e..bbe77a8a813 100644 --- a/edn/daily/index.xml +++ b/edn/daily/index.xml @@ -1,7 +1,7 @@ GitHub edn Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:35Z + 2023-09-24T01:30:02Z Daily Trending of edn in GitHub \ No newline at end of file diff --git a/edn/weekly/index.xml b/edn/weekly/index.xml new file mode 100644 index 00000000000..326a220aa15 --- /dev/null +++ b/edn/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub edn Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:39Z + Weekly Trending of edn in GitHub + + \ No newline at end of file diff --git a/eiffel/daily/index.xml b/eiffel/daily/index.xml index 00e01e992ca..3cec22ca18f 100644 --- a/eiffel/daily/index.xml +++ b/eiffel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Eiffel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:38Z + 2023-09-24T01:30:00Z Daily Trending of Eiffel in GitHub \ No newline at end of file diff --git a/eiffel/weekly/index.xml b/eiffel/weekly/index.xml new file mode 100644 index 00000000000..dfa8e120b59 --- /dev/null +++ b/eiffel/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Eiffel Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:38Z + Weekly Trending of Eiffel in GitHub + + \ No newline at end of file diff --git a/ejs/daily/index.xml b/ejs/daily/index.xml index 9f5050d9c3e..7c41e7e0ada 100644 --- a/ejs/daily/index.xml +++ b/ejs/daily/index.xml @@ -1,7 +1,7 @@ GitHub EJS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:41Z + 2023-09-24T01:30:06Z Daily Trending of EJS in GitHub \ No newline at end of file diff --git a/ejs/weekly/index.xml b/ejs/weekly/index.xml new file mode 100644 index 00000000000..18a54c5be3e --- /dev/null +++ b/ejs/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub EJS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:45Z + Weekly Trending of EJS in GitHub + + + maheshbasnet089/NodeSepProjectCMS + 2023-09-24T01:49:45Z + tag:github.com,2023-09-24:/maheshbasnet089/NodeSepProjectCMS + + <p></p><hr> + + + bontakun/bontasite.js + 2023-09-24T01:49:45Z + tag:github.com,2023-09-24:/bontakun/bontasite.js + + <p>This is the node.js site that I built to host the basic content of my site, I exert copyright over all the content, but souce code is free under an open source license yet to be determined.</p><hr> + + \ No newline at end of file diff --git a/elixir/daily/index.xml b/elixir/daily/index.xml index 660ec2abc13..effd1a10fc3 100644 --- a/elixir/daily/index.xml +++ b/elixir/daily/index.xml @@ -1,7 +1,7 @@ GitHub Elixir Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:44Z + 2023-09-24T01:30:09Z Daily Trending of Elixir in GitHub \ No newline at end of file diff --git a/elixir/weekly/index.xml b/elixir/weekly/index.xml new file mode 100644 index 00000000000..aa74b4f0eeb --- /dev/null +++ b/elixir/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Elixir Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:48Z + Weekly Trending of Elixir in GitHub + + + geolessel/vox + 2023-09-24T01:49:48Z + tag:github.com,2023-09-24:/geolessel/vox + + <p>The static site builder for Elixir lovers</p><hr> + + + carsdotcom/car_req + 2023-09-24T01:49:48Z + tag:github.com,2023-09-24:/carsdotcom/car_req + + <p></p><hr> + + + valuechainfactory/vc_utils + 2023-09-24T01:49:48Z + tag:github.com,2023-09-24:/valuechainfactory/vc_utils + + <p>Tools and helpers we constantly find repeated in most of our projects.</p><hr> + + \ No newline at end of file diff --git a/elm/daily/index.xml b/elm/daily/index.xml index 8b9e239b36c..e40c8c8d04b 100644 --- a/elm/daily/index.xml +++ b/elm/daily/index.xml @@ -1,7 +1,7 @@ GitHub Elm Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:40Z + 2023-09-24T01:30:04Z Daily Trending of Elm in GitHub \ No newline at end of file diff --git a/elm/weekly/index.xml b/elm/weekly/index.xml new file mode 100644 index 00000000000..232812b9f99 --- /dev/null +++ b/elm/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Elm Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:42Z + Weekly Trending of Elm in GitHub + + \ No newline at end of file diff --git a/emacs-lisp/daily/index.xml b/emacs-lisp/daily/index.xml index 512e0014819..9261e9d495f 100644 --- a/emacs-lisp/daily/index.xml +++ b/emacs-lisp/daily/index.xml @@ -1,7 +1,14 @@ GitHub Emacs Lisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:50Z + 2023-09-24T01:30:15Z Daily Trending of Emacs Lisp in GitHub + + emacs-straight/vundo + 2023-09-24T01:30:15Z + tag:github.com,2023-09-24:/emacs-straight/vundo + + <p>Mirror of the vundo package from GNU ELPA, current as of 2023-09-24</p><hr><p>Vundo is now available on ELPA!</p> <p>Vundo (visual undo) displays the undo history as a tree and lets you move in the tree to go back to previous buffer states. To use vundo, type M-x vundo RET in the buffer you want to undo. An undo tree buffer should pop up. To move around, type:</p> <p>f to go forward b to go backward</p> <p>n to go to the node below when you at a branching point p to go to the node above</p> <p>a to go back to the last branching point e to go forward to the end/tip of the branch</p> <p>q to quit, you can also type C-g</p> <p>C-c C-s (or whatever binding you used for save-buffer) to save the buffer at the current undo state</p> <p>n/p may need some more explanation. In the following tree, n/p can move between A and B because they share a parent (thus at a branching point), but not C and D. To make it clear, branches you can switch between are highlighted with bold face.</p> <pre><code> A C ──○━━○──○──○──○ ┃ ↕︎ ┗━━○──○──○ B D </code></pre> <p>By default, you need to press RET to “commit” your change and if you quit with q or C-g, the changes made by vundo are rolled back. You can set ‘vundo-roll-back-on-quit’ to nil to disable rolling back.</p> <p>You might see some green nodes in the tree, those are the buffer states that have been saved to disk; the last saved node is emphasized in bold. You can type "l" to jump to the last saved node.</p> <p>Note: vundo.el requires Emacs 28.</p> <p>Customizable faces:</p> <ul> <li>vundo-default</li> <li>vundo-node</li> <li>vundo-stem</li> <li>vundo-highlight</li> <li>vundo-saved</li> <li>vundo-last-saved</li> </ul> <p>If you want to use prettier Unicode characters to draw the tree like this:</p> <pre><code>○──○──○ │ └──● ├──○ └──○ </code></pre> <p>set vundo-glyph-alist by</p> <pre><code>(setq vundo-glyph-alist vundo-unicode-symbols) </code></pre> <p>Your default font needs to contain these Unicode characters, otherwise they look terrible and don’t align. You can find a font that covers these characters (eg, Symbola, Unifont), and set ‘vundo-default’ face to use that font:</p> <pre><code>(set-face-attribute 'vundo-default nil :family "Symbola") </code></pre> <p>Comparing to undo-tree:</p> <p>Vundo doesn’t need to be turned on all the time nor replace the undo commands like undo-tree does. Vundo displays the tree horizontally, whereas undo-tree displays a tree vertically. Vundo doesn’t have many advanced features that undo-tree does (like showing diff), and most probably will not add those features in the future.</p> <p>Tests:</p> <p>You can run tests by loading test/vundo-test.el and M-x ert RET t RET to run those tests interactively, or use the following batch command:</p> <pre><code> emacs --batch \ -l vundo.el \ -l test/vundo-test.el \ -f ert-run-tests-batch-and-exit </code></pre> <p>Changelog (full changelog in NEWS.txt):</p> <p>&lt;2022-04-04 Mon&gt;: Version 1.0.0</p> <p>&lt;2022-03-29 Tue&gt;: vundo--mode and vundo--mode-map are now vundo-mode and vundo-mode-map. A new custom option vundo-compact-display is added.</p> <p>&lt;2022-03-23 Wed&gt;: UI now defaults to ASCII mode. ASCII mode also draws differently now, it now draws</p> <pre><code>o--o--o instead of o--o--o | `--x | +--* |--o |--o `--o +--o </code></pre> <p>&lt;2021-11-26 Fri&gt;: Variable vundo-translate-alist changed to vundo-glyph-alist and has different value now.</p> + \ No newline at end of file diff --git a/emacs-lisp/weekly/index.xml b/emacs-lisp/weekly/index.xml new file mode 100644 index 00000000000..a8c9eaf8c76 --- /dev/null +++ b/emacs-lisp/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Emacs Lisp Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:54Z + Weekly Trending of Emacs Lisp in GitHub + + + ysano/dotfiles + 2023-09-24T01:49:54Z + tag:github.com,2023-09-24:/ysano/dotfiles + + <p></p><hr><h1>dotfiles</h1> <p>dot dot dot</p> + + + emacsorphanage/quickrun + 2023-09-24T01:49:54Z + tag:github.com,2023-09-24:/emacsorphanage/quickrun + + <p>Run command quickly. This packages is inspired quickrun.vim</p><hr><p><a href="https://melpa.org/#/quickrun"><img src="https://melpa.org/packages/quickrun-badge.svg?sanitize=true" alt="melpa badge"></a> <a href="https://stable.melpa.org/#/quickrun"><img src="https://stable.melpa.org/packages/quickrun-badge.svg?sanitize=true" alt="melpa stable badge"></a></p> <h1>quickrun.el</h1> <h2>Introduction</h2> <p><strong>quickrun.el</strong> is Emacs port of <a href="https://github.com/thinca/vim-quickrun">quickrun.vim</a>.</p> <p><a href="https://github.com/emacsorphanage/quickrun/actions/workflows/test.yml"><img src="https://github.com/emacsorphanage/quickrun/actions/workflows/test.yml/badge.svg?sanitize=true" alt="CI"></a></p> <p><code>quickrun.el</code> is a extension to execute editing buffer. <code>quickrun.el</code> is similar to executable-interpret, but <code>quickrun.el</code> provides more convenient commands. <code>quickrun.el</code> execute not only script languages(Perl, Ruby, Python etc), but also compiling languages(C, C++, Go, Java etc) and markup language.</p> <h2>Requirements</h2> <ul> <li>Emacs 24.3 or higher.</li> </ul> <h2>Installation</h2> <p>You can install <code>quickrun.el</code> from <a href="https://melpa.org/">MELPA</a> with package.el.</p> <p>Or install directly:</p> <pre><code>$ cd load-path-dir $ wget https://raw.githubusercontent.com/syohex/emacs-quickrun/master/quickrun.el </code></pre> <p>After Installation add following to your configuration file(~/.emacs.d/init.el, ~/.emacs etc)</p> <pre><code class="language-lisp">(require 'quickrun) </code></pre> <h2>Support Programming Languages</h2> <p><code>quickrun.el</code> supports following programming languages and markup languages as default. But you can register your own command and apply other languages.</p> <p><strong>Programming Language(commands used)</strong></p> <ul> <li>C (<code>gcc</code> / <code>clang</code> / <code>Visual C++</code>)</li> <li>C++ (<code>g++</code> / <code>clang++</code> / <code>Visual C++</code>)</li> <li>C# (<code>dotnet</code> / <code>mono</code>)</li> <li>Objective-C (gcc -objc)</li> <li>D Language (<code>dmd</code>)</li> <li>Fortran (<code>gfortran</code>)</li> <li>Java (<code>javac</code> / <code>java</code>)</li> <li>Perl (<code>perl</code>)</li> <li>Perl6 (<code>perl6</code>)</li> <li>Ruby (<code>ruby</code> / <code>mruby</code>)</li> <li>Python (<code>python</code>)</li> <li>PHP (<code>php</code>)</li> <li>Emacs Lisp (<code>emacs</code>)</li> <li>Scheme (<code>gosh</code>)</li> <li>Smalltalk (<code>gst</code>)</li> <li>Racket (<code>racket</code>)</li> <li>Common Lisp (<code>clisp</code> / <code>sbcl</code> / <code>ccl</code>)</li> <li>Clojure (<code>jark</code> / <code>clj-env-dir</code>)</li> <li>Javascript (<code>node</code> / <code>v8</code> / <code>js</code> / <code>jrunscript</code> / <code>cscript</code> / <code>deno</code>)</li> <li>Coffee Script (<code>coffee</code>)</li> <li>JSX (<code>jsx</code>)</li> <li>Markdown (<code>Markdown.pl</code> / <code>bluecloth</code> / <code>kramdown</code> / <code>pandoc</code> / <code>redcarpet</code>)</li> <li>Haskell (<code>runghc</code>)</li> <li>Go Language (<code>go</code> / <code>gccgo</code>)</li> <li>Io (<code>io</code>)</li> <li>Lua (<code>lua</code>)</li> <li>Groovy (<code>groovy</code>)</li> <li>Scala (<code>scala</code>) <strong>Please use UTF-8 encoding</strong></li> <li>HAML (<code>haml</code>)</li> <li>SASS (<code>sass</code>)</li> <li>LESS (<code>lessc</code>)</li> <li>Erlang (<code>escript</code>)</li> <li>OCaml (<code>ocamlc</code>)</li> <li>F# (<code>fsharpc</code>)</li> <li>ShellScript (shebang's shell)</li> <li>AWK (<code>awk</code>)</li> <li>Rust (<code>rustc</code>)</li> <li>Dart (<code>dart</code>)</li> <li>Elixir (<code>elixir</code>)</li> <li>TypeScript (<code>tsc</code>)</li> <li>Tcl (<code>tclsh</code>)</li> <li>Swift (<code>swift</code>, <code>xcrun</code>)</li> <li>ATS2 (<code>patscc</code>)</li> <li>R (<code>Rscript</code>)</li> <li>Nim/NimScript (<code>nim</code>)</li> <li>Julia (<code>julia</code>)</li> <li>Gnuplot (<code>gnuplot</code>)</li> <li>Kotlin (<code>kotlin</code>)</li> <li>Crystal (<code>crystal</code>)</li> <li>V (<code>v</code>)</li> <li>Applescript (<code>osascript</code>)</li> <li>Assembly Language (<code>nasm</code>, <code>masm</code>)</li> </ul> <p>See also <code>quickrun--support-languages</code> global variable.</p> <h2>Basic Usage</h2> <h4><code>quickrun</code></h4> <p>Execute current buffer. If <code>quickrun.el</code> does not find command-key, then <code>quickrun.el</code> asks you command-key(You always input command if you use <code>C-u</code> prefix key)</p> <h4><code>quickrun-select</code></h4> <p>Like <code>quickrun</code> command but select the backend before the execution.</p> <h4><code>quickrun-region</code></h4> <p>Execute region. (Java is not supported)</p> <h4><code>quickrun-with-arg</code></h4> <p>Execute current buffer with arguments. <code>quickrun.el</code> asks you command line argument</p> <h4><code>quickrun-shell</code></h4> <p>Execute current buffer in eshell for interactive command such as program which reads input from STDIN.</p> <h4><code>quickrun-compile-only</code></h4> <p>Compile current buffer with compile.el framework, not execute. quickrun with <code>C-u C-u</code> prefix behaves same as quickrun-compile-only.</p> <h4><code>quickrun-compile-only-select</code></h4> <p>Like <code>quickrun-compile-only</code> command but select the backend before the execution.</p> <h4><code>quickrun-replace-region</code></h4> <p>Replace region of code with its output.</p> <h3><code>quickrun-autorun-mode</code></h3> <p>Minor mode which executes <code>quickrun</code> after saving buffer.</p> <h4><code>helm-quickrun</code></h4> <p><code>M-x quickrun</code> with helm interface</p> <h4><code>anything-quickrun</code></h4> <p><code>M-x quickrun</code> with anything interface</p> <h2>Note</h2> <p>If quickrun returns <code>command not found</code>, please check <code>(executable-find "THE_COMMAND_NAME")</code> [for example <code>(executable-find "gnuplot")</code>] . If this returns <code>nil</code>, I strongly recommend you use <a href="https://github.com/purcell/exec-path-from-shell">https://github.com/purcell/exec-path-from-shell</a></p> <h2>Send File to STDIN</h2> <p>If <code>executed_file.qrinput</code>(like <code>foo.c.qrinput</code>) is existed in directory same as executed buffer file, <code>quickrun.el</code> sends its content to stdin of executed program. Please set <code>quickrun-input-file-extension</code> to <code>nil</code> If you want to disable this feature.</p> <h2>Customize</h2> <h3><code>quickrun-focus-p</code>(Default: <code>t</code>)</h3> <p>If this value is <code>nil</code>, quickrun.el does not move focus to output buffer.</p> <h3><code>quickrun-truncate-lines</code>(Default: <code>t</code>)</h3> <p>The <code>truncate-lines' value for </code><em>quickrun</em>` buffer.</p> <h2>User Defined Command</h2> <p>You can add your own command or override existsing command by <code>quickrun-add-command</code> as below.</p> <pre><code class="language-lisp">;; Use this parameter as C++ default (quickrun-add-command "c++/c1z" '((:command . "g++") (:exec . ("%c -std=c++1z %o -o %e %s" "%e %a")) (:remove . ("%e"))) :default "c++") ;; Use this parameter in pod-mode (quickrun-add-command "pod" '((:command . "perldoc") (:exec . "%c -T -F %s")) :mode 'pod-mode) ;; You can override existing command (quickrun-add-command "c/gcc" '((:exec . ("%c -std=c++1z %o -o %e %s" "%e %a"))) :override t) </code></pre> <p>First argument of <code>quickrun-add-command</code> is command key. Second argument of it is command parameter, which is described laster. <code>quickrun-add-command</code> also takes key parameters, <code>:default</code>, <code>:mode</code>, <code>:override</code>.</p> <table> <thead> <tr> <th align="left">Argument</th> <th align="left">Description</th> </tr> </thead> <tbody> <tr> <td align="left"><code>:default</code> lang</td> <td align="left">Use this command parameter as default in specified language</td> </tr> <tr> <td align="left"><code>:mode</code> mode</td> <td align="left">this command parameter in specified mode</td> </tr> <tr> <td align="left"><code>:override</code> bool</td> <td align="left">Override existing parameter with specified parameter</td> </tr> </tbody> </table> <h3>Command Parameter</h3> <p>Command alist has following parameters,</p> <h4><code>:command</code>(mandatory parameter)</h4> <p>Command name. <code>%c</code> is expanded into this value.</p> <h4><code>:cmdopt</code>(optional)</h4> <p>Command(<code>:command</code>) option. <code>%o</code> is expanded into this value.</p> <h4><code>:exec</code></h4> <p>Executed commands. You can also set command list parameter. If you set list parameter, <code>quickrun.el</code> executes command list in order.</p> <p>If this parameter is omitted, <code>quickrun.el</code> use default execute command template "%c %o %s %a".</p> <h4><code>:timeout</code>(optional)</h4> <p>Timeout in seconds for the process spawn by the command. This value takes precedence over the <code>quickrun-timeout-seconds</code> custom variable.</p> <h4><code>:compile-only</code></h4> <p>Command exected by <code>quickrun-compile-only</code>. This option is used for syntax check or converting another language(e.g. CoffeeScript =&gt; JavaScript).</p> <h3><code>:compile-conf</code></h3> <p>Configuration of <code>quickrun-compile-only</code>. This parameter must be alist.</p> <h4><code>:remove</code></h4> <p>Remove files after executing. If command create some intermediate files, you should set this parameter. :remove value is atom or list.</p> <h4><code>:outputter</code></h4> <p>Please see Outputter section.</p> <h4><code>:default-directory</code></h4> <p>Directory where commands are executed.</p> <h4><code>:tempfile</code></h4> <p>Use temporary file or not. <code>quickrun.el</code> uses temporary file if you omit this parameter.</p> <p>NOTE: If you set this parameter, you cannot use <code>quickrun-region</code>.</p> <h4><code>:description</code></h4> <p>Description of this command. This parameter is used in <code>helm-quickrun</code> or <code>anything-quickrun</code></p> <h3>Placeholders</h3> <p>You can use following placeholders in command parameter</p> <table> <thead> <tr> <th align="center">Placeholder</th> <th align="left">Expanded</th> </tr> </thead> <tbody> <tr> <td align="center"><code>%c</code></td> <td align="left">Command</td> </tr> <tr> <td align="center"><code>%o</code></td> <td align="left">Command line option</td> </tr> <tr> <td align="center"><code>%s</code></td> <td align="left">Source(absolute path)</td> </tr> <tr> <td align="center"><code>%a</code></td> <td align="left">Script's arguments</td> </tr> <tr> <td align="center"><code>%n</code></td> <td align="left">Source without extension(absolute path)</td> </tr> <tr> <td align="center"><code>%N</code></td> <td align="left">Source without extension(nondirectory)</td> </tr> <tr> <td align="center"><code>%d</code></td> <td align="left">Directory name of Source(absolute path)</td> </tr> <tr> <td align="center"><code>%e</code></td> <td align="left">Source with executable suffix(absolute path)</td> </tr> <tr> <td align="center"><code>%E</code></td> <td align="left">Source with executable suffix(nondirectory)</td> </tr> </tbody> </table> <p>Source file name(<code>%s</code>, <code>%n</code> etc) is not original file name except Java language. Because <code>quickrun.el</code> copys source file to temporary file firstly.</p> <h2>Change Default Command</h2> <p><code>quickrun-set-default</code> changes default command in language that is registerd multiple command parameters(like c, c++,Javascript).</p> <pre><code class="language-lisp">(quickrun-set-default "c" "c/clang") </code></pre> <p>This means that quickrun uses "c/clang" for C files.</p> <h2>Timeout Seconds</h2> <p><code>quickrun.el</code> kills process if program run over 10 seconds as default. This avoids infinite loop program or endless program by some mistakes. You control timeout second to set <code>quickrun-timeout-seconds</code>. This feature is disabled if <code>quickrun-timeout-seconds</code> is <code>nil</code>. The timeout can also be set per command with the <code>:timeout</code> parameter. (You can also kill process by <code>C-c C-c</code> in quickrun buffer)</p> <h2>Key bindings in quickrun buffer</h2> <table> <thead> <tr> <th align="center">Key</th> <th align="left">Command</th> </tr> </thead> <tbody> <tr> <td align="center"><code>q</code></td> <td align="left">Close quickrun window</td> </tr> <tr> <td align="center"><code>C-c C-c</code></td> <td align="left">Kill quickrun process</td> </tr> </tbody> </table> <h2>Buffer Local Variables</h2> <p>Buffer local variables is priority to default parameters.</p> <h4><code>quickrun-option-cmd-alist</code></h4> <p>Command alist.</p> <h4><code>quickrun-option-command</code></h4> <p>Command key(Expanded to %c)</p> <h4><code>quickrun-option-cmdkey</code></h4> <p>Command key of command parameter.</p> <h4><code>quickrun-option-cmdopt</code></h4> <p>Command option(Expanded to %o)</p> <h4><code>quickrun-option-args</code></h4> <p>Program argument(Expanded to %a.)</p> <h4><code>quickrun-option-shebang</code></h4> <p>If this value is <code>non-nil</code> and first line of source file is started "#!", the following string is treated as ":command".</p> <h4><code>quickrun-option-outputter</code></h4> <p>Outputter function. See <em>Outputter</em> section</p> <h3>Example of buffer local variable</h3> <p>Setting C++11.</p> <pre><code class="language-c++">#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;string&gt; int main (int argc, char *argv[]) { std::vector &lt;std::string&gt; lst = { "a", "b", "c", "d" }; for (auto x : lst) { std::cout &lt;&lt; "[" &lt;&lt; x &lt;&lt; "]" &lt;&lt; std::endl; } for (auto i = 1; i &lt; argc; i++) { std::cout &lt;&lt; "[" &lt;&lt; argv[i] &lt;&lt; "]" &lt;&lt; std::endl; } return 0; } /* Local Variables: quickrun-option-cmd-alist: ((:command . "g++") (:exec . ("%c -std=c++0x -o %n %s" "%n apple orange melon")) (:remove . ("%n"))) End: */ </code></pre> <h2>Hooks</h2> <h4><code>quickrun-after-run-hook</code></h4> <p>Run hooks after execute all commands.</p> <h2>Outputter</h2> <p>Outputter is a function for processing command output. Default outputter is to output to *quickrun* buffer and processing ANSI Color sequence.</p> <p><code>quickrun.el</code> defines following functions as default.</p> <h4><code>buffer:buffername</code></h4> <p>Output to buffer. <a href="https://raw.githubusercontent.com/emacsorphanage/quickrun/master/sample/sample_outputter_buffer.pl">outputter <em>buffer</em> sample</a></p> <h4><code>file:filename</code></h4> <p>Output to file. <a href="https://raw.githubusercontent.com/emacsorphanage/quickrun/master/sample/sample_outputter_file.pl">outputter <em>file</em> sample</a></p> <h4><code>variable:varname</code></h4> <p>Output to variable. <a href="https://raw.githubusercontent.com/emacsorphanage/quickrun/master/sample/sample_outputter_variable.pl">outputter <em>variable</em> sample</a></p> <h4><code>browser</code></h4> <p>Output to Web browser(using function <em>browse-url</em>) <a href="https://raw.githubusercontent.com/emacsorphanage/quickrun/master/sample/sample_outputter_browser.pl">outputter <em>browser</em> sample</a></p> <h4><code>message</code></h4> <p>Output to *Message* buffer(using function <em>message</em>) <a href="https://raw.githubusercontent.com/emacsorphanage/quickrun/master/sample/sample_outputter_message.pl">outputter <em>message</em> sample</a></p> <h4><code>multi</code></h4> <p>Use multiple outputters. <a href="https://raw.githubusercontent.com/emacsorphanage/quickrun/master/sample/sample_outputter_multi.pl">outputter <em>multi</em> sample</a></p> <h4><code>null</code></h4> <p>No output. <a href="https://raw.githubusercontent.com/emacsorphanage/quickrun/master/sample/sample_outputter_null.pl">outputter <em>null</em> sample</a></p> <h2>Using quickrun as function from other functions</h2> <p><code>quickrun</code> can be used as function from other functions. You can pass configuration by <code>:source</code> argument. Sample is following:</p> <pre><code class="language-lisp">(defun test-perl () (interactive) (let* ((cmd "git rev-parse --show-toplevel") (topdir (with-temp-buffer (call-process-shell-command cmd nil t nil) (goto-char (point-min)) (if (re-search-forward "^\\(.+\\)$" nil t) (match-string 1))))) (quickrun :source `((:command . "prove") (:default-directory . ,topdir) (:exec . ("%c -bv --color %s")))))) </code></pre> + + + magit/orgit + 2023-09-24T01:49:54Z + tag:github.com,2023-09-24:/magit/orgit + + <p>Support for Org links to Magit buffers</p><hr><ul> <li>Link to Magit buffers from Org documents</li> </ul> <p>This package defines several Org link types, which can be used to link to certain Magit buffers. Use the command <del>org-store-link</del> while such a buffer is current to store a link. Later you can insert it into an Org buffer using the command <del>org-insert-link</del>.</p> <p>** Format</p> <p>The three link types defined here take these forms:</p> <p>#+begin_src text orgit:/path/to/repo/ links to a magit-status buffer orgit-log:/path/to/repo/::REV links to a magit-log buffer orgit-rev:/path/to/repo/::ARGS links to a magit-revision buffer #+end_src</p> <p>Before <del>v1.3.0</del> only the first revision was stored in <del>orgit-log</del> links, and all other revisions were discarded. All other arguments were also discarded and Magit's usual mechanism for determining the switches and options was used instead.</p> <p>For backward compatibility, and because it is the common case and looks best, ARGS by default has the form <del>REV</del> as before. However if linking to a log buffer that shows the log for multiple revisions, then <del>("REV"...)</del> is used instead. If <del>orgit-log-save-arguments</del> is non-nil, then <del>(("REV"...) ("ARG"...) [("FILE"...)])</del> is always used, which allows restoring the buffer most faithfully.</p> <p>** Export</p> <p>When an Org file containing such links is exported, then the url of the remote configured with <del>orgit-remote</del> is used to generate a web url according to <del>orgit-export-alist</del>. That webpage should present approximately the same information as the Magit buffer would.</p> <p>Both the remote to be considered the public remote, as well as the actual web urls can be defined in individual repositories using Git variables.</p> <p>To use a remote different from <del>orgit-remote</del> but still use <del>orgit-export-alist</del> to generate the web urls, use:</p> <p>#+begin_src text git config orgit.remote REMOTE-NAME #+end_src</p> <p>To explicitly define the web urls, use something like:</p> <p>#+begin_src text git config orgit.status <a href="http://example.com/repo/overview">http://example.com/repo/overview</a> git config orgit.log <a href="http://example.com/repo/history/%r">http://example.com/repo/history/%r</a> git config orgit.rev <a href="http://example.com/repo/revision/%r">http://example.com/repo/revision/%r</a> #+end_src</p> <p>#+html: <br><br> #+html: <a href="https://github.com/magit/orgit/actions/workflows/compile.yml"><img alt="Compile" src="https://github.com/magit/orgit/actions/workflows/compile.yml/badge.svg?sanitize=true"></a> #+html: <a href="https://stable.melpa.org/#/orgit"><img alt="MELPA Stable" src="https://stable.melpa.org/packages/orgit-badge.svg?sanitize=true"></a> #+html: <a href="https://melpa.org/#/orgit"><img alt="MELPA" src="https://melpa.org/packages/orgit-badge.svg?sanitize=true"></a></p> + + \ No newline at end of file diff --git a/emberscript/daily/index.xml b/emberscript/daily/index.xml index 15b95c51711..f5c0ee93921 100644 --- a/emberscript/daily/index.xml +++ b/emberscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub EmberScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:46Z + 2023-09-24T01:30:11Z Daily Trending of EmberScript in GitHub \ No newline at end of file diff --git a/emberscript/weekly/index.xml b/emberscript/weekly/index.xml new file mode 100644 index 00000000000..0b540414de5 --- /dev/null +++ b/emberscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub EmberScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:49:51Z + Weekly Trending of EmberScript in GitHub + + \ No newline at end of file diff --git a/eq/daily/index.xml b/eq/daily/index.xml index fed3733ae37..aea0b6567d5 100644 --- a/eq/daily/index.xml +++ b/eq/daily/index.xml @@ -1,7 +1,7 @@ GitHub EQ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:55Z + 2023-09-24T01:30:24Z Daily Trending of EQ in GitHub \ No newline at end of file diff --git a/eq/weekly/index.xml b/eq/weekly/index.xml new file mode 100644 index 00000000000..8a7334684f7 --- /dev/null +++ b/eq/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub EQ Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:01Z + Weekly Trending of EQ in GitHub + + \ No newline at end of file diff --git a/erlang/daily/index.xml b/erlang/daily/index.xml index be8338b690e..df7b1d25407 100644 --- a/erlang/daily/index.xml +++ b/erlang/daily/index.xml @@ -1,7 +1,7 @@ GitHub Erlang Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:00Z + 2023-09-24T01:30:28Z Daily Trending of Erlang in GitHub \ No newline at end of file diff --git a/erlang/weekly/index.xml b/erlang/weekly/index.xml new file mode 100644 index 00000000000..7fed0c14813 --- /dev/null +++ b/erlang/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Erlang Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:06Z + Weekly Trending of Erlang in GitHub + + + erlang-ls/rebar3_bsp + 2023-09-24T01:50:06Z + tag:github.com,2023-09-24:/erlang-ls/rebar3_bsp + + <p>Support for the Build Server Protocol (aka BSP) for rebar3</p><hr> + + \ No newline at end of file diff --git a/euphoria/daily/index.xml b/euphoria/daily/index.xml index a8871236303..31d55fff924 100644 --- a/euphoria/daily/index.xml +++ b/euphoria/daily/index.xml @@ -1,7 +1,7 @@ GitHub Euphoria Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:26:57Z + 2023-09-24T01:30:29Z Daily Trending of Euphoria in GitHub \ No newline at end of file diff --git a/euphoria/weekly/index.xml b/euphoria/weekly/index.xml new file mode 100644 index 00000000000..1218a459147 --- /dev/null +++ b/euphoria/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Euphoria Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:02Z + Weekly Trending of Euphoria in GitHub + + \ No newline at end of file diff --git a/f%23/daily/index.xml b/f%23/daily/index.xml index bb7b844139b..a059d9f433a 100644 --- a/f%23/daily/index.xml +++ b/f%23/daily/index.xml @@ -1,7 +1,7 @@ GitHub F# Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:00Z + 2023-09-24T01:30:29Z Daily Trending of F# in GitHub \ No newline at end of file diff --git a/f%23/weekly/index.xml b/f%23/weekly/index.xml new file mode 100644 index 00000000000..9ce066f04cf --- /dev/null +++ b/f%23/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub F# Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:06Z + Weekly Trending of F# in GitHub + + + StereoDB/StereoDB + 2023-09-24T01:50:06Z + tag:github.com,2023-09-24:/StereoDB/StereoDB + + <p>Ultrafast and lightweight in-process memory database written in F# that supports: transactions, secondary indexes, persistence, and data size larger than RAM.</p><hr><p align="center"> <img src="https://github.com/StereoDB/StereoDB/raw/dev/assets/stereo_db_logo.png" alt="StereoDB logo" width="600px"> </p> <p><a href="https://github.com/StereoDB/StereoDB/actions/workflows/build.yml"><img src="https://github.com/StereoDB/StereoDB/actions/workflows/build.yml/badge.svg?sanitize=true" alt="build"></a> <a href="https://www.nuget.org/packages/stereodb/"><img src="https://img.shields.io/nuget/v/stereodb.svg?sanitize=true" alt="NuGet"></a></p> <h4>StereoDB</h4> <p>Ultrafast and lightweight in-process memory database written in F# that supports: transactions, secondary indexes, persistence, and data size larger than RAM. The primary use case for this database is building Stateful Services (API or ETL Worker) that keep all data in memory and can provide millions of RPS from a single node.</p> <p>Supported features:</p> <ul> <li><input type="checkbox" checked disabled> C# and F# API</li> <li><input type="checkbox" checked disabled> Transactions (read-only, read-write)</li> <li><input type="checkbox" checked disabled> Secondary Indexes <ul> <li><input type="checkbox" checked disabled> Value Index (hash-based index)</li> <li><input type="checkbox" checked disabled> Range Scan Index</li> </ul> </li> <li><input type="checkbox" disabled> Data size larger than RAM</li> <li><input type="checkbox" disabled> Data persistence</li> <li><input type="checkbox" disabled> Distributed mode <ul> <li><input type="checkbox" disabled> Server and client discovery</li> <li><input type="checkbox" disabled> Range-based sharding</li> </ul> </li> </ul> <h4>Intro to Stateful Services</h4> <p align="center"> <img src="https://github.com/StereoDB/StereoDB/raw/dev/assets/architecture.png" alt="StereoDB logo" width="600px"> </p> <h4>Benchmarks</h4> <p>Pure KV workload benchmark (in-process only, without persistence). In <a href="https://github.com/StereoDB/StereoDB/raw/dev/benchmarks/StereoDB.Benchmarks/Benchmarks/StereoDbBenchmark.cs">this benchmark</a>, <strong>we run concurrently 3 million random reads and 100K random writes in 892 ms</strong>.</p> <pre><code>BenchmarkDotNet=v0.13.5, OS=Windows 11 (10.0.22621.2134/22H2/2022Update/SunValley2) AMD Ryzen 7 5800H with Radeon Graphics, 1 CPU, 16 logical and 8 physical cores .NET SDK=7.0.400 [Host] : .NET 7.0.10 (7.0.1023.36312), X64 RyuJIT AVX2 DefaultJob : .NET 7.0.10 (7.0.1023.36312), X64 RyuJIT AVX2 | Method | ReadThreadCount | WriteThreadCount | UsersCount | DbReadCount | DbWriteCount | Mean | Error | StdDev | Allocated | |---------- |---------------- |----------------- |----------- |------------ |------------- |---------:|---------:|---------:|----------:| | ReadWrite | 30 | 30 | 4000000 | 3000000 | 100000 | 891.9 ms | 17.75 ms | 35.86 ms | 13.12 KB | </code></pre> <h4>C# API</h4> <pre><code class="language-csharp">using System; using StereoDB; using StereoDB.CSharp; // defines a Book type that implements IEntity&lt;TId&gt; public record Book : IEntity&lt;int&gt; { public int Id { get; init; } public string Title { get; init; } public int Quantity { get; init; } } // defines an Order type that implements IEntity&lt;TId&gt; public record Order : IEntity&lt;Guid&gt; { public Guid Id { get; init; } public int BookId { get; init; } public int Quantity { get; init; } } public class BooksSchema { public ITable&lt;int, Book&gt; Table { get; init; } } public class OrdersSchema { public ITable&lt;Guid, Order&gt; Table { get; init; } public IValueIndex&lt;int, Order&gt; BookIdIndex { get; init; } } // defines a DB schema that includes Orders and Books tables // and a secondary index: 'BookIdIndex' for the Orders table public class Schema { public BooksSchema Books { get; } public OrdersSchema Orders { get; } public Schema() { Books = new BooksSchema { Table = StereoDbEngine.CreateTable&lt;int, Book&gt;() }; var ordersTable = StereoDbEngine.CreateTable&lt;Guid, Order&gt;(); Orders = new OrdersSchema() { Table = ordersTable, BookIdIndex = ordersTable.AddValueIndex(order =&gt; order.BookId) }; } } // defines a DB that implements IStereoDb&lt;Schema&gt; public class Db : IStereoDb&lt;Schema&gt; { private readonly StereoDbEngine&lt;Schema&gt; _engine = StereoDbEngine.Create(new Schema()); public T ReadTransaction&lt;T&gt;(Func&lt;ReadOnlyTsContext&lt;Schema&gt;, T&gt; transaction) =&gt; _engine.ReadTransaction(transaction); public T WriteTransaction&lt;T&gt;(Func&lt;ReadWriteTsContext&lt;Schema&gt;, T&gt; transaction) =&gt; _engine.WriteTransaction(transaction); public void WriteTransaction(Action&lt;ReadWriteTsContext&lt;Schema&gt;&gt; transaction) =&gt; _engine.WriteTransaction(transaction); } public static class Demo { public static void Run() { var db = new Db(); // 1) adds book // WriteTransaction: it's a read-write transaction: we can query and mutate data db.WriteTransaction(ctx =&gt; { var books = ctx.UseTable(ctx.Schema.Books.Table); foreach (var id in Enumerable.Range(0, 10)) { var book = new Book {Id = id, Title = $"book_{id}", Quantity = 1}; books.Set(book); } }); // 2) creates an order // WriteTransaction: it's a read-write transaction: we can query and mutate data db.WriteTransaction(ctx =&gt; { var books = ctx.UseTable(ctx.Schema.Books.Table); var orders = ctx.UseTable(ctx.Schema.Orders.Table); foreach (var id in books.GetIds()) { if (books.TryGet(id, out var book) &amp;&amp; book.Quantity &gt; 0) { var order = new Order {Id = Guid.NewGuid(), BookId = id, Quantity = 1}; var updatedBook = book with { Quantity = book.Quantity - 1 }; books.Set(updatedBook); orders.Set(order); } } }); // 3) query book and orders // ReadTransaction: it's a read-only transaction: we can query multiple tables at once var result = db.ReadTransaction(ctx =&gt; { var books = ctx.UseTable(ctx.Schema.Books.Table); var bookIdIndex = ctx.Schema.Orders.BookIdIndex; if (books.TryGet(1, out var book)) { var orders = bookIdIndex.Find(book.Id).ToArray(); return (book, orders); } return (null, null); }); } } </code></pre> <h4>F# API</h4> <p>F# API has some benefits over C# API, mainly in expressiveness and type safety:</p> <ul> <li><a href="https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/anonymous-records">Anonymous Records</a> - It provides in place schema definition. You don't need to define extra types for schema as you do with C#. Also, it helps you model efficient <strong>(zero-cost, since it supports <a href="https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/structs">structs</a>)</strong> and expressive - return result type.</li> <li><a href="https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/value-options">ValueOption&lt;'T&gt;</a> - It's used for StereoDB API to model emptiness in a type safe manner. Also, it's a <strong>zero-cost abstraction</strong> since it's struct.</li> <li><a href="https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/computation-expressions">Computation Expression</a> - It helps to express multiple if &amp; else checks on emptiness/null for ValueOption&lt;'T&gt;, into a single <strong>voption { }</strong> expression. To use <strong>voption { }</strong>, <a href="https://github.com/demystifyfp/FsToolkit.ErrorHandling">FsToolkit.ErrorHandling</a> should be installed. In the case of <strong>voption {}</strong>, it's also a <strong>zero-cost abstraction</strong>, the compiler generates optimized code without allocations.</li> </ul> <pre><code class="language-fsharp">open System open FsToolkit.ErrorHandling open StereoDB open StereoDB.FSharp // defines a Book type that implements IEntity&lt;TId&gt; type Book = { Id: int Title: string Quantity: int } with interface IEntity&lt;int&gt; with member this.Id = this.Id // defines an Order type that implements IEntity&lt;TId&gt; type Order = { Id: Guid BookId: int Quantity: int } with interface IEntity&lt;Guid&gt; with member this.Id = this.Id // defines a DB schema that includes Orders and Books tables // and a secondary index: 'BookIdIndex' for the Orders table type Schema() = let _books = {| Table = StereoDbEngine.CreateTable&lt;int, Book&gt;() |} let _ordersTable = StereoDbEngine.CreateTable&lt;Guid, Order&gt;() let _orders = {| Table = _ordersTable BookIdIndex = _ordersTable.AddValueIndex(fun order -&gt; order.BookId) |} member this.Books = _books member this.Orders = _orders // defines a DB that implements IStereoDb&lt;Schema&gt; type Db() = let _engine = StereoDbEngine(Schema()) interface IStereoDb&lt;Schema&gt; with member this.ReadTransaction(transaction) = _engine.ReadTransaction transaction member this.WriteTransaction(transaction) = _engine.WriteTransaction transaction member this.WriteTransaction&lt;'T&gt;(transaction) = _engine.WriteTransaction&lt;'T&gt;(transaction) static member Create() = Db() :&gt; IStereoDb&lt;Schema&gt; let test () = let db = Db.Create() // 1) adds book // WriteTransaction: it's a read-write transaction: we can query and mutate data db.WriteTransaction(fun ctx -&gt; let books = ctx.UseTable(ctx.Schema.Books.Table) let bookId = 1 let book = { Id = bookId; Title = "book_1"; Quantity = 1 } books.Set book ) // 2) creates an order // WriteTransaction: it's a read-write transaction: we can query and mutate data db.WriteTransaction(fun ctx -&gt; let books = ctx.UseTable(ctx.Schema.Books.Table) let orders = ctx.UseTable(ctx.Schema.Orders.Table) voption { let bookId = 1 let! book = books.Get bookId if book.Quantity &gt; 0 then let order = { Id = Guid.NewGuid(); BookId = bookId; Quantity = 1 } let updatedBook = { book with Quantity = book.Quantity - 1 } books.Set updatedBook orders.Set order } |&gt; ignore ) // 3) query book and orders // ReadTransaction: it's a read-only transaction: we can query multiple tables at once let result = db.ReadTransaction(fun ctx -&gt; let books = ctx.UseTable(ctx.Schema.Books.Table) let bookIdIndex = ctx.Schema.Orders.BookIdIndex voption { let bookId = 1 let! book = books.Get 1 let orders = book.Id |&gt; bookIdIndex.Find |&gt; Seq.toArray return struct {| Book = book; Orders = orders |} } ) </code></pre> <h4>Transactions</h4> <p>StereoDB transactions allow the execution of a group of commands in a single step. StereoDB provides Read-Only and Read-Write transactions.</p> <ul> <li>Read-Only allows you only read data. <strong>Also, they are multithreaded.</strong></li> <li>Read-Write allows you read and write data. <strong>They are running in a single-thread fashion.</strong></li> </ul> <p>What to expect from transactions in StereoDB:</p> <ul> <li>they are blazingly fast and cheap to execute.</li> <li>they guarantee you atomic and consistent updates (you can update several tables including secondary indexes in one transaction and no other concurrent transaction will read your data partially; the transaction cannot be observed to be in progress by another database client).</li> <li>they don't support rollback since supporting rollbacks would have a significant impact on the simplicity and performance of StereoDB.</li> </ul> <p>In terms of ACID, StereoDB provides: TBD</p> <h5>How to deal without rollbacks?</h5> <ul> <li>we suggest to use only immutable data types to model your data. In C#/F# you can use records/structs to achieve this. Immutable data types allow you to ignore partial failures while updating any data record in memory.</li> <li>run all necessary validation before updating data in tables. Mutating your database should be the latest transaction step after all necessary validations are passed.</li> </ul> <pre><code class="language-csharp">// it's an example of WriteTransaction db.WriteTransaction(ctx =&gt; { var books = ctx.UseTable(ctx.Schema.Books.Table); // read record var bookId = 42; if (books.TryGet(bookId, out var book) &amp;&amp; book.Quantity &gt; 0) { // update record (it's immutable type, so the book instance wasn't mutated) var updatedBook = book with { Quantity = book.Quantity - 1 }; // and only after this you can safely mutate you state in database books.Set(updatedBook); } }); </code></pre> <h4>Secondary indexes</h4> <p>TBD</p> <h4>Best practices</h4> <p>TBD</p> <!-- - closures (allocation) - use immutable types - secondary index IEnumerable convert to array for response - GC settings - Serializations, HTTP 2 --> + + + mathias-brandewinder/Kaggle-Digit-Recognizer + 2023-09-24T01:50:06Z + tag:github.com,2023-09-24:/mathias-brandewinder/Kaggle-Digit-Recognizer + + <p></p><hr> + + \ No newline at end of file diff --git a/f*/daily/index.xml b/f*/daily/index.xml index a2b3e1fba78..0ae3c39fb4f 100644 --- a/f*/daily/index.xml +++ b/f*/daily/index.xml @@ -1,7 +1,7 @@ GitHub F* Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:02Z + 2023-09-24T01:30:30Z Daily Trending of F* in GitHub \ No newline at end of file diff --git a/f*/weekly/index.xml b/f*/weekly/index.xml new file mode 100644 index 00000000000..a117c7ce571 --- /dev/null +++ b/f*/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub F* Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:11Z + Weekly Trending of F* in GitHub + + \ No newline at end of file diff --git a/factor/daily/index.xml b/factor/daily/index.xml index d1a9690cb0a..d090d72a0e7 100644 --- a/factor/daily/index.xml +++ b/factor/daily/index.xml @@ -1,7 +1,7 @@ GitHub Factor Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:03Z + 2023-09-24T01:30:33Z Daily Trending of Factor in GitHub \ No newline at end of file diff --git a/factor/weekly/index.xml b/factor/weekly/index.xml new file mode 100644 index 00000000000..3a6410ea89a --- /dev/null +++ b/factor/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Factor Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:10Z + Weekly Trending of Factor in GitHub + + \ No newline at end of file diff --git a/fancy/daily/index.xml b/fancy/daily/index.xml index 06f8a03ffbc..78216c31546 100644 --- a/fancy/daily/index.xml +++ b/fancy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fancy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:05Z + 2023-09-24T01:30:32Z Daily Trending of Fancy in GitHub \ No newline at end of file diff --git a/fancy/weekly/index.xml b/fancy/weekly/index.xml new file mode 100644 index 00000000000..ea41d3b718d --- /dev/null +++ b/fancy/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Fancy Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:08Z + Weekly Trending of Fancy in GitHub + + \ No newline at end of file diff --git a/fantom/daily/index.xml b/fantom/daily/index.xml index 741b7c7deb5..73c957cf18b 100644 --- a/fantom/daily/index.xml +++ b/fantom/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fantom Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:04Z + 2023-09-24T01:30:31Z Daily Trending of Fantom in GitHub \ No newline at end of file diff --git a/fantom/weekly/index.xml b/fantom/weekly/index.xml new file mode 100644 index 00000000000..4c4715da6eb --- /dev/null +++ b/fantom/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Fantom Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:09Z + Weekly Trending of Fantom in GitHub + + \ No newline at end of file diff --git a/faust/daily/index.xml b/faust/daily/index.xml index ab741c66f64..ef1ce4bef2e 100644 --- a/faust/daily/index.xml +++ b/faust/daily/index.xml @@ -1,7 +1,7 @@ GitHub Faust Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:07Z + 2023-09-24T01:30:36Z Daily Trending of Faust in GitHub \ No newline at end of file diff --git a/faust/weekly/index.xml b/faust/weekly/index.xml new file mode 100644 index 00000000000..1c9b8e02ae9 --- /dev/null +++ b/faust/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Faust Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:15Z + Weekly Trending of Faust in GitHub + + \ No newline at end of file diff --git a/fennel/daily/index.xml b/fennel/daily/index.xml index a80726b0c62..41d35cf7217 100644 --- a/fennel/daily/index.xml +++ b/fennel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fennel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:08Z + 2023-09-24T01:30:35Z Daily Trending of Fennel in GitHub \ No newline at end of file diff --git a/fennel/weekly/index.xml b/fennel/weekly/index.xml new file mode 100644 index 00000000000..d7f269a7265 --- /dev/null +++ b/fennel/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Fennel Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:13Z + Weekly Trending of Fennel in GitHub + + \ No newline at end of file diff --git a/figlet-font/daily/index.xml b/figlet-font/daily/index.xml index c6bf614e7ba..f561ec21e50 100644 --- a/figlet-font/daily/index.xml +++ b/figlet-font/daily/index.xml @@ -1,7 +1,7 @@ GitHub FIGlet Font Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:09Z + 2023-09-24T01:30:34Z Daily Trending of FIGlet Font in GitHub \ No newline at end of file diff --git a/figlet-font/weekly/index.xml b/figlet-font/weekly/index.xml new file mode 100644 index 00000000000..23ada848747 --- /dev/null +++ b/figlet-font/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub FIGlet Font Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:12Z + Weekly Trending of FIGlet Font in GitHub + + \ No newline at end of file diff --git a/filebench-wml/daily/index.xml b/filebench-wml/daily/index.xml index 9b4bfc0d254..f3c02bda92b 100644 --- a/filebench-wml/daily/index.xml +++ b/filebench-wml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Filebench WML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:06Z + 2023-09-24T01:30:37Z Daily Trending of Filebench WML in GitHub \ No newline at end of file diff --git a/filebench-wml/weekly/index.xml b/filebench-wml/weekly/index.xml new file mode 100644 index 00000000000..38557caed68 --- /dev/null +++ b/filebench-wml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Filebench WML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:14Z + Weekly Trending of Filebench WML in GitHub + + \ No newline at end of file diff --git a/filterscript/daily/index.xml b/filterscript/daily/index.xml index 05094f21ed5..0f45814d697 100644 --- a/filterscript/daily/index.xml +++ b/filterscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Filterscript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:13Z + 2023-09-24T01:30:38Z Daily Trending of Filterscript in GitHub \ No newline at end of file diff --git a/filterscript/weekly/index.xml b/filterscript/weekly/index.xml new file mode 100644 index 00000000000..51a0c6c3b45 --- /dev/null +++ b/filterscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Filterscript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:17Z + Weekly Trending of Filterscript in GitHub + + \ No newline at end of file diff --git a/fish/daily/index.xml b/fish/daily/index.xml index d90c8a91350..7fdf1a082af 100644 --- a/fish/daily/index.xml +++ b/fish/daily/index.xml @@ -1,7 +1,7 @@ GitHub fish Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:10Z + 2023-09-24T01:30:40Z Daily Trending of fish in GitHub \ No newline at end of file diff --git a/fish/weekly/index.xml b/fish/weekly/index.xml new file mode 100644 index 00000000000..4c4142f3f35 --- /dev/null +++ b/fish/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub fish Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:16Z + Weekly Trending of fish in GitHub + + \ No newline at end of file diff --git a/fluent/daily/index.xml b/fluent/daily/index.xml index b682b68a2c8..9dde4fe94f0 100644 --- a/fluent/daily/index.xml +++ b/fluent/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fluent Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:11Z + 2023-09-24T01:30:39Z Daily Trending of Fluent in GitHub \ No newline at end of file diff --git a/fluent/weekly/index.xml b/fluent/weekly/index.xml new file mode 100644 index 00000000000..568a21434da --- /dev/null +++ b/fluent/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Fluent Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:17Z + Weekly Trending of Fluent in GitHub + + \ No newline at end of file diff --git a/flux/daily/index.xml b/flux/daily/index.xml index 7ddc2015e59..64a26cc4fd2 100644 --- a/flux/daily/index.xml +++ b/flux/daily/index.xml @@ -1,7 +1,7 @@ GitHub FLUX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:12Z + 2023-09-24T01:30:41Z Daily Trending of FLUX in GitHub \ No newline at end of file diff --git a/flux/weekly/index.xml b/flux/weekly/index.xml new file mode 100644 index 00000000000..6fb4de5aced --- /dev/null +++ b/flux/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub FLUX Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:18Z + Weekly Trending of FLUX in GitHub + + \ No newline at end of file diff --git a/formatted/daily/index.xml b/formatted/daily/index.xml index c68b8e6e2f0..2fe9e4f024a 100644 --- a/formatted/daily/index.xml +++ b/formatted/daily/index.xml @@ -1,7 +1,7 @@ GitHub Formatted Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:15Z + 2023-09-24T01:30:42Z Daily Trending of Formatted in GitHub \ No newline at end of file diff --git a/formatted/weekly/index.xml b/formatted/weekly/index.xml new file mode 100644 index 00000000000..fa95d8de1f2 --- /dev/null +++ b/formatted/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Formatted Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:20Z + Weekly Trending of Formatted in GitHub + + \ No newline at end of file diff --git a/forth/daily/index.xml b/forth/daily/index.xml index 361c9bd492a..ea6f503a0bb 100644 --- a/forth/daily/index.xml +++ b/forth/daily/index.xml @@ -1,7 +1,7 @@ GitHub Forth Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:14Z + 2023-09-24T01:30:43Z Daily Trending of Forth in GitHub \ No newline at end of file diff --git a/forth/weekly/index.xml b/forth/weekly/index.xml new file mode 100644 index 00000000000..b902bc3f67c --- /dev/null +++ b/forth/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Forth Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:21Z + Weekly Trending of Forth in GitHub + + \ No newline at end of file diff --git a/fortran-free-form/daily/index.xml b/fortran-free-form/daily/index.xml index 585148a4a15..8f196ba8762 100644 --- a/fortran-free-form/daily/index.xml +++ b/fortran-free-form/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fortran Free Form Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:16Z + 2023-09-24T01:30:44Z Daily Trending of Fortran Free Form in GitHub \ No newline at end of file diff --git a/fortran-free-form/weekly/index.xml b/fortran-free-form/weekly/index.xml new file mode 100644 index 00000000000..7d40c9458fc --- /dev/null +++ b/fortran-free-form/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Fortran Free Form Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:20Z + Weekly Trending of Fortran Free Form in GitHub + + \ No newline at end of file diff --git a/fortran/daily/index.xml b/fortran/daily/index.xml index 143a062a422..dc33faa0974 100644 --- a/fortran/daily/index.xml +++ b/fortran/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fortran Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:19Z + 2023-09-24T01:30:47Z Daily Trending of Fortran in GitHub \ No newline at end of file diff --git a/fortran/weekly/index.xml b/fortran/weekly/index.xml new file mode 100644 index 00000000000..e9fec2e29f4 --- /dev/null +++ b/fortran/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Fortran Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:24Z + Weekly Trending of Fortran in GitHub + + + hwangjt/MBI + 2023-09-24T01:50:24Z + tag:github.com,2023-09-24:/hwangjt/MBI + + <p></p><hr> + + \ No newline at end of file diff --git a/freebasic/daily/index.xml b/freebasic/daily/index.xml index 7f4ece36c21..d9c10d46454 100644 --- a/freebasic/daily/index.xml +++ b/freebasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub FreeBasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:23Z + 2023-09-24T01:30:50Z Daily Trending of FreeBasic in GitHub \ No newline at end of file diff --git a/freebasic/weekly/index.xml b/freebasic/weekly/index.xml new file mode 100644 index 00000000000..c0c7546a3bc --- /dev/null +++ b/freebasic/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub FreeBasic Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:27Z + Weekly Trending of FreeBasic in GitHub + + \ No newline at end of file diff --git a/freemarker/daily/index.xml b/freemarker/daily/index.xml index fdd9d6802d4..94586185e6b 100644 --- a/freemarker/daily/index.xml +++ b/freemarker/daily/index.xml @@ -1,7 +1,7 @@ GitHub FreeMarker Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:21Z + 2023-09-24T01:30:49Z Daily Trending of FreeMarker in GitHub \ No newline at end of file diff --git a/freemarker/weekly/index.xml b/freemarker/weekly/index.xml new file mode 100644 index 00000000000..4e5395742d8 --- /dev/null +++ b/freemarker/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub FreeMarker Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:26Z + Weekly Trending of FreeMarker in GitHub + + \ No newline at end of file diff --git a/frege/daily/index.xml b/frege/daily/index.xml index b14a6d44bd3..8bff6683173 100644 --- a/frege/daily/index.xml +++ b/frege/daily/index.xml @@ -1,7 +1,7 @@ GitHub Frege Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:24Z + 2023-09-24T01:30:48Z Daily Trending of Frege in GitHub \ No newline at end of file diff --git a/frege/weekly/index.xml b/frege/weekly/index.xml new file mode 100644 index 00000000000..17fbc67e0b4 --- /dev/null +++ b/frege/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Frege Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:28Z + Weekly Trending of Frege in GitHub + + \ No newline at end of file diff --git a/futhark/daily/index.xml b/futhark/daily/index.xml index 575c543834b..339419d912c 100644 --- a/futhark/daily/index.xml +++ b/futhark/daily/index.xml @@ -1,7 +1,7 @@ GitHub Futhark Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:22Z + 2023-09-24T01:30:50Z Daily Trending of Futhark in GitHub \ No newline at end of file diff --git a/futhark/weekly/index.xml b/futhark/weekly/index.xml new file mode 100644 index 00000000000..06abf8338cb --- /dev/null +++ b/futhark/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Futhark Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:25Z + Weekly Trending of Futhark in GitHub + + \ No newline at end of file diff --git a/g-code/daily/index.xml b/g-code/daily/index.xml index b6f8625fb3e..400544edc7d 100644 --- a/g-code/daily/index.xml +++ b/g-code/daily/index.xml @@ -1,7 +1,7 @@ GitHub G-code Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:29Z + 2023-09-24T01:30:53Z Daily Trending of G-code in GitHub \ No newline at end of file diff --git a/g-code/weekly/index.xml b/g-code/weekly/index.xml new file mode 100644 index 00000000000..a856cbd2c94 --- /dev/null +++ b/g-code/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub G-code Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:30Z + Weekly Trending of G-code in GitHub + + \ No newline at end of file diff --git a/game-maker-language/daily/index.xml b/game-maker-language/daily/index.xml index 0a9a883345d..48dd758f7b4 100644 --- a/game-maker-language/daily/index.xml +++ b/game-maker-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Game Maker Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:28Z + 2023-09-24T01:30:52Z Daily Trending of Game Maker Language in GitHub \ No newline at end of file diff --git a/game-maker-language/weekly/index.xml b/game-maker-language/weekly/index.xml new file mode 100644 index 00000000000..70b0ead1a23 --- /dev/null +++ b/game-maker-language/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Game Maker Language Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:32Z + Weekly Trending of Game Maker Language in GitHub + + \ No newline at end of file diff --git a/gaml/daily/index.xml b/gaml/daily/index.xml index 280e31faa08..02883193bd6 100644 --- a/gaml/daily/index.xml +++ b/gaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub GAML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:27Z + 2023-09-24T01:30:53Z Daily Trending of GAML in GitHub \ No newline at end of file diff --git a/gaml/weekly/index.xml b/gaml/weekly/index.xml new file mode 100644 index 00000000000..3f93d0ff7ec --- /dev/null +++ b/gaml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub GAML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:29Z + Weekly Trending of GAML in GitHub + + \ No newline at end of file diff --git a/gams/daily/index.xml b/gams/daily/index.xml index 8e39dd42a2c..d5415538786 100644 --- a/gams/daily/index.xml +++ b/gams/daily/index.xml @@ -1,7 +1,7 @@ GitHub GAMS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:26Z + 2023-09-24T01:30:54Z Daily Trending of GAMS in GitHub \ No newline at end of file diff --git a/gams/weekly/index.xml b/gams/weekly/index.xml new file mode 100644 index 00000000000..5a68ab4f81d --- /dev/null +++ b/gams/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub GAMS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:31Z + Weekly Trending of GAMS in GitHub + + \ No newline at end of file diff --git a/gap/daily/index.xml b/gap/daily/index.xml index 08645cec965..7bb52740a08 100644 --- a/gap/daily/index.xml +++ b/gap/daily/index.xml @@ -1,7 +1,7 @@ GitHub GAP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:30Z + 2023-09-24T01:30:56Z Daily Trending of GAP in GitHub \ No newline at end of file diff --git a/gap/weekly/index.xml b/gap/weekly/index.xml new file mode 100644 index 00000000000..b85be03e167 --- /dev/null +++ b/gap/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub GAP Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:34Z + Weekly Trending of GAP in GitHub + + \ No newline at end of file diff --git a/gcc-machine-description/daily/index.xml b/gcc-machine-description/daily/index.xml index b120c3de0a4..01e53b51387 100644 --- a/gcc-machine-description/daily/index.xml +++ b/gcc-machine-description/daily/index.xml @@ -1,7 +1,7 @@ GitHub GCC Machine Description Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:32Z + 2023-09-24T01:30:55Z Daily Trending of GCC Machine Description in GitHub \ No newline at end of file diff --git a/gcc-machine-description/weekly/index.xml b/gcc-machine-description/weekly/index.xml new file mode 100644 index 00000000000..19b28b3dfbd --- /dev/null +++ b/gcc-machine-description/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub GCC Machine Description Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:34Z + Weekly Trending of GCC Machine Description in GitHub + + \ No newline at end of file diff --git a/gdb/daily/index.xml b/gdb/daily/index.xml index 8d9b064b878..ad717f52a5e 100644 --- a/gdb/daily/index.xml +++ b/gdb/daily/index.xml @@ -1,7 +1,7 @@ GitHub GDB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:31Z + 2023-09-24T01:30:57Z Daily Trending of GDB in GitHub \ No newline at end of file diff --git a/gdb/weekly/index.xml b/gdb/weekly/index.xml new file mode 100644 index 00000000000..daae4bc2b11 --- /dev/null +++ b/gdb/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub GDB Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:33Z + Weekly Trending of GDB in GitHub + + \ No newline at end of file diff --git a/gdscript/daily/index.xml b/gdscript/daily/index.xml index 0b58fda84bd..40420dd446d 100644 --- a/gdscript/daily/index.xml +++ b/gdscript/daily/index.xml @@ -1,14 +1,21 @@ GitHub GDScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:35Z + 2023-09-24T01:31:00Z Daily Trending of GDScript in GitHub - tomeyro/godot-sfxr - 2023-09-23T01:27:35Z - tag:github.com,2023-09-23:/tomeyro/godot-sfxr - - <p>Godot plugin that adds the SfxrStreamPlayer node to generate sound effects inside the editor.</p><hr> + CSCI-5619-Fall-2023/Lecture-5 + 2023-09-24T01:31:00Z + tag:github.com,2023-09-24:/CSCI-5619-Fall-2023/Lecture-5 + + <p></p><hr> + + + Khaligufzel/CataX + 2023-09-24T01:31:00Z + tag:github.com,2023-09-24:/Khaligufzel/CataX + + <p></p><hr> \ No newline at end of file diff --git a/gdscript/weekly/index.xml b/gdscript/weekly/index.xml new file mode 100644 index 00000000000..79d7e530836 --- /dev/null +++ b/gdscript/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub GDScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:37Z + Weekly Trending of GDScript in GitHub + + + KenneyNL/Starter-Kit-3D-Platformer + 2023-09-24T01:50:37Z + tag:github.com,2023-09-24:/KenneyNL/Starter-Kit-3D-Platformer + + <p>Godot</p><hr> + + + Vahera/godot-orchestrator + 2023-09-24T01:50:37Z + tag:github.com,2023-09-24:/Vahera/godot-orchestrator + + <p>Godot Engine (4.x) Visual Scripting with Orchestrator.</p><hr> + + + Poing-Studios/godot-admob-plugin + 2023-09-24T01:50:37Z + tag:github.com,2023-09-24:/Poing-Studios/godot-admob-plugin + + <p>This repository is for Godot's Addons to integrate natively AdMob to your Game Project without much configurations and directly inside Godot Editor!</p><hr> + + \ No newline at end of file diff --git a/gedcom/daily/index.xml b/gedcom/daily/index.xml index 4ab5f3e41ae..18a1d0c8d95 100644 --- a/gedcom/daily/index.xml +++ b/gedcom/daily/index.xml @@ -1,7 +1,7 @@ GitHub GEDCOM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:37Z + 2023-09-24T01:31:03Z Daily Trending of GEDCOM in GitHub \ No newline at end of file diff --git a/gedcom/weekly/index.xml b/gedcom/weekly/index.xml new file mode 100644 index 00000000000..4f90991b6f1 --- /dev/null +++ b/gedcom/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub GEDCOM Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:41Z + Weekly Trending of GEDCOM in GitHub + + \ No newline at end of file diff --git a/gemfile.lock/daily/index.xml b/gemfile.lock/daily/index.xml index f987a1c586c..09861ba99f0 100644 --- a/gemfile.lock/daily/index.xml +++ b/gemfile.lock/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gemfile.lock Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:38Z + 2023-09-24T01:31:04Z Daily Trending of Gemfile.lock in GitHub \ No newline at end of file diff --git a/gemfile.lock/weekly/index.xml b/gemfile.lock/weekly/index.xml new file mode 100644 index 00000000000..2415f30182c --- /dev/null +++ b/gemfile.lock/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gemfile.lock Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:40Z + Weekly Trending of Gemfile.lock in GitHub + + \ No newline at end of file diff --git a/genero-forms/daily/index.xml b/genero-forms/daily/index.xml index 6217f9b16df..fb3b86459f6 100644 --- a/genero-forms/daily/index.xml +++ b/genero-forms/daily/index.xml @@ -1,7 +1,7 @@ GitHub Genero Forms Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:42Z + 2023-09-24T01:31:05Z Daily Trending of Genero Forms in GitHub \ No newline at end of file diff --git a/genero-forms/weekly/index.xml b/genero-forms/weekly/index.xml new file mode 100644 index 00000000000..8d6df720eea --- /dev/null +++ b/genero-forms/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Genero Forms Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:43Z + Weekly Trending of Genero Forms in GitHub + + \ No newline at end of file diff --git a/genero/daily/index.xml b/genero/daily/index.xml index 7e4dd51a5ee..d435e72682d 100644 --- a/genero/daily/index.xml +++ b/genero/daily/index.xml @@ -1,7 +1,7 @@ GitHub Genero Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:39Z + 2023-09-24T01:31:01Z Daily Trending of Genero in GitHub \ No newline at end of file diff --git a/genero/weekly/index.xml b/genero/weekly/index.xml new file mode 100644 index 00000000000..286aa569ea8 --- /dev/null +++ b/genero/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Genero Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:38Z + Weekly Trending of Genero in GitHub + + \ No newline at end of file diff --git a/genie/daily/index.xml b/genie/daily/index.xml index befc2f4691b..c18e16d24ce 100644 --- a/genie/daily/index.xml +++ b/genie/daily/index.xml @@ -1,7 +1,7 @@ GitHub Genie Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:40Z + 2023-09-24T01:31:07Z Daily Trending of Genie in GitHub \ No newline at end of file diff --git a/genie/weekly/index.xml b/genie/weekly/index.xml new file mode 100644 index 00000000000..25b2d2a49fc --- /dev/null +++ b/genie/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Genie Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:42Z + Weekly Trending of Genie in GitHub + + \ No newline at end of file diff --git a/genshi/daily/index.xml b/genshi/daily/index.xml index 7db7ea695eb..9cda6df85b9 100644 --- a/genshi/daily/index.xml +++ b/genshi/daily/index.xml @@ -1,7 +1,7 @@ GitHub Genshi Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:41Z + 2023-09-24T01:31:08Z Daily Trending of Genshi in GitHub \ No newline at end of file diff --git a/genshi/weekly/index.xml b/genshi/weekly/index.xml new file mode 100644 index 00000000000..e39ef6a6f2c --- /dev/null +++ b/genshi/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Genshi Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:44Z + Weekly Trending of Genshi in GitHub + + \ No newline at end of file diff --git a/gentoo-ebuild/daily/index.xml b/gentoo-ebuild/daily/index.xml index 3325e2905a6..14f2e485d23 100644 --- a/gentoo-ebuild/daily/index.xml +++ b/gentoo-ebuild/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gentoo Ebuild Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:43Z + 2023-09-24T01:31:06Z Daily Trending of Gentoo Ebuild in GitHub \ No newline at end of file diff --git a/gentoo-ebuild/weekly/index.xml b/gentoo-ebuild/weekly/index.xml new file mode 100644 index 00000000000..93db7d71b76 --- /dev/null +++ b/gentoo-ebuild/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gentoo Ebuild Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:43Z + Weekly Trending of Gentoo Ebuild in GitHub + + \ No newline at end of file diff --git a/gentoo-eclass/daily/index.xml b/gentoo-eclass/daily/index.xml index 8761f9d325a..2f9123fd0cc 100644 --- a/gentoo-eclass/daily/index.xml +++ b/gentoo-eclass/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gentoo Eclass Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:46Z + 2023-09-24T01:31:09Z Daily Trending of Gentoo Eclass in GitHub \ No newline at end of file diff --git a/gentoo-eclass/weekly/index.xml b/gentoo-eclass/weekly/index.xml new file mode 100644 index 00000000000..bb38f649cfc --- /dev/null +++ b/gentoo-eclass/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gentoo Eclass Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:45Z + Weekly Trending of Gentoo Eclass in GitHub + + \ No newline at end of file diff --git a/gerber-image/daily/index.xml b/gerber-image/daily/index.xml index 80e38706684..b7ba14a0fef 100644 --- a/gerber-image/daily/index.xml +++ b/gerber-image/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gerber Image Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:45Z + 2023-09-24T01:31:11Z Daily Trending of Gerber Image in GitHub \ No newline at end of file diff --git a/gerber-image/weekly/index.xml b/gerber-image/weekly/index.xml new file mode 100644 index 00000000000..8a28bfb4395 --- /dev/null +++ b/gerber-image/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gerber Image Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:47Z + Weekly Trending of Gerber Image in GitHub + + \ No newline at end of file diff --git a/gettext-catalog/daily/index.xml b/gettext-catalog/daily/index.xml index d993a436eb3..def0b8de4f8 100644 --- a/gettext-catalog/daily/index.xml +++ b/gettext-catalog/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gettext Catalog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:44Z + 2023-09-24T01:31:12Z Daily Trending of Gettext Catalog in GitHub \ No newline at end of file diff --git a/gettext-catalog/weekly/index.xml b/gettext-catalog/weekly/index.xml new file mode 100644 index 00000000000..2d59e6b879d --- /dev/null +++ b/gettext-catalog/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gettext Catalog Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:46Z + Weekly Trending of Gettext Catalog in GitHub + + \ No newline at end of file diff --git a/gherkin/daily/index.xml b/gherkin/daily/index.xml index 417560dee2d..afe90e72de4 100644 --- a/gherkin/daily/index.xml +++ b/gherkin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gherkin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:47Z + 2023-09-24T01:31:11Z Daily Trending of Gherkin in GitHub \ No newline at end of file diff --git a/gherkin/weekly/index.xml b/gherkin/weekly/index.xml new file mode 100644 index 00000000000..f6050d8b9a0 --- /dev/null +++ b/gherkin/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gherkin Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:48Z + Weekly Trending of Gherkin in GitHub + + \ No newline at end of file diff --git a/git-attributes/daily/index.xml b/git-attributes/daily/index.xml index 93abc470410..31779a83004 100644 --- a/git-attributes/daily/index.xml +++ b/git-attributes/daily/index.xml @@ -1,7 +1,7 @@ GitHub Git Attributes Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:51Z + 2023-09-24T01:31:16Z Daily Trending of Git Attributes in GitHub \ No newline at end of file diff --git a/git-attributes/weekly/index.xml b/git-attributes/weekly/index.xml new file mode 100644 index 00000000000..46ae92a80f4 --- /dev/null +++ b/git-attributes/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Git Attributes Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:52Z + Weekly Trending of Git Attributes in GitHub + + \ No newline at end of file diff --git a/git-config/daily/index.xml b/git-config/daily/index.xml index 02fffb58ed0..13fc7ef6caf 100644 --- a/git-config/daily/index.xml +++ b/git-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Git Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:48Z + 2023-09-24T01:31:14Z Daily Trending of Git Config in GitHub \ No newline at end of file diff --git a/git-config/weekly/index.xml b/git-config/weekly/index.xml new file mode 100644 index 00000000000..0980fc477ac --- /dev/null +++ b/git-config/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Git Config Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:50Z + Weekly Trending of Git Config in GitHub + + \ No newline at end of file diff --git a/gleam/daily/index.xml b/gleam/daily/index.xml index 678667b426b..8418cafcb9b 100644 --- a/gleam/daily/index.xml +++ b/gleam/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gleam Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:50Z + 2023-09-24T01:31:15Z Daily Trending of Gleam in GitHub \ No newline at end of file diff --git a/gleam/weekly/index.xml b/gleam/weekly/index.xml new file mode 100644 index 00000000000..9a87be0d910 --- /dev/null +++ b/gleam/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gleam Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:49Z + Weekly Trending of Gleam in GitHub + + \ No newline at end of file diff --git a/glsl/daily/index.xml b/glsl/daily/index.xml index 7ce2a189d2b..5931ad00521 100644 --- a/glsl/daily/index.xml +++ b/glsl/daily/index.xml @@ -1,7 +1,14 @@ GitHub GLSL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:55Z + 2023-09-24T01:31:19Z Daily Trending of GLSL in GitHub + + lanl/Fierro + 2023-09-24T01:31:19Z + tag:github.com,2023-09-24:/lanl/Fierro + + <p>Fierro is a C++ code designed to aid the research and development of numerical methods and testing of user-specified models related to quasi-static solid mechanics and compressible material dynamics using low- and high-order meshes.</p><hr> + \ No newline at end of file diff --git a/glsl/weekly/index.xml b/glsl/weekly/index.xml new file mode 100644 index 00000000000..14c4e6fd5c1 --- /dev/null +++ b/glsl/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub GLSL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:56Z + Weekly Trending of GLSL in GitHub + + + jsulpis/realtime-planet-shader + 2023-09-24T01:50:56Z + tag:github.com,2023-09-24:/jsulpis/realtime-planet-shader + + <p>Realtime procedural planet shader in WebGL</p><hr> + + \ No newline at end of file diff --git a/glyph-bitmap-distribution-format/daily/index.xml b/glyph-bitmap-distribution-format/daily/index.xml index 18ccdc72af2..1c30755a4b8 100644 --- a/glyph-bitmap-distribution-format/daily/index.xml +++ b/glyph-bitmap-distribution-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Glyph Bitmap Distribution Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:54Z + 2023-09-24T01:31:18Z Daily Trending of Glyph Bitmap Distribution Format in GitHub \ No newline at end of file diff --git a/glyph-bitmap-distribution-format/weekly/index.xml b/glyph-bitmap-distribution-format/weekly/index.xml new file mode 100644 index 00000000000..1ce2365cb73 --- /dev/null +++ b/glyph-bitmap-distribution-format/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Glyph Bitmap Distribution Format Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:54Z + Weekly Trending of Glyph Bitmap Distribution Format in GitHub + + \ No newline at end of file diff --git a/glyph/daily/index.xml b/glyph/daily/index.xml index 733a492edda..f439b0a5d3f 100644 --- a/glyph/daily/index.xml +++ b/glyph/daily/index.xml @@ -1,7 +1,7 @@ GitHub Glyph Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:53Z + 2023-09-24T01:31:20Z Daily Trending of Glyph in GitHub \ No newline at end of file diff --git a/glyph/weekly/index.xml b/glyph/weekly/index.xml new file mode 100644 index 00000000000..f23e91fca6a --- /dev/null +++ b/glyph/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Glyph Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:55Z + Weekly Trending of Glyph in GitHub + + \ No newline at end of file diff --git a/gn/daily/index.xml b/gn/daily/index.xml index 33cfb4020ef..a16f683f0cf 100644 --- a/gn/daily/index.xml +++ b/gn/daily/index.xml @@ -1,7 +1,7 @@ GitHub GN Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:52Z + 2023-09-24T01:31:21Z Daily Trending of GN in GitHub \ No newline at end of file diff --git a/gn/weekly/index.xml b/gn/weekly/index.xml new file mode 100644 index 00000000000..bcb66dcd96d --- /dev/null +++ b/gn/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub GN Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:53Z + Weekly Trending of GN in GitHub + + \ No newline at end of file diff --git a/gnuplot/daily/index.xml b/gnuplot/daily/index.xml index a407050d364..86f5eff25eb 100644 --- a/gnuplot/daily/index.xml +++ b/gnuplot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gnuplot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:58Z + 2023-09-24T01:31:24Z Daily Trending of Gnuplot in GitHub \ No newline at end of file diff --git a/gnuplot/weekly/index.xml b/gnuplot/weekly/index.xml new file mode 100644 index 00000000000..a70a4c5485b --- /dev/null +++ b/gnuplot/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gnuplot Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:58Z + Weekly Trending of Gnuplot in GitHub + + \ No newline at end of file diff --git a/go-checksums/daily/index.xml b/go-checksums/daily/index.xml index d39368330d2..7e09dc47eae 100644 --- a/go-checksums/daily/index.xml +++ b/go-checksums/daily/index.xml @@ -1,7 +1,7 @@ GitHub Go Checksums Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:56Z + 2023-09-24T01:31:22Z Daily Trending of Go Checksums in GitHub \ No newline at end of file diff --git a/go-checksums/weekly/index.xml b/go-checksums/weekly/index.xml new file mode 100644 index 00000000000..da1ac3762d0 --- /dev/null +++ b/go-checksums/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Go Checksums Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:59Z + Weekly Trending of Go Checksums in GitHub + + \ No newline at end of file diff --git a/go-module/daily/index.xml b/go-module/daily/index.xml index 75a6c125d6f..e4a404e067d 100644 --- a/go-module/daily/index.xml +++ b/go-module/daily/index.xml @@ -1,7 +1,7 @@ GitHub Go Module Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:27:57Z + 2023-09-24T01:31:23Z Daily Trending of Go Module in GitHub \ No newline at end of file diff --git a/go-module/weekly/index.xml b/go-module/weekly/index.xml new file mode 100644 index 00000000000..ff3b6dbded4 --- /dev/null +++ b/go-module/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Go Module Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:50:57Z + Weekly Trending of Go Module in GitHub + + \ No newline at end of file diff --git a/go/daily/index.xml b/go/daily/index.xml index 733a578e5a2..fc84f268dd9 100644 --- a/go/daily/index.xml +++ b/go/daily/index.xml @@ -1,7 +1,21 @@ GitHub Go Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:01Z + 2023-09-24T01:31:27Z Daily Trending of Go in GitHub + + selinuxG/Golin + 2023-09-24T01:31:27Z + tag:github.com,2023-09-24:/selinuxG/Golin + + <p>弱口令检测、 漏洞扫描、端口扫描(协议识别,组件识别)、web目录扫描、子域名扫描、等保模拟定级、自动化运维、等保工具(网络安全等级保护现场测评工具)内置3级等保核查命令、基线核查工具</p><hr><h1>主要功能</h1> <blockquote> <p>主机存活探测、漏洞扫描、子域名扫描、端口扫描、各类服务数据库爆破、poc扫描、xss扫描、webtitle探测、web指纹识别、web敏感信息泄露、web目录浏览、web文件下载、等保安全风险问题风险自查等; 弱口令/未授权访问:40余种; WEB组件识别:300余种; 漏洞扫描:XSS、任意文件访问、任意命令执行、敏感信息泄露、默认账户密码...; 资产扫描:扫描存活主机-&gt;判断存活端口-&gt;识别协议/组件-&gt;基于组件协议进行弱口令、漏洞扫描-&gt;输出报告</p> </blockquote> <h2>web功能预览(仅支持运行等保功能)</h2> <p><img src="https://raw.githubusercontent.com/selinuxG/Golin/master/images/web.gif" alt="web"></p> <h2>端口扫描功能预览</h2> <p><img src="https://raw.githubusercontent.com/selinuxG/Golin/master/images/port.jpg" alt="port"></p> <h2>WEB目录扫描功能预览</h2> <p><img src="https://raw.githubusercontent.com/selinuxG/Golin/master/images/dirsearch.jpg" alt="dirsearch"></p> <h2>弱口令/未授权现阶段支持类型</h2> <table> <thead> <tr> <th align="center">序号</th> <th align="center">类型</th> <th align="center">是否支持</th> <th align="center">备注</th> </tr> </thead> <tbody> <tr> <td align="center">1</td> <td align="center">SSH</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">2</td> <td align="center">RDP</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">3</td> <td align="center">FTP</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">4</td> <td align="center">MySQL</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">5</td> <td align="center">PostgreSQL</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">6</td> <td align="center">Redis</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">7</td> <td align="center">MSSQL</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">8</td> <td align="center">SMB</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">9</td> <td align="center">Telnet</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">10</td> <td align="center">Tomcat</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">11</td> <td align="center">MangoDB</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">12</td> <td align="center">Elasticsearch</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">13</td> <td align="center">oracle</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">14</td> <td align="center">ZooKeeper</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">15</td> <td align="center">dubbo</td> <td align="center">√</td> <td align="center">仅验证默认账户</td> </tr> <tr> <td align="center">16</td> <td align="center">nps</td> <td align="center">√</td> <td align="center">仅验证默认账户</td> </tr> <tr> <td align="center">17</td> <td align="center">Druid</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">18</td> <td align="center">activemq</td> <td align="center">√</td> <td align="center">仅验证默认账户</td> </tr> <tr> <td align="center">20</td> <td align="center">couchdb</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">21</td> <td align="center">Hadoop-Administration</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">22</td> <td align="center">ApacheSpark</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">23</td> <td align="center">swagger</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">24</td> <td align="center">Kibana</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">25</td> <td align="center">Kafka-Manager</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">26</td> <td align="center">Jenkins</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">27</td> <td align="center">Everything</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">28</td> <td align="center">D-Link路由器</td> <td align="center">√</td> <td align="center">仅验证默认账户</td> </tr> <tr> <td align="center">29</td> <td align="center">Nacos</td> <td align="center">√</td> <td align="center">仅验证默认账户</td> </tr> <tr> <td align="center">30</td> <td align="center">HiveServer</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">31</td> <td align="center">DockerRegistry</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">32</td> <td align="center">ApacheStorm</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">33</td> <td align="center">Prometheus</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">34</td> <td align="center">Node-Exporter</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">35</td> <td align="center">ApacheDruid</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">36</td> <td align="center">Zabbix</td> <td align="center">√</td> <td align="center">仅验证默认账户</td> </tr> <tr> <td align="center">37</td> <td align="center">JupyterLab</td> <td align="center">√</td> <td align="center">仅验证未授权访问</td> </tr> <tr> <td align="center">38</td> <td align="center">XXLJOB</td> <td align="center">√</td> <td align="center">仅验证默认账户</td> </tr> <tr> <td align="center">39</td> <td align="center">WIFISKY7层流控路由器</td> <td align="center">√</td> <td align="center">仅验证默认账户</td> </tr> </tbody> </table> <h2>资产扫描现阶段支持功能</h2> <table> <thead> <tr> <th align="center">序号</th> <th align="center">功能</th> <th align="center">是否支持</th> <th align="center">备注</th> </tr> </thead> <tbody> <tr> <td align="center">1</td> <td align="center">多线程</td> <td align="center">√</td> <td align="center">默认为100并发,可通过-c指定并发数</td> </tr> <tr> <td align="center">2</td> <td align="center">指定端口</td> <td align="center">√</td> <td align="center">格式支持1,2,3,2-20</td> </tr> <tr> <td align="center">3</td> <td align="center">指定IP</td> <td align="center">√</td> <td align="center">格式支持192.168.1.1,192.168.1.1/24,192.168.1-10,<a href="http://www.baidu.com">http://www.baidu.com</a></td> </tr> <tr> <td align="center">4</td> <td align="center">排除端口/主机</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">5</td> <td align="center">扫描前探测主机存活</td> <td align="center">√</td> <td align="center">基于ping,可通过--noping跳过探测存活</td> </tr> <tr> <td align="center">6</td> <td align="center">打乱主机顺序</td> <td align="center">√</td> <td align="center">默认不打乱,可通过--random进行打乱</td> </tr> <tr> <td align="center">7</td> <td align="center">协议识别</td> <td align="center">√</td> <td align="center">目前支持常见协议:ssh、redis、https、https、MySQL、pgsql、ftp等</td> </tr> <tr> <td align="center">8</td> <td align="center">超时时间</td> <td align="center">√</td> <td align="center">默认5秒,可通过-t指定</td> </tr> <tr> <td align="center">9</td> <td align="center">识别web</td> <td align="center">√</td> <td align="center">目前支持识别server、title、ssl证书</td> </tr> <tr> <td align="center">10</td> <td align="center">结果保存</td> <td align="center">√</td> <td align="center">默认保存保存到portscan.xlsx</td> </tr> <tr> <td align="center">11</td> <td align="center">主机操作系统识别</td> <td align="center">√</td> <td align="center">基于ttl</td> </tr> <tr> <td align="center">12</td> <td align="center">组件识别</td> <td align="center">√</td> <td align="center">目前常用300+</td> </tr> <tr> <td align="center">13</td> <td align="center">自动扫描弱口令</td> <td align="center">√</td> <td align="center">rdp、ssh、redis、mysql、oracle、es、telnet、pgsql等40种</td> </tr> <tr> <td align="center">14</td> <td align="center">web自动扫描xss</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">15</td> <td align="center">web自动扫描漏洞</td> <td align="center">√</td> <td align="center">扫描poc、未授权访问、目录泄露</td> </tr> <tr> <td align="center">16</td> <td align="center">快速扫描格式</td> <td align="center">√</td> <td align="center">支持格式:<a href="https://192.168.1.1:9090%E3%80%81http://192.168.1.1:9090%E3%80%81192.168.1.1:9090/login/index.php">https://192.168.1.1:9090、http://192.168.1.1:9090、192.168.1.1:9090/login/index.php</a></td> </tr> <tr> <td align="center">17</td> <td align="center">sql注入扫描</td> <td align="center">√</td> <td align="center"></td> </tr> </tbody> </table> <h2>web目录扫描现阶段支持功能</h2> <table> <thead> <tr> <th align="center">序号</th> <th align="center">功能</th> <th align="center">是否支持</th> <th align="center">备注</th> </tr> </thead> <tbody> <tr> <td align="center">1</td> <td align="center">多线程</td> <td align="center">√</td> <td align="center">默认为30并发</td> </tr> <tr> <td align="center">2</td> <td align="center">自定义状态码</td> <td align="center">√</td> <td align="center">默认为200</td> </tr> <tr> <td align="center">3</td> <td align="center">代理模式</td> <td align="center">√</td> <td align="center">http/s、socks</td> </tr> <tr> <td align="center">4</td> <td align="center">返回title</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">5</td> <td align="center">超时等待时常</td> <td align="center">√</td> <td align="center">默认为3秒</td> </tr> <tr> <td align="center">6</td> <td align="center">循环等待</td> <td align="center">√</td> <td align="center">默认为无限制</td> </tr> <tr> <td align="center">7</td> <td align="center">内置url</td> <td align="center">√</td> <td align="center">3W+</td> </tr> <tr> <td align="center">8</td> <td align="center">自定义User-Agent</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">9</td> <td align="center">重传</td> <td align="center"></td> <td align="center"></td> </tr> <tr> <td align="center">10</td> <td align="center">爬虫</td> <td align="center"></td> <td align="center"></td> </tr> <tr> <td align="center">11</td> <td align="center">结果保存</td> <td align="center">√</td> <td align="center">保存到dirScan.json</td> </tr> <tr> <td align="center">12</td> <td align="center">内置字典</td> <td align="center">√</td> <td align="center">3W条目录路径</td> </tr> <tr> <td align="center">13</td> <td align="center">识别目录浏览</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">14</td> <td align="center">识别敏感信息泄露</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">15</td> <td align="center">识别文件下载</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">16</td> <td align="center">xss扫描</td> <td align="center">√</td> <td align="center"></td> </tr> <tr> <td align="center">17</td> <td align="center">组件识别</td> <td align="center">√</td> <td align="center">目前常用300+</td> </tr> </tbody> </table> <h2>自动化测评现阶段支持类型</h2> <table> <thead> <tr> <th align="center">序号</th> <th align="center">类型</th> <th align="center">是否支持</th> <th align="center">备注</th> </tr> </thead> <tbody> <tr> <td align="center">1</td> <td align="center">Centos</td> <td align="center">√</td> <td align="center">SSH远程或本地运行</td> </tr> <tr> <td align="center">2</td> <td align="center">Windows</td> <td align="center">√</td> <td align="center">本地运行</td> </tr> <tr> <td align="center">3</td> <td align="center">Redis</td> <td align="center">√</td> <td align="center">远程或本地运行</td> </tr> <tr> <td align="center">4</td> <td align="center">PostgreSQL</td> <td align="center">√</td> <td align="center">远程或本地运行</td> </tr> <tr> <td align="center">5</td> <td align="center">Oracle</td> <td align="center">√</td> <td align="center">远程或本地运行</td> </tr> <tr> <td align="center">6</td> <td align="center">MSSQL</td> <td align="center">√</td> <td align="center">远程或本地运行</td> </tr> <tr> <td align="center">7</td> <td align="center">H3C</td> <td align="center">√</td> <td align="center">SSH远程</td> </tr> <tr> <td align="center">8</td> <td align="center">华为</td> <td align="center">√</td> <td align="center">SSH远程</td> </tr> <tr> <td align="center">9</td> <td align="center">AIX</td> <td align="center">√</td> <td align="center">可自定义命令未内置</td> </tr> <tr> <td align="center">10</td> <td align="center">Ubuntu</td> <td align="center">√</td> <td align="center">可自定义命令未内置</td> </tr> <tr> <td align="center">11</td> <td align="center">MongoDB</td> <td align="center"></td> <td align="center"></td> </tr> <tr> <td align="center">12</td> <td align="center">Elasticsearch</td> <td align="center"></td> <td align="center"></td> </tr> </tbody> </table> <h1>常用启动参数</h1> <pre><code>golin web (通过web方式启动,仅支持等保功能) golin port (自动读取本地网卡IP地址段进行扫描,过滤虚拟网卡地址段) golin port -i 192.168.1.1/24 (扫描c段端口并扫描弱口令、xss、poc漏洞) golin port -i 192.168.1.1/24 --ipfile ip.txt (扫描指定IP段的同时扫描ip.txt文件中的主机,默认读取ip.txt,目录下如果存在不使用--ipfile也会读取) golin port -i 192.168.1.1:8080 (快速扫描某一主机的特定端口) golin port -i 192.168.1.1/24 -c 1000 -t 10(仅扫描c段端口并设置并发数为1000,端口连接超时为10秒) golin port -i 192.168.1.1/24 --noping --nocrack --random(扫描c段端口但不探测存活不扫描弱口令,并且打乱主机顺序扫描) golin port -i 192.168.1.1/24 --nopoc(扫描c段端口但禁用扫描漏洞) golin dirsearch -u https://test.com -f 字典.txt --code 200,404 (扫描状态码为200以及404的web目录) golin domain -u baidu.com --api (扫描子域名,并且调用fofa、RapidDNS的API) golin [linux、mysql、oracle、sqlserver、redis、windows...] (按照3级等保要求核查各项安全配置生成html形式报告) golin update (检查是否可更新) </code></pre> <h1>免责声明</h1> <p>本工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。</p> <p>在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描。</p> <p>如您在使用本工具的过程中存在任何非法行为,您需自行承担相应一切后果。</p> + + + harness/gitness + 2023-09-24T01:31:27Z + tag:github.com,2023-09-24:/harness/gitness + + <p>Gitness is an Open Source developer platform with Source Control management, Continuous Integration and Continuous Delivery.</p><hr><h1>Gitness</h1> <p>Your lightweight, super fast code hosting and continuous integration service (powered by Drone)</p> <p>Gitness is building on top of Drone to create a new, open source developer platform with code hosting and pipeline capabilities. Gitness development is taking place in the <code>master</code> branch. Drone development will continue in the <code>drone</code> branch until we a ready for our first tagged Gitness release, at which point the project will fully converge.</p> <p>For more information on Gitness, please visit <a href="https://gitness.com/">gitness.com</a>. For more information on Drone, please visit <a href="https://www.drone.io/">drone.io</a></p> <h1>Using Docker</h1> <p>The latest publicly released docker image can be found on <a href="https://hub.docker.com/r/harness/gitness">harness/gitness</a>. To try it out, run the command below. Once the container is running, you can visit localhost:3000 in your browser.</p> <pre><code class="language-bash">docker run \ -p 3000:3000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp/gitness:/data \ harness/gitness:latest </code></pre> <blockquote> <p>The Gitness image uses a volume to store the database and repositories. It is highly recommended to use a bind mount or named volume as otherwise all data will be lost once the contaner is stopped.</p> </blockquote> <h1>Pre-Requisites</h1> <p>Install the latest stable version of Node and Go version 1.19 or higher, and then install the below Go programs. Ensure the GOPATH <a href="https://go.dev/doc/gopath_code#GOPATH">bin directory</a> is added to your PATH.</p> <p>Install protobuf</p> <ul> <li>Check if you've already installed protobuf <code>protoc --version</code></li> <li>If your version is different than v3.21.11, run <code>brew unlink protobuf</code></li> <li>Get v3.21.11 <code>curl -s https://raw.githubusercontent.com/Homebrew/homebrew-core/9de8de7a533609ebfded833480c1f7c05a3448cb/Formula/protobuf.rb &gt; /tmp/protobuf.rb</code></li> <li>Install it <code>brew install /tmp/protobuf.rb</code></li> <li>Check out your version <code>protoc --version</code></li> </ul> <p>Install protoc-gen-go and protoc-gen-go-rpc:</p> <ul> <li> <p>Install protoc-gen-go v1.28.1 <code>go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.1</code> (Note that this will install a binary in $GOBIN so make sure $GOBIN is in your $PATH)</p> </li> <li> <p>Install protoc-gen-go-grpc v1.2.0 <code>go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0</code></p> </li> </ul> <pre><code class="language-bash">$ make dep $ make tools </code></pre> <h1>Build</h1> <p>Build the user interface:</p> <pre><code class="language-bash">$ pushd web $ yarn install $ yarn build $ popd </code></pre> <p>Build the server and command line tools:</p> <pre><code class="language-bash">$ make build </code></pre> <h1>Run</h1> <p>This project supports all operating systems and architectures supported by Go. This means you can build and run the system on your machine; docker containers are not required for local development and testing.</p> <p>Start the server at <code>localhost:3000</code></p> <pre><code class="language-bash">./gitness server .local.env </code></pre> <h1>User Interface</h1> <p>This project includes a full user interface for interacting with the system. When you run the application, you can access the user interface by navigating to <code>http://localhost:3000</code> in your browser.</p> <h1>Swagger</h1> <p>This project includes a swagger specification. When you run the application, you can access the swagger specification by navigating to <code>http://localhost:3000/swagger</code> in your browser (for raw yaml see <code>http://localhost:3000/openapi.yaml</code>).</p> <h2>Auto-Generate Gitness API Client used by UI using Swagger</h2> <p>Please make sure to update the autogenerated client code used by the UI when adding new rest APIs.</p> <p>To regenerate the code, please execute the following steps:</p> <ul> <li>Run local gitness instance with latest changes</li> <li>Get latest OpenAPI specs from <code>http://localhost:3000/openapi.yaml</code> and store it in <code>web/src/services/code/swagger.yaml</code></li> </ul> <p>The latest API changes should now be reflected in <code>web/src/services/code/index.tsx</code></p> <h1>REST API</h1> <p>Please refer to the swagger for the specification of our rest API.</p> <p>For testing, it's simplest to execute operations as the default user <code>admin</code> using a PAT:</p> <pre><code class="language-bash"># LOGIN (user: admin, pw: changeit) $ ./gitness login # GENERATE PAT (1 YEAR VALIDITY) $ ./gitness user pat "my-pat-uid" 2592000 </code></pre> <p>The command outputs a valid PAT that has been granted full access as the user. The token can then be send as part of the <code>Authorization</code> header with Postman or curl:</p> <pre><code class="language-bash">$ curl http://localhost:3000/api/v1/user \ -H "Authorization: Bearer $TOKEN" </code></pre> <h1>CLI</h1> <p>This project includes VERY basic command line tools for development and running the service. Please remember that you must start the server before you can execute commands.</p> <p>For a full list of supported operations, please see</p> <pre><code class="language-bash">$ ./gitness --help </code></pre> + \ No newline at end of file diff --git a/go/weekly/index.xml b/go/weekly/index.xml new file mode 100644 index 00000000000..9aa20131f0d --- /dev/null +++ b/go/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Go Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:02Z + Weekly Trending of Go in GitHub + + + opentofu/opentofu + 2023-09-24T01:51:02Z + tag:github.com,2023-09-24:/opentofu/opentofu + + <p>OpenTofu lets you declaratively manage your cloud infrastructure.</p><hr><h1>OpenTofu</h1> <ul> <li>Manifesto: <a href="https://opentofu.org/manifesto">https://opentofu.org/manifesto</a></li> <li>About the OpenTofu fork: <a href="https://opentofu.org/fork">https://opentofu.org/fork</a></li> <li><a href="https://join.slack.com/t/opentfcommunity/shared_invite/zt-237chyryd-mFULiefrbYGMYQoG72BUpQ">Join our Slack community!</a></li> </ul> <p><img src="https://raw.githubusercontent.com/opentofu/brand-artifacts/main/full/transparent/SVG/on-dark.svg#gh-dark-mode-only" alt=""> <img src="https://raw.githubusercontent.com/opentofu/brand-artifacts/main/full/transparent/SVG/on-light.svg#gh-light-mode-only" alt=""></p> <p><strong>Important Note: This repository is currently a work in progress while we're preparing it for the first alpha release and fine-tuning the community contribution process. Please read the <a href="https://opentofu.org/fork">announcement post</a> for important context and the <a href="https://raw.githubusercontent.com/opentofu/opentofu/main/CONTRIBUTING.md">contributing docs</a> for instructions on how to contribute. Additionally, please be mindful that building this repository in its current state and running it might put you in violation of the <a href="https://web.archive.org/web/https://registry.terraform.io/terms">Terraform Registry ToS</a>, if that's where you fetch your providers or modules from.</strong></p> <p>OpenTofu is an OSS tool for building, changing, and versioning infrastructure safely and efficiently. OpenTofu can manage existing and popular service providers as well as custom in-house solutions.</p> <p>The key features of OpenTofu are:</p> <ul> <li> <p><strong>Infrastructure as Code</strong>: Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and treated as you would any other code. Additionally, infrastructure can be shared and re-used.</p> </li> <li> <p><strong>Execution Plans</strong>: OpenTofu has a "planning" step where it generates an execution plan. The execution plan shows what OpenTofu will do when you call apply. This lets you avoid any surprises when OpenTofu manipulates infrastructure.</p> </li> <li> <p><strong>Resource Graph</strong>: OpenTofu builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. Because of this, OpenTofu builds infrastructure as efficiently as possible, and operators get insight into dependencies in their infrastructure.</p> </li> <li> <p><strong>Change Automation</strong>: Complex changesets can be applied to your infrastructure with minimal human interaction. With the previously mentioned execution plan and resource graph, you know exactly what OpenTofu will change and in what order, avoiding many possible human errors.</p> </li> </ul> <h2>Developing OpenTofu</h2> <p>This repository contains OpenTofu Core, which includes the command line interface and the main graph engine.</p> <ul> <li> <p>To learn more about compiling OpenTofu and contributing suggested changes, refer to <a href="https://raw.githubusercontent.com/opentofu/opentofu/main/CONTRIBUTING.md">the contributing guide</a>.</p> </li> <li> <p>To submit bug reports or enhancement requests, refer to the <a href="https://raw.githubusercontent.com/opentofu/opentofu/main/CONTRIBUTING.md">contributing guide</a> as well.</p> </li> </ul> <h2>License</h2> <p><a href="https://github.com/opentofu/opentofu/raw/main/LICENSE">Mozilla Public License v2.0</a></p> + + + go-co-op/gocron + 2023-09-24T01:51:02Z + tag:github.com,2023-09-24:/go-co-op/gocron + + <p>Easy and fluent Go cron scheduling. This is a fork from https://github.com/jasonlvhit/gocron</p><hr><h1>gocron: A Golang Job Scheduling Package.</h1> <p><a href="https://github.com/avelino/awesome-go#job-scheduler"><img src="https://awesome.re/mentioned-badge-flat.svg?sanitize=true" alt="Mentioned in Awesome Go"></a> <a href="https://github.com/go-co-op/gocron/actions"><img src="https://github.com/go-co-op/gocron/actions/workflows/go_test.yml/badge.svg?branch=main&amp;event=push" alt="CI State"></a> <img src="https://goreportcard.com/badge/github.com/go-co-op/gocron" alt="Go Report Card"> <a href="https://pkg.go.dev/github.com/go-co-op/gocron"><img src="https://godoc.org/github.com/go-co-op/gocron?status.svg?sanitize=true" alt="Go Doc"></a></p> <p>gocron is a job scheduling package which lets you run Go functions at pre-determined intervals using a simple, human-friendly syntax.</p> <p>gocron is a Golang scheduler implementation similar to the Ruby module <a href="https://github.com/tomykaira/clockwork">clockwork</a> and the Python job scheduling package <a href="https://github.com/dbader/schedule">schedule</a>.</p> <p>See also these two great articles that were used for design input:</p> <ul> <li><a href="http://adam.herokuapp.com/past/2010/4/13/rethinking_cron/">Rethinking Cron</a></li> <li><a href="http://adam.herokuapp.com/past/2010/6/30/replace_cron_with_clockwork/">Replace Cron with Clockwork</a></li> </ul> <p>If you want to chat, you can find us at Slack! <a href="https://gophers.slack.com/archives/CQ7T0T1FW"><img src="https://img.shields.io/badge/gophers-gocron-brightgreen?logo=slack"></a></p> <h2>Concepts</h2> <ul> <li><strong>Scheduler</strong>: The scheduler tracks all the jobs assigned to it and makes sure they are passed to the executor when ready to be run. The scheduler is able to manage overall aspects of job behavior like limiting how many jobs are running at one time.</li> <li><strong>Job</strong>: The job is simply aware of the task (go function) it's provided and is therefore only able to perform actions related to that task like preventing itself from overruning a previous task that is taking a long time.</li> <li><strong>Executor</strong>: The executor, as it's name suggests, is simply responsible for calling the task (go function) that the job hands to it when sent by the scheduler.</li> </ul> <h2>Examples</h2> <pre><code class="language-golang">s := gocron.NewScheduler(time.UTC) // Every starts the job immediately and then runs at the // specified interval job, err := s.Every(5).Seconds().Do(func(){ ... }) if err != nil { // handle the error related to setting up the job } // to wait for the interval to pass before running the first job // use WaitForSchedule or WaitForScheduleAll s.Every(5).Second().WaitForSchedule().Do(func(){ ... }) s.WaitForScheduleAll() s.Every(5).Second().Do(func(){ ... }) // waits for schedule s.Every(5).Second().Do(func(){ ... }) // waits for schedule // strings parse to duration s.Every("5m").Do(func(){ ... }) s.Every(5).Days().Do(func(){ ... }) s.Every(1).Month(1, 2, 3).Do(func(){ ... }) // set time s.Every(1).Day().At("10:30").Do(func(){ ... }) // set multiple times s.Every(1).Day().At("10:30;08:00").Do(func(){ ... }) s.Every(1).Day().At("10:30").At("08:00").Do(func(){ ... }) // Schedule each last day of the month s.Every(1).MonthLastDay().Do(func(){ ... }) // Or each last day of every other month s.Every(2).MonthLastDay().Do(func(){ ... }) // cron expressions supported s.Cron("*/1 * * * *").Do(task) // every minute // cron second-level expressions supported s.CronWithSeconds("*/1 * * * * *").Do(task) // every second // you can start running the scheduler in two different ways: // starts the scheduler asynchronously s.StartAsync() // starts the scheduler and blocks current execution path s.StartBlocking() // stop the running scheduler in two different ways: // stop the scheduler s.Stop() // stop the scheduler and notify the `StartBlocking()` to exit s.StopBlockingChan() </code></pre> <p>For more examples, take a look in our <a href="https://pkg.go.dev/github.com/go-co-op/gocron#pkg-examples">go docs</a></p> <h2>Options</h2> <table> <thead> <tr> <th>Interval</th> <th>Supported schedule options</th> </tr> </thead> <tbody> <tr> <td>sub-second</td> <td><code>StartAt()</code></td> </tr> <tr> <td>milliseconds</td> <td><code>StartAt()</code></td> </tr> <tr> <td>seconds</td> <td><code>StartAt()</code></td> </tr> <tr> <td>minutes</td> <td><code>StartAt()</code></td> </tr> <tr> <td>hours</td> <td><code>StartAt()</code></td> </tr> <tr> <td>days</td> <td><code>StartAt()</code>, <code>At()</code></td> </tr> <tr> <td>weeks</td> <td><code>StartAt()</code>, <code>At()</code>, <code>Weekday()</code> (and all week day named functions)</td> </tr> <tr> <td>months</td> <td><code>StartAt()</code>, <code>At()</code></td> </tr> </tbody> </table> <p>There are several options available to restrict how jobs run:</p> <table> <thead> <tr> <th>Mode</th> <th>Function</th> <th>Behavior</th> </tr> </thead> <tbody> <tr> <td>Default</td> <td></td> <td>jobs are rescheduled at every interval</td> </tr> <tr> <td>Job singleton</td> <td><code>SingletonMode()</code></td> <td>a long running job will not be rescheduled until the current run is completed</td> </tr> <tr> <td>Scheduler limit</td> <td><code>SetMaxConcurrentJobs()</code></td> <td>set a collective maximum number of concurrent jobs running across the scheduler</td> </tr> <tr> <td>Distributed locking</td> <td><code>WithDistributedLocker()</code></td> <td>prevents the same job from being run more than once when running multiple instances of the scheduler</td> </tr> <tr> <td>Distributed elector</td> <td><code>WithDistributedElector()</code></td> <td>multiple instances exist in a distributed scenario, only the leader instance can run jobs</td> </tr> </tbody> </table> <h2>Distributed Locker Implementations</h2> <ul> <li>Redis: <a href="https://github.com/go-co-op/gocron-redis-lock">redislock</a> <code>go get github.com/go-co-op/gocron-redis-lock</code></li> </ul> <h2>Tags</h2> <p>Jobs may have arbitrary tags added which can be useful when tracking many jobs. The scheduler supports both enforcing tags to be unique and when not unique, running all jobs with a given tag.</p> <pre><code class="language-golang">s := gocron.NewScheduler(time.UTC) s.TagsUnique() _, _ = s.Every(1).Week().Tag("foo").Do(task) _, err := s.Every(1).Week().Tag("foo").Do(task) // error!!! s := gocron.NewScheduler(time.UTC) s.Every(2).Day().Tag("tag").At("10:00").Do(task) s.Every(1).Minute().Tag("tag").Do(task) s.RunByTag("tag") // both jobs will run </code></pre> <h2>FAQ</h2> <ul> <li> <p>Q: I'm running multiple pods on a distributed environment. How can I make a job not run once per pod causing duplication?</p> <ul> <li>We recommend using your own lock solution within the jobs themselves (you could use <a href="https://redis.io/topics/distlock">Redis</a>, for example)</li> <li>A2: Use the scheduler option <code>WithDistributedLocker</code> and either use an implemented <a href="https://raw.githubusercontent.com/go-co-op/gocron/main/#distributed-locker-implementations">backend</a> or implement your own and contribute it back in a PR!</li> </ul> </li> <li> <p>Q: I've removed my job from the scheduler, but how can I stop a long-running job that has already been triggered?</p> <ul> <li>A: We recommend using a means of canceling your job, e.g. a <code>context.WithCancel()</code>.</li> <li>A2: You can listen to the job context Done channel to know when the job has been canceled <pre><code class="language-golang">task := func(in string, job gocron.Job) { fmt.Printf("this job's last run: %s this job's next run: %s\n", job.LastRun(), job.NextRun()) fmt.Printf("in argument is %s\n", in) ticker := time.NewTicker(100 * time.Millisecond) defer ticker.Stop() for { select { case &lt;-job.Context().Done(): fmt.Printf("function has been canceled, performing cleanup and exiting gracefully\n") return case &lt;-ticker.C: fmt.Printf("performing a hard job that takes a long time that I want to kill whenever I want\n") } } } var err error s := gocron.NewScheduler(time.UTC) s.SingletonModeAll() j, err := s.Every(1).Hour().Tag("myJob").DoWithJobDetails(task, "foo") if err != nil { log.Fatalln("error scheduling job", err) } s.StartAsync() // Simulate some more work time.Sleep(time.Second) // I want to stop the job, together with the underlying goroutine fmt.Printf("now I want to kill the job\n") err = s.RemoveByTag("myJob") if err != nil { log.Fatalln("error removing job by tag", err) } // Wait a bit so that we can see that the job is exiting gracefully time.Sleep(time.Second) fmt.Printf("Job: %#v, Error: %#v", j, err) </code></pre> </li> </ul> </li> </ul> <hr> <p>Looking to contribute? Try to follow these guidelines:</p> <ul> <li>Use issues for everything</li> <li>For a small change, just send a PR!</li> <li>For bigger changes, please open an issue for discussion before sending a PR.</li> <li>PRs should have: tests, documentation and examples (if it makes sense)</li> <li>You can also contribute by: <ul> <li>Reporting issues</li> <li>Suggesting new features or enhancements</li> <li>Improving/fixing documentation</li> </ul> </li> </ul> <hr> <h2>Design</h2> <p><img src="https://user-images.githubusercontent.com/19351306/110375142-2ba88680-8017-11eb-80c3-554cc746b165.png" alt="design-diagram"></p> <p><a href="https://www.jetbrains.com/?from=gocron">Jetbrains</a> supports this project with GoLand licenses. We appreciate their support for free and open source software!</p> <h2>Star History</h2> <p><a href="https://star-history.com/#go-co-op/gocron&amp;Date"><img src="https://api.star-history.com/svg?repos=go-co-op/gocron&amp;type=Date" alt="Star History Chart"></a></p> + + + argoproj/argo-workflows + 2023-09-24T01:51:02Z + tag:github.com,2023-09-24:/argoproj/argo-workflows + + <p>Workflow Engine for Kubernetes</p><hr><p><a href="https://argoproj.github.io/community/join-slack"><img src="https://img.shields.io/badge/slack-argoproj-brightgreen.svg?logo=slack" alt="slack"></a> <a href="https://github.com/argoproj/argo-workflows/actions?query=event%3Apush+branch%3Amaster"><img src="https://github.com/argoproj/argo-workflows/workflows/CI/badge.svg?sanitize=true" alt="CI"></a> <a href="https://bestpractices.coreinfrastructure.org/projects/3830"><img src="https://bestpractices.coreinfrastructure.org/projects/3830/badge" alt="CII Best Practices"></a> <a href="https://artifacthub.io/packages/helm/argo/argo-workflows"><img src="https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/argo-workflows" alt="Artifact HUB"></a> <a href="https://twitter.com/argoproj"><img src="https://img.shields.io/twitter/follow/argoproj?style=social" alt="Twitter Follow"></a></p> <h2>What is Argo Workflows?</h2> <p>Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Argo Workflows is implemented as a Kubernetes CRD (Custom Resource Definition).</p> <ul> <li>Define workflows where each step in the workflow is a container.</li> <li>Model multi-step workflows as a sequence of tasks or capture the dependencies between tasks using a directed acyclic graph (DAG).</li> <li>Easily run compute intensive jobs for machine learning or data processing in a fraction of the time using Argo Workflows on Kubernetes.</li> </ul> <p>Argo is a <a href="https://cncf.io/">Cloud Native Computing Foundation (CNCF)</a> graduated project.</p> <h2>Use Cases</h2> <ul> <li><a href="https://argoproj.github.io/argo-workflows/use-cases/machine-learning/">Machine Learning pipelines</a></li> <li><a href="https://argoproj.github.io/argo-workflows/use-cases/data-processing/">Data and batch processing</a></li> <li><a href="https://argoproj.github.io/argo-workflows/use-cases/infrastructure-automation/">Infrastructure automation</a></li> <li><a href="https://argoproj.github.io/argo-workflows/use-cases/ci-cd/">CI/CD</a></li> <li><a href="https://argoproj.github.io/argo-workflows/use-cases/other/">Other use cases</a></li> </ul> <h2>Why Argo Workflows?</h2> <ul> <li>Argo Workflows is the most popular workflow execution engine for Kubernetes.</li> <li>Light-weight, scalable, and easier to use.</li> <li>Designed from the ground up for containers without the overhead and limitations of legacy VM and server-based environments.</li> <li>Cloud agnostic and can run on any Kubernetes cluster.</li> </ul> <p><a href="https://blog.argoproj.io/argo-workflows-events-2023-user-survey-results-82c53bc30543">Read what people said in our latest survey</a></p> <h2>Try Argo Workflows</h2> <p><a href="https://workflows.apps.argoproj.io/workflows/argo">Access the demo environment</a> (login using Github)</p> <p><img src="https://raw.githubusercontent.com/argoproj/argo-workflows/master/docs/assets/screenshot.png" alt="Screenshot"></p> <h2>Who uses Argo Workflows?</h2> <p><a href="https://raw.githubusercontent.com/argoproj/argo-workflows/master/USERS.md">About 200+ organizations are officially using Argo Workflows</a></p> <h2>Ecosystem</h2> <p>Just some of the projects that use or rely on Argo Workflows (complete list <a href="https://github.com/akuity/awesome-argo#ecosystem-projects">here</a>):</p> <ul> <li><a href="https://github.com/argoproj/argo-events">Argo Events</a></li> <li><a href="https://github.com/couler-proj/couler">Couler</a></li> <li><a href="https://github.com/argoproj-labs/hera-workflows">Hera</a></li> <li><a href="https://github.com/kubeflow/katib">Katib</a></li> <li><a href="https://kedro.readthedocs.io/en/stable/">Kedro</a></li> <li><a href="https://github.com/kubeflow/pipelines">Kubeflow Pipelines</a></li> <li><a href="https://metaflow.org">Netflix Metaflow</a></li> <li><a href="https://www.onepanel.ai/">Onepanel</a></li> <li><a href="https://github.com/orchest/orchest/">Orchest</a></li> <li><a href="https://github.com/rookout/piper">Piper</a></li> <li><a href="https://github.com/ploomber/ploomber">Ploomber</a></li> <li><a href="https://github.com/SeldonIO/seldon-core">Seldon</a></li> <li><a href="https://github.com/sql-machine-learning/sqlflow">SQLFlow</a></li> </ul> <h2>Client Libraries</h2> <p>Check out our <a href="https://raw.githubusercontent.com/argoproj/argo-workflows/master/docs/client-libraries.md">Java, Golang and Python clients</a>.</p> <h2>Quickstart</h2> <ul> <li><a href="https://raw.githubusercontent.com/argoproj/argo-workflows/master/docs/quick-start.md">Get started here</a></li> <li><a href="https://argoproj.github.io/argo-workflows/walk-through/">Walk-through examples</a></li> </ul> <h2>Documentation</h2> <p><a href="https://argoproj.github.io/argo-workflows/">View the docs</a></p> <h2>Features</h2> <p>An incomplete list of features Argo Workflows provide:</p> <ul> <li>UI to visualize and manage Workflows</li> <li>Artifact support (S3, Artifactory, Alibaba Cloud OSS, Azure Blob Storage, HTTP, Git, GCS, raw)</li> <li>Workflow templating to store commonly used Workflows in the cluster</li> <li>Archiving Workflows after executing for later access</li> <li>Scheduled workflows using cron</li> <li>Server interface with REST API (HTTP and GRPC)</li> <li>DAG or Steps based declaration of workflows</li> <li>Step level input &amp; outputs (artifacts/parameters)</li> <li>Loops</li> <li>Parameterization</li> <li>Conditionals</li> <li>Timeouts (step &amp; workflow level)</li> <li>Retry (step &amp; workflow level)</li> <li>Resubmit (memoized)</li> <li>Suspend &amp; Resume</li> <li>Cancellation</li> <li>K8s resource orchestration</li> <li>Exit Hooks (notifications, cleanup)</li> <li>Garbage collection of completed workflow</li> <li>Scheduling (affinity/tolerations/node selectors)</li> <li>Volumes (ephemeral/existing)</li> <li>Parallelism limits</li> <li>Daemoned steps</li> <li>DinD (docker-in-docker)</li> <li>Script steps</li> <li>Event emission</li> <li>Prometheus metrics</li> <li>Multiple executors</li> <li>Multiple pod and workflow garbage collection strategies</li> <li>Automatically calculated resource usage per step</li> <li>Java/Golang/Python SDKs</li> <li>Pod Disruption Budget support</li> <li>Single-sign on (OAuth2/OIDC)</li> <li>Webhook triggering</li> <li>CLI</li> <li>Out-of-the box and custom Prometheus metrics</li> <li>Windows container support</li> <li>Embedded widgets</li> <li>Multiplex log viewer</li> </ul> <h2>Community Meetings</h2> <p>We host monthly community meetings where we and the community showcase demos and discuss the current and future state of the project. Feel free to join us! For Community Meeting information, minutes and recordings please <a href="https://bit.ly/argo-wf-cmty-mtng">see here</a>.</p> <p>Participation in the Argo Workflows project is governed by the <a href="https://github.com/cncf/foundation/raw/master/code-of-conduct.md">CNCF Code of Conduct</a></p> <h2>Community Blogs and Presentations</h2> <ul> <li><a href="https://github.com/terrytangyuan/awesome-argo">Awesome-Argo: A Curated List of Awesome Projects and Resources Related to Argo</a></li> <li><a href="https://youtu.be/XNXJtxkUKeY">Automation of Everything - How To Combine Argo Events, Workflows &amp; Pipelines, CD, and Rollouts</a></li> <li><a href="https://youtu.be/UMaivwrAyTA">Argo Workflows and Pipelines - CI/CD, Machine Learning, and Other Kubernetes Workflows</a></li> <li><a href="https://medium.com/@marekermk/provisioning-argo-on-openshift-with-ansible-and-kustomize-340a1fda8b50">Argo Ansible role: Provisioning Argo Workflows on OpenShift</a></li> <li><a href="http://bit.ly/30YNIvT">Argo Workflows vs Apache Airflow</a></li> <li><a href="https://medium.com/@bouwe.ceunen/ci-cd-with-argo-on-kubernetes-28c1a99616a9">CI/CD with Argo on Kubernetes</a></li> <li><a href="https://haque-zubair.medium.com/define-your-ci-cd-pipeline-with-argo-workflows-25aefb02fa63">Define Your CI/CD Pipeline with Argo Workflows</a></li> <li><a href="https://admiralty.io/blog/running-argo-workflows-across-multiple-kubernetes-clusters/">Running Argo Workflows Across Multiple Kubernetes Clusters</a></li> <li><a href="https://www.anaconda.com/blog/developer-blog/open-source-model-management-roundup-polyaxon-argo-and-seldon/">Open Source Model Management Roundup: Polyaxon, Argo, and Seldon</a></li> <li><a href="https://www.interline.io/blog/scaling-openstreetmap-data-workflows/">Producing 200 OpenStreetMap extracts in 35 minutes using a scalable data workflow</a></li> <li><a href="http://dev.matt.hillsdon.net/2018/03/24/argo-integration-review.html">Argo integration review</a></li> <li>TGI Kubernetes with Joe Beda: <a href="https://www.youtube.com/watch?v=M_rxPPLG8pU&amp;start=859">Argo workflow system</a></li> </ul> <h2>Project Resources</h2> <ul> <li><a href="https://github.com/argoproj">Argo Project GitHub organization</a></li> <li><a href="https://argoproj.github.io/">Argo Website</a></li> <li><a href="https://argoproj.github.io/community/join-slack">Argo Slack</a></li> </ul> <h2>Security</h2> <p>See <a href="https://raw.githubusercontent.com/argoproj/argo-workflows/master/SECURITY.md">SECURITY.md</a>.</p> + + \ No newline at end of file diff --git a/golo/daily/index.xml b/golo/daily/index.xml index 2fe93748a3c..38a54373103 100644 --- a/golo/daily/index.xml +++ b/golo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Golo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:22Z + 2023-09-24T01:31:43Z Daily Trending of Golo in GitHub \ No newline at end of file diff --git a/golo/weekly/index.xml b/golo/weekly/index.xml new file mode 100644 index 00000000000..1a6b0258a21 --- /dev/null +++ b/golo/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Golo Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:26Z + Weekly Trending of Golo in GitHub + + \ No newline at end of file diff --git a/gosu/daily/index.xml b/gosu/daily/index.xml index 11c7a3d32aa..2e53db2a32a 100644 --- a/gosu/daily/index.xml +++ b/gosu/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gosu Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:21Z + 2023-09-24T01:31:42Z Daily Trending of Gosu in GitHub \ No newline at end of file diff --git a/gosu/weekly/index.xml b/gosu/weekly/index.xml new file mode 100644 index 00000000000..80e37cb73f7 --- /dev/null +++ b/gosu/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gosu Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:29Z + Weekly Trending of Gosu in GitHub + + \ No newline at end of file diff --git a/grace/daily/index.xml b/grace/daily/index.xml index 99aeb50853f..dbb21ec571b 100644 --- a/grace/daily/index.xml +++ b/grace/daily/index.xml @@ -1,7 +1,7 @@ GitHub Grace Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:23Z + 2023-09-24T01:31:47Z Daily Trending of Grace in GitHub \ No newline at end of file diff --git a/grace/weekly/index.xml b/grace/weekly/index.xml new file mode 100644 index 00000000000..ccd8c83a9a4 --- /dev/null +++ b/grace/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Grace Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:32Z + Weekly Trending of Grace in GitHub + + \ No newline at end of file diff --git a/gradle/daily/index.xml b/gradle/daily/index.xml index e26c7ae12b7..5d74f1c5041 100644 --- a/gradle/daily/index.xml +++ b/gradle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gradle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:26Z + 2023-09-24T01:31:46Z Daily Trending of Gradle in GitHub \ No newline at end of file diff --git a/gradle/weekly/index.xml b/gradle/weekly/index.xml new file mode 100644 index 00000000000..c567fee973d --- /dev/null +++ b/gradle/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Gradle Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:31Z + Weekly Trending of Gradle in GitHub + + \ No newline at end of file diff --git a/grammatical-framework/daily/index.xml b/grammatical-framework/daily/index.xml index fe78cd61934..e0033d91ab0 100644 --- a/grammatical-framework/daily/index.xml +++ b/grammatical-framework/daily/index.xml @@ -1,7 +1,7 @@ GitHub Grammatical Framework Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:25Z + 2023-09-24T01:31:45Z Daily Trending of Grammatical Framework in GitHub \ No newline at end of file diff --git a/grammatical-framework/weekly/index.xml b/grammatical-framework/weekly/index.xml new file mode 100644 index 00000000000..db22b0665fb --- /dev/null +++ b/grammatical-framework/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Grammatical Framework Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:30Z + Weekly Trending of Grammatical Framework in GitHub + + \ No newline at end of file diff --git a/graph-modeling-language/daily/index.xml b/graph-modeling-language/daily/index.xml index f4a149f9f4a..2b0acc8c259 100644 --- a/graph-modeling-language/daily/index.xml +++ b/graph-modeling-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Graph Modeling Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:29Z + 2023-09-24T01:31:50Z Daily Trending of Graph Modeling Language in GitHub \ No newline at end of file diff --git a/graph-modeling-language/weekly/index.xml b/graph-modeling-language/weekly/index.xml new file mode 100644 index 00000000000..59822892f93 --- /dev/null +++ b/graph-modeling-language/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Graph Modeling Language Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:35Z + Weekly Trending of Graph Modeling Language in GitHub + + \ No newline at end of file diff --git a/graphql/daily/index.xml b/graphql/daily/index.xml index cea9f7d3870..c97aaa59924 100644 --- a/graphql/daily/index.xml +++ b/graphql/daily/index.xml @@ -1,7 +1,7 @@ GitHub GraphQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:27Z + 2023-09-24T01:31:49Z Daily Trending of GraphQL in GitHub \ No newline at end of file diff --git a/graphql/weekly/index.xml b/graphql/weekly/index.xml new file mode 100644 index 00000000000..c20ed405683 --- /dev/null +++ b/graphql/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub GraphQL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:36Z + Weekly Trending of GraphQL in GitHub + + \ No newline at end of file diff --git a/graphviz-(dot)/daily/index.xml b/graphviz-(dot)/daily/index.xml index b6ace587183..764e3cfb915 100644 --- a/graphviz-(dot)/daily/index.xml +++ b/graphviz-(dot)/daily/index.xml @@ -1,7 +1,7 @@ GitHub Graphviz (DOT) Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:28Z + 2023-09-24T01:31:48Z Daily Trending of Graphviz (DOT) in GitHub \ No newline at end of file diff --git a/graphviz-(dot)/weekly/index.xml b/graphviz-(dot)/weekly/index.xml new file mode 100644 index 00000000000..a0d307fc87b --- /dev/null +++ b/graphviz-(dot)/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Graphviz (DOT) Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:34Z + Weekly Trending of Graphviz (DOT) in GitHub + + \ No newline at end of file diff --git a/groovy-server-pages/daily/index.xml b/groovy-server-pages/daily/index.xml index 05df4834924..80ff9a22f34 100644 --- a/groovy-server-pages/daily/index.xml +++ b/groovy-server-pages/daily/index.xml @@ -1,7 +1,7 @@ GitHub Groovy Server Pages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:36Z + 2023-09-24T01:31:54Z Daily Trending of Groovy Server Pages in GitHub \ No newline at end of file diff --git a/groovy-server-pages/weekly/index.xml b/groovy-server-pages/weekly/index.xml new file mode 100644 index 00000000000..00fc5959c25 --- /dev/null +++ b/groovy-server-pages/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Groovy Server Pages Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:40Z + Weekly Trending of Groovy Server Pages in GitHub + + \ No newline at end of file diff --git a/groovy/daily/index.xml b/groovy/daily/index.xml index 0cc7bf4aed0..1ef1af7b1a9 100644 --- a/groovy/daily/index.xml +++ b/groovy/daily/index.xml @@ -1,7 +1,14 @@ GitHub Groovy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:32Z + 2023-09-24T01:31:52Z Daily Trending of Groovy in GitHub + + jcerdeira/cyclicprocessor + 2023-09-24T01:31:52Z + tag:github.com,2023-09-24:/jcerdeira/cyclicprocessor + + <p></p><hr> + \ No newline at end of file diff --git a/groovy/weekly/index.xml b/groovy/weekly/index.xml new file mode 100644 index 00000000000..5d3ed085007 --- /dev/null +++ b/groovy/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub Groovy Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:38Z + Weekly Trending of Groovy in GitHub + + + kurron/gradle-wrapper-experiment + 2023-09-24T01:51:38Z + tag:github.com,2023-09-24:/kurron/gradle-wrapper-experiment + + <p>An attempt to create a custom Gradle distribution</p><hr> + + + witkai/hello + 2023-09-24T01:51:38Z + tag:github.com,2023-09-24:/witkai/hello + + <p></p><hr> + + \ No newline at end of file diff --git a/gsc/daily/index.xml b/gsc/daily/index.xml index 44499cdb9f3..0ad0ea7b996 100644 --- a/gsc/daily/index.xml +++ b/gsc/daily/index.xml @@ -1,7 +1,7 @@ GitHub GSC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:33Z + 2023-09-24T01:31:54Z Daily Trending of GSC in GitHub \ No newline at end of file diff --git a/gsc/weekly/index.xml b/gsc/weekly/index.xml new file mode 100644 index 00000000000..38c1f35eba0 --- /dev/null +++ b/gsc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub GSC Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:40Z + Weekly Trending of GSC in GitHub + + \ No newline at end of file diff --git a/hack/daily/index.xml b/hack/daily/index.xml index b04b976832a..f2448434be9 100644 --- a/hack/daily/index.xml +++ b/hack/daily/index.xml @@ -1,7 +1,7 @@ GitHub Hack Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:34Z + 2023-09-24T01:31:55Z Daily Trending of Hack in GitHub \ No newline at end of file diff --git a/hack/weekly/index.xml b/hack/weekly/index.xml new file mode 100644 index 00000000000..2eeadecc341 --- /dev/null +++ b/hack/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Hack Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:41Z + Weekly Trending of Hack in GitHub + + \ No newline at end of file diff --git a/haml/daily/index.xml b/haml/daily/index.xml index f952ef12b25..9057a3fe684 100644 --- a/haml/daily/index.xml +++ b/haml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Haml Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:35Z + 2023-09-24T01:31:56Z Daily Trending of Haml in GitHub \ No newline at end of file diff --git a/haml/weekly/index.xml b/haml/weekly/index.xml new file mode 100644 index 00000000000..a018e4cf1db --- /dev/null +++ b/haml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Haml Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:42Z + Weekly Trending of Haml in GitHub + + \ No newline at end of file diff --git a/handlebars/daily/index.xml b/handlebars/daily/index.xml index e2b7fe40928..9b8db2fd2d8 100644 --- a/handlebars/daily/index.xml +++ b/handlebars/daily/index.xml @@ -1,7 +1,7 @@ GitHub Handlebars Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:39Z + 2023-09-24T01:31:59Z Daily Trending of Handlebars in GitHub \ No newline at end of file diff --git a/handlebars/weekly/index.xml b/handlebars/weekly/index.xml new file mode 100644 index 00000000000..d69205347b7 --- /dev/null +++ b/handlebars/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Handlebars Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:46Z + Weekly Trending of Handlebars in GitHub + + + Esri/cedar + 2023-09-24T01:51:46Z + tag:github.com,2023-09-24:/Esri/cedar + + <p>JavaScript Charts for ArcGIS</p><hr> + + \ No newline at end of file diff --git a/haproxy/daily/index.xml b/haproxy/daily/index.xml index 132aa8d0729..616fa213569 100644 --- a/haproxy/daily/index.xml +++ b/haproxy/daily/index.xml @@ -1,7 +1,7 @@ GitHub HAProxy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:37Z + 2023-09-24T01:31:57Z Daily Trending of HAProxy in GitHub \ No newline at end of file diff --git a/haproxy/weekly/index.xml b/haproxy/weekly/index.xml new file mode 100644 index 00000000000..6012ce9cebd --- /dev/null +++ b/haproxy/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HAProxy Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:44Z + Weekly Trending of HAProxy in GitHub + + \ No newline at end of file diff --git a/harbour/daily/index.xml b/harbour/daily/index.xml index 07a6f3a33d6..7c144e99e91 100644 --- a/harbour/daily/index.xml +++ b/harbour/daily/index.xml @@ -1,7 +1,7 @@ GitHub Harbour Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:38Z + 2023-09-24T01:31:58Z Daily Trending of Harbour in GitHub \ No newline at end of file diff --git a/harbour/weekly/index.xml b/harbour/weekly/index.xml new file mode 100644 index 00000000000..b20dfeb79e3 --- /dev/null +++ b/harbour/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Harbour Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:43Z + Weekly Trending of Harbour in GitHub + + \ No newline at end of file diff --git a/haskell/daily/index.xml b/haskell/daily/index.xml index bac47adeffc..6802e5d54bb 100644 --- a/haskell/daily/index.xml +++ b/haskell/daily/index.xml @@ -1,7 +1,28 @@ GitHub Haskell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:42Z + 2023-09-24T01:32:02Z Daily Trending of Haskell in GitHub + + kevwil/gityup-haskell + 2023-09-24T01:32:02Z + tag:github.com,2023-09-24:/kevwil/gityup-haskell + + <p>just like svnup-haskell but for git ;-)</p><hr><h1>gityup-haskell</h1> <p>just like svnup-haskell but for git ;-)</p> + + + maxscheiber/LC4-haskell + 2023-09-24T01:32:02Z + tag:github.com,2023-09-24:/maxscheiber/LC4-haskell + + <p>Purely functional interpreter for the educational LC-4 ISA.</p><hr><h1>LC4-haskell</h1> <p>Purely functional interpreter for the educational LC-4 ISA, written by Max Scheiber (scheiber), and Ashutosh Goel (asgoel). The LC-4 ISA is a custom instruction set architecture created at the University of Pennslyvania, based off of the popular LC-3 ISA. The LC-4 ISA is commonly used for educational purposes, in classes such as CIS 240 (Intro. to Computer Architecture) at the University of Pennsylvania.</p> <h1>Main</h1> <p>To compile, run ghc --make Main.hs. This will compile Main.hs and all of its dependencies automatically. To run, type ./Main. This will open up a repl in which you can input the assembly filename, and the program will assemble and process the code, and print out the final Machine state when done. Note that this repl is very basic and reads each file one at a time. One idea for future work is to allow for multiple file execution (i.e. if one file needs another file as well).</p> <h1>Parser</h1> <p>The Parser library is a generic monadic Parser, built off of Dr. Stephanie Weirich's version for CIS 552 at the University of Pennslyvania.</p> <h1>LC4</h1> <p>The LC4 library is a collection of files which defines the typesystem used in the LC4 simulator, as well as a custom Parser for assembly files built off of the Parser library mentioned above. The LC4 contains all the code neccessary for interpreting instructions, including preprocessing and executing an assembly file. The key component, the machine state, is built off of the State monad and is kept and updated throughout execution. The LC4 library also contains basic error checking, based off of common errors seen in LC4 assembly code.</p> + + + UnBParadigmas2023-2/2023.2_G3_Funcional + 2023-09-24T01:32:02Z + tag:github.com,2023-09-24:/UnBParadigmas2023-2/2023.2_G3_Funcional + + <p></p><hr><h1>RPG de Texto</h1> <p><strong>Disciplina</strong>: FGA0210 - PARADIGMAS DE PROGRAMAÇÃO - T01 <br> <strong>Nro do Grupo</strong>: 03<br> <strong>Paradigma</strong>: Funcional<br></p> <h2>Alunos</h2> <table> <thead> <tr> <th>Matrícula</th> <th>Aluno</th> </tr> </thead> <tbody> <tr> <td>19/0010606</td> <td>Artur de Sousa Vieira</td> </tr> <tr> <td>19/0024950</td> <td>Arthur de Melo Garcia</td> </tr> <tr> <td>19/0011424</td> <td>Carlos Eduardo Miranda Roriz</td> </tr> <tr> <td>17/0032591</td> <td>Edvan Barreira Gomes Júnior</td> </tr> <tr> <td>19/0109963</td> <td>João Victor Teixeira Batista</td> </tr> <tr> <td>19/0112123</td> <td>Lucas Gabriel Sousa Camargo Paiva</td> </tr> <tr> <td>20/0023411</td> <td>Luíza Esteves dos Santos</td> </tr> <tr> <td>16/0141842</td> <td>Philipe Rosa Serafim</td> </tr> </tbody> </table> <h2>Sobre</h2> <p>O projeto consiste em um jogo de RPG dinâmico em Haskell que traz uma história cômica ao usuário de matrícula no sistema da UnB, onde quem está jogando pode escolher o caminho a ser tomado, e cada um leva a fins diferentes.</p> <p>O projeto usa de estrutura de grafos e parser para leitura de um arquivo txt para criação dos nós, os quais são navegados de acordo com a opção escolhida pelo usuário.</p> <p>Abaixo consta a estrutura da história usada para criação do arquivo txt.</p> <p><img src="https://github.com/UnBParadigmas2023-2/2023.2_G3_Funcional/assets/66687841/603fc808-ea65-4f90-a2d9-4508197ee125" alt="image"></p> <h2>Screenshots</h2> <p>Adicione 2 ou mais screenshots do projeto em termos de interface e/ou funcionamento.</p> <h2>Instalação</h2> <p><strong>Linguagens</strong>: <a href="https://www.haskell.org/downloads/">Haskell</a><br> <strong>Tecnologias</strong>: <a href="https://docs.haskellstack.org/en/stable/">Stack</a> e <a href="https://www.haskell.org/cabal/">Cabal</a></p> <h2>Como executar o projeto</h2> <p>Após instalar todas as dependências e clonar o projeto, é necessário acessar a pasta <code>RPG-TEXTO</code> e executar o comando <code>stack build</code> para compilar o projeto. Para iniciar o programa, basta executar <code>stack run</code> ou <code>stack exec RPG-texto-exe</code>. Caso queira excluir os binários compilados, basta executar <code>stack clean</code>.</p> <h2>Vídeo</h2> <p>Adicione 1 ou mais vídeos com a execução do projeto. Procure: (i) Introduzir o projeto; (ii) Mostrar passo a passo o código, explicando-o, e deixando claro o que é de terceiros, e o que é contribuição real da equipe; (iii) Apresentar particularidades do Paradigma, da Linguagem, e das Tecnologias, e (iV) Apresentar lições aprendidas, contribuições, pendências, e ideias para trabalhos futuros. OBS: TODOS DEVEM PARTICIPAR, CONFERINDO PONTOS DE VISTA. TEMPO: +/- 15min</p> <h2>Participações</h2> <p>Apresente, brevemente, como cada membro do grupo contribuiu para o projeto.</p> <table> <thead> <tr> <th>Nome do Membro</th> <th>Contribuição</th> <th>Significância da Contribuição para o Projeto (Excelente/Boa/Regular/Ruim/Nula)</th> </tr> </thead> <tbody> <tr> <td>Artur de Sousa Vieira</td> <td>Contribuição com a ideia inicial, criação da história, Concepção do parser e documentação</td> <td>Boa</td> </tr> <tr> <td>Arthur de Melo Garcia</td> <td>Contribuiu com a Documentação do projeto</td> <td>Boa</td> </tr> <tr> <td>Carlos Eduardo Miranda Roriz</td> <td>Contribuiu com a implementação toy da estrutura</td> <td>Excelente</td> </tr> <tr> <td>Edvan Barreira Gomes Júnior</td> <td>Contribuiu com a integração do parser ao projeto e documentação do projeto</td> <td>Boa</td> </tr> <tr> <td>João Victor Teixeira Batista</td> <td>Contribuiu com a implementação do parser/filereader e estudo do defeito encontrado</td> <td>Excelente</td> </tr> <tr> <td>Lucas Gabriel Sousa Camargo Paiva</td> <td>Contribuiu com a criação da história, auxiliou na implementação do grafo, correção do defeito encontrado e documentação do projeto</td> <td>Boa</td> </tr> <tr> <td>Luíza Esteves dos Santos</td> <td>Contribuiu com a criação da história, implementação do grafo, estudo do defeito encontrado e documentação do projeto</td> <td>Excelente</td> </tr> <tr> <td>Philipe Rosa Serafim</td> <td>Contribuiu com a estrutura do projeto, modularização, correção do defeito encontrado e documentação do projeto</td> <td>Excelente</td> </tr> </tbody> </table> <p>Menção honrosa ao <strong>Pedro Helias Carlos</strong> que criou o repositório e teve participação no estudo da estrutura do projeto.</p> <h2>Outros</h2> <h3>Lições Aprendidas</h3> <ul> <li>Implementação da estrutura de grafo</li> <li>Paradigma funcional</li> <li>Modularização</li> <li>Própria linguagem Haskell</li> </ul> <h3>Percepções</h3> <h3>Contribuições e Fragilidades</h3> <ul> <li>A estrutura do texto precisa estar exatamente igual ao padrão estipulado</li> <li>GHCI apresentou problemas sem solução na comunidade para algumas máquinas dos membros</li> </ul> <h3>Trabalhos Futuros</h3> <ul> <li>Implementar um criador de cenários que produza arquivos <code>.txt</code> no formato suportado pelo parser</li> <li>Melhorar interface</li> </ul> <h2>Fontes</h2> <ul> <li><a href="https://www.haskell.org/cabal/">Cabal</a></li> <li><a href="https://hackage.haskell.org/package/split-0.2.3.5/docs/Data-List-Split.html">Data.split</a></li> <li><a href="https://hackage.haskell.org/package/graphite">Graphite</a></li> <li><a href="https://www.haskell.org/downloads/">Haskell</a></li> <li><a href="https://hackage.haskell.org/package/fgl">Martin Erwig's Functional Graph Library</a></li> <li>Materiais disponibilizados em aula</li> </ul> + \ No newline at end of file diff --git a/haskell/weekly/index.xml b/haskell/weekly/index.xml new file mode 100644 index 00000000000..c1be05bdae6 --- /dev/null +++ b/haskell/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Haskell Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:49Z + Weekly Trending of Haskell in GitHub + + + marvinborner/birb + 2023-09-24T01:51:49Z + tag:github.com,2023-09-24:/marvinborner/birb + + <p>🐦 Programming language that only consists of bird emojis</p><hr><h1>Birb</h1> <p>Birb is an <em>advanced</em> programming language that only consists of bird emojis 🐣. Each emoji gets substituted by a <a href="https://www.angelfire.com/tx4/cus/combinator/birds.html"><em>combinator bird</em></a> of pure lambda calculus.</p> <h2>Birbs</h2> <p>Unfortunately, the Unicode standard does not yet have many (single-character) birds. These are the ones currently mapped/supported:</p> <table> <thead> <tr> <th align="center">emoji</th> <th>animal</th> <th>combinator</th> <th>term</th> </tr> </thead> <tbody> <tr> <td align="center">🦉</td> <td>owl</td> <td>owl</td> <td>$\lambda ab.b(ab)$</td> </tr> <tr> <td align="center">🦅</td> <td>eagle</td> <td>eagle</td> <td>$\lambda abcde.ab(cde)$</td> </tr> <tr> <td align="center">🪽</td> <td>wing</td> <td>phoenix</td> <td>$\lambda abcd.a(bd)(cd)$</td> </tr> <tr> <td align="center">🕊️</td> <td>dove</td> <td>dove</td> <td>$\lambda abcd.ab(cd)$</td> </tr> <tr> <td align="center">🦜</td> <td>parrot</td> <td>mockingbird</td> <td>$\lambda a.aa$</td> </tr> <tr> <td align="center">🦆</td> <td>duck</td> <td>quacky</td> <td>$\lambda abc.c(ba)$</td> </tr> <tr> <td align="center">🐤</td> <td>touring chick</td> <td>turing</td> <td>$\lambda ab.b(aab)$</td> </tr> <tr> <td align="center">🐥</td> <td>kool chick</td> <td>kestrel</td> <td>$\lambda ab.a$</td> </tr> <tr> <td align="center">🐣</td> <td>hatching chick</td> <td>quirky</td> <td>$\lambda abc.c(ab)$</td> </tr> <tr> <td align="center">🐦</td> <td>simple bird</td> <td>identity</td> <td>$\lambda a.a$</td> </tr> <tr> <td align="center">🦚</td> <td>peacock</td> <td>queer</td> <td>$\lambda abc.b(ac)$</td> </tr> <tr> <td align="center">🦤</td> <td>dodo</td> <td>sage</td> <td>$\lambda ab.a(bb)\lambda ab.a(bb)$</td> </tr> <tr> <td align="center">🐧</td> <td>penguin</td> <td>blackbird</td> <td>$\lambda abc.a(bc)$</td> </tr> <tr> <td align="center">🦢</td> <td>swan</td> <td>substitution</td> <td>$\lambda abc.ac(bc)$</td> </tr> <tr> <td align="center">🦩</td> <td>flamingo</td> <td>cardinal</td> <td>$\lambda abc.acb$</td> </tr> </tbody> </table> <p>Lonely/unmatched birbs: 🐔🦃🐓🪿</p> <h1>Syntax</h1> <ul> <li><code>[birb]+</code>: Birb</li> <li>everything else: Comment</li> </ul> <p>Syntax errors are impossible as long as you use at least one birb.</p> <h1>Semantics</h1> <p>Birbs stagger as they walk: they are reduced in alternating associative order, starting with left associativity at birb index $\lfloor\frac{\texttt{len}}{2}\rfloor$:</p> <pre><code>🐦🐦 -&gt; (🐦🐦) 🐦🐦🐦 -&gt; ((🐦🐦)🐦) 🐦🐦🐦🐦 -&gt; (🐦((🐦🐦)🐦)) 🐦🐦🐦🐦🐦 -&gt; ((🐦((🐦🐦)🐦))🐦) 🐦🐦🐦🐦🐦🐦 -&gt; (🐦((🐦((🐦🐦)🐦))🐦)) 🐦🐦🐦🐦🐦🐦🐦 -&gt; ((🐦((🐦((🐦🐦)🐦))🐦))🐦) ... </code></pre> <h1>Examples</h1> <p>You can find more examples (with comments) in the <code>samples/</code> directory.</p> <h2>Relationships</h2> <ul> <li>🪽🐦 $\rightsquigarrow$ 🦢</li> <li>🦢🐦 $\rightsquigarrow$ 🦉</li> <li>🦉🐦 $\rightsquigarrow$ 🦜</li> <li>🕊️🐦 $\rightsquigarrow$ 🐧</li> <li>🐧🐧 $\rightsquigarrow$ 🕊️</li> <li>🦩🐧 $\rightsquigarrow$ 🦚</li> <li>🦩🦚 $\rightsquigarrow$ 🐧</li> <li>🦩🦆 $\rightsquigarrow$ 🐣</li> </ul> <p>One can only imagine what happens if two parrots talk to each other: 🦜🦜 $\rightsquigarrow$ 💥. The same happens with 🐤🐤; they just can’t stop waddling!</p> <h2>Arithmetic</h2> <p>For this example I use the Church numerals. Zero would then be encoded as 🐥🐦. The successor function can be written as 🦢🐧:</p> <ul> <li>🐦🐧🐦🦢🐧🐥🐦 $\rightsquigarrow\lambda\lambda(10)$ – (Church numeral 1)</li> <li>🐦🐧🐦🐧🕊️🦢🐧🦢🐧🐥🐦 $\rightsquigarrow\lambda\lambda(1(10))$ – (Church numeral 2)</li> </ul> <p>Similarly, one can very obviously translate the Church addition function to 🪽🐧. Now, to calculate $1+2$ based on their increments from zero:</p> <ul> <li>🐦🐦🕊️🐧🕊️🐧🐦🐧🕊️🐧🕊️🪽🐧🦢🐧🦢🐧🐥🐦🦢🐧🐥🐦 $\rightsquigarrow\lambda\lambda(1(1(10)))$ – (Church numeral 3)</li> </ul> <p>Also: 🐧 is $a\cdot b$, 🦜 is $n^n$ and 🦚🐦 $a^b$.</p> <p>Note that there exist many alternative ways to do arithmetic. Try writing the functions above with other birbs!</p> <h2>Containers</h2> <p>You can create a pair $\langle X,Y\rangle$ using <code>🦩🦩🦩YX</code>.</p> <p>Typically, one would now construct a list using repeated application of pairs (Boehm-Berarducci/Church encoding). However, due to the reversed application and alternating associativity, the Mogensen-Scott encoding is more suitable:</p> <p>List $\langle X_1,X_2,\dots,X_n\rangle$: <code>[🦩]ⁿ🦩X2X1...XN</code>.</p> <h2>Busy <del>beavers</del> birbs</h2> <p>Contestants:</p> <ul> <li><em>The touring eagle</em>: <code>[🐦]ⁿ[🦅🐤]ⁿ</code> ($n=3$: 9 birbs, ~20M BLC bits)</li> <li>better? PR!</li> </ul> <h1>Transpiler</h1> <p>I created a lambda calculus to Birb transpiler. It works by converting binary lambda calculus to SKI combinators, which then get converted to Jot and back to SKI combinators. The resulting SKI combinators then get converted to Birbs.</p> <p>The reason I convert to Jot first is that Birbs semantics don’t allow trivial transpilation from arbitrary SKI expressions. With Jot however, applications with non-associative expressions like <code>((s k) (k s))</code> are impossible, as only a single non-associative application exists (the innermost/deepest expression).</p> <p>With all these conversions, the resulting transpiled Birb code is big, ugly and slow. There should be a way to optimize the transpilation process, but it’s probably a bit more complicated.</p> <h1>Usage</h1> <p>Install <a href="https://docs.haskellstack.org/en/stable/install_and_upgrade/">Haskell’s stack</a>. Then,</p> <ul> <li><code>stack run -- reduce file.birb</code> or <code>stack run -- reduce &lt;(echo 🐧🐧)</code></li> <li><code>stack run -- transpile &lt;(echo 01000110100000011100111001110011100111010)</code> to generate a birb program that calculates $5^5$</li> <li><code>stack install</code> so you can enjoy <code>birb</code> from anywhere</li> </ul> <p>If the output cannot be translated to birbs, the raw lambda calculus term (with De Bruijn indices) is printed. For the examples above I sometimes manually converted the term back to birbs.</p> <h1>Turing-completeness</h1> <p>Birb is Turing complete, since one can construct any term of the <a href="https://esolangs.org/wiki/Jot">Jot</a> variant of Iota. A Jot term <code>((X s) k)</code> is equivalent to <code>🐦🐦X🦢🐥</code>. Similarly, <code>(s (k X))</code> is equivalent to <code>🐦🦆X🐥🦢</code>.</p> <hr> <p>The idea of the language was originally proposed in 2021 by @SCKelement on <a href="https://esolangs.org/wiki/Birb">Esolang</a>.</p> + + + joeyadams/haskell-stm-delay + 2023-09-24T01:51:49Z + tag:github.com,2023-09-24:/joeyadams/haskell-stm-delay + + <p>Updatable one-shot timer polled with STM (Haskell)</p><hr> + + + DKISTDC/level2 + 2023-09-24T01:51:49Z + tag:github.com,2023-09-24:/DKISTDC/level2 + + <p>Level 2 Data Processing</p><hr><h1>Level 2 Inversion</h1> <p>See <a href="https://raw.githubusercontent.com/DKISTDC/level2/main/DEVELOPMENT.md">DEVELOPMENT.md</a></p> <h2>Questions</h2> <ul> <li><input type="checkbox" disabled> (Tony) We need local persistence but a new DB may increase the workload for Tony. <ul> <li>adding fields to existing tables creates an unwanted dependency and slows dev</li> <li>same physical postgres instance with different tables? (Prefix?)</li> </ul> </li> <li><input type="checkbox" disabled> Who chooses which OP to process next? <ul> <li>do we mark A as "work on this next?"</li> <li>or does Han scan available work and choose?</li> <li>who gets yelled at if something doesn't get done?</li> </ul> </li> </ul> <h2>Answers</h2> <ul> <li><input type="checkbox" checked disabled> Han wants to work on OPs, not datasets. How do we know when an OP is complete? <ul> <li>OPs do not exist at the metadata level yet</li> <li>Wait a certain number of days for all datasets to appear before assuming it is ready.</li> </ul> </li> <li><input type="checkbox" checked disabled> How does L2 data become available to the system? <ul> <li>L2 will store OP metadata related to inversions</li> <li>Metadata store will aggregate this information and introduce an OP schema</li> </ul> </li> </ul> <h2>Service Graph</h2> <p>Arrow indicate the direction of dependency. If A -&gt; B, then A is aware of B and calls it or interacts with it.</p> <pre><code class="language-mermaid">graph LR; L2[Level 2] State[(Internal State)] Meta[Metadata Store] Globus[GLOBUS] Sci[Science / CU Blanca] subgraph Level 2 L2 L2 --&gt; State State Sci --&gt; |OPs| L2 Sci --&gt; |ready event| L2 end Meta --&gt; |OPs| L2 Portal --&gt; Meta L2 --&gt; |datasets| Meta Meta --&gt; Globus Sci --&gt; |dataset files| Globus </code></pre> <p>Deployable Containers</p> <ul> <li>L2 Service</li> <li>State Postgres DB - New or existing instance, but L2 accesses unique tables</li> </ul> <h2>Process</h2> <pre><code class="language-mermaid">flowchart LR; Scan[[Scan]] Qualify[[Qualify]] Preprocess[[Preprocess]] Invert[[Invert]] Publish[[Publish]] Scan --&gt; Qualify Qualify --&gt; Preprocess Preprocess --&gt; Invert subgraph Science Invert end Invert --&gt; Publish </code></pre> <p><em>Scan</em> - Check the entire metadata store for OP candidates and add to the database if they don't exist. Update if necessary</p> <p><a href="https://raw.githubusercontent.com/DKISTDC/level2/main/docs/Invertibility.md"><em>Qualify</em></a> - Check criteria for invertibility and record if OPs are invertible or not</p> <p><em>Preprocess</em> - Preprocess data if necessary, saving intermediate files if needed (unknown)</p> <p><em>Invert</em> - Han's Science Team manually inverts the OP</p> <p><em>Publish</em> - Make L2 data available to metadata store / portal</p> <h2>Inversion States</h2> <p>Observing Programs are identified, then pass through the following states. The graph below illustrates a successful flow, but any processing step may fail, putting the OP into an Error state.</p> <pre><code class="language-mermaid">stateDiagram-v2 dis: Discovered inv: Invertible no: Not Invertible pre: Preprocessed work: Working done: Inverted pub: Published err: Error dis --&gt; inv dis --&gt; no inv --&gt; pre pre --&gt; work work --&gt; done: Science done --&gt; pub </code></pre> <p>We record this history of all states, and only add information rather than mutating the record</p> <h2>Definitions</h2> <p><strong>Observing Program</strong> - a group of datasets related to a single observation with a measurement in mind, which is a smaller division of a proposal</p> + + \ No newline at end of file diff --git a/haxe/daily/index.xml b/haxe/daily/index.xml index f3df548e441..33035fd0377 100644 --- a/haxe/daily/index.xml +++ b/haxe/daily/index.xml @@ -1,7 +1,7 @@ GitHub Haxe Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:55Z + 2023-09-24T01:32:14Z Daily Trending of Haxe in GitHub \ No newline at end of file diff --git a/haxe/weekly/index.xml b/haxe/weekly/index.xml new file mode 100644 index 00000000000..d510ecd0352 --- /dev/null +++ b/haxe/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Haxe Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:01Z + Weekly Trending of Haxe in GitHub + + + waneck/hx-javastd + 2023-09-24T01:52:01Z + tag:github.com,2023-09-24:/waneck/hx-javastd + + <p>Haxe/Java standard library</p><hr><h1>hx-javastd</h1> <p>Haxe externs for JDK 7.0 and less. The missing Haxe standard library implementations for the sys.* package will be implemented into this library</p> + + \ No newline at end of file diff --git a/hcl/daily/index.xml b/hcl/daily/index.xml index 095ba6e36c5..395f70128e7 100644 --- a/hcl/daily/index.xml +++ b/hcl/daily/index.xml @@ -1,7 +1,14 @@ GitHub HCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:55Z + 2023-09-24T01:32:14Z Daily Trending of HCL in GitHub + + snyk-workshops/DSOF-Patch-IaC-App + 2023-09-24T01:32:14Z + tag:github.com,2023-09-24:/snyk-workshops/DSOF-Patch-IaC-App + + <p></p><hr> + \ No newline at end of file diff --git a/hcl/weekly/index.xml b/hcl/weekly/index.xml new file mode 100644 index 00000000000..63ba2e2f51a --- /dev/null +++ b/hcl/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub HCL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:01Z + Weekly Trending of HCL in GitHub + + + ExamProCo/terraform-beginner-bootcamp-2023 + 2023-09-24T01:52:01Z + tag:github.com,2023-09-24:/ExamProCo/terraform-beginner-bootcamp-2023 + + <p>Terraform Beginner Bootcamp</p><hr> + + + hashicorp/tfc-guide-example + 2023-09-24T01:52:01Z + tag:github.com,2023-09-24:/hashicorp/tfc-guide-example + + <p>Example Terraform configuration</p><hr> + + + snyk-workshops/DSOF-Patch-IaC-App + 2023-09-24T01:52:01Z + tag:github.com,2023-09-24:/snyk-workshops/DSOF-Patch-IaC-App + + <p></p><hr> + + \ No newline at end of file diff --git a/hiveql/daily/index.xml b/hiveql/daily/index.xml index 6257ac350f6..d0f719ff03d 100644 --- a/hiveql/daily/index.xml +++ b/hiveql/daily/index.xml @@ -1,7 +1,7 @@ GitHub HiveQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:49Z + 2023-09-24T01:32:10Z Daily Trending of HiveQL in GitHub \ No newline at end of file diff --git a/hiveql/weekly/index.xml b/hiveql/weekly/index.xml new file mode 100644 index 00000000000..f56f4c5a79f --- /dev/null +++ b/hiveql/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HiveQL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:56Z + Weekly Trending of HiveQL in GitHub + + \ No newline at end of file diff --git a/hlsl/daily/index.xml b/hlsl/daily/index.xml index c33d81e8679..1a98389889f 100644 --- a/hlsl/daily/index.xml +++ b/hlsl/daily/index.xml @@ -1,7 +1,7 @@ GitHub HLSL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:50Z + 2023-09-24T01:32:09Z Daily Trending of HLSL in GitHub \ No newline at end of file diff --git a/hlsl/weekly/index.xml b/hlsl/weekly/index.xml new file mode 100644 index 00000000000..5d81a39cdfb --- /dev/null +++ b/hlsl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HLSL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:51:58Z + Weekly Trending of HLSL in GitHub + + \ No newline at end of file diff --git a/holyc/daily/index.xml b/holyc/daily/index.xml index 6e62ba56103..80a293e7ff6 100644 --- a/holyc/daily/index.xml +++ b/holyc/daily/index.xml @@ -1,7 +1,7 @@ GitHub HolyC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:58Z + 2023-09-24T01:32:16Z Daily Trending of HolyC in GitHub \ No newline at end of file diff --git a/holyc/weekly/index.xml b/holyc/weekly/index.xml new file mode 100644 index 00000000000..91f4bb886a1 --- /dev/null +++ b/holyc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HolyC Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:06Z + Weekly Trending of HolyC in GitHub + + \ No newline at end of file diff --git a/hoon/daily/index.xml b/hoon/daily/index.xml index 299848a6647..f467aed225d 100644 --- a/hoon/daily/index.xml +++ b/hoon/daily/index.xml @@ -1,7 +1,7 @@ GitHub hoon Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:28:57Z + 2023-09-24T01:32:18Z Daily Trending of hoon in GitHub \ No newline at end of file diff --git a/hoon/weekly/index.xml b/hoon/weekly/index.xml new file mode 100644 index 00000000000..abd241613fe --- /dev/null +++ b/hoon/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub hoon Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:04Z + Weekly Trending of hoon in GitHub + + \ No newline at end of file diff --git a/html+ecr/daily/index.xml b/html+ecr/daily/index.xml index c4b712a15e5..95b2d429382 100644 --- a/html+ecr/daily/index.xml +++ b/html+ecr/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+ECR Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:02Z + 2023-09-24T01:32:19Z Daily Trending of HTML+ECR in GitHub \ No newline at end of file diff --git a/html+ecr/weekly/index.xml b/html+ecr/weekly/index.xml new file mode 100644 index 00000000000..c7983294403 --- /dev/null +++ b/html+ecr/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HTML+ECR Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:08Z + Weekly Trending of HTML+ECR in GitHub + + \ No newline at end of file diff --git a/html+eex/daily/index.xml b/html+eex/daily/index.xml index 88d295bc5c4..3446797b5ce 100644 --- a/html+eex/daily/index.xml +++ b/html+eex/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+EEX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:00Z + 2023-09-24T01:32:21Z Daily Trending of HTML+EEX in GitHub \ No newline at end of file diff --git a/html+eex/weekly/index.xml b/html+eex/weekly/index.xml new file mode 100644 index 00000000000..309d8ca48be --- /dev/null +++ b/html+eex/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HTML+EEX Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:07Z + Weekly Trending of HTML+EEX in GitHub + + \ No newline at end of file diff --git a/html+erb/daily/index.xml b/html+erb/daily/index.xml index 8fbf179a6ea..9e82a99d10b 100644 --- a/html+erb/daily/index.xml +++ b/html+erb/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+ERB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:21Z + 2023-09-24T01:32:42Z Daily Trending of HTML+ERB in GitHub \ No newline at end of file diff --git a/html+erb/weekly/index.xml b/html+erb/weekly/index.xml new file mode 100644 index 00000000000..b4016c5c163 --- /dev/null +++ b/html+erb/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HTML+ERB Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:44Z + Weekly Trending of HTML+ERB in GitHub + + \ No newline at end of file diff --git a/html+php/daily/index.xml b/html+php/daily/index.xml index c8d8b7c8cd1..f27cf40b52e 100644 --- a/html+php/daily/index.xml +++ b/html+php/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+PHP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:23Z + 2023-09-24T01:32:41Z Daily Trending of HTML+PHP in GitHub \ No newline at end of file diff --git a/html+php/weekly/index.xml b/html+php/weekly/index.xml new file mode 100644 index 00000000000..3ea76a9d42e --- /dev/null +++ b/html+php/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HTML+PHP Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:45Z + Weekly Trending of HTML+PHP in GitHub + + \ No newline at end of file diff --git a/html+razor/daily/index.xml b/html+razor/daily/index.xml index f2c77b42d56..97e71cf5240 100644 --- a/html+razor/daily/index.xml +++ b/html+razor/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+Razor Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:22Z + 2023-09-24T01:32:43Z Daily Trending of HTML+Razor in GitHub \ No newline at end of file diff --git a/html+razor/weekly/index.xml b/html+razor/weekly/index.xml new file mode 100644 index 00000000000..534a9b4ea8f --- /dev/null +++ b/html+razor/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HTML+Razor Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:44Z + Weekly Trending of HTML+Razor in GitHub + + \ No newline at end of file diff --git a/html/daily/index.xml b/html/daily/index.xml index 7686ea1bdf9..ef0e4816964 100644 --- a/html/daily/index.xml +++ b/html/daily/index.xml @@ -1,7 +1,14 @@ GitHub HTML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:05Z + 2023-09-24T01:32:24Z Daily Trending of HTML in GitHub + + Programith/html + 2023-09-24T01:32:24Z + tag:github.com,2023-09-24:/Programith/html + + <p>HTML files used in videos for social media</p><hr><h1>html</h1> <p>HTML files used in videos for social media</p> <p>⭐️ Follow Me If You Are Amazing:</p> <p>➡️ YOUTUBE: <a href="https://youtube.com/@Programith">https://youtube.com/@Programith</a><br> ➡️ INSTAGRAM: <a href="https://instagram.com/Programith">https://instagram.com/Programith</a><br> ➡️ TIKTOK: <a href="https://tiktok.com/@Programith">https://tiktok.com/@Programith</a><br> ➡️ TWITTER/X: <a href="https://twitter.com/Programith">https://twitter.com/Programith</a><br></p> + \ No newline at end of file diff --git a/html/weekly/index.xml b/html/weekly/index.xml new file mode 100644 index 00000000000..c0293bcac18 --- /dev/null +++ b/html/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub HTML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:11Z + Weekly Trending of HTML in GitHub + + + yoheinakajima/instagraph + 2023-09-24T01:52:11Z + tag:github.com,2023-09-24:/yoheinakajima/instagraph + + <p>Converts text input or URL into knowledge graph and displays</p><hr><p>Note for non-coders: you can sign up for the waitlist at <a href="https://instagraph.ai">instagraph.ai</a>.</p> <h1>InstaGraph 🌐</h1> <p>Hello there, adventurous coder! Welcome to InstaGraph, your go-to application for converting text or URLs into insightful knowledge graphs. Curious about the relationships between entities in a complex topic? Feed the text to InstaGraph and voila! A beautiful knowledge graph is at your fingertips.</p> <p>See example flowcharts generated by InstaGraph <a href="https://twitter.com/yoheinakajima/status/1701351068817301922">here</a>.</p> <p>Powered by OpenAI's GPT-3.5, this Flask application turns your text into a vividly colored graph, making it easier to visualize relationships between various entities. Enough talking—let's get started!</p> <p><em><strong>Author's TL;DR</strong>: If you're just looking for how the knowledge graph is generated, check out the function call parameters taking up half of main.py.</em></p> <h2>Table of Contents 📚</h2> <ul> <li><a href="https://raw.githubusercontent.com/yoheinakajima/instagraph/main/#features-">Features</a></li> <li><a href="https://raw.githubusercontent.com/yoheinakajima/instagraph/main/#installation-%EF%B8%8F">Installation</a></li> <li><a href="https://raw.githubusercontent.com/yoheinakajima/instagraph/main/#usage-">Usage</a></li> <li><a href="https://raw.githubusercontent.com/yoheinakajima/instagraph/main/#contributing-">Contributing</a></li> <li><a href="https://raw.githubusercontent.com/yoheinakajima/instagraph/main/#license-">License</a></li> </ul> <h2>Features 🌟</h2> <ul> <li>Dynamic Text to Graph conversion.</li> <li>Color-coded graph nodes and edges.</li> <li>Responsive design—use it on any device.</li> <li>Super-duper user-friendly!</li> </ul> <h2>Installation 🛠️</h2> <p>To get started, you'll need Python and pip installed.</p> <h4>1. Clone the repository</h4> <pre><code class="language-bash">git clone https://github.com/yoheinakajima/instagraph.git </code></pre> <h4>2. Navigate to the project directory</h4> <pre><code class="language-bash">cd instagraph </code></pre> <h4>3. Install the required Python packages</h4> <pre><code class="language-bash">pip install -r requirements.txt </code></pre> <h4>4. Set up your OpenAI API Key</h4> <p>Change .env.example to .env</p> <pre><code class="language-text">mv .env.example .env </code></pre> <p>Add your OpenAI API key to .env file:</p> <pre><code class="language-text">OPENAI_API_KEY=your-api-key-here </code></pre> <h5>Optional</h5> <p>Add Neo4J username, password and URL in the <code>*.env</code> file as well.</p> <pre><code class="language-text">NEO4J_USERNAME= NEO4J_PASSWORD= NEO4J_URL= </code></pre> <h4>5. Run the Flask app</h4> <pre><code class="language-bash">python main.py </code></pre> <p>Navigate to <code>http://localhost:8080</code> to see your app running.</p> <h2>Run as Container</h2> <h4>1. Clone the repository</h4> <pre><code class="language-bash">git clone https://github.com/yoheinakajima/instagraph.git </code></pre> <h4>2. Navigate to the project docker directory</h4> <pre><code class="language-bash">cd instagraph/docker </code></pre> <h4>3.1 Run in Dev mode</h4> <pre><code class="language-bash">docker-compose -f docker-compose-dev.yml up # Add -d flag at the end to run in background/daemon mode. </code></pre> <h4>3.2 Run in Prod - Create the docker image</h4> <ul> <li>Using the <code>gunicorn==21.2.0</code> to run the application in production mode</li> </ul> <pre><code class="language-bash">docker-compose -f docker-compose.yml up --build -d </code></pre> <h2>Usage 🎉</h2> <h3>Web Interface</h3> <ul> <li>Open your web browser and navigate to <code>http://localhost:8080</code>.</li> <li>Type your text or paste a URL in the input box.</li> <li>Click "Submit" and wait for the magic to happen!</li> </ul> <h3>API Endpoints</h3> <ol> <li> <p><strong>GET Response Data</strong>: <code>/get_response_data</code></p> <ul> <li>Method: <code>POST</code></li> <li>Data Params: <code>{"user_input": "Your text here"}</code></li> <li>Response: GPT-3.5 processed data</li> </ul> </li> <li> <p><strong>GET Graph Data</strong>: <code>/get_graph_data</code></p> <ul> <li>Method: <code>POST</code></li> <li>Response: Graph Data</li> </ul> </li> <li> <p><strong>GET History Data</strong>: <code>/get_graph_history</code></p> <ul> <li>Method: <code>GET</code></li> <li>Response: Graph Data</li> </ul> </li> </ol> <h2>Contributing 🤝</h2> <p>Best way to chat with me is on Twitter at <a href="https://twitter.com/yoheinakajima">@yoheinakajima</a>. I usually only code on the weekends or at night, and in pretty small chunks. I have lots ideas on what I want to add here, but obviously this would move faster with everyone. Not sure I can manage Github well given my time constraints, so please reach out if you want to help me run the Github. Now, here are a few ideas on what I think we should add based on comments...</p> <ul> <li><del>Store knowledge graph</del> (thx <a href="https://github.com/tomasonjo">@tomasonjo</a>! 9/13/23)</li> <li><del>Pull knowledge graph from storage</del> (thx <a href="https://github.com/tomasonjo">@tomasonjo</a>! 9/13/23)</li> <li>Show history</li> <li>Ability to combine two graphs</li> <li>Ability to combine 2+ graphs from history</li> <li><del>Ability to expand on a graph</del> (thx <a href="https://github.com/tomasonjo">@tomasonjo</a>! 9/13/23)</li> <li>Ability to expand on graph from specific nodes</li> <li>Fuzzy matching of nodes for combining graphs (vector match + LLM confirmation)</li> </ul> <p>There are a lot of "build a chart" tools out there, so instead of doing user account and custom charts, it sounds more fun for me to work on building the largest knowledge graph ever...</p> <p>Before creating an Issue please refer the <a href="https://github.com/yoheinakajima/instagraph/tree/main/.github/ISSUE_TEMPLATE">ISSUE_TEMPLATE</a> provided.</p> <h2>License 📝</h2> <p>MIT License. See <a href="https://raw.githubusercontent.com/yoheinakajima/instagraph/main/LICENSE">LICENSE</a> for more information.</p> <hr> <p>Enjoy using InstaGraph! 🎉</p> + + + polarsys/b612 + 2023-09-24T01:52:11Z + tag:github.com,2023-09-24:/polarsys/b612 + + <p>Eclipse B612</p><hr><h1>PolarSys B612 font family</h1> <p>B612 is an highly legible open source font family designed and tested to be used on aircraft cockpit screens.</p> <p>Main characteristics are:</p> <ul> <li>Maximize the distance between the forms of the characters</li> <li>Respect the primitives of the different letters</li> <li>Harmonize the forms and their spacing</li> </ul> <h2>The genesis of PolarSys B612</h2> <p>In 2010, Airbus initiated a research collaboration with <a href="http://www.enac.fr">ENAC</a> and <a href="http://www.univ-tlse3.fr/">Université de Toulouse III</a> on a prospective study to define and validate an “Aeronautical Font”: the challenge was to improve the display of information on the cockpit screens, in particular in terms of legibility and comfort of reading, and to optimize the overall homogeneity of the cockpit.</p> <p>2 years later, <a href="https://www.airbus.com">Airbus</a> came to find <a href="https://intactile.com">Intactile DESIGN</a> to work on the design of the eight typographic variants of the font. This one, baptized B612 in reference to the imaginary asteroid of the aviator Saint‑Exupéry, benefited from a complete hinting on all the characters.</p> <h2>Releasing a new version of the font</h2> <ul> <li>Update the version number in the font info of the source files</li> <li>Make a copy of the source files</li> <li>Open the copies in Fontlab</li> <li>Run the merge intersection command on each file</li> <li>Generate the ttf files</li> <li>Run the build script from the scripts folder to fix digital signature</li> </ul> <h2>Copyright</h2> <p>Copyright (c) 2012, AIRBUS (airbus-group.com). All rights reserved.</p> <h2>License</h2> <p>This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 and Eclipse Distribution License v1.0 and the SIL Open Font License v1.1 which accompanies this distribution. The Eclipse Public License is available at <a href="https://www.eclipse.org/legal/epl-v20.html">https://www.eclipse.org/legal/epl-v20.html</a> and the Eclipse Distribution License is available at <a href="https://www.eclipse.org/org/documents/edl-v10.php">https://www.eclipse.org/org/documents/edl-v10.php</a>. The SIL Open Font License v1.1 is available at <a href="https://scripts.sil.org/OFL">https://scripts.sil.org/OFL</a></p> + + + tulios/json-viewer + 2023-09-24T01:52:11Z + tag:github.com,2023-09-24:/tulios/json-viewer + + <p>It is a Chrome extension for printing JSON and JSONP.</p><hr><p><img src="https://raw.githubusercontent.com/tulios/json-viewer/master/logo.png" alt="JSONViewer Logo"></p> <h1>JSON Viewer</h1> <p><img src="https://raw.githubusercontent.com/tulios/json-viewer/master/screenshot.png" alt="screenshot"></p> <p>The most beautiful and customizable JSON/JSONP highlighter that your eyes have ever seen. It is a Chrome extension for printing JSON and JSONP.</p> <p>Notes:</p> <ul> <li>This extension might crash with other JSON highlighters/formatters, you may need to disable them</li> <li>To highlight local files and incognito tabs you have to manually enable these options on the extensions page</li> <li>Sometimes when the plugin updates chrome leaves the old background process running and revokes some options, like the access to local files. When this happen just recheck the option that everything will work again</li> <li>Works on local files (if you enable this in chrome://extensions)</li> </ul> <p>Features:</p> <ul> <li>Syntax highlighting</li> <li>27 built-in themes</li> <li>Collapsible nodes</li> <li>Clickable URLs (optional)</li> <li>URL does not matter (the content is analysed to determine if its a JSON or not)</li> <li>Inspect your json typing "json" in the console</li> <li>Hot word <code>json-viewer</code> into omnibox (type <code>json-viewer</code> + TAB and paste your JSON into omnibox, hit ENTER and it will be highlighted)</li> <li>Toggle button to view the raw/highlighted version</li> <li>Works with numbers bigger than Number.MAX_VALUE</li> <li>Option to show line numbers</li> <li>Option to customize your theme</li> <li>Option to customize the tab size</li> <li>Option to configure a max JSON size to highlight</li> <li>Option to collapse nodes from second level + Button to unfold all collapsed nodes</li> <li>Option to include a header with timestamp + url</li> <li>Option to allow the edition of the loaded JSON</li> <li>Option to sort json by keys</li> <li>Option to disable auto highlight</li> <li>Option for C-style braces and arrays</li> <li>Scratch pad, a new area which you can type/paste JSON and format indefinitely using a button or key shortcut. To access type <code>json-viewer</code> + <code>TAB</code> + <code>scratch pad</code> ENTER</li> </ul> <h2>Installation</h2> <h3>Install through Chrome Web Store</h3> <p><a href="https://chrome.google.com/webstore/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh"><img src="https://raw.githubusercontent.com/tulios/json-viewer/master/tryitnow.png" alt="https://chrome.google.com/webstore/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh"></a></p> <h3>Or compile and load by yourself</h3> <ol> <li>It depends on node (version in <code>package.json</code> engines).</li> <li><code>npm install --global yarn</code></li> <li><code>yarn install</code></li> <li><code>yarn run build</code></li> <li>Open Chrome and go to: chrome://extensions/</li> <li>Enable: "Developer mode"</li> <li>Click: "Load unpacked extension"</li> <li>Select: "build/json_viewer" directory.</li> </ol> <h2>Try it on</h2> <h3>JSON</h3> <p><a href="https://api.github.com/repos/tulios/json-viewer">https://api.github.com/repos/tulios/json-viewer</a></p> <p><a href="http://graph.facebook.com/github">http://graph.facebook.com/github</a></p> <p><a href="https://api.github.com">https//api.github.com</a></p> <p><a href="https://api.github.com/gists/public">https://api.github.com/gists/public</a></p> <p>Large files:</p> <p><a href="https://raw.githubusercontent.com/ebrelsford/geojson-examples/master/596acres-02-18-2014.geojson">https://raw.githubusercontent.com/ebrelsford/geojson-examples/master/596acres-02-18-2014.geojson</a></p> <p><a href="https://api.takealot.com/rest/v-1-4-2/productlines?available=1&amp;cat=10371&amp;instock=1&amp;rows=10&amp;sort=score%20desc&amp;start=0">https://api.takealot.com/rest/v-1-4-2/productlines?available=1&amp;cat=10371&amp;instock=1&amp;rows=10&amp;sort=score%20desc&amp;start=0</a></p> <h3>JSONP</h3> <p><a href="http://freemusicarchive.org/api/get/curators.jsonp?api_key=60BLHNQCAOUFPIBZ&amp;callback=test">http://freemusicarchive.org/api/get/curators.jsonp?api_key=60BLHNQCAOUFPIBZ&amp;callback=test</a></p> <h2>License</h2> <p>See <a href="https://github.com/tulios/json-viewer/raw/master/LICENSE">LICENSE</a> for more details.</p> + + \ No newline at end of file diff --git a/http/daily/index.xml b/http/daily/index.xml index 10c236b47e2..e84a0c7b0fd 100644 --- a/http/daily/index.xml +++ b/http/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTTP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:24Z + 2023-09-24T01:32:40Z Daily Trending of HTTP in GitHub \ No newline at end of file diff --git a/http/weekly/index.xml b/http/weekly/index.xml new file mode 100644 index 00000000000..edbe9d7475e --- /dev/null +++ b/http/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HTTP Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:43Z + Weekly Trending of HTTP in GitHub + + \ No newline at end of file diff --git a/hxml/daily/index.xml b/hxml/daily/index.xml index 3b423bc7415..c9a98292cb5 100644 --- a/hxml/daily/index.xml +++ b/hxml/daily/index.xml @@ -1,7 +1,7 @@ GitHub HXML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:26Z + 2023-09-24T01:32:44Z Daily Trending of HXML in GitHub \ No newline at end of file diff --git a/hxml/weekly/index.xml b/hxml/weekly/index.xml new file mode 100644 index 00000000000..a1a3e0c30bd --- /dev/null +++ b/hxml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HXML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:47Z + Weekly Trending of HXML in GitHub + + \ No newline at end of file diff --git a/hy/daily/index.xml b/hy/daily/index.xml index 323fc1a6428..fa0cdf185e0 100644 --- a/hy/daily/index.xml +++ b/hy/daily/index.xml @@ -1,7 +1,14 @@ GitHub Hy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:27Z + 2023-09-24T01:32:45Z Daily Trending of Hy in GitHub + + atisharma/chasm_engine + 2023-09-24T01:32:45Z + tag:github.com,2023-09-24:/atisharma/chasm_engine + + <p>CHAracter State Management - a generative text adventure engine</p><hr> + \ No newline at end of file diff --git a/hy/weekly/index.xml b/hy/weekly/index.xml new file mode 100644 index 00000000000..5743aa1c848 --- /dev/null +++ b/hy/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Hy Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:48Z + Weekly Trending of Hy in GitHub + + \ No newline at end of file diff --git a/hyphy/daily/index.xml b/hyphy/daily/index.xml index 8dc5f461556..d81d4ccd673 100644 --- a/hyphy/daily/index.xml +++ b/hyphy/daily/index.xml @@ -1,7 +1,7 @@ GitHub HyPhy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:25Z + 2023-09-24T01:32:46Z Daily Trending of HyPhy in GitHub \ No newline at end of file diff --git a/hyphy/weekly/index.xml b/hyphy/weekly/index.xml new file mode 100644 index 00000000000..8da89fa13f9 --- /dev/null +++ b/hyphy/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub HyPhy Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:49Z + Weekly Trending of HyPhy in GitHub + + \ No newline at end of file diff --git a/idl/daily/index.xml b/idl/daily/index.xml index cbdd1a701a8..1962a6c20fb 100644 --- a/idl/daily/index.xml +++ b/idl/daily/index.xml @@ -1,7 +1,7 @@ GitHub IDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:28Z + 2023-09-24T01:32:47Z Daily Trending of IDL in GitHub \ No newline at end of file diff --git a/idl/weekly/index.xml b/idl/weekly/index.xml new file mode 100644 index 00000000000..dfcb2761977 --- /dev/null +++ b/idl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub IDL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:46Z + Weekly Trending of IDL in GitHub + + \ No newline at end of file diff --git a/idris/daily/index.xml b/idris/daily/index.xml index 0b87730bd0f..af09b5d8fd2 100644 --- a/idris/daily/index.xml +++ b/idris/daily/index.xml @@ -1,7 +1,7 @@ GitHub Idris Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:30Z + 2023-09-24T01:32:51Z Daily Trending of Idris in GitHub \ No newline at end of file diff --git a/idris/weekly/index.xml b/idris/weekly/index.xml new file mode 100644 index 00000000000..2daef4b22a9 --- /dev/null +++ b/idris/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Idris Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:53Z + Weekly Trending of Idris in GitHub + + \ No newline at end of file diff --git a/ignore-list/daily/index.xml b/ignore-list/daily/index.xml index 88df199ffa8..aebd85dc8d7 100644 --- a/ignore-list/daily/index.xml +++ b/ignore-list/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ignore List Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:30Z + 2023-09-24T01:32:49Z Daily Trending of Ignore List in GitHub \ No newline at end of file diff --git a/ignore-list/weekly/index.xml b/ignore-list/weekly/index.xml new file mode 100644 index 00000000000..0c0e1f28430 --- /dev/null +++ b/ignore-list/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ignore List Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:52Z + Weekly Trending of Ignore List in GitHub + + \ No newline at end of file diff --git a/igor-pro/daily/index.xml b/igor-pro/daily/index.xml index 90e572782bb..697c924fd9a 100644 --- a/igor-pro/daily/index.xml +++ b/igor-pro/daily/index.xml @@ -1,7 +1,7 @@ GitHub IGOR Pro Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:31Z + 2023-09-24T01:32:50Z Daily Trending of IGOR Pro in GitHub \ No newline at end of file diff --git a/igor-pro/weekly/index.xml b/igor-pro/weekly/index.xml new file mode 100644 index 00000000000..cb26d5c85df --- /dev/null +++ b/igor-pro/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub IGOR Pro Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:51Z + Weekly Trending of IGOR Pro in GitHub + + \ No newline at end of file diff --git a/imagej-macro/daily/index.xml b/imagej-macro/daily/index.xml index b3470f9fde0..04e0c092f36 100644 --- a/imagej-macro/daily/index.xml +++ b/imagej-macro/daily/index.xml @@ -1,7 +1,7 @@ GitHub ImageJ Macro Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:29Z + 2023-09-24T01:32:48Z Daily Trending of ImageJ Macro in GitHub \ No newline at end of file diff --git a/imagej-macro/weekly/index.xml b/imagej-macro/weekly/index.xml new file mode 100644 index 00000000000..3e60488594c --- /dev/null +++ b/imagej-macro/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ImageJ Macro Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:50Z + Weekly Trending of ImageJ Macro in GitHub + + \ No newline at end of file diff --git a/inform-7/daily/index.xml b/inform-7/daily/index.xml index a253020e128..c2e16b7860c 100644 --- a/inform-7/daily/index.xml +++ b/inform-7/daily/index.xml @@ -1,7 +1,7 @@ GitHub Inform 7 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:33Z + 2023-09-24T01:32:54Z Daily Trending of Inform 7 in GitHub \ No newline at end of file diff --git a/inform-7/weekly/index.xml b/inform-7/weekly/index.xml new file mode 100644 index 00000000000..f6f1282841f --- /dev/null +++ b/inform-7/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Inform 7 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:55Z + Weekly Trending of Inform 7 in GitHub + + \ No newline at end of file diff --git a/ini/daily/index.xml b/ini/daily/index.xml index d5bcc1a4fe2..0ccb0464b59 100644 --- a/ini/daily/index.xml +++ b/ini/daily/index.xml @@ -1,7 +1,7 @@ GitHub INI Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:35Z + 2023-09-24T01:32:52Z Daily Trending of INI in GitHub \ No newline at end of file diff --git a/ini/weekly/index.xml b/ini/weekly/index.xml new file mode 100644 index 00000000000..4661570a370 --- /dev/null +++ b/ini/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub INI Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:56Z + Weekly Trending of INI in GitHub + + \ No newline at end of file diff --git a/inno-setup/daily/index.xml b/inno-setup/daily/index.xml index f2ec432dfc9..5d3d5464c6c 100644 --- a/inno-setup/daily/index.xml +++ b/inno-setup/daily/index.xml @@ -1,7 +1,7 @@ GitHub Inno Setup Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:37Z + 2023-09-24T01:32:56Z Daily Trending of Inno Setup in GitHub \ No newline at end of file diff --git a/inno-setup/weekly/index.xml b/inno-setup/weekly/index.xml new file mode 100644 index 00000000000..85e37547a71 --- /dev/null +++ b/inno-setup/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Inno Setup Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:57Z + Weekly Trending of Inno Setup in GitHub + + \ No newline at end of file diff --git a/io/daily/index.xml b/io/daily/index.xml index 1dbcf03f302..79549331007 100644 --- a/io/daily/index.xml +++ b/io/daily/index.xml @@ -1,7 +1,7 @@ GitHub Io Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:36Z + 2023-09-24T01:32:58Z Daily Trending of Io in GitHub \ No newline at end of file diff --git a/io/weekly/index.xml b/io/weekly/index.xml new file mode 100644 index 00000000000..88295367711 --- /dev/null +++ b/io/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Io Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:59Z + Weekly Trending of Io in GitHub + + \ No newline at end of file diff --git a/ioke/daily/index.xml b/ioke/daily/index.xml index 8ee54e59b65..6be6a85b8a1 100644 --- a/ioke/daily/index.xml +++ b/ioke/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ioke Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:39Z + 2023-09-24T01:32:57Z Daily Trending of Ioke in GitHub \ No newline at end of file diff --git a/ioke/weekly/index.xml b/ioke/weekly/index.xml new file mode 100644 index 00000000000..1ae92a4e850 --- /dev/null +++ b/ioke/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ioke Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:52:58Z + Weekly Trending of Ioke in GitHub + + \ No newline at end of file diff --git a/irc-log/daily/index.xml b/irc-log/daily/index.xml index 7c4c366607f..930d0a09f02 100644 --- a/irc-log/daily/index.xml +++ b/irc-log/daily/index.xml @@ -1,7 +1,7 @@ GitHub IRC log Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:38Z + 2023-09-24T01:32:57Z Daily Trending of IRC log in GitHub \ No newline at end of file diff --git a/irc-log/weekly/index.xml b/irc-log/weekly/index.xml new file mode 100644 index 00000000000..0ebd2d3b109 --- /dev/null +++ b/irc-log/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub IRC log Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:00Z + Weekly Trending of IRC log in GitHub + + \ No newline at end of file diff --git a/isabelle-root/daily/index.xml b/isabelle-root/daily/index.xml index 9393099fd57..79dd1db4a42 100644 --- a/isabelle-root/daily/index.xml +++ b/isabelle-root/daily/index.xml @@ -1,7 +1,7 @@ GitHub Isabelle ROOT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:41Z + 2023-09-24T01:32:59Z Daily Trending of Isabelle ROOT in GitHub \ No newline at end of file diff --git a/isabelle-root/weekly/index.xml b/isabelle-root/weekly/index.xml new file mode 100644 index 00000000000..81109b0031d --- /dev/null +++ b/isabelle-root/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Isabelle ROOT Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:02Z + Weekly Trending of Isabelle ROOT in GitHub + + \ No newline at end of file diff --git a/isabelle/daily/index.xml b/isabelle/daily/index.xml index 3739710c84e..c1bb938119d 100644 --- a/isabelle/daily/index.xml +++ b/isabelle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Isabelle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:40Z + 2023-09-24T01:33:02Z Daily Trending of Isabelle in GitHub \ No newline at end of file diff --git a/isabelle/weekly/index.xml b/isabelle/weekly/index.xml new file mode 100644 index 00000000000..59d14b468d3 --- /dev/null +++ b/isabelle/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Isabelle Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:03Z + Weekly Trending of Isabelle in GitHub + + \ No newline at end of file diff --git a/j/daily/index.xml b/j/daily/index.xml index 363486ae910..0d333fc45f2 100644 --- a/j/daily/index.xml +++ b/j/daily/index.xml @@ -1,7 +1,7 @@ GitHub J Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:42Z + 2023-09-24T01:33:01Z Daily Trending of J in GitHub \ No newline at end of file diff --git a/j/weekly/index.xml b/j/weekly/index.xml new file mode 100644 index 00000000000..60d5721c182 --- /dev/null +++ b/j/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub J Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:01Z + Weekly Trending of J in GitHub + + \ No newline at end of file diff --git a/janet/daily/index.xml b/janet/daily/index.xml index 3153eea9f59..d33933b95f6 100644 --- a/janet/daily/index.xml +++ b/janet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Janet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:41Z + 2023-09-24T01:33:00Z Daily Trending of Janet in GitHub \ No newline at end of file diff --git a/janet/weekly/index.xml b/janet/weekly/index.xml new file mode 100644 index 00000000000..cb4ce74c4df --- /dev/null +++ b/janet/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Janet Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:03Z + Weekly Trending of Janet in GitHub + + \ No newline at end of file diff --git a/jar-manifest/daily/index.xml b/jar-manifest/daily/index.xml index 1a79cf74c5e..2325616b277 100644 --- a/jar-manifest/daily/index.xml +++ b/jar-manifest/daily/index.xml @@ -1,7 +1,7 @@ GitHub JAR Manifest Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:44Z + 2023-09-24T01:33:05Z Daily Trending of JAR Manifest in GitHub \ No newline at end of file diff --git a/jar-manifest/weekly/index.xml b/jar-manifest/weekly/index.xml new file mode 100644 index 00000000000..e67f8dc2a20 --- /dev/null +++ b/jar-manifest/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub JAR Manifest Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:04Z + Weekly Trending of JAR Manifest in GitHub + + \ No newline at end of file diff --git a/jasmin/daily/index.xml b/jasmin/daily/index.xml index 2b115501269..875aa3d1fee 100644 --- a/jasmin/daily/index.xml +++ b/jasmin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jasmin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:43Z + 2023-09-24T01:33:04Z Daily Trending of Jasmin in GitHub \ No newline at end of file diff --git a/jasmin/weekly/index.xml b/jasmin/weekly/index.xml new file mode 100644 index 00000000000..239123bdc93 --- /dev/null +++ b/jasmin/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Jasmin Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:06Z + Weekly Trending of Jasmin in GitHub + + \ No newline at end of file diff --git a/java-properties/daily/index.xml b/java-properties/daily/index.xml index 4d5ab39e0df..d59003af451 100644 --- a/java-properties/daily/index.xml +++ b/java-properties/daily/index.xml @@ -1,7 +1,7 @@ GitHub Java Properties Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:45Z + 2023-09-24T01:33:03Z Daily Trending of Java Properties in GitHub \ No newline at end of file diff --git a/java-properties/weekly/index.xml b/java-properties/weekly/index.xml new file mode 100644 index 00000000000..a82ba423cc6 --- /dev/null +++ b/java-properties/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Java Properties Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:05Z + Weekly Trending of Java Properties in GitHub + + \ No newline at end of file diff --git a/java-server-pages/daily/index.xml b/java-server-pages/daily/index.xml index 65bb0665927..894b9a7d294 100644 --- a/java-server-pages/daily/index.xml +++ b/java-server-pages/daily/index.xml @@ -1,7 +1,7 @@ GitHub Java Server Pages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:01Z + 2023-09-24T01:33:24Z Daily Trending of Java Server Pages in GitHub \ No newline at end of file diff --git a/java-server-pages/weekly/index.xml b/java-server-pages/weekly/index.xml new file mode 100644 index 00000000000..ee5b297c085 --- /dev/null +++ b/java-server-pages/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Java Server Pages Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:25Z + Weekly Trending of Java Server Pages in GitHub + + \ No newline at end of file diff --git a/java/daily/index.xml b/java/daily/index.xml index a389cd505b8..e2ab7a25964 100644 --- a/java/daily/index.xml +++ b/java/daily/index.xml @@ -1,7 +1,14 @@ GitHub Java Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:29:48Z + 2023-09-24T01:33:08Z Daily Trending of Java in GitHub + + ddd-by-examples/library + 2023-09-24T01:33:08Z + tag:github.com,2023-09-24:/ddd-by-examples/library + + <p>A comprehensive Domain-Driven Design example with problem space strategic analysis and various tactical patterns.</p><hr><p><a href="https://circleci.com/gh/ddd-by-examples/library"><img src="https://circleci.com/gh/ddd-by-examples/library.svg?style=svg" alt="CircleCI"></a> <a href="https://codecov.io/gh/ddd-by-examples/library"><img src="https://codecov.io/gh/ddd-by-examples/library/branch/master/graph/badge.svg?sanitize=true" alt="Code Coverage"></a></p> <h1>Table of contents</h1> <ol> <li><a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#about">About</a></li> <li><a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#domain-description">Domain description</a></li> <li><a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#general-assumptions">General assumptions</a><br> 3.1 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#process-discovery">Process discovery</a><br> 3.2 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#project-structure-and-architecture">Project structure and architecture</a><br> 3.3 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#aggregates">Aggregates</a><br> 3.4 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#events">Events</a><br> 3.4.1 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#events-in-repositories">Events in Repositories</a><br> 3.5 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#archunit">ArchUnit</a><br> 3.6 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#functional-thinking">Functional thinking</a><br> 3.7 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#no-orm">No ORM</a><br> 3.8 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#architecture-code-gap">Architecture-code gap</a><br> 3.9 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#model-code-gap">Model-code gap</a><br> 3.10 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#spring">Spring</a><br> 3.11 <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#tests">Tests</a></li> <li><a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#how-to-contribute">How to contribute</a></li> <li><a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#references">References</a></li> </ol> <h2>About</h2> <p>This is a project of a library, driven by real <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#domain-description">business requirements</a>. We use techniques strongly connected with Domain Driven Design, Behavior-Driven Development, Event Storming, User Story Mapping.</p> <h2>Domain description</h2> <p>A public library allows patrons to place books on hold at its various library branches. Available books can be placed on hold only by one patron at any given point in time. Books are either circulating or restricted, and can have retrieval or usage fees. A restricted book can only be held by a researcher patron. A regular patron is limited to five holds at any given moment, while a researcher patron is allowed an unlimited number of holds. An open-ended book hold is active until the patron checks out the book, at which time it is completed. A closed-ended book hold that is not completed within a fixed number of days after it was requested will expire. This check is done at the beginning of a day by taking a look at daily sheet with expiring holds. Only a researcher patron can request an open-ended hold duration. Any patron with more than two overdue checkouts at a library branch will get a rejection if trying a hold at that same library branch. A book can be checked out for up to 60 days. Check for overdue checkouts is done by taking a look at daily sheet with overdue checkouts. Patron interacts with his/her current holds, checkouts, etc. by taking a look at patron profile. Patron profile looks like a daily sheet, but the information there is limited to one patron and is not necessarily daily. Currently a patron can see current holds (not canceled nor expired) and current checkouts (including overdue). Also, he/she is able to hold a book and cancel a hold.</p> <p>How actually a patron knows which books are there to lend? Library has its catalogue of books where books are added together with their specific instances. A specific book instance of a book can be added only if there is book with matching ISBN already in the catalogue. Book must have non-empty title and price. At the time of adding an instance we decide whether it will be Circulating or Restricted. This enables us to have book with same ISBN as circulated and restricted at the same time (for instance, there is a book signed by the author that we want to keep as Restricted)</p> <h2>General assumptions</h2> <h3>Process discovery</h3> <p>The first thing we started with was domain exploration with the help of Big Picture EventStorming. The description you found in the previous chapter, landed on our virtual wall:<br> <img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/eventstorming-domain-desc.png" alt="Event Storming Domain description"><br> The EventStorming session led us to numerous discoveries, modeled with the sticky notes:<br> <img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/eventstorming-big-picture.jpg" alt="Event Storming Big Picture"><br> During the session we discovered following definitions:<br> <img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/eventstorming-definitions.png" alt="Event Storming Definitions"></p> <p>This made us think of real life scenarios that might happen. We discovered them described with the help of the <strong>Example mapping</strong>:<br> <img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/example-mapping.png" alt="Example mapping"></p> <p>This in turn became the base for our <em>Design Level</em> sessions, where we analyzed each example:<br> <img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/eventstorming-design-level.jpg" alt="Example mapping"></p> <p>Please follow the links below to get more details on each of the mentioned steps:</p> <ul> <li><a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/big-picture.md">Big Picture EventStorming</a></li> <li><a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/example-mapping.md">Example Mapping</a></li> <li><a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/design-level.md">Design Level EventStorming</a></li> </ul> <h3>Project structure and architecture</h3> <p>At the very beginning, not to overcomplicate the project, we decided to assign each bounded context to a separate package, which means that the system is a modular monolith. There are no obstacles, though, to put contexts into maven modules or finally into microservices.</p> <p>Bounded contexts should (amongst others) introduce autonomy in the sense of architecture. Thus, each module encapsulating the context has its own local architecture aligned to problem complexity. In the case of a context, where we identified true business logic (<strong>lending</strong>) we introduced a domain model that is a simplified (for the purpose of the project) abstraction of the reality and utilized hexagonal architecture. In the case of a context, that during Event Storming turned out to lack any complex domain logic, we applied CRUD-like local architecture.</p> <p><img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/architecture-big-picture.png" alt="Architecture"></p> <p>If we are talking about hexagonal architecture, it lets us separate domain and application logic from frameworks (and infrastructure). What do we gain with this approach? Firstly, we can unit test most important part of the application - <strong>business logic</strong> - usually without the need to stub any dependency. Secondly, we create ourselves an opportunity to adjust infrastructure layer without the worry of breaking the core functionality. In the infrastructure layer we intensively use Spring Framework as probably the most mature and powerful application framework with an incredible test support. More information about how we use Spring you will find <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#spring">here</a>.</p> <p>As we already mentioned, the architecture was driven by Event Storming sessions. Apart from identifying contexts and their complexity, we could also make a decision that we separate read and write models (CQRS). As an example you can have a look at <strong>Patron Profiles</strong> and <em>Daily Sheets</em>.</p> <h3>Aggregates</h3> <p>Aggregates discovered during Event Storming sessions communicate with each other with events. There is a contention, though, should they be consistent immediately or eventually? As aggregates in general determine business boundaries, eventual consistency sounds like a better choice, but choices in software are never costless. Providing eventual consistency requires some infrastructural tools, like message broker or event store. That's why we could (and did) start with immediate consistency.</p> <blockquote> <p>Good architecture is the one which postpones all important decisions</p> </blockquote> <p>... that's why we made it easy to change the consistency model, providing tests for each option, including basic implementations based on <strong>DomainEvents</strong> interface, which can be adjusted to our needs and toolset in future. Let's have a look at following examples:</p> <ul> <li> <p>Immediate consistency</p> <pre><code class="language-groovy">def 'should synchronize Patron, Book and DailySheet with events'() { given: bookRepository.save(book) and: patronRepo.publish(patronCreated()) when: patronRepo.publish(placedOnHold(book)) then: patronShouldBeFoundInDatabaseWithOneBookOnHold(patronId) and: bookReactedToPlacedOnHoldEvent() and: dailySheetIsUpdated() } boolean bookReactedToPlacedOnHoldEvent() { return bookRepository.findBy(book.bookId).get() instanceof BookOnHold } boolean dailySheetIsUpdated() { return new JdbcTemplate(datasource).query("select count(*) from holds_sheet s where s.hold_by_patron_id = ?", [patronId.patronId] as Object[], new ColumnMapRowMapper()).get(0) .get("COUNT(*)") == 1 } </code></pre> <p><em>Please note that here we are just reading from database right after events are being published</em></p> <p>Simple implementation of the event bus is based on Spring application events:</p> <pre><code class="language-java">@AllArgsConstructor public class JustForwardDomainEventPublisher implements DomainEvents { private final ApplicationEventPublisher applicationEventPublisher; @Override public void publish(DomainEvent event) { applicationEventPublisher.publishEvent(event); } } </code></pre> </li> <li> <p>Eventual consistency</p> <pre><code class="language-groovy">def 'should synchronize Patron, Book and DailySheet with events'() { given: bookRepository.save(book) and: patronRepo.publish(patronCreated()) when: patronRepo.publish(placedOnHold(book)) then: patronShouldBeFoundInDatabaseWithOneBookOnHold(patronId) and: bookReactedToPlacedOnHoldEvent() and: dailySheetIsUpdated() } void bookReactedToPlacedOnHoldEvent() { pollingConditions.eventually { assert bookRepository.findBy(book.bookId).get() instanceof BookOnHold } } void dailySheetIsUpdated() { pollingConditions.eventually { assert countOfHoldsInDailySheet() == 1 } } </code></pre> <p><em>Please note that the test looks exactly the same as previous one, but now we utilized Groovy's <strong>PollingConditions</strong> to perform asynchronous functionality tests</em></p> <p>Sample implementation of event bus is following:</p> <pre><code class="language-java">@AllArgsConstructor public class StoreAndForwardDomainEventPublisher implements DomainEvents { private final JustForwardDomainEventPublisher justForwardDomainEventPublisher; private final EventsStorage eventsStorage; @Override public void publish(DomainEvent event) { eventsStorage.save(event); } @Scheduled(fixedRate = 3000L) @Transactional public void publishAllPeriodically() { List&lt;DomainEvent&gt; domainEvents = eventsStorage.toPublish(); domainEvents.forEach(justForwardDomainEventPublisher::publish); eventsStorage.published(domainEvents); } } </code></pre> </li> </ul> <p>To clarify, we should always aim for aggregates that can handle a business operation atomically (transactionally if you like), so each aggregate should be as independent and decoupled from other aggregates as possible. Thus, eventual consistency is promoted. As we already mentioned, it comes with some tradeoffs, so from the pragmatic point of view immediate consistency is also a choice. You might ask yourself a question now: <em>What if I don't have any events yet?</em>. Well, a pragmatic approach would be to encapsulate the communication between aggregates in a <em>Service-like</em> class, where you could call proper aggregates line by line explicitly.</p> <h3>Events</h3> <p>Talking about inter-aggregate communication, we must remember that events reduce coupling, but don't remove it completely. Thus, it is very vital to share(publish) only those events, that are necessary for other aggregates to exist and function. Otherwise there is a threat that the level of coupling will increase introducing <strong>feature envy</strong>, because other aggregates might start using those events to perform actions they are not supposed to perform. A solution to this problem could be the distinction of domain events and integration events, which will be described here soon.</p> <h3>Events in Repositories</h3> <p>Repositories are one of the most popular design pattern. They abstract our domain model from data layer. In other words, they deal with state. That said, a common use-case is when we pass a new state to our repository, so that it gets persisted. It may look like so:</p> <pre><code class="language-java">public class BusinessService { private final PatronRepository patronRepository; void businessMethod(PatronId patronId) { Patron patron = patronRepository.findById(patronId); //do sth patronRepository.save(patron); } } </code></pre> <p>Conceptually, between 1st and 3rd line of that business method we change state of our Patron from A to B. This change might be calculated by dirty checking or we might just override entire Patron state in the database. Third option is <em>Let's make implicit explicit</em> and actually call this state change A-&gt;B an <strong>event</strong>. After all, event-driven architecture is all about promoting state changes as domain events.</p> <p>Thanks to this our domain model may become immutable and just return events as results of invoking a command like so:</p> <pre><code class="language-java">public BookPlacedOnHold placeOnHold(AvailableBook book) { ... } </code></pre> <p>And our repository might operate directly on events like so:</p> <pre><code class="language-java">public interface PatronRepository { void save(PatronEvent event) { } </code></pre> <h3>ArchUnit</h3> <p>One of the main components of a successful project is technical leadership that lets the team go in the right direction. Nevertheless, there are tools that can support teams in keeping the code clean and protect the architecture, so that the project won't become a Big Ball of Mud, and thus will be pleasant to develop and to maintain. The first option, the one we proposed, is <a href="https://www.archunit.org/">ArchUnit</a> - a Java architecture test tool. ArchUnit lets you write unit tests of your architecture, so that it is always consistent with initial vision. Maven modules could be an alternative as well, but let's focus on the former.</p> <p>In terms of hexagonal architecture, it is essential to ensure, that we do not mix different levels of abstraction (hexagon levels):</p> <pre><code class="language-java">@ArchTest public static final ArchRule model_should_not_depend_on_infrastructure = noClasses() .that() .resideInAPackage("..model..") .should() .dependOnClassesThat() .resideInAPackage("..infrastructure.."); </code></pre> <p>and that frameworks do not affect the domain model</p> <pre><code class="language-java">@ArchTest public static final ArchRule model_should_not_depend_on_spring = noClasses() .that() .resideInAPackage("..io.pillopl.library.lending..model..") .should() .dependOnClassesThat() .resideInAPackage("org.springframework.."); </code></pre> <h3>Functional thinking</h3> <p>When you look at the code you might find a scent of functional programming. Although we do not follow a <em>clean</em> FP, we try to think of business processes as pipelines or workflows, utilizing functional style through following concepts.</p> <p><em>Please note that this is not a reference project for FP.</em></p> <h4>Immutable objects</h4> <p>Each class that represents a business concept is immutable, thanks to which we:</p> <ul> <li>provide full encapsulation and objects' states protection,</li> <li>secure objects for multithreaded access,</li> <li>control all side effects much clearer.</li> </ul> <h4>Pure functions</h4> <p>We model domain operations, discovered in Design Level Event Storming, as pure functions, and declare them in both domain and application layers in the form of Java's functional interfaces. Their implementations are placed in infrastructure layer as ordinary methods with side effects. Thanks to this approach we can follow the abstraction of ubiquitous language explicitly, and keep this abstraction implementation-agnostic. As an example, you could have a look at <code>FindAvailableBook</code> interface and its implementation:</p> <pre><code class="language-java">@FunctionalInterface public interface FindAvailableBook { Option&lt;AvailableBook&gt; findAvailableBookBy(BookId bookId); } </code></pre> <pre><code class="language-java">@AllArgsConstructor class BookDatabaseRepository implements FindAvailableBook { private final JdbcTemplate jdbcTemplate; @Override public Option&lt;AvailableBook&gt; findAvailableBookBy(BookId bookId) { return Match(findBy(bookId)).of( Case($Some($(instanceOf(AvailableBook.class))), Option::of), Case($(), Option::none) ); } Option&lt;Book&gt; findBy(BookId bookId) { return findBookById(bookId) .map(BookDatabaseEntity::toDomainModel); } private Option&lt;BookDatabaseEntity&gt; findBookById(BookId bookId) { return Try .ofSupplier(() -&gt; of(jdbcTemplate.queryForObject("SELECT b.* FROM book_database_entity b WHERE b.book_id = ?", new BeanPropertyRowMapper&lt;&gt;(BookDatabaseEntity.class), bookId.getBookId()))) .getOrElse(none()); } } </code></pre> <h4>Type system</h4> <p><em>Type system - like</em> modelling - we modelled each domain object's state discovered during EventStorming as separate classes: <code>AvailableBook</code>, <code>BookOnHold</code>, <code>CheckedOutBook</code>. With this approach we provide much clearer abstraction than having a single <code>Book</code> class with an enum-based state management. Moving the logic to these specific classes brings Single Responsibility Principle to a different level. Moreover, instead of checking invariants in every business method we leave the role to the compiler. As an example, please consider following scenario: <em>you can place on hold only a book that is currently available</em>. We could have done it in a following way:</p> <pre><code class="language-java">public Either&lt;BookHoldFailed, BookPlacedOnHoldEvents&gt; placeOnHold(Book book) { if (book.status == AVAILABLE) { ... } } </code></pre> <p>but we use the <em>type system</em> and declare method of following signature</p> <pre><code class="language-java">public Either&lt;BookHoldFailed, BookPlacedOnHoldEvents&gt; placeOnHold(AvailableBook book) { ... } </code></pre> <p>The more errors we discover at compile time the better.</p> <p>Yet another advantage of applying such type system is that we can represent business flows and state transitions with functions much easier. As an example, following functions:</p> <pre><code>placeOnHold: AvailableBook -&gt; BookHoldFailed | BookPlacedOnHold cancelHold: BookOnHold -&gt; BookHoldCancelingFailed | BookHoldCanceled </code></pre> <p>are much more concise and descriptive than these:</p> <pre><code>placeOnHold: Book -&gt; BookHoldFailed | BookPlacedOnHold cancelHold: Book -&gt; BookHoldCancelingFailed | BookHoldCanceled </code></pre> <p>as here we have a lot of constraints hidden within function implementations.</p> <p>Moreover if you think of your domain as a set of operations (functions) that are being executed on business objects (aggregates) you don't think of any execution model (like async processing). It is fine, because you don't have to. Domain functions are free from I/O operations, async, and other side-effects-prone things, which are put into the infrastructure layer. Thanks to this, we can easily test them without mocking mentioned parts.</p> <h4>Monads</h4> <p>Business methods might have different results. One might return a value or a <code>null</code>, throw an exception when something unexpected happens or just return different objects under different circumstances. All those situations are typical to object-oriented languages like Java, but do not fit into functional style. We are dealing with this issues with monads (monadic containers provided by <a href="https://www.vavr.io">Vavr</a>):</p> <ul> <li> <p>When a method returns optional value, we use the <code>Option</code> monad:</p> <pre><code class="language-java">Option&lt;Book&gt; findBy(BookId bookId) { ... } </code></pre> </li> <li> <p>When a method might return one of two possible values, we use the <code>Either</code> monad:</p> <pre><code class="language-java">Either&lt;BookHoldFailed, BookPlacedOnHoldEvents&gt; placeOnHold(AvailableBook book) { ... } </code></pre> </li> <li> <p>When an exception might occur, we use <code>Try</code> monad:</p> <pre><code class="language-java">Try&lt;Result&gt; placeOnHold(@NonNull PlaceOnHoldCommand command) { ... } </code></pre> </li> </ul> <p>Thanks to this, we can follow the functional programming style, but we also enrich our domain language and make our code much more readable for the clients.</p> <h4>Pattern Matching</h4> <p>Depending on a type of a given book object we often need to perform different actions. Series of if/else or switch/case statements could be a choice, but it is the pattern matching that provides the most conciseness and flexibility. With the code like below we can check numerous patterns against objects and access their constituents, so our code has a minimal dose of language-construct noise:</p> <pre><code class="language-java">private Book handleBookPlacedOnHold(Book book, BookPlacedOnHold bookPlacedOnHold) { return API.Match(book).of( Case($(instanceOf(AvailableBook.class)), availableBook -&gt; availableBook.handle(bookPlacedOnHold)), Case($(instanceOf(BookOnHold.class)), bookOnHold -&gt; raiseDuplicateHoldFoundEvent(bookOnHold, bookPlacedOnHold)), Case($(), () -&gt; book) ); } </code></pre> <h3>(No) ORM</h3> <p>If you run <code>mvn dependency:tree</code> you won't find any JPA implementation. Although we think that ORM solutions (like Hibernate) are very powerful and useful, we decided not to use them, as we wouldn't utilize their features. What features are talking about? Lazy loading, caching, dirty checking. Why don't we need them? We want to have more control over SQL queries and minimize the object-relational impedance mismatch ourselves. Moreover, thanks to relatively small aggregates, containing as little data as it is required to protect the invariants, we don't need the lazy loading mechanism either. With Hexagonal Architecture we have the ability to separate domain and persistence models and test them independently. Moreover, we can also introduce different persistence strategies for different aggregates. In this project, we utilize both plain SQL queries and <code>JdbcTemplate</code> and use new and very promising project called Spring Data JDBC, that is free from the JPA-related overhead mentioned before. Please find below an example of a repository:</p> <pre><code class="language-java">interface PatronEntityRepository extends CrudRepository&lt;PatronDatabaseEntity, Long&gt; { @Query("SELECT p.* FROM patron_database_entity p where p.patron_id = :patronId") PatronDatabaseEntity findByPatronId(@Param("patronId") UUID patronId); } </code></pre> <p>At the same time we propose other way of persisting aggregates, with plain SQL queries and <code>JdbcTemplate</code>:</p> <pre><code class="language-java">@AllArgsConstructor class BookDatabaseRepository implements BookRepository, FindAvailableBook, FindBookOnHold { private final JdbcTemplate jdbcTemplate; @Override public Option&lt;Book&gt; findBy(BookId bookId) { return findBookById(bookId) .map(BookDatabaseEntity::toDomainModel); } private Option&lt;BookDatabaseEntity&gt; findBookById(BookId bookId) { return Try .ofSupplier(() -&gt; of(jdbcTemplate.queryForObject("SELECT b.* FROM book_database_entity b WHERE b.book_id = ?", new BeanPropertyRowMapper&lt;&gt;(BookDatabaseEntity.class), bookId.getBookId()))) .getOrElse(none()); } ... } </code></pre> <p><em>Please note that despite having the ability to choose different persistence implementations for aggregates it is recommended to stick to one option within the app/team</em></p> <h3>Architecture-code gap</h3> <p>We put a lot of attention to keep the consistency between the overall architecture (including diagrams) and the code structure. Having identified bounded contexts we could organize them in modules (packages, to be more specific). Thanks to this we gain the famous microservices' autonomy, while having a monolithic application. Each package has well defined public API, encapsulating all implementation details by using package-protected or private scopes.</p> <p>Just by looking at the package structure:</p> <pre><code>└── library ├── catalogue ├── commons │&nbsp;&nbsp; ├── aggregates │&nbsp;&nbsp; ├── commands │&nbsp;&nbsp; └── events │&nbsp;&nbsp; └── publisher └── lending ├── book │&nbsp;&nbsp; ├── application │&nbsp;&nbsp; ├── infrastructure │&nbsp;&nbsp; └── model ├── dailysheet │&nbsp;&nbsp; ├── infrastructure │&nbsp;&nbsp; └── model ├── librarybranch │&nbsp;&nbsp; └── model ├── patron │&nbsp;&nbsp; ├── application │&nbsp;&nbsp; ├── infrastructure │&nbsp;&nbsp; └── model └── patronprofile ├── infrastructure ├── model └── web </code></pre> <p>you can see that the architecture is screaming that it has two bounded contexts: <strong>catalogue</strong> and <strong>lending</strong>. Moreover, the <strong>lending context</strong> is built around five business objects: <strong>book</strong>, <strong>dailysheet</strong>, <strong>librarybranch</strong>, <strong>patron</strong>, and <strong>patronprofile</strong>, while <strong>catalogue</strong> has no subpackages, which suggests that it might be a CRUD with no complex logic inside. Please find the architecture diagram below.</p> <p><img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/c4/component-diagram.png" alt="Component diagram"></p> <p>Yet another advantage of this approach comparing to packaging by layer for example is that in order to deliver a functionality you would usually need to do it in one package only, which is the aforementioned autonomy. This autonomy, then, could be transferred to the level of application as soon as we split our <em>context-packages</em> into separate microservices. Following this considerations, autonomy can be given away to a product team that can take care of the whole business area end-to-end.</p> <h3>Model-code gap</h3> <p>In our project we do our best to reduce <em>model-code gap</em> to bare minimum. It means we try to put equal attention to both the model and the code and keep them consistent. Below you will find some examples.</p> <h4>Placing on hold</h4> <p><img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/placing_on_hold.jpg" alt="Placing on hold"></p> <p>Starting with the easiest part, below you will find the model classes corresponding to depicted command and events:</p> <pre><code class="language-java">@Value class PlaceOnHoldCommand { ... } </code></pre> <pre><code class="language-java">@Value class BookPlacedOnHold implements PatronEvent { ... } </code></pre> <pre><code class="language-java">@Value class MaximumNumberOfHoldsReached implements PatronEvent { ... } </code></pre> <pre><code class="language-java">@Value class BookHoldFailed implements PatronEvent { ... } </code></pre> <p>We know it might not look impressive now, but if you have a look at the implementation of an aggregate, you will see that the code reflects not only the aggregate name, but also the whole scenario of <code>PlaceOnHold</code> command handling. Let us uncover the details:</p> <pre><code class="language-java">public class Patron { public Either&lt;BookHoldFailed, BookPlacedOnHoldEvents&gt; placeOnHold(AvailableBook book) { return placeOnHold(book, HoldDuration.openEnded()); } ... } </code></pre> <p>The signature of <code>placeOnHold</code> method screams, that it is possible to place a book on hold only when it is available (more information about protecting invariants by compiler you will find in <a href="https://raw.githubusercontent.com/ddd-by-examples/library/master/#type-system">Type system section</a>). Moreover, if you try to place available book on hold it can <strong>either</strong> fail (<code>BookHoldFailed</code>) or produce some events - what events?</p> <pre><code class="language-java">@Value class BookPlacedOnHoldEvents implements PatronEvent { @NonNull UUID eventId = UUID.randomUUID(); @NonNull UUID patronId; @NonNull BookPlacedOnHold bookPlacedOnHold; @NonNull Option&lt;MaximumNumberOfHoldsReached&gt; maximumNumberOfHoldsReached; @Override public Instant getWhen() { return bookPlacedOnHold.when; } public static BookPlacedOnHoldEvents events(BookPlacedOnHold bookPlacedOnHold) { return new BookPlacedOnHoldEvents(bookPlacedOnHold.getPatronId(), bookPlacedOnHold, Option.none()); } public static BookPlacedOnHoldEvents events(BookPlacedOnHold bookPlacedOnHold, MaximumNumberOfHoldsReached maximumNumberOfHoldsReached) { return new BookPlacedOnHoldEvents(bookPlacedOnHold.patronId, bookPlacedOnHold, Option.of(maximumNumberOfHoldsReached)); } public List&lt;DomainEvent&gt; normalize() { return List.&lt;DomainEvent&gt;of(bookPlacedOnHold).appendAll(maximumNumberOfHoldsReached.toList()); } } </code></pre> <p><code>BookPlacedOnHoldEvents</code> is a container for <code>BookPlacedOnHold</code> event, and - if patron has 5 book placed on hold already - <code>MaximumNumberOfHoldsReached</code> (please mind the <code>Option</code> monad). You can see now how perfectly the code reflects the model.</p> <p>It is not everything, though. In the picture above you can also see a big rectangular yellow card with rules (policies) that define the conditions that need to be fulfilled in order to get the given result. All those rules are implemented as functions <strong>either</strong> allowing or rejecting the hold:</p> <p><img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/placing-on-hold-policy-restricted.png" alt="Restricted book policy"></p> <pre><code class="language-java">PlacingOnHoldPolicy onlyResearcherPatronsCanHoldRestrictedBooksPolicy = (AvailableBook toHold, Patron patron, HoldDuration holdDuration) -&gt; { if (toHold.isRestricted() &amp;&amp; patron.isRegular()) { return left(Rejection.withReason("Regular patrons cannot hold restricted books")); } return right(new Allowance()); }; </code></pre> <p><img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/placing-on-hold-policy-overdue.png" alt="Overdue checkouts policy"></p> <pre><code class="language-java">PlacingOnHoldPolicy overdueCheckoutsRejectionPolicy = (AvailableBook toHold, Patron patron, HoldDuration holdDuration) -&gt; { if (patron.overdueCheckoutsAt(toHold.getLibraryBranch()) &gt;= OverdueCheckouts.MAX_COUNT_OF_OVERDUE_RESOURCES) { return left(Rejection.withReason("cannot place on hold when there are overdue checkouts")); } return right(new Allowance()); }; </code></pre> <p><img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/placing-on-hold-policy-max.png" alt="Max number of holds policy"></p> <pre><code class="language-java">PlacingOnHoldPolicy regularPatronMaximumNumberOfHoldsPolicy = (AvailableBook toHold, Patron patron, HoldDuration holdDuration) -&gt; { if (patron.isRegular() &amp;&amp; patron.numberOfHolds() &gt;= PatronHolds.MAX_NUMBER_OF_HOLDS) { return left(Rejection.withReason("patron cannot hold more books")); } return right(new Allowance()); }; </code></pre> <p><img src="https://raw.githubusercontent.com/ddd-by-examples/library/master/docs/images/placing-on-hold-policy-open-ended.png" alt="Open ended hold policy"></p> <pre><code class="language-java">PlacingOnHoldPolicy onlyResearcherPatronsCanPlaceOpenEndedHolds = (AvailableBook toHold, Patron patron, HoldDuration holdDuration) -&gt; { if (patron.isRegular() &amp;&amp; holdDuration.isOpenEnded()) { return left(Rejection.withReason("regular patron cannot place open ended holds")); } return right(new Allowance()); }; </code></pre> <h4>Spring</h4> <p>Spring Framework seems to be the most popular Java framework ever used. Unfortunately it is also quite common to overuse its features in the business code. What you find in this project is that the domain packages are fully focused on modelling business problems, and are free from any DI, which makes it easy to unit-test it which is invaluable in terms of code reliability and maintainability. It does not mean, though, that we do not use Spring Framework - we do. Below you will find some details:</p> <ul> <li>Each bounded context has its own independent application context. It means that we removed the runtime coupling, which is a step towards extracting modules (and microservices). How did we do that? Let's have a look: <pre><code class="language-java">@SpringBootConfiguration @EnableAutoConfiguration public class LibraryApplication { public static void main(String[] args) { new SpringApplicationBuilder() .parent(LibraryApplication.class) .child(LendingConfig.class).web(WebApplicationType.SERVLET) .sibling(CatalogueConfiguration.class).web(WebApplicationType.NONE) .run(args); } } </code></pre> </li> <li>As you could see above, we also try not to use component scan wherever possible. Instead we utilize <code>@Configuration</code> classes where we define module specific beans in the infrastructure layer. Those configuration classes are explicitly declared in the main application class.</li> </ul> <h3>Tests</h3> <p>Tests are written in a BDD manner, expressing stories defined with Example Mapping. It means we utilize both TDD and Domain Language discovered with Event Storming.</p> <p>We also made an effort to show how to create a DSL, that enables to write tests as if they were sentences taken from the domain descriptions. Please find an example below:</p> <pre><code class="language-groovy">def 'should make book available when hold canceled'() { given: BookDSL bookOnHold = aCirculatingBook() with anyBookId() locatedIn anyBranch() placedOnHoldBy anyPatron() and: PatronEvent.BookHoldCanceled bookHoldCanceledEvent = the bookOnHold isCancelledBy anyPatron() when: AvailableBook availableBook = the bookOnHold reactsTo bookHoldCanceledEvent then: availableBook.bookId == bookOnHold.bookId availableBook.libraryBranch == bookOnHold.libraryBranchId availableBook.version == bookOnHold.version } </code></pre> <p><em>Please also note the <strong>when</strong> block, where we manifest the fact that books react to cancellation event</em></p> <h2>How to contribute</h2> <p>The project is still under construction, so if you like it enough to collaborate, just let us know or simply create a Pull Request.</p> <h2>How to Build</h2> <h3>Requirements</h3> <ul> <li>Java 11</li> <li>Maven</li> </ul> <h3>Quickstart</h3> <p>You can run the library app by simply typing the following:</p> <pre><code class="language-console">$ mvn spring-boot:run ... ... 2019-04-03 15:55:39.162 INFO 18957 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator' 2019-04-03 15:55:39.425 INFO 18957 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2019-04-03 15:55:39.428 INFO 18957 --- [ main] io.pillopl.library.LibraryApplication : Started LibraryApplication in 5.999 seconds (JVM running for 23.018) </code></pre> <h3>Build a Jar package</h3> <p>You can build a jar with maven like so:</p> <pre><code class="language-console">$ mvn clean package ... ... [INFO] Building jar: /home/pczarkowski/development/spring/library/target/library-0.0.1-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ </code></pre> <h3>Build with Docker</h3> <p>If you've already built the jar file you can run:</p> <pre><code class="language-console">docker build -t spring/library . </code></pre> <p>Otherwise you can build the jar file using the multistage dockerfile:</p> <pre><code class="language-console">docker build -t spring/library -f Dockerfile.build . </code></pre> <p>Either way once built you can run it like so:</p> <pre><code class="language-console">$ docker run -ti --rm --name spring-library -p 8080:8080 spring/library </code></pre> <h3>Production ready metrics and visualization</h3> <p>To run the application as well as Prometheus and Grafana dashboard for visualizing metrics you can run all services:</p> <pre><code class="language-console">$ docker-compose up </code></pre> <p>If everything goes well, you can access the following services at given location:</p> <ul> <li><a href="http://localhost:8080/actuator/prometheus">http://localhost:8080/actuator/prometheus</a> - published Micrometer metrics</li> <li><a href="http://localhost:9090">http://localhost:9090</a> - Prometheus dashboard</li> <li><a href="http://localhost:3000">http://localhost:3000</a> - Grafana dashboard</li> </ul> <p>In order to see some metrics, you must create a dashboard. Go to <code>Create</code> -&gt; <code>Import</code> and select attached <code>jvm-micrometer_rev8.json</code>. File has been pulled from <code>https://grafana.com/grafana/dashboards/4701</code>.</p> <p>Please note application will be run with <code>local</code> Spring profile to setup some initial data.</p> <h2>References</h2> <ol> <li><a href="https://leanpub.com/introducing_eventstorming">Introducing EventStorming</a> by Alberto Brandolini</li> <li><a href="https://pragprog.com/book/swdddf/domain-modeling-made-functional">Domain Modelling Made Functional</a> by Scott Wlaschin</li> <li><a href="https://softwarearchitecturefordevelopers.com">Software Architecture for Developers</a> by Simon Brown</li> <li><a href="https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164">Clean Architecture</a> by Robert C. Martin</li> <li><a href="https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215">Domain-Driven Design: Tackling Complexity in the Heart of Software</a> by Eric Evans</li> </ol> + \ No newline at end of file diff --git a/java/weekly/index.xml b/java/weekly/index.xml new file mode 100644 index 00000000000..39484c09e15 --- /dev/null +++ b/java/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Java Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:09Z + Weekly Trending of Java in GitHub + + + apache/incubator-kie-drools + 2023-09-24T01:53:09Z + tag:github.com,2023-09-24:/apache/incubator-kie-drools + + <p>Drools is a rule engine, DMN engine and complex event processing (CEP) engine for Java.</p><hr><p>An open source rule engine, <a href="https://drools.org/learn/dmn.html">DMN engine</a> and complex event processing (CEP) engine for Java™ and the JVM Platform.</p> <p>Drools is a business rule management system with a forward-chaining and backward-chaining inference based rules engine, allowing fast and reliable evaluation of business rules and complex event processing. A rule engine is also a fundamental building block to create an expert system which, in artificial intelligence, is a computer system that emulates the decision-making ability of a human expert.</p> <p>Be sure to check out the Drools' project <a href="https://drools.org">website</a> and <a href="https://drools.org/learn/documentation.html">documentation</a>!</p> <h1>Developing Drools and jBPM</h1> <p><strong>If you want to build or contribute to a kiegroup project, <a href="https://github.com/kiegroup/droolsjbpm-build-bootstrap/raw/main/README.md">read this document</a>.</strong></p> <p><strong>It will save you and us a lot of time by setting up your development environment correctly.</strong> It solves all known pitfalls that can disrupt your development. It also describes all guidelines, tips and tricks. If you want your pull requests (or patches) to be merged, please respect those guidelines.</p> <h1>Test execution tip</h1> <p>Some test are meant to be executed on machine with <em>en_US</em> locale. A specific profile is provided to execute them on machines with different locale, namely <code>test-en</code>. There are two ways to activate such profile during maven build:</p> <ol> <li><code>-Ptest-en</code> (profile-id based)</li> <li><code>-DTestEn</code> (property based)</li> </ol> <p>The following two commands will execute tests on machine with locale different than <em>en_US</em>:</p> <ol> <li><code>make test -Ptest-en</code></li> <li><code>make test -DTestEn</code></li> </ol> + + + apache/iotdb + 2023-09-24T01:53:09Z + tag:github.com,2023-09-24:/apache/iotdb + + <p>Apache IoTDB</p><hr><p><a href="https://raw.githubusercontent.com/apache/iotdb/master/README.md">English</a> | <a href="https://raw.githubusercontent.com/apache/iotdb/master/README_ZH.md">中文</a></p> <h1>IoTDB</h1> <p><a href="https://github.com/apache/iotdb/actions/workflows/unit-test.yml"><img src="https://github.com/apache/iotdb/actions/workflows/unit-test.yml/badge.svg?sanitize=true" alt="Unit-Test"></a> <a href="https://codecov.io/github/apache/iotdb"><img src="https://codecov.io/github/apache/iotdb/graph/badge.svg?token=ejF3UGk0Nv" alt="codecov"></a> <a href="https://github.com/apache/iotdb/releases"><img src="https://img.shields.io/github/release/apache/iotdb.svg?sanitize=true" alt="GitHub release"></a> <a href="https://www.apache.org/licenses/LICENSE-2.0.html"><img src="https://img.shields.io/badge/license-Apache%202-4EB1BA.svg?sanitize=true" alt="License"></a> <img src="https://github-size-badge.herokuapp.com/apache/iotdb.svg?sanitize=true" alt=""> <img src="https://img.shields.io/github/downloads/apache/iotdb/total.svg?sanitize=true" alt=""> <img src="https://img.shields.io/badge/platform-win%20%7C%20macos%20%7C%20linux-yellow.svg?sanitize=true" alt=""> <img src="https://img.shields.io/badge/java--language-1.8%20%7C%2011%20%7C%2017-blue.svg?sanitize=true" alt=""> <a href="https://iotdb.apache.org/"><img src="https://img.shields.io/website-up-down-green-red/https/shields.io.svg?label=iotdb-website" alt="IoTDB Website"></a> <a href="http://search.maven.org/#search%7Cgav%7C1%7Cg:%22org.apache.iotdb%22"><img src="https://maven-badges.herokuapp.com/maven-central/org.apache.iotdb/iotdb-parent/badge.svg?sanitize=true" alt="Maven Version"></a> <a href="https://gitpod.io/#https://github.com/apache/iotdb"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a> <a href="https://join.slack.com/t/apacheiotdb/shared_invite/zt-qvso1nj8-7715TpySZtZqmyG5qXQwpg"><img src="https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&amp;style=social" alt="Slack Status"></a></p> <h1>Overview</h1> <p>IoTDB (Internet of Things Database) is a data management system for time series data, which provides users with specific services including data collection, storage and analysis. Due to its light weight structure, high performance and usable features, together with its seamless integration with the Hadoop and Spark ecology, IoTDB meets the requirements of massive dataset storage, high throughput data input, and complex data analysis in the industrial IoT field.</p> <h1>Main Features</h1> <p>Main features of IoTDB are as follows:</p> <ol> <li>Flexible deployment strategy. IoTDB provides users a one-click installation tool on either the cloud platform or the terminal devices, and a data synchronization tool bridging the data on cloud platform and terminals.</li> <li>Low cost on hardware. IoTDB can reach a high compression ratio of disk storage.</li> <li>Efficient directory structure. IoTDB supports efficient organization for complex time series data structures from intelligent networking devices, organization for time series data from devices of the same type, and fuzzy searching strategy for massive and complex directory of time series data.</li> <li>High-throughput read and write. IoTDB supports millions of low-power devices' strong connection data access, high-speed data read and write for intelligent networking devices and mixed devices mentioned above.</li> <li>Rich query semantics. IoTDB supports time alignment for time series data across devices and measurements, computation in time series field (frequency domain transformation) and rich aggregation function support in time dimension.</li> <li>Easy to get started. IoTDB supports SQL-Like language, JDBC standard API and import/export tools which is easy to use.</li> <li>Seamless integration with state-of-the-practice Open Source Ecosystem. IoTDB supports analysis ecosystems such as, Hadoop, Spark, and visualization tool, such as, Grafana.</li> </ol> <p>For the latest information about IoTDB, please visit <a href="https://iotdb.apache.org/">IoTDB official website</a>. If you encounter any problems or identify any bugs while using IoTDB, please report an issue in <a href="https://issues.apache.org/jira/projects/IOTDB/issues">jira</a>.</p> <!-- TOC --> <h2>Outline</h2> <ul> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#iotdb">IoTDB</a></li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#overview">Overview</a></li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#main-features">Main Features</a> <ul> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#outline">Outline</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#quick-start">Quick Start</a> <ul> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#prerequisites">Prerequisites</a></li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#installation">Installation</a> <ul> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#build-from-source">Build from source</a></li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#configurations">Configurations</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#start">Start</a> <ul> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#start-iotdb">Start IoTDB</a></li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#use-iotdb">Use IoTDB</a> <ul> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#use-cli">Use Cli</a></li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#basic-commands-for-iotdb">Basic commands for IoTDB</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#stop-iotdb">Stop IoTDB</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#only-build-server">Only build server</a></li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#only-build-cli">Only build cli</a></li> <li><a href="https://raw.githubusercontent.com/apache/iotdb/master/#usage-of-csv-import-and-export-tool">Usage of CSV Import and Export Tool</a></li> </ul> </li> </ul> <!-- /TOC --> <h1>Quick Start</h1> <p>This short guide will walk you through the basic process of using IoTDB. For a more detailed introduction, please visit our website's <a href="https://iotdb.apache.org/UserGuide/Master/QuickStart/QuickStart.html">User Guide</a>.</p> <h2>Prerequisites</h2> <p>To use IoTDB, you need to have:</p> <ol> <li>Java &gt;= 1.8 (1.8, 11 to 17 are verified. Please make sure the environment path has been set accordingly).</li> <li>Maven &gt;= 3.6 (If you want to compile and install IoTDB from source code).</li> <li>Set the max open files num as 65535 to avoid "too many open files" error.</li> <li>(Optional) Set the somaxconn as 65535 to avoid "connection reset" error when the system is under high load. <pre><code># Linux &gt; sudo sysctl -w net.core.somaxconn=65535 # FreeBSD or Darwin &gt; sudo sysctl -w kern.ipc.somaxconn=65535 </code></pre> </li> </ol> <h3>Linux</h3> <p>(This guide is based on an installation of Ubuntu 22.04)</p> <h4>Git</h4> <p>Make sure <code>Git</code> is installed, if it's missing, simply install it via:</p> <pre><code>sudo apt install git </code></pre> <h4>Java</h4> <p>Make sure <code>Java</code> is installed, if it's missing, simply install it via:</p> <pre><code>sudo apt install default-jdk </code></pre> <h4>Flex</h4> <pre><code>sudo apt install flex </code></pre> <h4>Bison</h4> <pre><code>sudo apt install bison </code></pre> <h4>Boost</h4> <pre><code>sudo apt install libboost-all-dev </code></pre> <h4>OpenSSL header files</h4> <p>Usually OpenSSL is already installed, however it's missing the header files we need to compile. So ensure these are installed:</p> <pre><code>sudo apt install libssl-dev </code></pre> <h3>Mac OS</h3> <h4>Git</h4> <p>First ensure <code>git</code> works.</p> <p>Usually on a new Mac, as soon as you simply type <code>git</code> in a <code>Terminal</code> window, a popup will come and ask if you want to finish installing the Mac developer tools. Just say yes. As soon as this is finished, you are free to use <code>git</code>.</p> <h4>Homebrew</h4> <p>Then install <code>Homebrew</code> - If this hasn't been installed yet, as we are going to be installing everything using <code>Homebrew</code>.</p> <pre><code>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" </code></pre> <h4>Java</h4> <p>As soon as that's done install <code>Java</code>, if this hasn't been installed yet:</p> <pre><code>brew install java </code></pre> <p>Depending on your version of Homebrew, it will tell you to do one of the following (Depending on the type of processor in your device).</p> <p>Mainly on the Intel-based models:</p> <pre><code>sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk </code></pre> <p>Mainly on the ARM-based models:</p> <pre><code>sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk </code></pre> <h4>CPP Prerequisites</h4> <p>Building <code>Thrift</code> requires us to add two more dependencies to the picture.</p> <p>This however is only needed when enabling the <code>compile-cpp</code> profile:</p> <pre><code>brew install boost brew install bison brew install openssl </code></pre> <h3>Windows</h3> <h4>Chocolatey</h4> <p>Then install <code>Chocolatey</code> - If this hasn't been installed yet, as we are going to be installing everything using <code>Chocolatey</code>.</p> <p><a href="https://chocolatey.org/install">https://chocolatey.org/install</a></p> <h4>Git</h4> <pre><code>choco install git.install </code></pre> <h4>Java</h4> <pre><code>choco install openjdk </code></pre> <h4>Visual Studio 19 2022</h4> <pre><code>choco install visualstudio2022community choco install visualstudio2022buildtools choco install visualstudio2022-workload-nativedesktop </code></pre> <h4>FLex / Bison</h4> <pre><code>choco install winflexbison </code></pre> <h4>Boost</h4> <pre><code>choco install boost-msvc-14.2 </code></pre> <h4>OpenSSL</h4> <pre><code>choco install openssl </code></pre> <h2>Installation</h2> <p>IoTDB provides three installation methods, you can refer to the following suggestions, choose the one fits you best:</p> <ul> <li>Installation from source code. If you need to modify the code yourself, you can use this method.</li> <li>Installation from binary files. Download the binary files from the official website. This is the recommended method, in which you will get a binary released package which is out-of-the-box.</li> <li>Using Docker:The path to the dockerfile is <a href="https://github.com/apache/iotdb/tree/master/docker/src/main">here</a></li> </ul> <p>Here in the Quick Start, we give a brief introduction of using source code to install IoTDB. For further information, please refer to <a href="https://iotdb.apache.org/UserGuide/Master/QuickStart/QuickStart.html">User Guide</a>.</p> <h2>Build from source</h2> <h3>Prepare Thrift compiler</h3> <p>Skip this chapter if you are using Windows.</p> <p>As we use Thrift for our RPC module (communication and protocol definition), we involve Thrift during the compilation, so Thrift compiler 0.13.0 (or higher) is required to generate Thrift Java code. Thrift officially provides binary compiler for Windows, but unfortunately, they do not provide that for Unix OSs.</p> <p>If you have permission to install new softwares, use <code>apt install</code> or <code>yum install</code> or <code>brew install</code> to install the Thrift compiler (If you already have installed the thrift compiler, skip this step). Then, you may add the following parameter when running Maven: <code>-Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=&lt;YOUR LOCAL THRIFT BINARY FILE&gt;</code>.</p> <p>If not, then you have to compile the thrift compiler, and it requires you install a boost library first. Therefore, we compiled a Unix compiler ourselves and put it onto GitHub, and with the help of a maven plugin, it will be downloaded automatically during compilation. This compiler works fine with gcc8 or later, Ubuntu MacOS, and CentOS, but previous versions and other OSs are not guaranteed.</p> <p>If you can not download the thrift compiler automatically because of network problem, you can download it yourself, and then either: rename your thrift file to <code>{project_root}\thrift\target\tools\thrift_0.12.0_0.13.0_linux.exe</code>; or, add Maven commands: <code>-Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=&lt;YOUR LOCAL THRIFT BINARY FILE&gt;</code>.</p> <h3>Compile IoTDB</h3> <p>You can download the source code from:</p> <pre><code>git clone https://github.com/apache/iotdb.git </code></pre> <p>The default dev branch is the master branch, If you want to use a released version x.x.x:</p> <pre><code>git checkout vx.x.x </code></pre> <p>Or checkout to the branch of a big version, e.g., the branch of 1.0 is rel/1.0</p> <pre><code>git checkout rel/x.x </code></pre> <h3>Build IoTDB from source</h3> <p>Under the root path of iotdb:</p> <pre><code>&gt; mvn clean package -pl distribution -am -DskipTests </code></pre> <p>After being built, the IoTDB distribution is located at the folder: "distribution/target".</p> <h3>Only build cli</h3> <p>Under the root path of iotdb:</p> <pre><code>&gt; mvn clean package -pl cli -am -DskipTests </code></pre> <p>After being built, the IoTDB cli is located at the folder "cli/target".</p> <h3>Build Others</h3> <p>Using <code>-P compile-cpp</code> for compiling cpp client (For more details, read client-cpp's Readme file.)</p> <p><strong>NOTE: Directories "<code>thrift/target/generated-sources/thrift</code>", "<code>thrift-sync/target/generated-sources/thrift</code>", "<code>thrift-cluster/target/generated-sources/thrift</code>", "<code>thrift-influxdb/target/generated-sources/thrift</code>" and "<code>antlr/target/generated-sources/antlr4</code>" need to be added to sources roots to avoid compilation errors in the IDE.</strong></p> <p><strong>In IDEA, you just need to right click on the root project name and choose "<code>Maven-&gt;Reload Project</code>" after you run <code>mvn package</code> successfully.</strong></p> <h3>Configurations</h3> <p>configuration files are under "conf" folder</p> <ul> <li>environment config module (<code>datanode-env.bat</code>, <code>datanode-env.sh</code>),</li> <li>system config module (<code>iotdb-datanode.properties</code>)</li> <li>log config module (<code>logback.xml</code>).</li> </ul> <p>For more information, please see <a href="https://iotdb.apache.org/UserGuide/Master/Reference/DataNode-Config-Manual.html">Config Manual</a>.</p> <h2>Start</h2> <p>You can go through the following steps to test the installation. If there is no error returned after execution, the installation is completed.</p> <h3>Start IoTDB</h3> <p>Users can start 1C1D IoTDB by the start-standalone script under the sbin folder.</p> <pre><code># Unix/OS X &gt; sbin/start-standalone.sh # Windows &gt; sbin\start-standalone.bat </code></pre> <h3>Use IoTDB</h3> <h4>Use Cli</h4> <p>IoTDB offers different ways to interact with server, here we introduce the basic steps of using Cli tool to insert and query data.</p> <p>After installing IoTDB, there is a default user 'root', its default password is also 'root'. Users can use this default user to login Cli to use IoTDB. The startup script of Cli is the start-cli script in the folder sbin. When executing the script, user should assign IP, PORT, USER_NAME and PASSWORD. The default parameters are "-h 127.0.0.1 -p 6667 -u root -pw -root".</p> <p>Here is the command for starting the Cli:</p> <pre><code># Unix/OS X &gt; sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root # Windows &gt; sbin\start-cli.bat -h 127.0.0.1 -p 6667 -u root -pw root </code></pre> <p>The command line cli is interactive, so you should see the welcome logo and statements if everything is ready:</p> <pre><code> _____ _________ ______ ______ |_ _| | _ _ ||_ _ `.|_ _ \ | | .--.|_/ | | \_| | | `. \ | |_) | | | / .'`\ \ | | | | | | | __'. _| |_| \__. | _| |_ _| |_.' /_| |__) | |_____|'.__.' |_____| |______.'|_______/ version x.x.x IoTDB&gt; login successfully IoTDB&gt; </code></pre> <h4>Basic commands for IoTDB</h4> <p>Now, let us introduce the way of creating timeseries, inserting data and querying data.</p> <p>The data in IoTDB is organized as timeseries. Each timeseries includes multiple data-time pairs, and is owned by a database. Before defining a timeseries, we should define a database using CREATE DATABASE first, and here is an example:</p> <pre><code>IoTDB&gt; CREATE DATABASE root.ln </code></pre> <p>We can also use SHOW DATABASES to check the database being created:</p> <pre><code>IoTDB&gt; SHOW DATABASES +-------------+ | Database| +-------------+ | root.ln| +-------------+ Total line number = 1 </code></pre> <p>After the database is set, we can use CREATE TIMESERIES to create a new timeseries. When creating a timeseries, we should define its data type and the encoding scheme. Here we create two timeseries:</p> <pre><code>IoTDB&gt; CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN IoTDB&gt; CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE </code></pre> <p>In order to query the specific timeseries, we can use SHOW TIMESERIES <path> . <path> represent the location of the timeseries. The default value is "null", which queries all the timeseries in the system(the same as using "SHOW TIMESERIES root"). Here are some examples: </path> </path></p> <ol> <li>Querying all timeseries in the system:</li> </ol> <pre><code>IoTDB&gt; SHOW TIMESERIES +-----------------------------+-----+-------------+--------+--------+-----------+----+----------+ | Timeseries|Alias|Database|DataType|Encoding|Compression|Tags|Attributes| +-----------------------------+-----+-------------+--------+--------+-----------+----+----------+ |root.ln.wf01.wt01.temperature| null| root.ln| FLOAT| RLE| SNAPPY|null| null| | root.ln.wf01.wt01.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null| +-----------------------------+-----+-------------+--------+--------+-----------+----+----------+ Total line number = 2 </code></pre> <ol start="2"> <li>Querying a specific timeseries(root.ln.wf01.wt01.status):</li> </ol> <pre><code>IoTDB&gt; SHOW TIMESERIES root.ln.wf01.wt01.status +------------------------+-----+-------------+--------+--------+-----------+----+----------+ | timeseries|alias|database|dataType|encoding|compression|tags|attributes| +------------------------+-----+-------------+--------+--------+-----------+----+----------+ |root.ln.wf01.wt01.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null| +------------------------+-----+-------------+--------+--------+-----------+----+----------+ Total line number = 1 </code></pre> <p>Insert timeseries data is a basic operation of IoTDB, you can use ‘INSERT’ command to finish this. Before insertion, you should assign the timestamp and the suffix path name:</p> <pre><code>IoTDB&gt; INSERT INTO root.ln.wf01.wt01(timestamp,status) values(100,true); IoTDB&gt; INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(200,false,20.71) </code></pre> <p>The data that you have just inserted will display as follows:</p> <pre><code>IoTDB&gt; SELECT status FROM root.ln.wf01.wt01 +------------------------+------------------------+ | Time|root.ln.wf01.wt01.status| +------------------------+------------------------+ |1970-01-01T00:00:00.100Z| true| |1970-01-01T00:00:00.200Z| false| +------------------------+------------------------+ Total line number = 2 </code></pre> <p>You can also query several timeseries data using one SQL statement:</p> <pre><code>IoTDB&gt; SELECT * FROM root.ln.wf01.wt01 +------------------------+-----------------------------+------------------------+ | Time|root.ln.wf01.wt01.temperature|root.ln.wf01.wt01.status| +------------------------+-----------------------------+------------------------+ |1970-01-01T00:00:00.100Z| null| true| |1970-01-01T00:00:00.200Z| 20.71| false| +------------------------+-----------------------------+------------------------+ Total line number = 2 </code></pre> <p>To change the time zone in Cli, you can use the following SQL:</p> <pre><code>IoTDB&gt; SET time_zone=+08:00 Time zone has set to +08:00 IoTDB&gt; SHOW time_zone Current time zone: Asia/Shanghai </code></pre> <p>Add then the query result will show using the new time zone.</p> <pre><code>IoTDB&gt; SELECT * FROM root.ln.wf01.wt01 +-----------------------------+-----------------------------+------------------------+ | Time|root.ln.wf01.wt01.temperature|root.ln.wf01.wt01.status| +-----------------------------+-----------------------------+------------------------+ |1970-01-01T08:00:00.100+08:00| null| true| |1970-01-01T08:00:00.200+08:00| 20.71| false| +-----------------------------+-----------------------------+------------------------+ Total line number = 2 </code></pre> <p>The commands to exit the Cli are:</p> <pre><code>IoTDB&gt; quit or IoTDB&gt; exit </code></pre> <p>For more information about the commands supported by IoTDB SQL, please see <a href="https://iotdb.apache.org/UserGuide/Master/QuickStart/QuickStart.html">User Guide</a>.</p> <h3>Stop IoTDB</h3> <p>The server can be stopped with "ctrl-C" or the following script:</p> <pre><code># Unix/OS X &gt; sbin/stop-standalone.sh # Windows &gt; sbin\stop-standalone.bat </code></pre> <h1>Usage of CSV Import and Export Tool</h1> <p>see <a href="https://iotdb.apache.org/UserGuide/Master/Maintenance-Tools/CSV-Tool.html">Usage of CSV Import and Export Tool</a></p> <h1>Frequent Questions for Compiling</h1> <p>see <a href="https://iotdb.apache.org/Development/ContributeGuide.html#_Frequent-Questions-when-Compiling-the-Source-Code">Frequent Questions when Compiling the Source Code</a></p> <h1>Contact Us</h1> <h3>QQ Group</h3> <ul> <li>Apache IoTDB User Group: 659990460</li> </ul> <h3>Wechat Group</h3> <ul> <li>Add friend: <code>tietouqiao</code> or <code>liutaohua001</code>, and then we'll invite you to the group.</li> </ul> <h3>Slack</h3> <ul> <li><a href="https://join.slack.com/t/apacheiotdb/shared_invite/zt-qvso1nj8-7715TpySZtZqmyG5qXQwpg">Slack channel</a></li> </ul> <p>see <a href="https://github.com/apache/iotdb/issues/1995">Join the community</a> for more!</p> + + + opensearch-project/OpenSearch + 2023-09-24T01:53:09Z + tag:github.com,2023-09-24:/opensearch-project/OpenSearch + + <p>🔎 Open source distributed and RESTful search engine.</p><hr><img src="https://opensearch.org/assets/img/opensearch-logo-themed.svg?sanitize=true" height="64px"> <p><a href="https://forum.opensearch.org/c/opensearch/"><img src="https://img.shields.io/badge/chat-on%20forums-blue" alt="Chat"></a> <a href="https://opensearch.org/docs/latest/opensearch/index/"><img src="https://img.shields.io/badge/documentation-reference-blue" alt="Documentation"></a> <a href="https://codecov.io/gh/opensearch-project/OpenSearch"><img src="https://codecov.io/gh/opensearch-project/OpenSearch/branch/main/graph/badge.svg?sanitize=true" alt="Code Coverage"></a> <a href="https://github.com/opensearch-project/OpenSearch/issues?q=is%3Aissue+is%3Aopen+label%3A%22untriaged%22"><img src="https://img.shields.io/github/issues/opensearch-project/OpenSearch/untriaged?labelColor=red" alt="Untriaged Issues"></a> <a href="https://github.com/opensearch-project/OpenSearch/issues?q=is%3Aissue+is%3Aopen+label%3A%22security%20vulnerability%22"><img src="https://img.shields.io/github/issues/opensearch-project/OpenSearch/security%20vulnerability?labelColor=red" alt="Security Vulnerabilities"></a> <a href="https://github.com/opensearch-project/OpenSearch/issues"><img src="https://img.shields.io/github/issues/opensearch-project/OpenSearch" alt="Open Issues"></a> <a href="https://github.com/opensearch-project/OpenSearch/pulls"><img src="https://img.shields.io/github/issues-pr/opensearch-project/OpenSearch" alt="Open Pull Requests"></a> <a href="https://github.com/opensearch-project/OpenSearch/issues?q=is%3Aissue+is%3Aopen+label%3A%22v2.10.0%22"><img src="https://img.shields.io/github/issues/opensearch-project/OpenSearch/v2.10.0" alt="2.10 Open Issues"></a> <a href="https://github.com/opensearch-project/OpenSearch/issues?q=is%3Aissue+is%3Aopen+label%3A%22v3.0.0%22"><img src="https://img.shields.io/github/issues/opensearch-project/OpenSearch/v3.0.0" alt="3.0 Open Issues"></a> <a href="https://github.com/opensearch-project/OpenSearch/actions/workflows/gradle-check.yml"><img src="https://github.com/opensearch-project/OpenSearch/actions/workflows/gradle-check.yml/badge.svg?sanitize=true" alt="GHA gradle check"></a> <a href="https://github.com/opensearch-project/OpenSearch/actions/workflows/wrapper.yml"><img src="https://github.com/opensearch-project/OpenSearch/actions/workflows/wrapper.yml/badge.svg?sanitize=true" alt="GHA validate pull request"></a> <a href="https://github.com/opensearch-project/OpenSearch/actions/workflows/precommit.yml"><img src="https://github.com/opensearch-project/OpenSearch/actions/workflows/precommit.yml/badge.svg?sanitize=true" alt="GHA precommit"></a> <a href="https://build.ci.opensearch.org/job/gradle-check/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fbuild.ci.opensearch.org%2Fjob%2Fgradle-check%2F&amp;label=Jenkins%20Gradle%20Check" alt="Jenkins gradle check job"></a></p> <ul> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/#welcome">Welcome!</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/#project-resources">Project Resources</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/#code-of-conduct">Code of Conduct</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/#security">Security</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/#license">License</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/#copyright">Copyright</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/#trademark">Trademark</a></li> </ul> <h2>Welcome!</h2> <p><strong>OpenSearch</strong> is <a href="https://aws.amazon.com/blogs/opensource/introducing-opensearch/">a community-driven, open source fork</a> of <a href="https://en.wikipedia.org/wiki/Elasticsearch">Elasticsearch</a> and <a href="https://en.wikipedia.org/wiki/Kibana">Kibana</a> following the <a href="https://blog.opensource.org/the-sspl-is-not-an-open-source-license/">license change</a> in early 2021. We're looking to sustain (and evolve!) a search and analytics suite for the multitude of businesses who are dependent on the rights granted by the original, <a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/LICENSE.txt">Apache v2.0 License</a>.</p> <h2>Project Resources</h2> <ul> <li><a href="https://opensearch.org/">Project Website</a></li> <li><a href="https://opensearch.org/downloads.html">Downloads</a></li> <li><a href="https://opensearch.org/docs/">Documentation</a></li> <li>Need help? Try <a href="https://discuss.opendistrocommunity.dev/">Forums</a></li> <li><a href="https://opensearch.org/#principles">Project Principles</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/CONTRIBUTING.md">Contributing to OpenSearch</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/MAINTAINERS.md">Maintainer Responsibilities</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/RELEASING.md">Release Management</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/ADMINS.md">Admin Responsibilities</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/TESTING.md">Testing</a></li> <li><a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/SECURITY.md">Security</a></li> </ul> <h2>Code of Conduct</h2> <p>This project has adopted the <a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/CODE_OF_CONDUCT.md">Amazon Open Source Code of Conduct</a>. For more information see the <a href="https://aws.github.io/code-of-conduct-faq">Code of Conduct FAQ</a>, or contact <a href="mailto:opensource-codeofconduct@amazon.com">opensource-codeofconduct@amazon.com</a> with any additional questions or comments.</p> <h2>Security</h2> <p>If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our <a href="http://aws.amazon.com/security/vulnerability-reporting/">vulnerability reporting page</a> or directly via email to <a href="mailto:aws-security@amazon.com">aws-security@amazon.com</a>. Please do <strong>not</strong> create a public GitHub issue.</p> <h2>License</h2> <p>This project is licensed under the <a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/LICENSE.txt">Apache v2.0 License</a>.</p> <h2>Copyright</h2> <p>Copyright OpenSearch Contributors. See <a href="https://raw.githubusercontent.com/opensearch-project/OpenSearch/main/NOTICE.txt">NOTICE</a> for details.</p> <h2>Trademark</h2> <p>OpenSearch is a registered trademark of Amazon Web Services.</p> <p>OpenSearch includes certain Apache-licensed Elasticsearch code from Elasticsearch B.V. and other source code. Elasticsearch B.V. is not the source of that other source code. ELASTICSEARCH is a registered trademark of Elasticsearch B.V.</p> + + \ No newline at end of file diff --git a/javascript+erb/daily/index.xml b/javascript+erb/daily/index.xml index 1aa9aa64cfe..b9982cb13e5 100644 --- a/javascript+erb/daily/index.xml +++ b/javascript+erb/daily/index.xml @@ -1,7 +1,7 @@ GitHub JavaScript+ERB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:02Z + 2023-09-24T01:33:22Z Daily Trending of JavaScript+ERB in GitHub \ No newline at end of file diff --git a/javascript+erb/weekly/index.xml b/javascript+erb/weekly/index.xml new file mode 100644 index 00000000000..59887d3e903 --- /dev/null +++ b/javascript+erb/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub JavaScript+ERB Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:25Z + Weekly Trending of JavaScript+ERB in GitHub + + \ No newline at end of file diff --git a/javascript/daily/index.xml b/javascript/daily/index.xml index 466c61eba98..b7039753ba9 100644 --- a/javascript/daily/index.xml +++ b/javascript/daily/index.xml @@ -1,7 +1,28 @@ GitHub JavaScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:05Z + 2023-09-24T01:33:27Z Daily Trending of JavaScript in GitHub + + SuhailTechInfo/Suhail-Md + 2023-09-24T01:33:27Z + tag:github.com,2023-09-24:/SuhailTechInfo/Suhail-Md + + <p>meet Suhail-Md, Your All-in-One WhatsApp Excitement Buddy! Enjoy a thrilling messaging experience like never before. Suhail-Md brings a world of excitement and joy to your chats ✨🤖</p><hr><h1 align="center"> Suhail Md </h1> <p align="center"> Introducing Suhail_Md, It is designed to bring a whole new level of excitement to your boring WhatsApp use. </p> <p align="center"> <a href="https://youtube.com/@suhailtechinfo"> <img alt="Suhail docs" height="300" src="https://telegra.ph/file/ec9bc5038601821f2eb84.jpg"> </a> </p> <p align="center"> <a href="" target="_blank"> <img alt="Forks" src="https://img.shields.io/github/forks/SuhailTechInfo/Suhail-Md"> </a> <a aria-label="Suhail_Md is free to use" href="https://github.com/SuhailTechInfo/Suhail-Md/raw/main/LICENCE" target="_blank"> <img alt="License: GPL-3" src="https://badges.frapsoft.com/os/gpl/gpl.png?v=103)%5D(https://opensource.org/licenses/GPL-3.0/" target="_blank"> </a> <a aria-label="Suhail_Md is free to use" href="https://youtube.com/@suhailtechinfo" target="_blank"> <img alt="SuhailTechInfo Yt" src="https://img.shields.io/youtube/channel/subscribers/UCU071AMRqcd5mfTdCgJFwPg" target="_blank"> </a> </p> <p align="center"><img src="https://profile-counter.glitch.me/{SuhailTechInfo}/count.svg" alt="SuhailTechInfo :: Visitor's Count"></p> <p align="center"> <a href="https://chat.whatsapp.com/CiqdwyiDV9eCR3xLe0Ttvi" target="_blank"> <img alt="whatsapp Group" src="https://img.shields.io/badge/ Whatsapp Support Group -25D366?style=for-the-badge&amp;logo=whatsapp&amp;logoColor=white"> </a> </p> <hr> <h2>Bot Games</h2> <hr> <ol> <li><em><strong>Connect Four Game.</strong></em></li> <li><em><strong>Tic Tac Toe.</strong></em></li> <li><em><strong>Number Guessing Game.</strong></em></li> <li><em><strong>Word chain Game.</strong></em></li> <li><em><strong>Hidden Queen Card.</strong></em></li> <li><em><strong>Rolling Dice.</strong></em></li> <li><em><strong>Capital of city.</strong></em></li> </ol> <h2></h2> <h2>Deployment Methods</h2> <hr> <ol> <li> <p><em><strong>Get <a href="https://replit.com/@SuhailTechInfo/Suhail-Md?v=1"><code>SESSION ID 1</code></a>, <a href="https://replit.com/@SuhailTechInfo/Secktor-Bot?v=1"><code>SESSION ID 2</code></a> by scanning QR code. And Scan it <code>Go-to Whatapp&gt;Three dots&gt;Linked Devices</code></strong></em></p> </li> <li> <p><em><strong>Get Mongodb_URI from <a href="https://www.mongodb.com/"><code>Mongodb site</code></a> | Watch Tutorial <a href="https://youtu.be/6rnftFl0fAI"><code>To Get Mongodb_URI</code></a>.</strong></em></p> </li> <li> <p><em><strong>Click <a href="https://github.com/SuhailTechInfo/Suhail-Md/fork"><code>FORK</code></a> and <code>Star ⭐ Repository</code> if you Like that Bot.</strong></em></p> </li> <li> <p><em><strong>Deploy tutorial <a href="https://youtu.be/6rnftFl0fAI"><code>Youtube Video</code></a>.</strong></em></p> </li> <li> <p><em><strong>Deploy FREE on <code>Codespace,</code> First see <a href="https://youtu.be/3NdJb6_1cJM"><code>Codespace tutorial</code></a></strong></em></p> </li> <li> <p><em><strong>Deploy on <a href="https://suhail-web01.vercel.app/deploy.html"><code>HEROKU</code></a></strong></em></p> </li> <li> <p><em><strong>Deploy on <a href="https://suhail-web01.vercel.app/replit.html"><code>Replit</code></a></strong></em></p> </li> </ol> <h2></h2> <p><em><strong>Use this Public MongoDb Key, If you dont have.!</strong></em></p> <pre><code>mongodb+srv://Suhail_Md:Suhail_Md@cluster1.0tlyzhm.mongodb.net/?retryWrites=true&amp;w=majority </code></pre> <hr> <ul> <li>Star ⭐ repo if you like this bot.</li> </ul> <h3>Thanks To</h3> <ul> <li><a href="https://github.com/Sampandey001">Sam Pamday</a></li> </ul> <p>The Suhail_Md is made available under the <a href="https://github.com/SuhailTechInfo/Suhail-Md/raw/main/LICENCE">GPL-3 license</a>.</p> <p>##Deploy on <a href="https://dashboard.heroku.com/new?template=https://github.com/SuhailTechInfo/Suhail-Md"><code>heroku</code></a></p> + + + google/blockly-samples + 2023-09-24T01:33:27Z + tag:github.com,2023-09-24:/google/blockly-samples + + <p>Plugins, codelabs, and examples related to the Blockly library.</p><hr><h1 align="center"> Blockly Samples <br> <a href="https://github.com/google/blockly"><img src="https://tinyurl.com/built-on-blockly"> </a> </h1> <p>Plugins, codelabs, and examples related to the <a href="https://github.com/google/blockly">Blockly</a> library.</p> <p>This repository has three sections:</p> <ul> <li><a href="https://raw.githubusercontent.com/google/blockly-samples/osd/plugins/">Plugins</a>: self-contained pieces of code that add functionality to Blockly.</li> <li><a href="https://raw.githubusercontent.com/google/blockly-samples/osd/examples/">Examples</a>: self-contained sample projects demonstrating techniques to include and extend the Blockly library.</li> <li><a href="https://raw.githubusercontent.com/google/blockly-samples/osd/codelabs/">Codelabs</a>: interactive tutorials demonstrating how to use Blockly.</li> </ul> <p>Please see our <a href="https://google.github.io/blockly-samples/index.html">GitHub Pages site</a> for interactive demos of most plugins.</p> <h2>Support</h2> <p>Blockly has an active <a href="https://groups.google.com/forum/#!forum/blockly">developer forum</a>. Please drop by and say hello. Show us your prototypes early; collectively we have a lot of experience and can offer hints which will save you time. We actively monitor the forums and typically respond to questions within 2 working days.</p> <h2>License</h2> <p>Apache 2.0</p> + + + sunlabuiuc/TextbookKG + 2023-09-24T01:33:27Z + tag:github.com,2023-09-24:/sunlabuiuc/TextbookKG + + <p>Knowledge Graph Generation for Any PDFs</p><hr><h1>TextbookKG (TxBKG)</h1> <h3>A super flexible user-friendly software transforming any PDF files (any pages) into Knowledge Graphs!</h3> <hr> <h2>Play with it!</h2> <p>Website: <a href="https://sunlabuiuc.github.io/TextbookKG/">https://sunlabuiuc.github.io/TextbookKG/</a></p> <p>Locally:</p> <pre><code class="language-bash">npm install npm start </code></pre> <p>To use the user repo feature, please contact me (<a href="mailto:pj20@illinois.edu">pj20@illinois.edu</a>) to authorize your google account.</p> <p>We will provide a demo video soon (by October 2023), after all desired features are developed.</p> + \ No newline at end of file diff --git a/javascript/weekly/index.xml b/javascript/weekly/index.xml new file mode 100644 index 00000000000..36e6eba4fc9 --- /dev/null +++ b/javascript/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub JavaScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:28Z + Weekly Trending of JavaScript in GitHub + + + sveltejs/svelte + 2023-09-24T01:53:28Z + tag:github.com,2023-09-24:/sveltejs/svelte + + <p>Cybernetically enhanced web apps</p><hr><p><a href="https://svelte.dev"><img src="https://sveltejs.github.io/assets/banner.png" alt="Cybernetically enhanced web apps: Svelte"></a></p> <p><a href="https://raw.githubusercontent.com/sveltejs/svelte/master/LICENSE.md"><img src="https://img.shields.io/npm/l/svelte.svg?sanitize=true" alt="license"></a> <a href="https://svelte.dev/chat"><img src="https://img.shields.io/discord/457912077277855764?label=chat&amp;logo=discord" alt="Chat"></a></p> <h2>What is Svelte?</h2> <p>Svelte is a new way to build web applications. It's a compiler that takes your declarative components and converts them into efficient JavaScript that surgically updates the DOM.</p> <p>Learn more at the <a href="https://svelte.dev">Svelte website</a>, or stop by the <a href="https://svelte.dev/chat">Discord chatroom</a>.</p> <h2>Supporting Svelte</h2> <p>Svelte is an MIT-licensed open source project with its ongoing development made possible entirely by fantastic volunteers. If you'd like to support their efforts, please consider:</p> <ul> <li><a href="https://opencollective.com/svelte">Becoming a backer on Open Collective</a>.</li> </ul> <p>Funds donated via Open Collective will be used for compensating expenses related to Svelte's development such as hosting costs. If sufficient donations are received, funds may also be used to support Svelte's development more directly.</p> <h2>Roadmap</h2> <p>You may view <a href="https://svelte.dev/roadmap">our roadmap</a> if you'd like to see what we're currently working on.</p> <h2>Contributing</h2> <p>Please see the <a href="https://raw.githubusercontent.com/sveltejs/svelte/master/CONTRIBUTING.md">Contributing Guide</a> and <a href="https://raw.githubusercontent.com/sveltejs/svelte/master/packages/svelte">svelte package</a> for contributing to Svelte.</p> <h3>Development</h3> <p>Pull requests are encouraged and always welcome. <a href="https://github.com/sveltejs/svelte/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc">Pick an issue</a> and help us out!</p> <p>To install and work on Svelte locally:</p> <pre><code class="language-bash">git clone https://github.com/sveltejs/svelte.git cd svelte pnpm install </code></pre> <blockquote> <p>Do not use Yarn to install the dependencies, as the specific package versions in <code>pnpm-lock.json</code> are used to build and test Svelte.</p> </blockquote> <p>To build the compiler and all the other modules included in the package:</p> <pre><code class="language-bash">pnpm build </code></pre> <p>To watch for changes and continually rebuild the package (this is useful if you're using <a href="https://pnpm.io/cli/link"><code>pnpm link</code></a> to test out changes in a project locally):</p> <pre><code class="language-bash">pnpm dev </code></pre> <p>The compiler is written in JavaScript and uses <a href="https://jsdoc.app/index.html">JSDoc</a> comments for type-checking.</p> <h3>Running Tests</h3> <pre><code class="language-bash">pnpm test </code></pre> <p>To filter tests, use <code>-g</code> (aka <code>--grep</code>). For example, to only run tests involving transitions:</p> <pre><code class="language-bash">pnpm test -- -g transition </code></pre> <h3>svelte.dev</h3> <p>The source code for <a href="https://svelte.dev">https://svelte.dev</a> lives in the <a href="https://github.com/sveltejs/svelte/tree/master/sites/svelte.dev">sites</a> folder, with all the documentation right <a href="https://github.com/sveltejs/svelte/tree/master/documentation">here</a>. The site is built with <a href="https://kit.svelte.dev">SvelteKit</a>.</p> <h2>Is svelte.dev down?</h2> <p>Probably not, but it's possible. If you can't seem to access any <code>.dev</code> sites, check out <a href="https://superuser.com/q/1413402">this SuperUser question and answer</a>.</p> <h2>License</h2> <p><a href="https://raw.githubusercontent.com/sveltejs/svelte/master/LICENSE.md">MIT</a></p> + + + nolimits4web/swiper + 2023-09-24T01:53:28Z + tag:github.com,2023-09-24:/nolimits4web/swiper + + <p>Most modern mobile touch slider with hardware accelerated transitions</p><hr><p align="center"> <img src="https://swiperjs.com/images/share-banner-3.png"> </p> <p align="center"> <a href="https://swiperjs.com/get-started">Get Started</a> | <a href="https://swiperjs.com/swiper-api">Documentation</a> | <a href="https://swiperjs.com/demos">Demos</a> </p> <p align="center"> <a href="https://opencollective.com/swiper"> <img src="https://opencollective.com/swiper/all/badge.svg?label=financial+contributors" alt="Financial Contributors on Open Collective"> </a> <a href="https://github.com/nolimits4web/swiper/actions?query=workflow%3ABuild"> <img src="https://github.com/nolimits4web/swiper/workflows/Build/badge.svg?sanitize=true" alt="Build status"> </a> <a href="https://www.jsdelivr.com/package/npm/swiper"> <img src="https://data.jsdelivr.com/v1/package/npm/swiper/badge?style=rounded" alt="jsDelivr Hits"> </a> <a href="https://bundlephobia.com/result?p=swiper"> <img alt="tree-shakeable" src="https://badgen.net/bundlephobia/tree-shaking/swiper"> </a> <a href="https://npmjs.org/package/swiper"> <img alt="types included" src="https://badgen.net/npm/types/swiper"> </a> </p> <p align="center"> <a href="https://opencollective.com/swiper/" target="_blank"> <img src="https://opencollective.com/swiper/donate/button@2x.png?color=blue" width="300"> </a> </p> <h1>Swiper</h1> <p>Swiper - is the free and most modern mobile touch slider with hardware accelerated transitions and amazing native behavior. It is intended to be used in mobile websites, mobile web apps, and mobile native/hybrid apps.</p> <p>Swiper is not compatible with all platforms, it is a modern touch slider which is focused only on modern apps/platforms to bring the best experience and simplicity.</p> <h2>Sponsors</h2> <!-- SPONSORS_TABLE_WRAP --> <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://awisee.co.uk/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/awiseecouk.png" alt="SEO Agency UK - International SEO and Link Building Services" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://linkbuildingsweden.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/lbsweden.png" alt="Linkbuilding Sweden - Link Building Agency Sweden" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.vedonlyontibonukset.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/vedonlyontibonukset.png" alt="Vedonlyöntibonukset 2023 | Ilmaiset vihjeet | Koutsi hoitaa" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://bitcoinist.com/10-most-reputable-non-gamstop-casinos-uk-in-2023-%E2%9C%94%EF%B8%8F/amp/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/btcgaming.png" alt="10 Most Reputable Non-GamStop Casinos UK in 2023 ✔️ | Bitcoinist.com" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://writersperhour.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/writersperhour.png" alt="Hire Professional Paper Writers for Custom Writing Services" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://starwarscasinos.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/starwarscasinos.png" alt="Casino utan Svensk Licens 2023" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://automatenspielex.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/automatenspielexcom.png" alt="automatenspielex online" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://automatenspieler.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/automatenspieler.png" alt="Automatenspieler - Das Casino-Portal von Spielern für Spieler" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://buyyoutubviews.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/buyyoutubviews.png" alt="Buy Youtube Views" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.gambleonlineaustralia.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/gambleonlineaustralia.png" alt="Gamble Online Australia | Best Online Gambling Sites List 2022" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.nettikasinot.org/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nettikasinot.png" alt="Nettikasinot | Tässä parhaat nettikasinot 2022 - Katso lista" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.kasinohai.com/nettikasinot" target="_blank"> <img src="https://swiperjs.com/images/sponsors/kasinohai.png" alt="Nettikasinot 2022 | Löydä Luotettava &amp; Turvallinen Nettikasino!" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://bluechip.io/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/bluechip.png" alt="indian casino Bluechip" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.nongamstopodds.com/casinos-not-on-gamstop/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nongamstopodds.png" alt="NonGamStopOdds casino sites" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.casinotest.de" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinotest.png" alt="Online Casino Test 2022 » 90+ Casinos von Experten geprüft!" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.kasinot.fi" target="_blank"> <img src="https://swiperjs.com/images/sponsors/kasinot-fi.png" alt="Kasinot | Löydä parhaat nettikasinot (2022)" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.pelisivut.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/pelisivut.png" alt="Rahapelit netissä - Löydä parhaat pelisivut rahapeleihin" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.paraskasino.fi" target="_blank"> <img src="https://swiperjs.com/images/sponsors/paraskasino.png" alt="Paras nettikasino (2021) - Löydä listalta parhaat nettikasinot" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://parimatch.in/en/football/live" target="_blank"> <img src="https://swiperjs.com/images/sponsors/parimatch.png" alt="Online sports betting and casino at Parimatch India" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casino-wise.com/casinos-not-on-gamstop/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casino-wise-com.png" alt="Casinos not on GamStop | Casino-Wise.com" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.nongamstopwager.com/casinos-not-on-gamstop/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nongamstopwager-com.png" alt="Casinos not on GamStop UK 🏆 NonGamStopWager.com" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinoutankonto.net/casino-utan-svensk-licens/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinoutankonto.png" alt="Casino utan spelpaus" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.casinot.net" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinot-net.png" alt="Casinot | Tässä parhaat netticasinot 2021 - Katso lista" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinoauditor.com/online-casinos-cyprus/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinoauditor.png" alt="Online Casinos Cyprus - CasinoAuditor" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://casinoshunter.com/online-casinos/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinos-hunter.png" alt="Best Online Casinos in Canada" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://papersowl.com/pay-for-research-paper" target="_blank"> <img src="https://swiperjs.com/images/sponsors/papersowl.png" alt="Pay Someone to Write My Research Paper" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://igchamp.co.uk/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/igchamp.jpg" alt="Buy Instagram Followers" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://slotcasinocanada.ca/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/slotcasinocanadaca.png" alt="Top Casinos in Canada with Bonuses for Players 2023" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://gamblecritic.net/casinos-online/best-casino-sites/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/gamble-critic.png" alt="Best International Online Casinos by Gamble Critic" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://anonstories.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/anonstories.png" alt="AnonStories • Anonymous Instagram Story Viewer • Anon IG Viewer" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://boostlikes.uk/buy-youtube-subscribers-views/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/boostlikes.png" alt="Buy YouTube Subscribers &amp; Views UK @ just £1.99 - Boostlikes" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://zestate.co.uk/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/zestate.png" alt="Zestate - Search Postcodes,Properties, Local Places Across UK" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.socialwick.com/twitter/followers" target="_blank"> <img src="https://swiperjs.com/images/sponsors/socialwick-twitter-followers.png" alt="Buy Twitter Followers – 100% Active &amp; Instant" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://kaszinomagyar.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/kaszinomagyarcom.png" alt="Online Kaszinó Magyar, Legjobb Online Kaszinók 2023" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://limeup.io/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/limeup.png" alt="UX Design &amp; Software Development Company" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinolandia.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinolandia.png" alt="CasinoLandia | An Exciting Journey in the Land of Online Casinos" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://twicsy.com/buy-instagram-comments" target="_blank"> <img src="https://swiperjs.com/images/sponsors/buy-instagram-comments-twicsy.png" alt="Buy Instagram Comments from Real Users | Powered by AI" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://twicsy.com/buy-instagram-followers" target="_blank"> <img src="https://swiperjs.com/images/sponsors/buy-instagram-followers-twicsy.png" alt="Buy Instagram Followers | Real, Instant Delivery &amp; Only $2.97" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.bairesdev.com/sponsoring-open-source-projects/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/bairesdev.png" alt="BairesDev: Promoting Open Source for a Better Future" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://nongamstopcasinos.net/uk/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nongamstopcasinosnet.png" alt="UK Casinos not on GamStop 2023 - nongamstopcasinos.net" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://mines-game.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/mines-game.png" alt="Mines Aposta lll▷ Jogo da Bombinha Que da Dinheiro" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.outlookindia.com/outlook-spotlight/migliori-siti-non-aams-siti-scommesse-senza-licenza-sicuri-news-294715" target="_blank"> <img src="https://swiperjs.com/images/sponsors/outlookindia.png" alt="siti non AAMS - outlookindia.com" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://kajino.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/kajinocom.png" alt="オンラインカジノ評価2023【深層分析】~おすすめ人気オンラインカジノ | Kajino" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://aussielowdepositcasino.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/aussielowdepositcasino.png" alt="Best Aussie casinos at aussielowdepositcasino.com" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://gamblechecker.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/martin-woods.png" alt="Gamblechecker.com - Online Pokies Reviews For NZ Players" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://expressfollowers.com/buy-instagram-reel-views/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/buy-instagram-reels-views.png" alt="buy ig reel views" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.outlookindia.com/outlook-spotlight/slots-not-on-gamstop-new-non-gamstop-casinos-uk-news-284058" target="_blank"> <img src="https://swiperjs.com/images/sponsors/alistair3.png" alt="Slots Not on GamStop - New Non-GamStop Casinos UK" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://cyberogism.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/cyberogism.png" alt="Technology, Security, Innovation, The Cyber World Now | Cyberogism" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://www.technologypep.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/technologypep.png" alt="Tech Pep | Latest Gadgets and Technology News" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.kayakstore.se/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/kayakstore.png" alt="Kayakstore is the premier Swedish e-commerce destination for fishing gear and outdoor products" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://dashtickets.nz/online-pokies-real-money/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/jetx-jogo-223-2.png" alt="DashTickets NZ online pokies for real money in New Zealand" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://wmd.hosting/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/wmd-logo.png" alt="Hosting Europe – Super fast support better than AI" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casino-zonder-cruks.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casino-zonder-cruks.png" alt="Casino Zonder Cruks" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://menaseo.ae/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/mena-seo.png" alt="mena seo agency - supercharge your growth in the MENA region" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://igamingmi.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/igamingmi.png" alt="iGamingMI: Your Trusted Online Gambling Guide In Michigan" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://tranio.com/spain/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/tranio.png" alt="Property for sale in Spain" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://ratemycasino.ca/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/alexliam.png" alt="Top 10 online casinos list for Canadians" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.minimumdepositcasinos.org/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/minimumdepositcasinosorg.png" alt="Minimum Deposit Casinos 2023 - Get more bang for your buck with our low deposit casinos" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://apacseo.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/apac-seo.png" alt="apac seo agency - supercharge your growth in the APAC region" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.nyecasino.me/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nyecasino.png" alt="Nye casino 2023 >> Finn et helt nytt norsk nettcasino nå!" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://idealecasinos.nl/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/niel-heijnsbergen.png" alt="Beste iDeal Casino's 2023 - Veilige NL Online Casino met iDeal" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://myfootballbets.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/myfootballbets.png" alt="My Football Bets: Compare Betting Odds and Sites" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://scrapcartorontoshop.ca/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/scrap-car-removal-toronto.png" alt="Scrap Car Removal Toronto | Best Cash For Scrap Cars up to $5,000" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.vedonlyontibonukset.com/pitkavetovihjeet" target="_blank"> <img src="https://swiperjs.com/images/sponsors/pitkavetovihjeet.png" alt="Pitkävetovihjeet | Joka päivä uusia kohteita | Lue lisää" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://socialboss.org/buy-instagram-likes/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/socialboss.png" alt="buy Instagram likes" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://linkbuildingitaly.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/link-building-italy.png" alt="Linkbuilding Italy - Link Building Italy" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://uusi-pikakasino.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/uusi-pikakasinocom.png" alt="Pikakasinot 2023 | Löydä paras uusi pikakasino suomessa!" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://kasinokolikkopelit.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/kasinokolikkopelitcom.png" alt="Rahapelit Netissä Toukokuu 2023 - Paras Rahapeli Valikoima" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.newsbtc.com/news/company/real-money-online-casino-best-casinos-that-pay-real-money/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/playrealmoneyslots.png" alt="Real Money Online Casino - Best Casinos That Pay Real Money" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://buycheapestfollowers.com/buy-instagram-reels-views" target="_blank"> <img src="https://swiperjs.com/images/sponsors/thebestsolution.png" alt="Buy Instagram Reels Views" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinocrawlers.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinocrawlerscom.png" alt="Best Online Casino NZ in 2023 - Online Gambling NZ" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.frichert.se/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/frichert.png" alt="SEO Skribent &amp; Copywriter - Filippa Richert" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://www.casinot.biz/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinotbiz.png" alt="Casinot: Katso mitkä ovat parhaat casinot netissä 2023" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://no-verification.casino/uk/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/noverificationcasino.png" alt="no id verification withdrawal casino uk" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.ghotala.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/ghotala-com.png" alt="सर्वोत्तम गैम्बलिंग साइट भारत : 100% सुरक्षित ऑनलाइन जुआ" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://mobipast.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/mobipast.png" alt="mobiplast" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://dr.sc/top-10-najboljih-online-casina-u-hrvatskoj/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/doctor-sports-and-casinos-dr-sc.png" alt="Top 10 Najboljih Online Casino u Hrvatskoj u 2023" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://dispomode.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/user-53231496.webp" alt="Online Vape Shop – DispoMode" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.kiekkotorni.com/vahvat-nikotiinipussit" target="_blank"> <img src="https://swiperjs.com/images/sponsors/vahvat-nikotiinipussit-netista.png" alt="Vahvat Nikotiinipussit Laillisesti Suomeen - Kiekkotorni" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://onlinecasinosspelen.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/onlinecasinosspelen.png" alt="Onlinecasinosspelen.com site is dé nummer één gids, waardoor je gemakkelijk alle informatie van de top 10 online casino sites." width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.weareroli.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/pucuk138.png" alt="Pucuk138 » Daftar Situs Judi Online Slot Gacor Hari Ini" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://slotsmegacasino.com/en-au/top-10-online-casinos" target="_blank"> <img src="https://swiperjs.com/images/sponsors/slotsmegacasino.png" alt="Top 10 Australian Online Casinos ➤ Real Money (Aud) 2023" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://onlinecasinoudenrofus.dk/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/slotsmegacasino.png" alt="Spille Uden Om Rofus - Bedste Casinoer Uden Rofus" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://fatgambler.ca/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/fatgambler.png" alt="FatGambler - Canadian Online Casino Reviews" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://cryptoseoagency.co/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/cryptoseo-agency.png" alt="Crypto SEO Agency - Scaling the growth in the Crypto space" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://linkbuildingasia.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/linkbuilding-asia.png" alt="Link Building Asia" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.onlinecasinosnederland.org/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/onlinecasinosnederland-org.png" alt="De Beste Online Casinos in Nederland – Casino Reviews voor Nederlandse Spelers" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.nettcasino.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nettcasino.png" alt="Nettcasino i Norge - Beste norske online casino på nett" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://howsociable.com/buy-instagram-followers/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/howsociable.png" alt="Best Sites To Buy Instagram Followers In 2023 | Howsociable" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://aviaorevue.com.br/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/aviaorevue.png" alt="" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.bestuscasinos.org/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/bestuscasinos.png" alt="Best Online Casinos USA | Top US Online Gambling Sites 2023" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://onlinecasino.ua/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/onlinecasinoua.png" alt="Огляд найкращих казино в Україні" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://jetxgame.org/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/jetx-jogo-223.png" alt="JetX - jogo do foguete que ganha dinheiro - tudo sobre o jogo jetX" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://sup.today/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/suptoday.png" alt="Sup! - Standups, Holidays, and Surveys for your team | Sup! Standup Bot" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinoutanspelpaus.io/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinoutanspelpaus.jpeg" alt="casino utan svensk licens" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinozondercruks.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/czc-net.png" alt="Casino Zonder Cruks En Nederlandse Licentie" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://www.bestonlinecasinos.in/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/bestonlinecasinosin.png" alt="Best Online Casinos India 2023 ▷ Top Indian Casino Sites" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://rotativka.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/rotativka.png" alt="Rotativka.com - Най-добрите онлайн казина в България" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://ua1.com.ua/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/ua1casino.png" alt="рейтинг ліцензійних онлайн казино України" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://justuk.club/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/justuk-club.png" alt="Justuk.club reviews UK non gamstop sites" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://betpokies.co.nz/real-money-casinos/mobile-pokies" target="_blank"> <img src="https://swiperjs.com/images/sponsors/betpokiesconz.png" alt="Mobile Pokies in NZ - Best Mobile Phone Pokies for Real Money [2023] | BetPokies.co.nz" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.casinoaustraliaonline.com/under-1-hour-withdrawal-casinos/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinoaustraliaonline.png" alt="Under 1 Hour Withdrawal Casinos in Australia - 2022" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://bitcoincasinowiz.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/bitcoincasinowiz.png" alt="Best Bitcoin Casinos in 2023 ✔️ Top Crypto Casino Sites" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://betbetter-pa.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/betbetter.png" alt="PA Online Casino - List of Best Casinos in Pennsylvania" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.newcasinosaustralia.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/newcasinosaustralia.png" alt="New Online Casinos Australia" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinozonderregistratie.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/czrnet.png" alt="Casino Zonder Registratie 2022 | CZR's Top No Account Casino's Ranglijst" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://twicsy.com/buy-instagram-likes" target="_blank"> <img src="https://swiperjs.com/images/sponsors/twicsy.png" alt="Buy Instagram Likes | Real, Instant Delivery &amp; Only $1.47" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://nieuwe-casinos.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nieuwecasinos.png" alt="Nieuwe Online Casino's December 2022 | Overzicht van de top nieuwe casinos!" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://seo.casino/en/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/seo-for-online-casino.png" alt="CASINO SEO | SEO Services for gambling sites and online casinos" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://onlinecasinowiki.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/onlinecasinowiki.png" alt="オンラインカジノ - OnlineCasinoWiki.com" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://4rabet.com/app" target="_blank"> <img src="https://swiperjs.com/images/sponsors/4rabet.svg?sanitize=true" alt="cricket betting app" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.mister-auto.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/mister-auto.png" alt="Pièces auto neuves au meilleur prix | MISTER AUTO" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://istar.tips/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/istartips.png" alt="iStarTips - Tips for Software, Apps on Android, iPhone" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://giochinet.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/giochinet.png" alt="Giochi online e non solo – A quale gioco vuoi giocare oggi?" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.nodeposit.guide/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nodeposit-guide.png" alt="Best No Deposit Bonus Guide 2022" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.nzcasinoclub.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nzcasinoclub.png" alt="Discover the Best Online Casinos in New Zealand in 2022" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://asian-bookies.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/asian-bookies.svg?sanitize=true" alt="Best Asian Bookies" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.wisergamblers.com/de/casino-bonus-ohne-einzahlung/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/wisergamblers.png" alt="WiserGamblers | Best Online Gambling Guide" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casino-ohne-lizenz.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casino-ohne-lizenz.svg?sanitize=true" alt="casinos ohne lizenz" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://cryptocasinos360.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/cryptocasinos360.png" alt="new crypto casinos 2023" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://utansvensklicens.casino/casino-minsta-insattning/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/utansvensklicens.png" alt="utländska casino med låg insättning" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.nongamstopsites.bet/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nongamstopsites.png" alt="Non Gamstop Betting Sites UK" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://refermate.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/refermate.png" alt="Coupons, Promo Codes, October 2022 — Refermate" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.scommesseseriea.eu/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/scommesseseriea.png" alt="Scommesse Serie A: dove scommettere?" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.one-beyond.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/dcsl-software.png" alt="Software Development Company | Bespoke Software | One Beyond London, UK" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://megafamous.com/buy-instagram-likes" target="_blank"> <img src="https://swiperjs.com/images/sponsors/megafamous.png" alt="Buy Instagram Likes - Real, Instant Likes - $1/50! - MegaFamous" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://betting-sider.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/betting-sider.png" alt="betting sider" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://topcasinoer.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/topcasinoer.png" alt="online casinoer" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://bedstespiludenomrofus.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/bedstespiludenomrofus.png" alt="casino uden ROFUS" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://comunicaformazione.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/comunicaformazione.png" alt="Corsi e Formazione Professionale" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://scommesse.commentierecensioni.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/scommessecommentierecensioni.png" alt="Migliori siti scommesse: quale il miglior sito scommesse 2022?" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www1.italianonlinecasino.net/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/italianonlinecasino.png" alt="Siti scommesse non AAMS | Bookmakers non AAMS 2022" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://betpokies.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/betpokies.png" alt="🥇 Best Australian Online Pokies. Trusted Online Casino Reviews 2022" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.vedonlyontibonukset.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/vedonlyontibonukset.png" alt="Vedonlyöntibonukset 2022 | Ilmaiset vihjeet | Koutsi hoitaa" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinoburst.com/casino-utan-licens/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinoburst.png" alt="Casino utan svensk licens » Utan Spelpaus med BankID | 2022" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.uudetkasinot.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/uudetkasinot.png" alt="Uudet kasinot Elokuu 2022 🥇 - Parhaat uudet nettikasinot" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.spinsify.com/uk/new-casinos/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/spinsify.png" alt="Top 25 New Casino Sites August 2022 - Spinsify.com/uk" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://thecasinowizard.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/thecasinowizard.png" alt="The Casino Wizard » Best Casinos &amp; (No) Deposit Bonuses 2022" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.noneedtostudy.com/take-my-online-class/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/noneedtostudy.png" alt="Take My Online Class For Me? NoNeedToStudy.com" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://nzcasinohex.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nzcasinohex.png" alt="Best Online Casino NZ ▷ Top New Zealand Casinos [2022]" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://coupontoaster.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/coupontoaster.png" alt="Coupontoaster: August 2022 Discount Codes, Coupons, Promo Codes &amp; Deals" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://handycasinos24.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/handycasinos24.png" alt="Compare and test the best Online Casinos, with a strong focus on mobile Casino" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://mrcasinova.com/de/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/mrcasinova.png" alt="Make the world a better place for Online Casino comparisons" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://neuecasinos24.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/neuecasinos24.png" alt="Ausführliche Informationen an die interessierten Spieler vermitteln um die bestmögliche Auswahl zu ermöglichen" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://casinopilot24.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinopilot24.png" alt="Online Casino Deutschland - Beste deutsche Online Casinos 2022" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://leafletcasino.com/online-casino/real-money/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/leafletcasino.png" alt="Best Real Money Online Casino ➲ Play Online and Win Real Money" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.fast.bet/ca/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/fastbet-bet-ca.png" alt="Fastest Payout Casinos in Canada [2022]" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://vpnwelt.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/vpnwelt.png" alt="VPNwelt: VPN Neuigkeiten, Testberichte und Statistik 2022" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://realspyapps.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/realspyapps.png" alt="Real Spy Apps - Reviews, You Can Trust" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://cliquestudios.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/cliquestudios.png" alt="Clique Studios - Creative Digital Transformation" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.socialboosting.com/buy-tiktok-followers" target="_blank"> <img src="https://swiperjs.com/images/sponsors/socialboosting.png" alt="Buy TikTok Followers - 100% Real &amp; Fast | Just $5.00 - SocialBoosting" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://gamblorium.com/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/gamblorium.png" alt="Gamblorium publishes news, information, and reviews about regulated online gambling operators." width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://hellsbet.com/en-au/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/hellsbet.png" alt="Rating of best betting sites in Australia" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.sure.bet/casinos-not-on-gamstop/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/surebet.png" alt="Casinos Not on GamStop » Most Trusted Non GamStop UK Casinos ⭐️" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://cryptocurrencycodes.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/cryptocurrencycodes.png" alt="Top FREE Crypto Sign Up Bonuses &amp; Referral Codes" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinoscrypto.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinoscryptocom.png" alt="Best Crypto Casinos | Top Bitcoin Gambling Sites (2022)" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://residence-greece.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/residence-greece.jpg" alt="Greece Golden Visa" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://aviators.com.br" target="_blank"> <img src="https://swiperjs.com/images/sponsors/aviatorscombr.png" alt="Aviator aposta ᐈ Jogo de avião Aviator" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinoscanada.reviews" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinocanada.png" alt="Casino en Ligne Argent Réel au Canada: Meilleurs Sites de Casino" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://playcasinoscanada.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/play-casinos-canada.png" alt="Discover The Best Reputable Online Casinos in Canada" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://popularwow.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/popularwow.png" alt="The Most Popular Stuff On The Internet" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://poprey.com/buy-instagram-views" target="_blank"> <img src="https://swiperjs.com/images/sponsors/poprey-com.png" alt="Buy Instagram views" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://correctcasinos.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/correctcasinos.png" alt="Correct Casinos | The Ultimate Guide to the Legit Online Casinos" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://writingmetier.com/extended-essay-writing-service/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/writingmetier.png" alt="IB extended essay writing service" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.nycjackets.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/nycjackets.png" alt="NYC Jackets" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.prointernet.in.ua" target="_blank"> <img src="https://swiperjs.com/images/sponsors/prointernet.png" alt="Інтернет казино онлайн – ТОП online casino України для гри в ігрові автомати" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://bestcasinos-pl.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/bestcasinos-pl.png" alt="Kasyno Online Legalne Polska ⚡️ Ranking Kasyn Grudzień 2021 !" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://exittimesharereview.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/exittimesharereview.png" alt="Timeshare exit company reviews" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://aussiebestcasinos.com/instant-withdrawal-casino/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/ausiebestcasinos.png" alt="Instant Withdrawal Casino Sites Worth Visiting in 2021" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.wizardslots.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/wizardslots.png" alt="Online Slots - UK Slot Games - 500 FREE Spins at Wizard Slots" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://celltrackingapps.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/celltrackingapps.png" alt="Best Phone Tracker Apps without Permission in 2021【for iOS &amp; Android】" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://reddogcasino.com/en/games" target="_blank"> <img src="https://swiperjs.com/images/sponsors/red-dog.png" alt="Red Dog Online Casino" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.fortunegames.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/fortunegames.png" alt="Fortune Games® | Free Spins No Deposit Slot Games | Online Slots" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://tankpenge.dk" target="_blank"> <img src="https://swiperjs.com/images/sponsors/tankpenge-dk.png" alt="LÅN PENGE NU | Hurtige Online lån 2021 | Klik her og Ansøg i dag" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://famousblast.com/product/buyfollowers/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/famousblast.png" alt="Buy Instagram Followers - Cheap &amp; Instant - $3.90 per 1.000" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://zamsino.com/de/casino-bonus/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/zamsino.png" alt="Erik Kings Zamsino Bonus seiten" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.casinoonlineaams.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinoonlineaams.png" alt="Review of the best online casino in Italy" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://www.boosbe.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/boosebe.png" alt="Get the most out of Social Media - Boosbe" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://veepn.com/vpn-apps/vpn-for-chrome/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/veepn.png" alt="VPN for Chrome to Make Web Surfing 100% Safe" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinoexpo.se/casino-utan-registrering/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinoexpo.jpg" alt="CasinoExpo casino utan registrering" width="160"> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://cryptocasinos.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/cryptocasinos.png" alt="Best Bitcoin Casinos » Find The Best Crypto Casino" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://inkedin.com/us/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/inkedin.png" alt="Inkedin - The Online Gambling News Hub" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://najlepsibukmacherzy.pl/ranking-legalnych-bukmacherow/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/netpositive.png" alt="Ranking Bukmacherów Legalnych 2020. Bukmacher nr 1 to..." width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://casinosters.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/casinosters.svg?sanitize=true" alt="The Best Online Casinos in the UK » Gambling Sites by Casinosters" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://gamblizard.com/deposit-bonuses/deposit-10-pound/" target="_blank"> <img src="https://swiperjs.com/images/sponsors/gamblizard.png" alt="Deposit £10 Play with 30, 40, 50, 60, 70, or 80 Pounds✔️ GambLizard" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://goread.io/buy-instagram-likes" target="_blank"> <img src="https://swiperjs.com/images/sponsors/goread.png" alt="Instagram likes" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://elroyalecasino.com/games/blackjack" target="_blank"> <img src="https://swiperjs.com/images/sponsors/elroyalcasino.png" alt="Play Online Blackjack at elroyalecasino.com" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://paperell.com" target="_blank"> <img src="https://swiperjs.com/images/sponsors/paperell.svg?sanitize=true" alt="Website that Writes Essays for You - Paperell.com" width="160"> </a> </td> <td align="center" valign="middle"> <a href="https://socialsup.net" target="_blank"> <img src="https://swiperjs.com/images/sponsors/socials-up.png" alt="Buy 100% Cheap SMM Services - Instagram, YouTube, Twitter" width="160"> </a> </td> <td align="center" valign="middle"></td> <td align="center" valign="middle"></td> <td align="center" valign="middle"></td> </tr> </tbody> </table> <!-- SPONSORS_TABLE_WRAP --> <h2>Features</h2> <ul> <li><strong>Tree-shakeable</strong>: Only modules you use will be imported into your app's bundle.</li> <li><strong>Mobile-friendly</strong>: It is intended to be used in mobile websites, mobile web apps, and mobile native/hybrid apps.</li> <li><strong>Library Agnostic</strong>: Swiper doesn't require any JavaScript libraries like jQuery, which makes Swiper much smaller and faster. It can be safely used with libraries such as jQuery, Zepto, jQuery Mobile, etc.</li> <li><strong>1:1 Touch movement</strong>: By default, Swiper provides 1:1 touch movement interaction, but this ratio can be configured through Swiper settings.</li> <li><strong>Mutation Observer</strong>: Swiper has an option to enable Mutation Observer, with this feature Swiper will be automatically reinitialized and recalculate all required parameters if you make dynamic changes to the DOM, or in Swiper styles itself.</li> <li><strong>Rich API</strong>: Swiper comes with a very rich API. It allows creating your own pagination, navigation buttons, parallax effects and many more.</li> <li><strong>RTL</strong>: Swiper is the only slider that provides 100% RTL support with correct layout.</li> <li><strong>Multi Row Slides Layout</strong>: Swiper allows a multiple row slides layout, with a few slides per column.</li> <li><strong>Transition Effects</strong>: Fade, Flip, 3D Cube, 3D Coverflow.</li> <li><strong>Two-way Control</strong>: Swiper may be used as controller for any number of other Swipers, and even be controlled at the same time.</li> <li><strong>Full Navigation Control</strong>: Swiper comes with all required built-in navigation elements, such as Pagination, Navigation arrows and Scrollbar.</li> <li><strong>Flexbox Layout</strong>: Swiper uses modern flexbox layout for slides layout, which solves a lot of problems and time with size caclulations. Such layout also allows configuring the Slides grid using pure CSS.</li> <li><strong>Most Flexible Slides Layout Grid</strong>: Swiper has a lot of parameters on initialization to make it as flexible as possible. You can control slides per view, per column, per group, space between slides, and many more.</li> <li><strong>Images Lazy Loading</strong>: Swiper Lazy Loading delays loading of images in inactive/invisible slides until the user swipes to them. Such feature could make the page load faster and improve Swiper performance.</li> <li><strong>Virtual Slides</strong>: Swiper comes with Virtual Slides feature that is great when you have a lot of slides or content-heavy/image-heavy slides so it will keep just the required amount of slides in DOM.</li> <li><strong>Loop mode</strong></li> <li><strong>Autoplay</strong></li> <li><strong>Keyboard control</strong></li> <li><strong>Mousewheel control</strong></li> <li><strong>Nested sliders</strong></li> <li><strong>History navigation</strong></li> <li><strong>Hash navigation</strong></li> <li><strong>Breakpoints configuration</strong></li> <li><strong>Accessibility (A11y)</strong></li> <li><strong>And many more ...</strong></li> </ul> <h2>Community</h2> <p>The Swiper community can be found on <a href="https://github.com/nolimits4web/swiper/discussions">GitHub Discussions</a>, where you can ask questions, voice ideas, and share your projects</p> <p>Our <a href="https://github.com/nolimits4web/swiper/raw/master/CODE_OF_CONDUCT.md">Code of Conduct</a> applies to all Swiper community channels.</p> <h2>Dist / Build</h2> <p>On production use files (JS and CSS) only from <code>dist/</code> folder, there will be the most stable versions.</p> <h3>Development Build</h3> <p>Install all dependencies, in repo's root:</p> <pre><code> $ npm install </code></pre> <p>And build development version of Swiper:</p> <pre><code> $ npm run build </code></pre> <p>The result is available in <code>dist/</code> folder.</p> <h3>Running demos:</h3> <p>All demos located in <code>./playground</code> folder. There you will find Core (HTML, JS), React, Vue versions. To open demo, run:</p> <ul> <li><strong>Core</strong>: <code>npm run core</code></li> <li><strong>React</strong>: <code>npm run react</code></li> <li><strong>Vue</strong>: <code>npm run vue</code></li> </ul> <h3>Production Build</h3> <pre><code> $ npm run build:prod </code></pre> <p>Production version will available in <code>dist/</code> folder.</p> <h2>Contributing</h2> <p>All changes should be committed to <code>src/</code> files only. Before you open an issue please review the <a href="https://github.com/nolimits4web/swiper/raw/master/CONTRIBUTING.md">contributing</a> guideline.</p> <h2>Major Roadmapped Features</h2> <ul> <li><a href="https://github.com/nolimits4web/swiper/issues?q=is%3Aissue+is%3Aopen+label%3A%22feature+request%22+sort%3Areactions-%2B1-desc+">Top Feature Requests</a> (Add your own votes using the 👍 reaction)</li> <li><a href="https://github.com/nolimits4web/swiper/issues?q=is%3Aissue+is%3Aopen+-label%3A%22feature+request%22++sort%3Areactions-%2B1-desc+">Top Bugs 😱</a> (Add your own votes using the 👍 reaction)</li> </ul> <h2>Contributors</h2> <h3>Code Contributors</h3> <p>This project exists thanks to all the people who contribute. [<a href="https://raw.githubusercontent.com/nolimits4web/swiper/master/CONTRIBUTING.md">Contribute</a>]. <a href="https://raw.githubusercontent.com/nolimits4web/swiper/master/CODE_CONTRIBUTORS.md"><img src="https://opencollective.com/swiper/contributors.svg?width=890&amp;button=false"></a></p> <h3>Financial Contributors</h3> <p>Become a financial contributor and help us sustain our community. [<a href="https://opencollective.com/swiper/contribute">Contribute</a>]</p> <p><a href="https://opencollective.com/swiper"><img src="https://opencollective.com/swiper/individuals.svg?width=890"></a></p> + + + OpenBMB/AgentVerse + 2023-09-24T01:53:28Z + tag:github.com,2023-09-24:/OpenBMB/AgentVerse + + <p>🤖 AgentVerse 🪐 provides a flexible framework that simplifies the process of building custom multi-agent environments for large language models (LLMs).</p><hr><h1 align="center"> 🤖 AgentVerse 🪐 </h1> <h3 align="center"> <p>A Framework for Multi-LLM Environment Simulation</p> </h3> <p align="center"> <a href="https://github.com/OpenBMB/AgentVerse/raw/main/LICENSE"> <img alt="License: Apache2" src="https://img.shields.io/badge/License-Apache_2.0-green.svg?sanitize=true"> </a> <a href="https://www.python.org/downloads/release/python-3916/"> <img alt="Documentation" src="https://img.shields.io/badge/python-3.9+-blue.svg?sanitize=true"> </a> </p> <p align="center"> <img src="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/imgs/title.png" width="512"> </p> <p align="center"> 【English | <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/README_zh.md">Chinese</a>】 </p> <p><strong>AgentVerse</strong> offers a versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs). Designed to facilitate swift development and customization with minimal effort, our framework empowers researchers to concentrate on their research, rather than being bogged down by implementation details.</p> <hr> <h2>✨ Features</h2> <ul> <li> <p>🥳 <strong>Efficient Environment Building:</strong> Our framework provides a collection of essential building blocks for effortlessly creating a multi-agent environment. With only a few lines in a configuration file, you can easily construct basic environments such as a chat room for LLMs. This process entails defining the environment's settings and prompts for LLMs, enabling researchers like you to concentrate on experimentation and analysis.</p> </li> <li> <p>⚙️ <strong>Customizable Components</strong>: AgentVerse simplifies the multi-agent environment by dividing it into five functional modules and defining their respective interfaces. For complex environments that cannot be constructed directly using the basic modules offered in AgentVerse, you can customize one or more of the interfaces within these five functional modules to efficiently create your own multi-agent environment according to your requirements.</p> </li> <li> <p>🛠 <strong>Tools (Plugins) Utilization</strong>: AgentVerse supports the multi-agent environments with tools. Currently, AgentVerse supports tools provided in <a href="https://github.com/OpenBMB/BMTools">BMTools</a>.</p> </li> </ul> <h2>📰 What's New</h2> <ul> <li>[2023/8/22] 📝 We're excited to share our work-in-progress paper <a href="https://arxiv.org/abs/2308.10848">AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents</a> related to this repository.</li> </ul> <img width="616" alt="Screen Shot 2023-09-01 at 12 08 57 PM" src="https://github.com/OpenBMB/AgentVerse/assets/11704492/6db1c907-b7fc-42f9-946c-89853a28f386"> <p>You could refer the stay-tuned code in this <a href="https://github.com/OpenBMB/AgentVerse/tree/AgentVerse-TaskSolving">branch</a>.</p> <ul> <li>[2023/6/5] 🎉 We are thrilled to present an array of <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#-simple-demo-video">demos</a>, including <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#nlp-classroom">NLP Classroom</a>, <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#prisoner-dilemma">Prisoner Dilemma</a>, <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#software-design">Software Design</a>, <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#database-administrator-dba">Database Administrator</a>, and a simple <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#pokemon">H5 Pokemon Game</a> that enables the interaction with the characters in Pokemon! Try out these demos and have fun!</li> <li>[2023/5/1] 🚀 <a href="https://github.com/OpenBMB/AgentVerse">AgentVerse</a> is officially launched!</li> </ul> <h2>🌟 Join Us!</h2> <p>AgentVerse is on a mission to revolutionize the multi-agent environment for large language models, and we're eagerly looking for passionate collaborators to join us on this exciting journey.</p> <h3>How Can You Contribute?</h3> <ul> <li> <p><strong>Code Development</strong>: If you're an engineer, help us refine, optimize, and expand the current framework. We're always looking for talented developers to enhance our existing features and develop new modules.</p> </li> <li> <p><strong>Documentation and Tutorials</strong>: If you have a knack for writing, help us improve our documentation, create tutorials, or write blog posts to make AgentVerse more accessible to the broader community.</p> </li> <li> <p><strong>Application Exploration</strong>: If you're intrigued by multi-agent applications and are eager to experiment using AgentVerse, we'd be thrilled to support your journey and see what you create!</p> </li> <li> <p><strong>Feedback and Suggestions</strong>: Use AgentVerse and provide us with feedback. Your insights can lead to potential improvements and ensure that our framework remains top-notch.</p> </li> </ul> <p>Also, if you're passionate about advancing the frontiers of multi-agent environments and are eager to dive deeper into research, we invite you to join our team at THUNLP. To explore this exciting opportunity and embark on a collaborative journey with us, please reach out to <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/chenweize1998@gmail.com">chenweize1998@gmail.com</a> and <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/yushengsu.thu@gmail.com">yushengsu.thu@gmail.com</a> and express your interest. We're keen to welcome motivated individuals like you to our lab!</p> <h2>🗓 Coming Soon</h2> <ul> <li><input type="checkbox" disabled> Code release of our <a href="https://arxiv.org/abs/2308.10848">paper</a></li> <li><input type="checkbox" disabled> Add documentation</li> <li><input type="checkbox" disabled> Support more sophisticated memory for conversation history</li> <li><input type="checkbox" disabled> Add support for local LLM</li> <li><input type="checkbox" disabled> Auto-generate UI based on the given multi-agent environment</li> </ul> <h2>👾 Simple Demo Video</h2> <p>We demonstrate the following cases that are expertly crafted by AgentVerse.</p> <!-- ### [![Demo video](https://i.imgur.com/vKb2F1B.png)](https://youtu.be/9JCVfzMFhaM) --> <!--![image](imgs/multiagent-min.gif)--> <!-- - **NLP Classroom**: --> <h4>NLP Classroom</h4> <p>In the NLP class, the professor and students engage in interactive communication. When students have a question, they raise their hands and patiently wait for the professor to call on them. Only after being called on by the professor, can students speak and ask their questions.</p> <p>Use the following command to launch the NLP Classroom example:</p> <pre><code class="language-bash">python main_demo.py --task nlp_classroom_9players </code></pre> <p><a href="https://github.com/OpenBMB/AgentVerse/assets/11704492/6ea07850-595e-4a28-a82e-f863011353c2">https://github.com/OpenBMB/AgentVerse/assets/11704492/6ea07850-595e-4a28-a82e-f863011353c2</a></p> <h4>Prisoner Dilemma</h4> <p>A prisoner's Dilemma is a thought experiment that challenges two completely rational agents to a dilemma: they can cooperate with their partner for mutual benefit or betray their partner ("defect") for individual reward.</p> <p>Use the following command to launch the Prisoner Dilemma example:</p> <pre><code class="language-bash">python main_demo.py --task prisoner_dilemma </code></pre> <p><a href="https://github.com/OpenBMB/AgentVerse/assets/11704492/017c46e5-c738-4fca-9352-b008e2d518bd">https://github.com/OpenBMB/AgentVerse/assets/11704492/017c46e5-c738-4fca-9352-b008e2d518bd</a></p> <h4>Software Design</h4> <p>In the Software Design example, a code writer, a code tester and a code reviewer collaborate on the code generation problem. Given a problem, the code writer first composes the code implementation. The code tester runs the unit tests and provides the feedback. The code viewer then generates a review. After collecting the test feedback and review, the code writer iteratively refines the code.</p> <p>Use the following command to launch the Software Design example:</p> <pre><code class="language-bash">python main_demo.py --task sde_team/sde_team_2players </code></pre> <p><a href="https://github.com/OpenBMB/AgentVerse/assets/11704492/5058066a-abee-490d-8659-b4e54661626a">https://github.com/OpenBMB/AgentVerse/assets/11704492/5058066a-abee-490d-8659-b4e54661626a</a></p> <h4><a href="https://github.com/TsinghuaDatabaseGroup/DB-GPT">Database Administrator (DBA)</a></h4> <p>In the database diagnosis scenario, the Chief DBA monitors the system anomalies (e.g., slow queries, locks, crash down). If detected, the domain experts are alerted to analyze root causes, share insights, and suggest optimization solutions together. The Chief DBA then provides a summarized report to the user.</p> <pre><code class="language-bash">python main_demo.py --task db_diag </code></pre> <p><a href="https://github.com/OpenBMB/AgentVerse/assets/11704492/c633419d-afbb-47d4-bb12-6bb512e7af3a">https://github.com/OpenBMB/AgentVerse/assets/11704492/c633419d-afbb-47d4-bb12-6bb512e7af3a</a></p> <h4><a href="https://github.com/chanchimin/ChatEval">Text Evaluation (ChatEval)</a></h4> <p>In the context of the text evaluation scenario, we recommend users explore the <a href="https://github.com/chanchimin/ChatEval">ChatEval</a> repo. They've implemented a multi-agent referee team on AgentVerse to assess the quality of text generated by different models. When given two distinct pieces of text, roles within ChatEval can autonomously debate the nuances and disparities, drawing upon their assigned personas, and subsequently provide their judgments. Experiments indicate that their referee team, enriched with diverse roles specified in <a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#2-configuring-the-agents">config.yaml</a>, aligns more closely with human evaluations. This demo is built upon the <a href="https://github.com/lm-sys/FastChat">Fastchat</a> repo, and we'd like to express our appreciation for their foundational work.</p> <p><a href="https://github.com/OpenBMB/AgentVerse/assets/75533759/58f33468-f15b-4bac-ae01-8d0780019f85">https://github.com/OpenBMB/AgentVerse/assets/75533759/58f33468-f15b-4bac-ae01-8d0780019f85</a></p> <h4>Pokemon</h4> <p>In the game, agents can visit shops, train their Pokémon at the gym, and interact with one another. As a player, you take on the role of an agent and can engage with others at any time. There are 6 characters in the Pokémon environment who appeared in Pokemon Emerald: <a href="https://bulbapedia.bulbagarden.net/wiki/May_(game)">May</a>, <a href="https://bulbapedia.bulbagarden.net/wiki/Professor_Birch">Professor Birch</a>, <a href="https://bulbapedia.bulbagarden.net/wiki/Steven_Stone">Steven Stone</a>, <a href="https://bulbapedia.bulbagarden.net/wiki/Maxie">Maxie</a>, <a href="https://bulbapedia.bulbagarden.net/wiki/Archie">Archie</a> and <a href="https://bulbapedia.bulbagarden.net/wiki/Mr._Stone">Joseph</a>.</p> <p>To launch the Pokemon game, first launch a local server with the following command:</p> <pre><code class="language-bash">uvicorn pokemon_server:app --reload --port 10002 </code></pre> <p>Then open another terminal in the project's root path and run the following command:</p> <pre><code class="language-bash">cd ui # If you do not have npm installed, you need to install it before running the following commands # https://docs.npmjs.com/downloading-and-installing-node-js-and-npm # We have tested on npm@9.6.4, node@20.0.0 npm install npm run watch </code></pre> <p>Wait for the compilation to complete, and have fun! (WASD for moving around, and SPACE for launching a conversation.)</p> <p><a href="https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f155e95782e7">https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f155e95782e7</a></p> <h2>Contents</h2> <ul> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#-features">✨ Features</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#-whats-new">📰 What's New</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#-join-us">🌟 Join Us!</a> <ul> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#how-can-you-contribute">How Can You Contribute?</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#-coming-soon">🗓 Coming Soon</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#-simple-demo-video">👾 Simple Demo Video</a> <ul> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#nlp-classroom">NLP Classroom</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#prisoner-dilemma">Prisoner Dilemma</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#software-design">Software Design</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#database-administrator-dba">Database Administrator (DBA)</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#text-evaluation-chateval">Text Evaluation (ChatEval)</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#pokemon">Pokemon</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#contents">Contents</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#-getting-started">🚀 Getting Started</a> <ul> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#installation">Installation</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#cli-example">CLI Example</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#local-website-demo">Local Website Demo</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#-philosophy">💡 Philosophy</a> <ul> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#environment">Environment</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#agent">Agent</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#%EF%B8%8F-customize-your-own-environment">✍️ Customize Your Own Environment</a> <ul> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#a-simple-example-building-a-classroom-environment">A Simple Example: Building a Classroom Environment</a> <ul> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#1-creating-a-task-directory-and-configuring-the-environment">1. Creating a Task Directory and Configuring the Environment</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#2-configuring-the-agents">2. Configuring the Agents</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#3-writing-an-output-parser">3. Writing an Output Parser</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#customization-guide-for-more-complex-environments">Customization Guide for More Complex Environments</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#-examples">🔎 Examples</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#star-history">Star History</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#citation">Citation</a></li> <li><a href="https://raw.githubusercontent.com/OpenBMB/AgentVerse/main/#contact">Contact</a></li> </ul> <h2>🚀 Getting Started</h2> <h3>Installation</h3> <pre><code class="language-bash">pip install -U agentverse </code></pre> <p>Or you can install the package by manually cloning the latest repository</p> <pre><code class="language-bash">git clone https://github.com/OpenBMB/AgentVerse.git --depth 1 cd AgentVerse pip install -r requirements.txt </code></pre> <p>Some users have reported problems installing the <code>orjson</code> required by <code>gradio</code>. One simple workaround is to install it with Anaconda <code>conda install -c conda-forge orjson</code>.</p> <p>You also need to export your OpenAI API key as follows</p> <pre><code class="language-bash"># Export your OpenAI API key export OPENAI_API_KEY="your_api_key_here" </code></pre> <p>If you want to use the tools provided by BMTools, you need to install BMTools as follows:</p> <pre><code class="language-bash">git clone git+https://github.com/OpenBMB/BMTools.git cd BMTools pip install -r requirements.txt python setup.py develop </code></pre> <!-- # Install BMTools cd ../ git clone git@github.com:OpenBMB/BMTools.git cd BMTools python setup.py develop --> <h3>CLI Example</h3> <p>You can create a multi-agent environments provided by us. Using the classroom scenario as an example. In this scenario, there are nine agents, one playing the role of a professor and the other eight as students.</p> <pre><code class="language-shell">python3 main.py --task nlp_classroom_9players </code></pre> <h3>Local Website Demo</h3> <p>We also provide a local website demo for this environment. You can launch it with</p> <pre><code class="language-shell">python3 main_demo.py --task nlp_classroom_9players </code></pre> <p>After successfully launching the local server, you can visit <a href="http://127.0.0.1:7860/">http://127.0.0.1:7860/</a> to view the classroom environment.</p> <h2>💡 Philosophy</h2> <h3>Environment</h3> <p>At the core of our framework is the environment, which plays a crucial role in enabling researchers to study the behavior of agents under different conditions. We believe that the environment should be flexible and extensible, allowing researchers to easily customize it to fit their needs. To achieve this, we have abstracted the environment into five rule components, and implementing different environments is actually implementing different rules:</p> <ul> <li><strong>Describer</strong>: This component provides a description of the environment at each turn for each agent. You can customize the describer to define the specific requirements of their environment, such as the agents with whom an agent can interact.</li> <li><strong>Order</strong>: This component defines the order in which agents take actions within the environment. You can customize the order to reflect the desired interaction between agents. We provide several basic order options, including <code>random</code>, <code>sequential</code>, and <code>concurrent</code> (in which all agents take an action in each turn).</li> <li><strong>Selector</strong>: This component selects the valid messages generated by agents. Sometimes agents may generate invalid responses, and the selector is used to filter out unexpected results.</li> <li><strong>Updater</strong>: This component updates the memory of each agent. In certain cases, the response generated by one agent should not be seen by all agents (e.g., if agents are in different rooms). For each response, the updater updates only the agents who can see it.</li> <li><strong>Visibility</strong>: This component maintains the list of agents that each agent can see throughout the environment's changes. For example, when an agent moves from one room to another, the list of visible agents of each agent should be updated by <code>visibility</code>.</li> </ul> <p>By abstracting the environment into these five components, we have created a highly flexible and extensible framework that enables researchers to easily build and customize their own multi-agent environments.</p> <h3>Agent</h3> <p>Another fundamental component is the agent. Currently we provide two types of agents: <strong>ConversationAgent</strong> and <strong>ToolAgent</strong>. You can also customize your own agent by inheriting BaseAgent class (tutorial coming soon).</p> <h2>✍️ Customize Your Own Environment</h2> <p>We have provided several examples in the <code>agentverse/tasks</code> directory. To customize your environment, you should</p> <ol> <li>Create a task directory in <code>agentverse/tasks</code></li> <li>Write the configuration file</li> <li>Write the output parser that parses the response of your agents.</li> <li>Add your parser in <code>agentverse/tasks/__init__.py</code></li> </ol> <p>We will use a simple example in <code>agentverse/tasks/nlp_classroom_3players</code> to illustrate the procedure.</p> <h3>A Simple Example: Building a Classroom Environment</h3> <p>To illustrate how to customize your environment, we'll use a simple example of building a classroom environment where one agent is the professor, one is the student, and one is the teaching assistant.</p> <h5>1. Creating a Task Directory and Configuring the Environment</h5> <p>First, we need to create a task directory and write our configuration file for the environment. In the <code>agentverse/tasks</code> directory, create a new directory called <code>nlp_classroom_3players</code>. Inside this directory, create a <code>config.yaml</code> file and write the following configuration:</p> <pre><code class="language-yaml"># config.yaml environment: env_type: basic # Use the basic environment provided in AgentVerse max_turns: 10 # Specify the maximum number of dialogue turns rule: order: type: sequential # Use the sequential order visibility: type: all # Each message can be seen by all agents selector: type: basic # Basic selector (do not select) updater: type: basic # Basic updater (update the message to all agents) describer: type: basic # Basic describer (no description) </code></pre> <p>This configuration specifies that we will use the basic environment provided in AgentVerse, with a maximum of 10 dialogue turns. We'll use the sequential order, with all messages visible to all agents. We won't be using any selectors, our updater will update the messages to all the agents and our describer will provide no description.</p> <h5>2. Configuring the Agents</h5> <p>Next, we'll configure the agents. In the <code>config.yaml</code> file, we'll add the configuration for each agent. Here's an example configuration for the professor:</p> <pre><code class="language-yaml"># config.yaml agents: - agent_type: conversation name: Professor Micheal # Name of the agent role_description: You are Prof. Micheal, ... # Description of the agent memory: memory_type: chat_history # Will store all the chat history prompt_template: *professor_prompt llm: llm_type: text-davinci-003 # Will use OpenAICompletion LLM model: text-davinci-003 # The arguments passed to the api call temperature: 0.7 max_tokens: 250 </code></pre> <p>In this example, we'll use the <code>conversation</code> agent type. We've given the agent a name and a description, and we'll store the chat history in memory. We've also provided a prompt template with placeholders marked as ${placeholder}. These will be instantiated by the <code>_fill_prompt_template</code> method of the agent.</p> <h5>3. Writing an Output Parser</h5> <p>The next step is to write a simple parser for your agent's response. Because you may have specified the output format in your prompt template, you need to provide a corresponding parser. In this example, we inform the model to output in the following format in our prompt template</p> <pre><code>Action: Speak Action Input: (the content) </code></pre> <p>We'll write a parser to extract the content from the agent's response. Refer to the code for more details. We've decorated our parser function with <code>@output_parser_registry.register('classroom_parser')</code> to register it with our framework. Finally, we import our parser in <code>agentverse/tasks/__init__.py</code>.</p> <p>With these steps, we've successfully built a simple classroom environment and customized it for our needs.</p> <h3>Customization Guide for More Complex Environments</h3> <p>While we provide a basic framework for building environments with our five rule components, more complex environments may require further customization. A detailed documentation and tutorial is coming soon. Here we briefly introduce some steps you can take to customize your environment:</p> <ol> <li><strong>Customize the five rule components</strong>. Each rule component has an interface, allowing you to customize its behavior to suit your specific needs. It's important to note that these components are not necessarily independent and can interact through the <code>rule_params</code> dictionary in the environment. You can create your own rule components and integrate them with the existing ones to build more complex interactions between agents.</li> <li><strong>Customize the environment itself</strong>. Our <code>basic</code> environment provides a default execution order for the five rule components that is suitable for most cases, but you can inherit the <code>BaseEnvironment</code> class and write your own <code>run</code> method to implement a more sophisticated execution order.</li> <li><strong>Customize the agent</strong>. Depending on your specific use case, you may also need to inherit the <code>BaseAgent</code> class. For example, you may want to use your local LLM as your agents or create agents with specialized knowledge or skills.</li> </ol> <h2>🔎 Examples</h2> <p>Currently, we offer some simple examples in the <code>agentverse/tasks</code> directory, each demonstrating different possibilities of our framework. While the performance of these examples may not be optimal due to limited prompt engineering, they are intended to showcase the capabilities of our framework, such as allowing the use of tools.</p> <p>Here's a brief overview of each example:</p> <ol> <li><code>nlp_classroom_3players</code>: This example illustrates a simple case in which agents will speak in sequential order.</li> <li><code>nlp_classroom_9players</code>: This is an NLP class example. Here, students can raise their hand when they have a question, and the professor can call on the students to let them ask. Students are only allowed to speak after they are called on.</li> <li><code>nlp_classroom_9players_group</code>: This example showcases group discussions. The professor may initiate a group discussion when needed, and students can exclusively interact with fellow students within the same group during the discussion.</li> <li><code>nlp_classroom_3players_withtool</code>: Students in this classroom can use Bing search API when listening to the class.</li> <li><code>math_problem_2players_tools</code>: A simple example demonstrating how two agents can use the WolframAlpha API to play an arithmetic game.</li> <li><code>prisoner_dilema</code>: The Prisoner's Dilemma is a thought experiment involving two rational agents facing a choice between cooperating for mutual benefit or betraying their partner for individual gain.</li> <li><code>db_diag</code>: The Chief DBA monitors (agents) the database system for anomalies and alerts memory and CPU agents if any are detected. They (agents) analyze root causes and suggest optimization solutions. The Chief DBA (agent) provides a diagnosis summary to the user, who can give instructions or evaluate the proposed solutions' effectiveness.</li> <li><code>sde_team</code>: In the SDE team, code writer, code tester and code reviewer collaborate on the code generation problem.</li> <li><code>pokemon</code>: This example intimates Pokemon game.</li> </ol> <h2>Star History</h2> <p><a href="https://star-history.com/#OpenBMB/AgentVerse&amp;Date"><img src="https://api.star-history.com/svg?repos=OpenBMB/AgentVerse&amp;type=Date" alt="Star History Chart"></a></p> <h2>Citation</h2> <p>If you find this repo helpful, feel free to cite us.</p> <pre><code>@misc{chen2023agentverse, title={AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents}, author={Weize Chen and Yusheng Su and Jingwei Zuo and Cheng Yang and Chenfei Yuan and Chen Qian and Chi-Min Chan and Yujia Qin and Yaxi Lu and Ruobing Xie and Zhiyuan Liu and Maosong Sun and Jie Zhou}, year={2023}, eprint={2308.10848}, archivePrefix={arXiv}, primaryClass={cs.CL} } </code></pre> <h2>Contact</h2> <p>Weize Chen: <a href="mailto:chenwz21@mails.tsinghua.edu.cn">chenwz21@mails.tsinghua.edu.cn</a></p> <p><a href="https://yushengsu-thu.github.io/">Yusheng Su</a>: <a href="mailto:yushengsu.thu@gmail.com">yushengsu.thu@gmail.com</a></p> + + \ No newline at end of file diff --git a/jest-snapshot/daily/index.xml b/jest-snapshot/daily/index.xml index 6ec88d72f6c..dbc2660a551 100644 --- a/jest-snapshot/daily/index.xml +++ b/jest-snapshot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jest Snapshot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:21Z + 2023-09-24T01:34:01Z Daily Trending of Jest Snapshot in GitHub \ No newline at end of file diff --git a/jest-snapshot/weekly/index.xml b/jest-snapshot/weekly/index.xml new file mode 100644 index 00000000000..8f575f55713 --- /dev/null +++ b/jest-snapshot/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Jest Snapshot Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:54Z + Weekly Trending of Jest Snapshot in GitHub + + \ No newline at end of file diff --git a/jflex/daily/index.xml b/jflex/daily/index.xml index e84242cd707..d6b04b3ece5 100644 --- a/jflex/daily/index.xml +++ b/jflex/daily/index.xml @@ -1,7 +1,7 @@ GitHub JFlex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:20Z + 2023-09-24T01:34:00Z Daily Trending of JFlex in GitHub \ No newline at end of file diff --git a/jflex/weekly/index.xml b/jflex/weekly/index.xml new file mode 100644 index 00000000000..d3230ee86ae --- /dev/null +++ b/jflex/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub JFlex Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:55Z + Weekly Trending of JFlex in GitHub + + \ No newline at end of file diff --git a/jinja/daily/index.xml b/jinja/daily/index.xml index e69da23b39d..01b34feb186 100644 --- a/jinja/daily/index.xml +++ b/jinja/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jinja Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:20Z + 2023-09-24T01:33:59Z Daily Trending of Jinja in GitHub \ No newline at end of file diff --git a/jinja/weekly/index.xml b/jinja/weekly/index.xml new file mode 100644 index 00000000000..b868fdad8ae --- /dev/null +++ b/jinja/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Jinja Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:56Z + Weekly Trending of Jinja in GitHub + + \ No newline at end of file diff --git a/jison-lex/daily/index.xml b/jison-lex/daily/index.xml index 27c9a7f0657..e3b2ef5b6c3 100644 --- a/jison-lex/daily/index.xml +++ b/jison-lex/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jison Lex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:25Z + 2023-09-24T01:34:03Z Daily Trending of Jison Lex in GitHub \ No newline at end of file diff --git a/jison-lex/weekly/index.xml b/jison-lex/weekly/index.xml new file mode 100644 index 00000000000..fcabd5aed66 --- /dev/null +++ b/jison-lex/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Jison Lex Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:58Z + Weekly Trending of Jison Lex in GitHub + + \ No newline at end of file diff --git a/jison/daily/index.xml b/jison/daily/index.xml index c1a8b87d72b..c1918bbd6c4 100644 --- a/jison/daily/index.xml +++ b/jison/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jison Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:24Z + 2023-09-24T01:34:04Z Daily Trending of Jison in GitHub \ No newline at end of file diff --git a/jison/weekly/index.xml b/jison/weekly/index.xml new file mode 100644 index 00000000000..7ddc66243cc --- /dev/null +++ b/jison/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Jison Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:57Z + Weekly Trending of Jison in GitHub + + \ No newline at end of file diff --git a/jolie/daily/index.xml b/jolie/daily/index.xml index 5c92d455088..b3c5426d5a0 100644 --- a/jolie/daily/index.xml +++ b/jolie/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jolie Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:23Z + 2023-09-24T01:34:05Z Daily Trending of Jolie in GitHub \ No newline at end of file diff --git a/jolie/weekly/index.xml b/jolie/weekly/index.xml new file mode 100644 index 00000000000..e121b5b1192 --- /dev/null +++ b/jolie/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Jolie Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:00Z + Weekly Trending of Jolie in GitHub + + \ No newline at end of file diff --git a/jq/daily/index.xml b/jq/daily/index.xml index b3e80ada21f..5a551d0462d 100644 --- a/jq/daily/index.xml +++ b/jq/daily/index.xml @@ -1,7 +1,7 @@ GitHub jq Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:22Z + 2023-09-24T01:34:02Z Daily Trending of jq in GitHub \ No newline at end of file diff --git a/jq/weekly/index.xml b/jq/weekly/index.xml new file mode 100644 index 00000000000..be9640884a2 --- /dev/null +++ b/jq/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub jq Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:53:59Z + Weekly Trending of jq in GitHub + + \ No newline at end of file diff --git a/json-with-comments/daily/index.xml b/json-with-comments/daily/index.xml index 09e875db6d4..1a54072a767 100644 --- a/json-with-comments/daily/index.xml +++ b/json-with-comments/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSON with Comments Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:29Z + 2023-09-24T01:34:06Z Daily Trending of JSON with Comments in GitHub \ No newline at end of file diff --git a/json-with-comments/weekly/index.xml b/json-with-comments/weekly/index.xml new file mode 100644 index 00000000000..a333b9a0c30 --- /dev/null +++ b/json-with-comments/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub JSON with Comments Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:01Z + Weekly Trending of JSON with Comments in GitHub + + \ No newline at end of file diff --git a/json/daily/index.xml b/json/daily/index.xml index 44be0d2ce10..fec244f1240 100644 --- a/json/daily/index.xml +++ b/json/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:27Z + 2023-09-24T01:34:08Z Daily Trending of JSON in GitHub \ No newline at end of file diff --git a/json/weekly/index.xml b/json/weekly/index.xml new file mode 100644 index 00000000000..efd44a0b83c --- /dev/null +++ b/json/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub JSON Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:03Z + Weekly Trending of JSON in GitHub + + \ No newline at end of file diff --git a/json5/daily/index.xml b/json5/daily/index.xml index ab78e6923dc..3f11eaf30e4 100644 --- a/json5/daily/index.xml +++ b/json5/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSON5 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:28Z + 2023-09-24T01:34:07Z Daily Trending of JSON5 in GitHub \ No newline at end of file diff --git a/json5/weekly/index.xml b/json5/weekly/index.xml new file mode 100644 index 00000000000..df892fdb3cb --- /dev/null +++ b/json5/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub JSON5 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:02Z + Weekly Trending of JSON5 in GitHub + + \ No newline at end of file diff --git a/jsoniq/daily/index.xml b/jsoniq/daily/index.xml index 25af637a902..0ef1b632afe 100644 --- a/jsoniq/daily/index.xml +++ b/jsoniq/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSONiq Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:26Z + 2023-09-24T01:34:07Z Daily Trending of JSONiq in GitHub \ No newline at end of file diff --git a/jsoniq/weekly/index.xml b/jsoniq/weekly/index.xml new file mode 100644 index 00000000000..21da7581d74 --- /dev/null +++ b/jsoniq/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub JSONiq Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:02Z + Weekly Trending of JSONiq in GitHub + + \ No newline at end of file diff --git a/jsonld/daily/index.xml b/jsonld/daily/index.xml index ceb6152d73d..80acf0412ca 100644 --- a/jsonld/daily/index.xml +++ b/jsonld/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSONLD Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:30Z + 2023-09-24T01:34:09Z Daily Trending of JSONLD in GitHub \ No newline at end of file diff --git a/jsonld/weekly/index.xml b/jsonld/weekly/index.xml new file mode 100644 index 00000000000..693b8519d07 --- /dev/null +++ b/jsonld/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub JSONLD Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:04Z + Weekly Trending of JSONLD in GitHub + + \ No newline at end of file diff --git a/jsonnet/daily/index.xml b/jsonnet/daily/index.xml index 2c804858855..51aaf0887f3 100644 --- a/jsonnet/daily/index.xml +++ b/jsonnet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jsonnet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:31Z + 2023-09-24T01:34:11Z Daily Trending of Jsonnet in GitHub \ No newline at end of file diff --git a/jsonnet/weekly/index.xml b/jsonnet/weekly/index.xml new file mode 100644 index 00000000000..79846a52fa7 --- /dev/null +++ b/jsonnet/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Jsonnet Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:05Z + Weekly Trending of Jsonnet in GitHub + + + eclipse-sumo/.eclipsefdn + 2023-09-24T01:54:05Z + tag:github.com,2023-09-24:/eclipse-sumo/.eclipsefdn + + <p>Repository to host configurations related to the Eclipse Foundation.</p><hr> + + \ No newline at end of file diff --git a/julia/daily/index.xml b/julia/daily/index.xml index af05a0f1896..afb41befe41 100644 --- a/julia/daily/index.xml +++ b/julia/daily/index.xml @@ -1,7 +1,14 @@ GitHub Julia Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:34Z + 2023-09-24T01:34:16Z Daily Trending of Julia in GitHub + + PeaceFounder/PeaceFounder.jl + 2023-09-24T01:34:16Z + tag:github.com,2023-09-24:/PeaceFounder/PeaceFounder.jl + + <p>Evoting system for democracy through pseudonym braiding and full public auditability without secrets</p><hr> + \ No newline at end of file diff --git a/julia/weekly/index.xml b/julia/weekly/index.xml new file mode 100644 index 00000000000..c24e3bb0f4e --- /dev/null +++ b/julia/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Julia Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:07Z + Weekly Trending of Julia in GitHub + + + JuliaPy/PythonCall.jl + 2023-09-24T01:54:07Z + tag:github.com,2023-09-24:/JuliaPy/PythonCall.jl + + <p>Python and Julia in harmony.</p><hr> + + \ No newline at end of file diff --git a/jupyter-notebook/daily/index.xml b/jupyter-notebook/daily/index.xml index 54cdc8e6e05..d22182a8818 100644 --- a/jupyter-notebook/daily/index.xml +++ b/jupyter-notebook/daily/index.xml @@ -1,7 +1,28 @@ GitHub Jupyter Notebook Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:36Z + 2023-09-24T01:34:16Z Daily Trending of Jupyter Notebook in GitHub + + krishnaik06/The-Grand-Complete-Data-Science-Materials + 2023-09-24T01:34:16Z + tag:github.com,2023-09-24:/krishnaik06/The-Grand-Complete-Data-Science-Materials + + <p></p><hr><h1>The Grand Complete Data Science Guide With Videos And Materials</h1> <h2>1. Complete Python Playlist For Data Analytics And Data Science</h2> <ul> <li>Python In English: <a href="https://www.youtube.com/watch?v=bPrmA1SEN2k&amp;list=PLZoTAELRMXVNUL99R4bDlVYsncUNvwUBB">https://www.youtube.com/watch?v=bPrmA1SEN2k&amp;list=PLZoTAELRMXVNUL99R4bDlVYsncUNvwUBB</a></li> <li>Python In Hindi: <a href="https://www.youtube.com/watch?v=MJd9d9Mpxg0&amp;list=PLTDARY42LDV4qqiJd1Z1tShm3mp9-rP4v">https://www.youtube.com/watch?v=MJd9d9Mpxg0&amp;list=PLTDARY42LDV4qqiJd1Z1tShm3mp9-rP4v</a></li> </ul> <h2>2. Complete Stats Playlist For Data Analytics And Data Science</h2> <ul> <li>Stats In English One Shot: <a href="https://www.youtube.com/watch?v=LZzq1zSL1bs">https://www.youtube.com/watch?v=LZzq1zSL1bs</a></li> <li>Stats In English Detailed Playlist: <a href="https://www.youtube.com/watch?v=zRUliXuwJCQ&amp;list=PLZoTAELRMXVMhVyr3Ri9IQ-t5QPBtxzJO">https://www.youtube.com/watch?v=zRUliXuwJCQ&amp;list=PLZoTAELRMXVMhVyr3Ri9IQ-t5QPBtxzJO</a></li> <li>Stats In Hindi Detailed Playlist: <a href="https://www.youtube.com/watch?v=7y3XckjaVOw&amp;list=PLTDARY42LDV6YHSRo669_uDDGmUEmQnDJ">https://www.youtube.com/watch?v=7y3XckjaVOw&amp;list=PLTDARY42LDV6YHSRo669_uDDGmUEmQnDJ</a></li> </ul> <h2>3. Complete SQL For Data Analytics And Data Science</h2> <ul> <li>Complete SQl Detailed Playlist English: <a href="https://www.youtube.com/watch?v=us1XyayQ6fU&amp;list=PLZoTAELRMXVNMRWlVf0bDDSxNEn38u9Cl">https://www.youtube.com/watch?v=us1XyayQ6fU&amp;list=PLZoTAELRMXVNMRWlVf0bDDSxNEn38u9Cl</a></li> <li>Complete SQL Detailed Playlist Hindi : <strong>Coming Soon</strong></li> <li>Complete SQL One Shot : <strong>Coming Soon</strong></li> </ul> <h2>4. Git And Github Tutorials</h2> <ul> <li>Git and Github Tutorials In English: <a href="https://www.youtube.com/watch?v=GW7B6vwktPA&amp;list=PLZoTAELRMXVOSsBerFZKsdCaA4RYr4RGW">https://www.youtube.com/watch?v=GW7B6vwktPA&amp;list=PLZoTAELRMXVOSsBerFZKsdCaA4RYr4RGW</a></li> <li>Git and Github Tutorials In Hindi: <a href="https://www.youtube.com/watch?v=8KtY8ihZ8ME">https://www.youtube.com/watch?v=8KtY8ihZ8ME</a></li> </ul> <h2>5. EDA And Feature Engineering And Feature Selection</h2> <ul> <li>Feature Engineering Detailed Playlist: <a href="https://www.youtube.com/watch?v=6WDFfaYtN6s&amp;list=PLZoTAELRMXVPwYGE2PXD3x0bfKnR0cJjN">https://www.youtube.com/watch?v=6WDFfaYtN6s&amp;list=PLZoTAELRMXVPwYGE2PXD3x0bfKnR0cJjN</a></li> <li>Feature Selection Detailed Playlist: <a href="https://www.youtube.com/watch?v=uMlU2JaiOd8&amp;list=PLZoTAELRMXVPgjwJ8VyRoqmfNs2CJwhVH">https://www.youtube.com/watch?v=uMlU2JaiOd8&amp;list=PLZoTAELRMXVPgjwJ8VyRoqmfNs2CJwhVH</a></li> <li>EDA Detailed Playlist : <a href="https://www.youtube.com/watch?v=F-X82zhIfBo&amp;list=PLxvLUL96MOO6F8x2fLgFlNrJVcKPQuS3a">https://www.youtube.com/watch?v=F-X82zhIfBo&amp;list=PLxvLUL96MOO6F8x2fLgFlNrJVcKPQuS3a</a></li> </ul> <h2>6. Machine Learning Playlist</h2> <ul> <li>Detailed ML Playlist In English: <a href="https://www.youtube.com/watch?v=bPrmA1SEN2k&amp;list=PLZoTAELRMXVPBTrWtJkn3wWQxZkmTXGwe">https://www.youtube.com/watch?v=bPrmA1SEN2k&amp;list=PLZoTAELRMXVPBTrWtJkn3wWQxZkmTXGwe</a></li> <li>New ML Playlist 2023 In English(In Progress)- <a href="https://www.youtube.com/watch?v=ip4WxEZwEPc&amp;list=PLZoTAELRMXVPMbdMTjwolBI0cJcvASePD">https://www.youtube.com/watch?v=ip4WxEZwEPc&amp;list=PLZoTAELRMXVPMbdMTjwolBI0cJcvASePD</a></li> <li>Machine Learning One Shot In English: <a href="https://www.youtube.com/watch?v=JxgmHe2NyeY">https://www.youtube.com/watch?v=JxgmHe2NyeY</a></li> <li>Machine Learning Playlist In Hindi: <a href="https://www.youtube.com/watch?v=7uwa9aPbBRU&amp;list=PLTDARY42LDV7WGmlzZtY-w9pemyPrKNUZ">https://www.youtube.com/watch?v=7uwa9aPbBRU&amp;list=PLTDARY42LDV7WGmlzZtY-w9pemyPrKNUZ</a></li> </ul> <h2>7. Complete Deep Learning And NLP Playlist:</h2> <ul> <li>Complete Deep Learning And NLP Detailed Playlist In English: <a href="https://www.youtube.com/watch?v=YFNKnUhm_-s&amp;list=PLZoTAELRMXVPGU70ZGsckrMdr0FteeRUi">https://www.youtube.com/watch?v=YFNKnUhm_-s&amp;list=PLZoTAELRMXVPGU70ZGsckrMdr0FteeRUi</a></li> <li>Complete NLP Live Playlist English: <a href="https://www.youtube.com/watch?v=w3coRFpyddQ&amp;list=PLZoTAELRMXVNNrHSKv36Lr3_156yCo6Nn">https://www.youtube.com/watch?v=w3coRFpyddQ&amp;list=PLZoTAELRMXVNNrHSKv36Lr3_156yCo6Nn</a></li> <li>Complete Deep Learning And NLP Playlist Hindi: <strong>Coming soon</strong></li> </ul> <h2>8. Important Frameworks for Production Deployments</h2> <ul> <li>Flask Detailed Playlist In English: <a href="https://www.youtube.com/watch?v=4L_xAWDRs7w&amp;list=PLZoTAELRMXVPBaLN3e-uoVRR9hlRFRfUc">https://www.youtube.com/watch?v=4L_xAWDRs7w&amp;list=PLZoTAELRMXVPBaLN3e-uoVRR9hlRFRfUc</a></li> <li>Flask One Shot Hindi: <a href="https://www.youtube.com/watch?v=KF-rDqQfqz0">https://www.youtube.com/watch?v=KF-rDqQfqz0</a></li> <li>Gradio Framework: <a href="https://www.youtube.com/watch?v=wruyZWre2sM">https://www.youtube.com/watch?v=wruyZWre2sM</a></li> <li>BentoML: <a href="https://www.youtube.com/watch?v=i_FtfdOKa2M">https://www.youtube.com/watch?v=i_FtfdOKa2M</a></li> <li>MLFLOw and Dagshub: <a href="https://www.youtube.com/watch?v=qdcHHrsXA48">https://www.youtube.com/watch?v=qdcHHrsXA48</a></li> </ul> <h2>9. Complete AWS Sagemaker And Sagemaker Studio Tools</h2> <ul> <li>Sagemaker Detailed Playlist: <a href="https://www.youtube.com/watch?v=LkR3GNDB0HI&amp;list=PLZoTAELRMXVONh5mHrXowH6-dgyWoC_Ew">https://www.youtube.com/watch?v=LkR3GNDB0HI&amp;list=PLZoTAELRMXVONh5mHrXowH6-dgyWoC_Ew</a></li> <li>Sagemaker End to End Projects- <strong>Coming Soon</strong></li> </ul> <h2>10. Complete MLOPS tutorials</h2> <ul> <li>Complete Dockers In One Shot English: <a href="https://www.youtube.com/watch?v=8vmKtS8W7IQ">https://www.youtube.com/watch?v=8vmKtS8W7IQ</a></li> <li>MLFLOW End to End Tutorials With Deployment: <a href="https://www.youtube.com/watch?v=pxk1Fr33-L4">https://www.youtube.com/watch?v=pxk1Fr33-L4</a></li> <li>Evidently AI Model Monitoring: <a href="https://www.youtube.com/watch?v=cgc3dSEAel0">https://www.youtube.com/watch?v=cgc3dSEAel0</a></li> <li>Complete Docker In One Shot Hindi: <strong>Coming soon</strong></li> <li>Complete Github Action In English: <strong>Coming soon</strong></li> <li>Complete Kubernetes And Kubeflow Tutorials: <strong>Coming Soon</strong></li> </ul> <h2>11. End To End ML,DL and NLP Projects- Entire Lifecycle Till Deployment Using Open Source Tools</h2> <ul> <li>End To End ML Projects Playlist In English: <a href="https://www.youtube.com/watch?v=S_F_c9e2bz4&amp;list=PLZoTAELRMXVPS-dOaVbAux22vzqdgoGhG&amp;index=1">https://www.youtube.com/watch?v=S_F_c9e2bz4&amp;list=PLZoTAELRMXVPS-dOaVbAux22vzqdgoGhG&amp;index=1</a></li> <li>End To End ML Playlist In Hindi: <a href="https://www.youtube.com/watch?v=NuwUnRpxq2c&amp;list=PLTDARY42LDV7jzL_f68SY-eOQ9tY2lYvR">https://www.youtube.com/watch?v=NuwUnRpxq2c&amp;list=PLTDARY42LDV7jzL_f68SY-eOQ9tY2lYvR</a></li> </ul> <h2>12. Generative AI And Open AI Playlist:</h2> <ul> <li>OPENAI Playlist English(In Progress): <a href="https://www.youtube.com/watch?v=CbpsDMwFG2g&amp;list=PLZoTAELRMXVMTWGW9iS45ZTcMsntos6VO">https://www.youtube.com/watch?v=CbpsDMwFG2g&amp;list=PLZoTAELRMXVMTWGW9iS45ZTcMsntos6VO</a></li> <li>Langchain Playlist(In Progress): <a href="https://www.youtube.com/watch?v=_FpT1cwcSLg&amp;list=PLZoTAELRMXVORE4VF7WQ_fAl0L1Gljtar">https://www.youtube.com/watch?v=_FpT1cwcSLg&amp;list=PLZoTAELRMXVORE4VF7WQ_fAl0L1Gljtar</a></li> <li>ChainLit Playlist <strong>(In Progress)</strong></li> </ul> <h2>13. Pyspark Complete Tutorials</h2> <ul> <li>Pyspark Detailed Playlist: <a href="https://www.youtube.com/watch?v=WyZmM6K7ubc&amp;list=PLZoTAELRMXVNjiiawhzZ0afHcPvC8jpcg">https://www.youtube.com/watch?v=WyZmM6K7ubc&amp;list=PLZoTAELRMXVNjiiawhzZ0afHcPvC8jpcg</a></li> </ul> <h2>14. Complete Data Science,Machine Learning And Deep Learning Interview Questions</h2> <p><a href="https://github.com/iNeuronai/interview-question-data-science-">https://github.com/iNeuronai/interview-question-data-science-</a></p> <h2>Internships</h2> <p><a href="https://internship.ineuron.ai/">https://internship.ineuron.ai/</a></p> <h2>Data Science TrackerSheet For Learning</h2> <p><a href="https://drive.google.com/file/d/18doA_wMja2nAawcE6imIcfnEMf-Pir2n/view">https://drive.google.com/file/d/18doA_wMja2nAawcE6imIcfnEMf-Pir2n/view</a></p> <h2>Youtube Channels For Referring All Videos. Consider Subscribing and pressing the bell icon.</h2> <ul> <li>Krish Naik : <a href="https://www.youtube.com/@krishnaik06">https://www.youtube.com/@krishnaik06</a></li> <li>Krish Naik Hindi: <a href="https://www.youtube.com/@krishnaikhindi">https://www.youtube.com/@krishnaikhindi</a></li> <li>Success Stories By Krish(Coming up): <a href="https://www.youtube.com/channel/UCNSHtBgZ3dhcpv190JrK_LQ">https://www.youtube.com/channel/UCNSHtBgZ3dhcpv190JrK_LQ</a></li> <li>Support Channel and Join this channel to get access to perks: <a href="https://www.youtube.com/channel/UCNU_lfiiWBdtULKOw6X0Dig/join">https://www.youtube.com/channel/UCNU_lfiiWBdtULKOw6X0Dig/join</a></li> </ul> + + + epfl-ada/2023 + 2023-09-24T01:34:16Z + tag:github.com,2023-09-24:/epfl-ada/2023 + + <p>Materials for Applied Data Analysis CS-401, Fall 2023</p><hr><h1>2023</h1> <p>Materials for Applied Data Analysis CS-401, Fall 2023</p> + + + pachterlab/BI-BE-CS-183-2023 + 2023-09-24T01:34:16Z + tag:github.com,2023-09-24:/pachterlab/BI-BE-CS-183-2023 + + <p>Introduction to Computational Biology and Bioinformatics Course at Caltech, 2023</p><hr><h2>Caltech BI/BE/CSS 183: Introduction to Computational Biology and Bioinformatics</h2> <p>This repository contains lecture notes, problem sets, and associated Google Colaboratory notebooks for the Caltech Bi/BE/CS 183 class taught by Professor <a href="https://www.bbe.caltech.edu/people/lior-s-pachter">Lior Pachter</a> in the Winter Quarter 2022-2023. The TAs for the class were Tara Chari, Meichen Fang, and Jerry Wang. Along with tutoring students, the TAs helped prepare the materias and write the problem sets with solutions. An overview of the class is provided in the <a href="https://docs.google.com/document/d/1LV7rLCGQwl5F8pxuvCw_G8cntIuZRlpN7UFfKLJz2bc/edit?usp=sharing">syllabus</a>.</p> <h3>Lectures slides</h3> <ul> <li><a href="https://docs.google.com/presentation/d/1-Bo7yaaaxbf8ul_2gacZIII_pggd6JmSVXEF4Zwqekg/edit?usp=sharing">Lecture 1</a>: Introduction to computational biology of single-cell RNA-seq</li> <li><a href="https://docs.google.com/presentation/d/1tpeNHSONBunT7TwZSlwm42VknPVNeufdY7A4rzqMhkI/edit?usp=drive_link">Lecture 2</a>: Single-cell RNA-seq technology</li> <li><a href="https://docs.google.com/presentation/d/1P2tFP82zIwZHOlRQWu8qlFUjCck3BDhtTPquZssciio/edit?usp=drive_link">Lecture 3</a>: Linear and logistic regression</li> <li><a href="https://docs.google.com/presentation/d/1ZJQQSgKdQA7PUw2HyZmgJwRN1IgRXA0e1XTmL9D3iF8/edit?usp=drive_link">Lecture 4</a>: Correlation and causation</li> <li><a href="https://docs.google.com/presentation/d/1A0g8BbgGmQllI5y1kdEYOPRQ0Q9CPMDMmX-RQwbhRzM/edit?usp=drive_link">Lecture 5</a>: Singular value decomposition</li> <li><a href="https://docs.google.com/presentation/d/1DTuLMODtcFy-x1X1J4p7hy8aIxr9VnGyY98XNKs1B78/edit?usp=drive_link">Lecture 6</a>: Dimensionality reduction</li> <li><a href="https://docs.google.com/presentation/d/1hH6WcVqrTsZRJmkTstJNjIka5g2eJcCnD_sBn4G-J6w/edit?usp=drive_link">Lecture 7</a>: Clustering</li> <li><a href="https://docs.google.com/presentation/d/1G4s2D-Y2Z5LFVe41enVBepyffSAjuAhrJZ7Hzn8A3nU/edit?usp=drive_link">Lecture 8</a>: Read alignment</li> <li><a href="https://docs.google.com/presentation/d/1XELEyVhr0vMpkaGXq4INhNq8mXttqz_NZ1ZGclUFM0Y/edit?usp=drive_link">Lecture 9</a>: String algorithms</li> <li><a href="https://docs.google.com/presentation/d/1XjHXsOVMdO0DgP8NvNCHC82DyudHrtf2YXOzRoPBN5g/edit?usp=drive_link">Lecture 10</a>: Modeling counts</li> <li><a href="https://docs.google.com/presentation/d/1Snj90kIe6iguVfftZ18404C4h8WcHoEdA8isfy021GQ/edit?usp=drive_link">Lecture 11</a>: Generalized linear models</li> <li><a href="https://docs.google.com/presentation/d/1qTSqWCfXNwKxpMT5VcgCrv_gmZ9xlXazukaWjWYoJ3o/edit?usp=drive_link">Lecture 12</a>: Variance stablization</li> <li><a href="https://docs.google.com/presentation/d/1ExkNVQ8u8IuZ1ZmUpTyd7oBuRkqU5RZEHm1q4eqK9Uc/edit?usp=drive_link">Lecutre 13</a>: Differential analysis</li> <li><a href="https://docs.google.com/presentation/d/1F-OFNeVNClOYxTnJGW-pZ0KHzTIggPZeyZsk7y9gM0g/edit?usp=drive_link">Lecture 14</a>: Multiple testing</li> <li><a href="https://docs.google.com/presentation/d/1zpWVNvlbnqAjDlFr4XGaocOPw0Y-s6qm16kf01GS2aM/edit?usp=drive_link">Lecture 15</a>: Hidden Markov models</li> <li><a href="https://docs.google.com/presentation/d/1ry13HMq3z-DERtXNnm5L_YHXQFtIltmoGDTq3zydn6k/edit?usp=drive_link">Lecture 16</a>: Dynamic programming</li> <li><a href="https://docs.google.com/presentation/d/1Nf528xSOGWQS6sEkkAdA1MSt4p7u3aHnttA-tXGlzP0/edit?usp=drive_link">Lecture 17</a>: Mechanism</li> <li><a href="https://docs.google.com/presentation/d/15lw0UxeSoVwxrmn8L5BYu_xr7ccMB2u3QvGcn7M0sa8/edit?usp=drive_link">Lecture 18</a>: The Chemical Master Equation</li> <li><a href="https://docs.google.com/presentation/d/1OroKl_6AyrX422RGkodctorMA1dBhNBwbITg_kzxB3Q/edit?usp=drive_link">Lecture 19</a>: Neural networks</li> </ul> + \ No newline at end of file diff --git a/jupyter-notebook/weekly/index.xml b/jupyter-notebook/weekly/index.xml new file mode 100644 index 00000000000..322d569de6d --- /dev/null +++ b/jupyter-notebook/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Jupyter Notebook Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:10Z + Weekly Trending of Jupyter Notebook in GitHub + + + aimacode/aima-python + 2023-09-24T01:54:10Z + tag:github.com,2023-09-24:/aimacode/aima-python + + <p>Python implementation of algorithms from Russell And Norvig's "Artificial Intelligence - A Modern Approach"</p><hr><h1><code>aima-python</code> <a href="https://travis-ci.org/aimacode/aima-python"><img src="https://travis-ci.org/aimacode/aima-python.svg?branch=master" alt="Build Status"></a> <a href="http://mybinder.org/repo/aimacode/aima-python"><img src="http://mybinder.org/badge.svg?sanitize=true" alt="Binder"></a></h1> <p>Python code for the book <em><a href="http://aima.cs.berkeley.edu">Artificial Intelligence: A Modern Approach</a>.</em> You can use this in conjunction with a course on AI, or for study on your own. We're looking for <a href="https://github.com/aimacode/aima-python/raw/master/CONTRIBUTING.md">solid contributors</a> to help.</p> <h1>Updates for 4th Edition</h1> <p>The 4th edition of the book as out now in 2020, and thus we are updating the code. All code here will reflect the 4th edition. Changes include:</p> <ul> <li>Move from Python 3.5 to 3.7.</li> <li>More emphasis on Jupyter (Ipython) notebooks.</li> <li>More projects using external packages (tensorflow, etc.).</li> </ul> <h1>Structure of the Project</h1> <p>When complete, this project will have Python implementations for all the pseudocode algorithms in the book, as well as tests and examples of use. For each major topic, such as <code>search</code>, we provide the following files:</p> <ul> <li><code>search.ipynb</code> and <code>search.py</code>: Implementations of all the pseudocode algorithms, and necessary support functions/classes/data. The <code>.py</code> file is generated automatically from the <code>.ipynb</code> file; the idea is that it is easier to read the documentation in the <code>.ipynb</code> file.</li> <li><code>search_XX.ipynb</code>: Notebooks that show how to use the code, broken out into various topics (the <code>XX</code>).</li> <li><code>tests/test_search.py</code>: A lightweight test suite, using <code>assert</code> statements, designed for use with <a href="http://pytest.org/latest/"><code>py.test</code></a>, but also usable on their own.</li> </ul> <h1>Python 3.7 and up</h1> <p>The code for the 3rd edition was in Python 3.5; the current 4th edition code is in Python 3.7. It should also run in later versions, but does not run in Python 2. You can <a href="https://www.python.org/downloads">install Python</a> or use a browser-based Python interpreter such as <a href="https://repl.it/languages/python3">repl.it</a>. You can run the code in an IDE, or from the command line with <code>python -i filename.py</code> where the <code>-i</code> option puts you in an interactive loop where you can run Python functions. All notebooks are available in a <a href="http://mybinder.org/repo/aimacode/aima-python">binder environment</a>. Alternatively, visit <a href="http://jupyter.org/">jupyter.org</a> for instructions on setting up your own Jupyter notebook environment.</p> <p>Features from Python 3.6 and 3.7 that we will be using for this version of the code:</p> <ul> <li><a href="https://docs.python.org/3.6/whatsnew/3.6.html#whatsnew36-pep498">f-strings</a>: all string formatting should be done with <code>f'var = {var}'</code>, not with <code>'var = {}'.format(var)</code> nor <code>'var = %s' % var</code>.</li> <li><a href="https://docs.python.org/3.7/library/typing.html"><code>typing</code> module</a>: declare functions with type hints: <code>def successors(state) -&gt; List[State]:</code>; that is, give type declarations, but omit them when it is obvious. I don't need to say <code>state: State</code>, but in another context it would make sense to say <code>s: State</code>.</li> <li>Underscores in numerics: write a million as <code>1_000_000</code> not as <code>1000000</code>.</li> <li><a href="https://docs.python.org/3.7/library/dataclasses.html#module-dataclasses"><code>dataclasses</code> module</a>: replace <code>namedtuple</code> with <code>dataclass</code>.</li> </ul> <h2>Installation Guide</h2> <p>To download the repository:</p> <p><code>git clone https://github.com/aimacode/aima-python.git</code></p> <p>Then you need to install the basic dependencies to run the project on your system:</p> <pre><code>cd aima-python pip install -r requirements.txt </code></pre> <p>You also need to fetch the datasets from the <a href="https://github.com/aimacode/aima-data"><code>aima-data</code></a> repository:</p> <pre><code>git submodule init git submodule update </code></pre> <p>Wait for the datasets to download, it may take a while. Once they are downloaded, you need to install <code>pytest</code>, so that you can run the test suite:</p> <p><code>pip install pytest</code></p> <p>Then to run the tests:</p> <p><code>py.test</code></p> <p>And you are good to go!</p> <h1>Index of Algorithms</h1> <p>Here is a table of algorithms, the figure, name of the algorithm in the book and in the repository, and the file where they are implemented in the repository. This chart was made for the third edition of the book and is being updated for the upcoming fourth edition. Empty implementations are a good place for contributors to look for an issue. The <a href="https://github.com/aimacode/aima-pseudocode">aima-pseudocode</a> project describes all the algorithms from the book. An asterisk next to the file name denotes the algorithm is not fully implemented. Another great place for contributors to start is by adding tests and writing on the notebooks. You can see which algorithms have tests and notebook sections below. If the algorithm you want to work on is covered, don't worry! You can still add more tests and provide some examples of use in the notebook!</p> <table> <thead> <tr> <th align="left"><strong>Figure</strong></th> <th align="left"><strong>Name (in 3<sup>rd</sup> edition)</strong></th> <th align="left"><strong>Name (in repository)</strong></th> <th align="left"><strong>File</strong></th> <th align="left"><strong>Tests</strong></th> <th align="left"><strong>Notebook</strong></th> </tr> </thead> <tbody> <tr> <td align="left">2</td> <td align="left">Random-Vacuum-Agent</td> <td align="left"><code>RandomVacuumAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/agents.py"><code>agents.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">2</td> <td align="left">Model-Based-Vacuum-Agent</td> <td align="left"><code>ModelBasedVacuumAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/agents.py"><code>agents.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">2.1</td> <td align="left">Environment</td> <td align="left"><code>Environment</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/agents.py"><code>agents.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">2.1</td> <td align="left">Agent</td> <td align="left"><code>Agent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/agents.py"><code>agents.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">2.3</td> <td align="left">Table-Driven-Vacuum-Agent</td> <td align="left"><code>TableDrivenVacuumAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/agents.py"><code>agents.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">2.7</td> <td align="left">Table-Driven-Agent</td> <td align="left"><code>TableDrivenAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/agents.py"><code>agents.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">2.8</td> <td align="left">Reflex-Vacuum-Agent</td> <td align="left"><code>ReflexVacuumAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/agents.py"><code>agents.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">2.10</td> <td align="left">Simple-Reflex-Agent</td> <td align="left"><code>SimpleReflexAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/agents.py"><code>agents.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">2.12</td> <td align="left">Model-Based-Reflex-Agent</td> <td align="left"><code>ReflexAgentWithState</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/agents.py"><code>agents.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3</td> <td align="left">Problem</td> <td align="left"><code>Problem</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3</td> <td align="left">Node</td> <td align="left"><code>Node</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3</td> <td align="left">Queue</td> <td align="left"><code>Queue</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/utils.py"><code>utils.py</code></a></td> <td align="left">Done</td> <td align="left">No Need</td> </tr> <tr> <td align="left">3.1</td> <td align="left">Simple-Problem-Solving-Agent</td> <td align="left"><code>SimpleProblemSolvingAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.2</td> <td align="left">Romania</td> <td align="left"><code>romania</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.7</td> <td align="left">Tree-Search</td> <td align="left"><code>depth/breadth_first_tree_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.7</td> <td align="left">Graph-Search</td> <td align="left"><code>depth/breadth_first_graph_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.11</td> <td align="left">Breadth-First-Search</td> <td align="left"><code>breadth_first_graph_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.14</td> <td align="left">Uniform-Cost-Search</td> <td align="left"><code>uniform_cost_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.17</td> <td align="left">Depth-Limited-Search</td> <td align="left"><code>depth_limited_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.18</td> <td align="left">Iterative-Deepening-Search</td> <td align="left"><code>iterative_deepening_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.22</td> <td align="left">Best-First-Search</td> <td align="left"><code>best_first_graph_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.24</td> <td align="left">A*-Search</td> <td align="left"><code>astar_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">3.26</td> <td align="left">Recursive-Best-First-Search</td> <td align="left"><code>recursive_best_first_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">4.2</td> <td align="left">Hill-Climbing</td> <td align="left"><code>hill_climbing</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">4.5</td> <td align="left">Simulated-Annealing</td> <td align="left"><code>simulated_annealing</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">4.8</td> <td align="left">Genetic-Algorithm</td> <td align="left"><code>genetic_algorithm</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">4.11</td> <td align="left">And-Or-Graph-Search</td> <td align="left"><code>and_or_graph_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">4.21</td> <td align="left">Online-DFS-Agent</td> <td align="left"><code>online_dfs_agent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">4.24</td> <td align="left">LRTA*-Agent</td> <td align="left"><code>LRTAStarAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">5.3</td> <td align="left">Minimax-Decision</td> <td align="left"><code>minimax_decision</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/games.py"><code>games.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">5.7</td> <td align="left">Alpha-Beta-Search</td> <td align="left"><code>alphabeta_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/games.py"><code>games.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">6</td> <td align="left">CSP</td> <td align="left"><code>CSP</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/csp.py"><code>csp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">6.3</td> <td align="left">AC-3</td> <td align="left"><code>AC3</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/csp.py"><code>csp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">6.5</td> <td align="left">Backtracking-Search</td> <td align="left"><code>backtracking_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/csp.py"><code>csp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">6.8</td> <td align="left">Min-Conflicts</td> <td align="left"><code>min_conflicts</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/csp.py"><code>csp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">6.11</td> <td align="left">Tree-CSP-Solver</td> <td align="left"><code>tree_csp_solver</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/csp.py"><code>csp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7</td> <td align="left">KB</td> <td align="left"><code>KB</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7.1</td> <td align="left">KB-Agent</td> <td align="left"><code>KB_AgentProgram</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7.7</td> <td align="left">Propositional Logic Sentence</td> <td align="left"><code>Expr</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/utils.py"><code>utils.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7.10</td> <td align="left">TT-Entails</td> <td align="left"><code>tt_entails</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7.12</td> <td align="left">PL-Resolution</td> <td align="left"><code>pl_resolution</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7.14</td> <td align="left">Convert to CNF</td> <td align="left"><code>to_cnf</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7.15</td> <td align="left">PL-FC-Entails?</td> <td align="left"><code>pl_fc_entails</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7.17</td> <td align="left">DPLL-Satisfiable?</td> <td align="left"><code>dpll_satisfiable</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7.18</td> <td align="left">WalkSAT</td> <td align="left"><code>WalkSAT</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">7.20</td> <td align="left">Hybrid-Wumpus-Agent</td> <td align="left"><code>HybridWumpusAgent</code></td> <td align="left"></td> <td align="left"></td> <td align="left"></td> </tr> <tr> <td align="left">7.22</td> <td align="left">SATPlan</td> <td align="left"><code>SAT_plan</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">9</td> <td align="left">Subst</td> <td align="left"><code>subst</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">9.1</td> <td align="left">Unify</td> <td align="left"><code>unify</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">9.3</td> <td align="left">FOL-FC-Ask</td> <td align="left"><code>fol_fc_ask</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">9.6</td> <td align="left">FOL-BC-Ask</td> <td align="left"><code>fol_bc_ask</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">10.1</td> <td align="left">Air-Cargo-problem</td> <td align="left"><code>air_cargo</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">10.2</td> <td align="left">Spare-Tire-Problem</td> <td align="left"><code>spare_tire</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">10.3</td> <td align="left">Three-Block-Tower</td> <td align="left"><code>three_block_tower</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">10.7</td> <td align="left">Cake-Problem</td> <td align="left"><code>have_cake_and_eat_cake_too</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">10.9</td> <td align="left">Graphplan</td> <td align="left"><code>GraphPlan</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">10.13</td> <td align="left">Partial-Order-Planner</td> <td align="left"><code>PartialOrderPlanner</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">11.1</td> <td align="left">Job-Shop-Problem-With-Resources</td> <td align="left"><code>job_shop_problem</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">11.5</td> <td align="left">Hierarchical-Search</td> <td align="left"><code>hierarchical_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">11.8</td> <td align="left">Angelic-Search</td> <td align="left"><code>angelic_search</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">11.10</td> <td align="left">Doubles-tennis</td> <td align="left"><code>double_tennis_problem</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/planning.py"><code>planning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">13</td> <td align="left">Discrete Probability Distribution</td> <td align="left"><code>ProbDist</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">13.1</td> <td align="left">DT-Agent</td> <td align="left"><code>DTAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">14.9</td> <td align="left">Enumeration-Ask</td> <td align="left"><code>enumeration_ask</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">14.11</td> <td align="left">Elimination-Ask</td> <td align="left"><code>elimination_ask</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">14.13</td> <td align="left">Prior-Sample</td> <td align="left"><code>prior_sample</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">14.14</td> <td align="left">Rejection-Sampling</td> <td align="left"><code>rejection_sampling</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">14.15</td> <td align="left">Likelihood-Weighting</td> <td align="left"><code>likelihood_weighting</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">14.16</td> <td align="left">Gibbs-Ask</td> <td align="left"><code>gibbs_ask</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">15.4</td> <td align="left">Forward-Backward</td> <td align="left"><code>forward_backward</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">15.6</td> <td align="left">Fixed-Lag-Smoothing</td> <td align="left"><code>fixed_lag_smoothing</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">15.17</td> <td align="left">Particle-Filtering</td> <td align="left"><code>particle_filtering</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">16.9</td> <td align="left">Information-Gathering-Agent</td> <td align="left"><code>InformationGatheringAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">17.4</td> <td align="left">Value-Iteration</td> <td align="left"><code>value_iteration</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/mdp.py"><code>mdp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">17.7</td> <td align="left">Policy-Iteration</td> <td align="left"><code>policy_iteration</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/mdp.py"><code>mdp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">17.9</td> <td align="left">POMDP-Value-Iteration</td> <td align="left"><code>pomdp_value_iteration</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/mdp.py"><code>mdp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">18.5</td> <td align="left">Decision-Tree-Learning</td> <td align="left"><code>DecisionTreeLearner</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/learning.py"><code>learning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">18.8</td> <td align="left">Cross-Validation</td> <td align="left"><code>cross_validation</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/learning.py"><code>learning.py</code></a>*</td> <td align="left"></td> <td align="left"></td> </tr> <tr> <td align="left">18.11</td> <td align="left">Decision-List-Learning</td> <td align="left"><code>DecisionListLearner</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/learning.py"><code>learning.py</code></a>*</td> <td align="left"></td> <td align="left"></td> </tr> <tr> <td align="left">18.24</td> <td align="left">Back-Prop-Learning</td> <td align="left"><code>BackPropagationLearner</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/learning.py"><code>learning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">18.34</td> <td align="left">AdaBoost</td> <td align="left"><code>AdaBoost</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/learning.py"><code>learning.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">19.2</td> <td align="left">Current-Best-Learning</td> <td align="left"><code>current_best_learning</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/knowledge.py"><code>knowledge.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">19.3</td> <td align="left">Version-Space-Learning</td> <td align="left"><code>version_space_learning</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/knowledge.py"><code>knowledge.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">19.8</td> <td align="left">Minimal-Consistent-Det</td> <td align="left"><code>minimal_consistent_det</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/knowledge.py"><code>knowledge.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">19.12</td> <td align="left">FOIL</td> <td align="left"><code>FOIL_container</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/knowledge.py"><code>knowledge.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">21.2</td> <td align="left">Passive-ADP-Agent</td> <td align="left"><code>PassiveADPAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/rl.py"><code>rl.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">21.4</td> <td align="left">Passive-TD-Agent</td> <td align="left"><code>PassiveTDAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/rl.py"><code>rl.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">21.8</td> <td align="left">Q-Learning-Agent</td> <td align="left"><code>QLearningAgent</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/rl.py"><code>rl.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">22.1</td> <td align="left">HITS</td> <td align="left"><code>HITS</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/nlp.py"><code>nlp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">23</td> <td align="left">Chart-Parse</td> <td align="left"><code>Chart</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/nlp.py"><code>nlp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">23.5</td> <td align="left">CYK-Parse</td> <td align="left"><code>CYK_parse</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/nlp.py"><code>nlp.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> <tr> <td align="left">25.9</td> <td align="left">Monte-Carlo-Localization</td> <td align="left"><code>monte_carlo_localization</code></td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/probability.py"><code>probability.py</code></a></td> <td align="left">Done</td> <td align="left">Included</td> </tr> </tbody> </table> <h1>Index of data structures</h1> <p>Here is a table of the implemented data structures, the figure, name of the implementation in the repository, and the file where they are implemented.</p> <table> <thead> <tr> <th align="left"><strong>Figure</strong></th> <th align="left"><strong>Name (in repository)</strong></th> <th align="left"><strong>File</strong></th> </tr> </thead> <tbody> <tr> <td align="left">3.2</td> <td align="left">romania_map</td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> </tr> <tr> <td align="left">4.9</td> <td align="left">vacumm_world</td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> </tr> <tr> <td align="left">4.23</td> <td align="left">one_dim_state_space</td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> </tr> <tr> <td align="left">6.1</td> <td align="left">australia_map</td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/search.py"><code>search.py</code></a></td> </tr> <tr> <td align="left">7.13</td> <td align="left">wumpus_world_inference</td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> </tr> <tr> <td align="left">7.16</td> <td align="left">horn_clauses_KB</td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/logic.py"><code>logic.py</code></a></td> </tr> <tr> <td align="left">17.1</td> <td align="left">sequential_decision_environment</td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/mdp.py"><code>mdp.py</code></a></td> </tr> <tr> <td align="left">18.2</td> <td align="left">waiting_decision_tree</td> <td align="left"><a href="https://raw.githubusercontent.com/aimacode/aima-python/master/learning.py"><code>learning.py</code></a></td> </tr> </tbody> </table> <h1>Acknowledgements</h1> <p>Many thanks for contributions over the years. I got bug reports, corrected code, and other support from Darius Bacon, Phil Ruggera, Peng Shao, Amit Patil, Ted Nienstedt, Jim Martin, Ben Catanzariti, and others. Now that the project is on GitHub, you can see the <a href="https://github.com/aimacode/aima-python/graphs/contributors">contributors</a> who are doing a great job of actively improving the project. Many thanks to all contributors, especially <a href="https://github.com/darius">@darius</a>, <a href="https://github.com/SnShine">@SnShine</a>, <a href="https://github.com/reachtarunhere">@reachtarunhere</a>, <a href="https://github.com/antmarakis">@antmarakis</a>, <a href="https://github.com/Chipe1">@Chipe1</a>, <a href="https://github.com/ad71">@ad71</a> and <a href="https://github.com/MariannaSpyrakou">@MariannaSpyrakou</a>.</p> <!--Reference Links--> + + + AccumulateMore/CV + 2023-09-24T01:54:10Z + tag:github.com,2023-09-24:/AccumulateMore/CV + + <p>✔(已完结)最全面的 深度学习 笔记【土堆 Pytorch】【李沐 动手学深度学习】【吴恩达 深度学习】</p><hr><h1>最全面的 深度学习 笔记</h1> <p>Pytorch 视频讲解【主讲人:土堆】【对应笔记:100-122】</p> <ol> <li><a href="https://www.bilibili.com/video/BV1hE411t7RN?spm_id_from=333.337.search-card.all.click">https://www.bilibili.com/video/BV1hE411t7RN?spm_id_from=333.337.search-card.all.click</a></li> </ol> <p>深度学习 视频讲解【主讲人:李沐】【对应笔记:200-268】</p> <ol> <li><a href="https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497">https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497</a></li> </ol> <p>深度学习 视频讲解【主讲人:吴恩达】【对应笔记:300-354】</p> <ol> <li><a href="https://www.bilibili.com/video/BV1FT4y1E74V?spm_id_from=333.337.search-card.all.click&amp;vd_source=c9745e4447536b28b2b0735071d30bd6">https://www.bilibili.com/video/BV1FT4y1E74V?spm_id_from=333.337.search-card.all.click&amp;vd_source=c9745e4447536b28b2b0735071d30bd6</a></li> </ol> <p>土堆&amp;李沐&amp;吴恩达 数据集:</p> <ol> <li>链接:<a href="https://pan.baidu.com/s/1Fjw3o1Jr_-yOabpXyLXLNA">https://pan.baidu.com/s/1Fjw3o1Jr_-yOabpXyLXLNA</a> 提取码:eal7</li> </ol> <p>备注:</p> <ol> <li>在线观看笔记时,有时会出现图片(或公式)显示不完整,这是Github网站没有解析好,笔记下载到本地观看就正常了。不会下载笔记的,百度查一下"Github如何下载文件"。</li> <li>笔记是用 Anaconda 的 Jupyter Notebook 打开的,不会打开的,百度查一下"Anaconda如何打开jupyter notebook文件",或者我的主页Python仓库里面"00_Python编辑器"里面有写。</li> <li>安装 Jupyter Notebook 的目录插件,可以快速通过目录,跳转到相应的章节,如下图所示。不会安装目录的,百度查一下"jupyter notebook如何安装目录",或者我的主页Python仓库里面"00_Python编辑器"里面有相关链接。</li> </ol> <p><img src="https://github.com/AccumulateMore/CV/assets/60348867/20b6a8e9-ad05-4940-93b9-ab63dc75bb7b" alt="ae3cce2d56a4953972ed4201c085722"></p> <p>补充:</p> <p>我的Github主页,还有其他优秀视频的笔记,希望能帮助到你~~</p> <ol> <li><a href="https://github.com/AccumulateMore">https://github.com/AccumulateMore</a></li> </ol> <p>我的知乎主页,还有其他领域的笔记,希望能帮助到你~~</p> <ol> <li><a href="https://www.zhihu.com/people/bao-bei-ru-huai">https://www.zhihu.com/people/bao-bei-ru-huai</a></li> </ol> <p>"♥我的笔记,希望对你有帮助♥"</p> <p>♥小声哔哔:你的star,是我更新的动力~♥</p> <hr> <hr> <p>搭建交流群,帮助孤单的自学者交流</p> <table> <thead> <tr> <th>【深度学习 学习交流①群】</th> <th>【深度学习 学习交流②群】</th> <th>微信</th> </tr> </thead> <tbody> <tr> <td><img src="https://github.com/AccumulateMore/CV/assets/60348867/c99750a2-89c0-45ed-bf42-e8f63a222d60" alt="312f346ad393a2f617f21da7ffec9d8"><br></td> <td><img src="https://github.com/AccumulateMore/CV/assets/60348867/d6c44e7b-8349-4de3-b91b-ed62ee7c1544" alt="2f44c2648aaf04f393162501e9e4e0a"><br></td> <td><img src="https://github.com/AccumulateMore/CV/assets/60348867/0d3f05f6-ba72-4a1d-9c5b-6d5f0c8eb8f8" alt="ad9bc1ef4eccf11a0e521dec10968d3"><br></td> </tr> </tbody> </table> <p>看人之短,天下无一可交之人。看人之长,世间一切皆是吾师。</p> <p>补充说明:本人仅搭建并管理群【发广告踢】,不在群内答疑,群友互相交流答疑。</p> <hr> <hr> <p>帮朋友内推,帮你们就业,有意向的可以投简历</p> <p>联影医疗 地点(自选):上海、北京、深圳、武汉、广州、成都、西安、沈阳、三亚等</p> <p>内推人:联影老员工</p> <p>内推入口(校招、社招):<a href="https://neitui.italent.cn/united-imaging/sharejobs?shareId=9d052226-87e4-4fb9-942b-f6f83abfb1cd">https://neitui.italent.cn/united-imaging/sharejobs?shareId=9d052226-87e4-4fb9-942b-f6f83abfb1cd</a></p> <p>岗位职责:</p> <p>参与联影集团产品的AI算法开发工作或图形算法开发工作,负责下列至少一项工作:</p> <ol> <li>负责提供产品级高端算法解决方案,包括:联影通用软件平台、联影高级应用后处理工作站、联影智能uAl平台、联影机器人手术规划与导航、MR/CT/RT/MI/US事业部的算法需求、科研院所和医院的前瞻性研究项目等;参与创新技术的产品化工作。</li> <li>医学图像3D渲染算法和应用维护与开发,利用图像处理和人工智能技术,从事医学图像处理领域相关算法的设计和研发。</li> </ol> <p>任职要求:</p> <ol> <li>熟悉机器视觉原理,熟悉以下领域之一:3D重建、立体视觉、SLAM、通用图像视频分类、目标检测、人体姿态估计。</li> <li>熟悉以下医学图像后处理算法之一:图形算法、重建算法、分割算法、检测算法、分类算法、配准算法、深度学习算法、流体力学算法、灌注算法、纹理分析算法等。</li> </ol> <p>岗位职责:</p> <ol> <li>负责音频信号处理和识别相关算法的研究和实现,包含但不限于回声消除、麦克风阵列、盲源分离等技术。</li> <li>负责深度学习、神经网络等AI音频算法的研究和实现。</li> </ol> <p>任职要求:</p> <ol> <li>扎实的数学理论及数字信号处理基础,掌握Matlab及C/C++语言编程。</li> <li>有语音、音频信号处理(降噪,回声消除、麦阵、音效等)相关经验者。</li> <li>有深度学习、神经网络、智能语音识别相关研究。</li> </ol> <p>岗位职责:</p> <ol> <li>负责大语言模型方面的算法开发、优化、应用落地。</li> <li>负责相应AI解决方案设计,参与关键技术研发,攻关技术难点。</li> <li>负责设计和实现大语言模型相关的算法和模型实现,研究并设计新是算法和模型,解决大语言模型应用问题。</li> <li>负责开发和优化大语言模型的训练过程,设计并实现大语言模型的训练算法和策略,配置和优化训练的超参数和计算资源,保证模型的训练效果和效率。</li> <li>负责构建和管理大规模医疗文本数据集,用于模型预训练和微调,完成不用场景下的下游任务。</li> <li>负责进行大语言模型的评估和验证,设计评估指标和实验;设计和实施评估指标和实验,对训练好的大语言模型进行性能评估和分析。识别模型的弱点和改进空间,提出相应的改进策略和方法。</li> <li>参与高校、科研、医疗机构科研合作,协助科研成果落地转化。</li> </ol> <p>任职要求:</p> <ol> <li>具有机器学习、自然语言处理、医学影像分析,或相关领域的学习和研究。</li> <li>有预训练大语言模型或GPT模型等相关研究开发经验。</li> <li>在机器学习(ICML,NeurlPS、ICLR等)、计算机视觉(CVPR、ICCV、ECCV等)、自然语言处理(ACL,EMN LP等)和医疗影像分析(MICCAI、IPMI)等顶级会议,或者顶级期刊(IEEE T-PAMI,IEEE TMI、Medical lmage An alysis)发表过相关论文。</li> <li>具有人工智能相关专业(计算机视觉、机器学习、医疗图像分析等)硕士及以上学位。</li> <li>能熟练使用英语。</li> </ol> <p>合众汽车(自动驾驶部门) 地点:上海</p> <p>内推人:项目组某leader</p> <p>岗位职责:</p> <ol> <li>负责智能驾驶检测跟踪及相关方向的算法研发工作。</li> <li>工作内容包括但不限于:基于图像的物体检测跟踪,交通标志/标线检测。</li> </ol> <p>任职要求:</p> <ol> <li>熟悉常用的深度学习框架,有实际的深度学习模型设计训练经验。</li> <li>具备扎实的编程能力,熟练掌握C++编程语言。</li> </ol> <p>备注:</p> <ol> <li>初学者也可以根据市场上就业需求,去学习自己。</li> <li>能内推简历的,也可以联系我,把岗位职责、任职要求发给我【你收公司内推奖金、ta们就业,双赢】。</li> </ol> <hr> <hr> <p>提供简历指导服务,指导写项目经历、教育经历、自我评价等</p> <p><img src="https://github.com/AccumulateMore/CV/assets/60348867/5b13bb46-b426-4144-a5fd-340f75f668f3" alt="UVCkSLQLig"></p> <p>以前我毕业时,技能书写,可以借鉴</p> <p>用了几个技巧,分享给大家:</p> <ol> <li>技能只写掌握了XX,没掌握不要写,掌握且更熟练的放前面,掌握但不熟练的放后面。</li> <li>写掌握某项技能时,后面要论证自己真的掌握了,提供相关经历,方便面试官切入询问。</li> <li>围绕算法岗展开技能阐述,从编程语言、到深度学习框架、到图像处理算法、服务器数据库存储图像等。</li> <li>只写岗位需要的技能,与算法岗不需要的硬件知识、组织能力等不要写,让简历更高匹配算法岗。</li> <li>掌握一种类别技能,只占一行,不要有的两行、有的一行,看着不整齐。</li> </ol> <p>面试官及HR会看着感觉整齐、可信、岗位匹配度高。</p> <p>"♥君子藏器于身,待时而动……♥"</p> <hr> <hr> <p>"♥我们读书是为了成为提灯人去照亮黑暗,而不是为了自己有灯而沾沾自喜还要去吹灭别人的蜡烛♥"</p> + + + ray-project/llm-applications + 2023-09-24T01:54:10Z + tag:github.com,2023-09-24:/ray-project/llm-applications + + <p>A comprehensive guide to building RAG-based LLM applications for production.</p><hr><h1>LLM Applications</h1> <p>A comprehensive guide to building RAG-based LLM applications for production.</p> <ul> <li><strong>Blog post</strong>: <a href="https://www.anyscale.com/blog/a-comprehensive-guide-for-building-rag-based-llm-applications-part-1">https://www.anyscale.com/blog/a-comprehensive-guide-for-building-rag-based-llm-applications-part-1</a></li> <li><strong>GitHub repository</strong>: <a href="https://github.com/ray-project/llm-applications">https://github.com/ray-project/llm-applications</a></li> <li><strong>Interactive notebook</strong>: <a href="https://github.com/ray-project/llm-applications/raw/main/notebooks/rag.ipynb">https://github.com/ray-project/llm-applications/blob/main/notebooks/rag.ipynb</a></li> <li><strong>Anyscale Endpoints</strong>: <a href="https://endpoints.anyscale.com/">https://endpoints.anyscale.com/</a></li> <li><strong>Ray documentation</strong>: <a href="https://docs.ray.io/">https://docs.ray.io/</a></li> </ul> <p>In this guide, we will learn how to:</p> <ul> <li>💻 Develop a retrieval augmented generation (RAG) based LLM application from scratch.</li> <li>🚀 Scale the major components (load, chunk, embed, index, serve, etc.) in our application.</li> <li>✅ Evaluate different configurations of our application to optimize for both per-component (ex. retrieval_score) and overall performance (quality_score).</li> <li>🔀 Implement LLM hybrid routing approach to bridge the gap b/w OSS and closed LLMs.</li> <li>📦 Serve the application in a highly scalable and available manner.</li> <li>💥 Share the 1st order and 2nd order impacts LLM applications have had on our products.</li> </ul> <br> <img width="800" src="https://images.ctfassets.net/xjan103pcp94/7FWrvPPlIdz5fs8wQgxLFz/fdae368044275028f0544a3d252fcfe4/image15.png"> <h2>Setup</h2> <h3>API keys</h3> <p>We'll be using <a href="https://platform.openai.com/docs/models/">OpenAI</a> to access ChatGPT models like <code>gpt-3.5-turbo</code>, <code>gpt-4</code>, etc. and <a href="https://endpoints.anyscale.com/">Anyscale Endpoints</a> to access OSS LLMs like <code>Llama-2-70b</code>. Be sure to create your accounts for both and have your credentials ready.</p> <h3>Compute</h3> <details> <summary>Local</summary> You could run this on your local laptop but a we highly recommend using a setup with access to GPUs. You can set this up on your own or on [Anyscale](http://anyscale.com/). </details> <details open> <summary>Anyscale</summary> <br> <ul> <li>Start a new <a href="https://console.anyscale-staging.com/o/anyscale-internal/workspaces">Anyscale workspace on staging</a> using an <a href="https://instances.vantage.sh/aws/ec2/g3.8xlarge"><code>g3.8xlarge</code></a> head node, which has 2 GPUs and 32 CPUs. We can also add GPU worker nodes to run the workloads faster. If you're not on Anyscale, you can configure a similar instance on your cloud.</li> <li>Use the <a href="https://docs.anyscale.com/reference/base-images/ray-262/py39#ray-2-6-2-py39"><code>default_cluster_env_2.6.2_py39</code></a> cluster environment.</li> <li>Use the <code>us-west-2</code> if you'd like to use the artifacts in our shared storage (source docs, vector DB dumps, etc.).</li> </ul> </details> <h3>Repository</h3> <pre><code class="language-bash">git clone https://github.com/ray-project/llm-applications.git . git config --global user.name &lt;GITHUB-USERNAME&gt; git config --global user.email &lt;EMAIL-ADDRESS&gt; </code></pre> <h3>Data</h3> <p>Our data is already ready at <code>/efs/shared_storage/goku/docs.ray.io/en/master/</code> (on Staging, <code>us-east-1</code>) but if you wanted to load it yourself, run this bash command (change <code>/desired/output/directory</code>, but make sure it's on the shared storage, so that it's accessible to the workers)</p> <pre><code class="language-bash">git clone https://github.com/ray-project/llm-applications.git . </code></pre> <h3>Environment</h3> <p>Then set up the environment correctly by specifying the values in your <code>.env</code> file, and installing the dependencies:</p> <pre><code class="language-bash">pip install --user -r requirements.txt export PYTHONPATH=$PYTHONPATH:$PWD pre-commit install pre-commit autoupdate </code></pre> <h3>Credentials</h3> <pre><code class="language-bash">touch .env # Add environment variables to .env OPENAI_API_BASE="https://api.openai.com/v1" OPENAI_API_KEY="" # https://platform.openai.com/account/api-keys ANYSCALE_API_BASE="https://api.endpoints.anyscale.com/v1" ANYSCALE_API_KEY="" # https://app.endpoints.anyscale.com/credentials DB_CONNECTION_STRING="dbname=postgres user=postgres host=localhost password=postgres" source .env </code></pre> <p>Now we're ready to go through the <a href="https://raw.githubusercontent.com/ray-project/llm-applications/main/notebooks/rag.ipynb">rag.ipynb</a> interactive notebook to develop and serve our LLM application!</p> <h3>Learn more</h3> <ul> <li>If your team is investing heavily in developing LLM applications, <a href="mailto:endpoints-help@anyscale.com">reach out</a> to us to learn more about how <a href="https://github.com/ray-project/ray">Ray</a> and <a href="http://anyscale.com/">Anyscale</a> can help you scale and productionize everything.</li> <li>Start serving (+fine-tuning) OSS LLMs with <a href="https://endpoints.anyscale.com/">Anyscale Endpoints</a> ($1/M tokens for <code>Llama-2-70b</code>) and private endpoints available upon request (1M free tokens trial).</li> <li>Learn more about how companies like OpenAI, Netflix, Pinterest, Verizon, Instacart and others leverage Ray and Anyscale for their AI workloads at the <a href="https://raysummit.anyscale.com/">Ray Summit 2023</a> this Sept 18-20 in San Francisco.</li> </ul> + + \ No newline at end of file diff --git a/kaitai-struct/daily/index.xml b/kaitai-struct/daily/index.xml index d0afbe4b1e0..268966b1842 100644 --- a/kaitai-struct/daily/index.xml +++ b/kaitai-struct/daily/index.xml @@ -1,7 +1,7 @@ GitHub Kaitai Struct Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:48Z + 2023-09-24T01:34:32Z Daily Trending of Kaitai Struct in GitHub \ No newline at end of file diff --git a/kaitai-struct/weekly/index.xml b/kaitai-struct/weekly/index.xml new file mode 100644 index 00000000000..4511d6c94a0 --- /dev/null +++ b/kaitai-struct/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Kaitai Struct Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:34Z + Weekly Trending of Kaitai Struct in GitHub + + \ No newline at end of file diff --git a/kakounescript/daily/index.xml b/kakounescript/daily/index.xml index 1c86a022a7b..1e9ce45ce57 100644 --- a/kakounescript/daily/index.xml +++ b/kakounescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub KakouneScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:49Z + 2023-09-24T01:34:35Z Daily Trending of KakouneScript in GitHub \ No newline at end of file diff --git a/kakounescript/weekly/index.xml b/kakounescript/weekly/index.xml new file mode 100644 index 00000000000..6fc4450811d --- /dev/null +++ b/kakounescript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub KakouneScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:36Z + Weekly Trending of KakouneScript in GitHub + + \ No newline at end of file diff --git a/kicad-layout/daily/index.xml b/kicad-layout/daily/index.xml index cf9ce26aba6..96ed8c79abc 100644 --- a/kicad-layout/daily/index.xml +++ b/kicad-layout/daily/index.xml @@ -1,7 +1,7 @@ GitHub KiCad Layout Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:54Z + 2023-09-24T01:34:37Z Daily Trending of KiCad Layout in GitHub \ No newline at end of file diff --git a/kicad-layout/weekly/index.xml b/kicad-layout/weekly/index.xml new file mode 100644 index 00000000000..292392fe50f --- /dev/null +++ b/kicad-layout/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub KiCad Layout Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:40Z + Weekly Trending of KiCad Layout in GitHub + + \ No newline at end of file diff --git a/kicad-legacy-layout/daily/index.xml b/kicad-legacy-layout/daily/index.xml index 8ca8f71e279..3cd9b64cf68 100644 --- a/kicad-legacy-layout/daily/index.xml +++ b/kicad-legacy-layout/daily/index.xml @@ -1,7 +1,7 @@ GitHub KiCad Legacy Layout Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:52Z + 2023-09-24T01:34:38Z Daily Trending of KiCad Legacy Layout in GitHub \ No newline at end of file diff --git a/kicad-legacy-layout/weekly/index.xml b/kicad-legacy-layout/weekly/index.xml new file mode 100644 index 00000000000..43f58b9e0cb --- /dev/null +++ b/kicad-legacy-layout/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub KiCad Legacy Layout Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:41Z + Weekly Trending of KiCad Legacy Layout in GitHub + + \ No newline at end of file diff --git a/kicad-schematic/daily/index.xml b/kicad-schematic/daily/index.xml index d38d508bd2a..b1ce6020c5e 100644 --- a/kicad-schematic/daily/index.xml +++ b/kicad-schematic/daily/index.xml @@ -1,7 +1,7 @@ GitHub KiCad Schematic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:52Z + 2023-09-24T01:34:36Z Daily Trending of KiCad Schematic in GitHub \ No newline at end of file diff --git a/kicad-schematic/weekly/index.xml b/kicad-schematic/weekly/index.xml new file mode 100644 index 00000000000..e7ad81ddc9c --- /dev/null +++ b/kicad-schematic/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub KiCad Schematic Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:38Z + Weekly Trending of KiCad Schematic in GitHub + + \ No newline at end of file diff --git a/kit/daily/index.xml b/kit/daily/index.xml index 7b5e7eb66ac..559c0a5cbeb 100644 --- a/kit/daily/index.xml +++ b/kit/daily/index.xml @@ -1,7 +1,7 @@ GitHub Kit Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:55Z + 2023-09-24T01:34:40Z Daily Trending of Kit in GitHub \ No newline at end of file diff --git a/kit/weekly/index.xml b/kit/weekly/index.xml new file mode 100644 index 00000000000..2bde8cf1bb0 --- /dev/null +++ b/kit/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Kit Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:43Z + Weekly Trending of Kit in GitHub + + \ No newline at end of file diff --git a/kotlin/daily/index.xml b/kotlin/daily/index.xml index 62973346151..afde5de0342 100644 --- a/kotlin/daily/index.xml +++ b/kotlin/daily/index.xml @@ -1,7 +1,14 @@ GitHub Kotlin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:00Z + 2023-09-24T01:34:44Z Daily Trending of Kotlin in GitHub + + polina4096/voices + 2023-09-24T01:34:44Z + tag:github.com,2023-09-24:/polina4096/voices + + <p>record and listen to voice messages in your favorite IDE by JetBrains</p><hr><h1>Voices <a href="https://github.com/polina4096/voices/raw/mistress/LICENSE"><img src="https://img.shields.io/github/license/polina4096/voices" alt="GitHub"></a></h1> <p>Record and listen to voice messages in your favorite IDE by JetBrains: <a href="https://plugins.jetbrains.com/plugin/22766-voices">https://plugins.jetbrains.com/plugin/22766-voices</a></p> <p><a href="https://github.com/polina4096/voices/assets/33405371/b9c2ba99-c255-45f8-b6a3-7a5b624d82a8">https://github.com/polina4096/voices/assets/33405371/b9c2ba99-c255-45f8-b6a3-7a5b624d82a8</a></p> <h2>Usage</h2> <p>To record a voice message comment run "Record Voice Message", or go to "Edit" &gt; "Record Voice Message"</p> <h2>License</h2> <p>Distributed under the GPLv3 license.</p> + \ No newline at end of file diff --git a/kotlin/weekly/index.xml b/kotlin/weekly/index.xml new file mode 100644 index 00000000000..e554b892dcd --- /dev/null +++ b/kotlin/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Kotlin Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:46Z + Weekly Trending of Kotlin in GitHub + + + gkd-kit/gkd + 2023-09-24T01:54:46Z + tag:github.com,2023-09-24:/gkd-kit/gkd + + <p>基于 无障碍 + 高级选择器 + 订阅规则 的自定义屏幕点击 Android APP</p><hr><h1>gkd</h1> <p>基于 <strong>无障碍</strong> + <strong>高级选择器</strong> + <strong>订阅规则</strong> 的自定义屏幕点击 APP</p> <h2>安装</h2> <ul> <li><a href="https://github.com/gkd-kit/gkd/releases">releases</a></li> <li><a href="https://lisonge.lanzouy.com/b06e1zoef">蓝奏云</a> 密码: gkd</li> </ul> <h2>功能</h2> <p>基于 <a href="https://github.com/gkd-kit/selector">高级选择器</a> + <a href="https://github.com/gkd-kit/subscription">订阅规则</a> + <a href="https://github.com/gkd-kit/inspect">快照审查</a>, 它可以实现</p> <ul> <li>点击跳过任意开屏广告/点击关闭应用内部任意弹窗广告, 如关闭百度贴吧帖子广告卡片/知乎回答底部推荐广告卡片</li> <li>一些快捷操作, 如微信电脑登录自动同意/微信扫描登录自动同意/微信自动领取红包</li> </ul> <table> <thead> <tr> <th></th> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/65df91a7-fe9a-4701-914b-2b52723b01c9" alt="image"></td> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/29b7c72a-b19a-4806-87e2-ece7719688f6" alt="image"></td> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/b5764948-8b79-4230-b37b-5427112d48ce" alt="image"></td> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/ebded716-ce90-47eb-bae1-7720697a2a14" alt="image"></td> </tr> <tr> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/2cc4f2e9-9241-4f49-aec6-9f7b43ea61c0" alt="image"></td> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/ba30ef9a-83ae-4be2-8802-e150aacaf140" alt="image"></td> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/ac41a57e-a498-46d1-a2cc-369103f8896a" alt="image"></td> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/ca3323c2-436d-4571-bc5d-e72e5b7fcf6f" alt="image"></td> </tr> </tbody> </table> <h2>效果</h2> <table> <thead> <tr> <th></th> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td><img src="https://github.com/gkd-kit/subscription/assets/38517192/32cfda78-b2e1-456c-8d85-bfb2bc4683aa" alt="image"> 微信自动领取红包</td> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/ec0e9465-13d2-422b-97e2-644357ea564b" alt="image"> 关闭微信朋友圈广告</td> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/cd4554f3-dd9f-431b-8e6d-6cfe7ac430ec" alt="image"> 关闭酷安字节 SDK 广告</td> <td><img src="https://github.com/gkd-kit/gkd/assets/38517192/576a7a6d-5196-4184-8b24-980434dfb15a" alt="image"> 关闭贴吧开屏广告及内部广告</td> </tr> </tbody> </table> + + + android/codelab-android-compose + 2023-09-24T01:54:46Z + tag:github.com,2023-09-24:/android/codelab-android-compose + + <p></p><hr><h1>Jetpack Compose Codelabs</h1> <p>This repository contains a set of Android Studio projects to help you learn about Compose in Android. Each sample contains the code for a specific Compose codelab.</p> <p>For more information about Jetpack Compose, please <a href="https://developer.android.com/jetpack/compose">read the documentation</a></p> <h2>💻 Requirements</h2> <p><a href="https://developer.android.com/studio">Android Studio Chipmunk</a>.</p> <h2>🧬 Codelabs</h2> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-basics">Basics codelabs</a></h3> <p>Go hands-on and learn the fundamentals of declarative UI, working with state, layouts and theming.</p> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-layouts">Basic layouts codelab</a></h3> <p>Learn how to implement real-world designs with the composables and modifiers that Compose provides out of the box.</p> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-state">State codelab</a></h3> <p>Understand patterns for working with state in a declarative world by building a Wellness application.</p> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-theming">Theming codelab</a></h3> <p>Go hands on with Compose’s implementation of Material Design to understand how to theme an application’s colors, typography and shapes and support light and dark themes.</p> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-migration">Migration codelab</a></h3> <p>Understand how Jetpack Compose and View-based UIs can co-exist and interact, making it easy to adopt Compose at your own pace.</p> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-animation">Animation codelab</a></h3> <p>Learn how to use Jetpack Compose Animation APIs.</p> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-navigation">Navigation codelab</a></h3> <p>Learn how to use the Jetpack Navigation library in Compose, navigate within your application, navigate with arguments, support deep-links, and test your navigation.</p> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-testing">Testing codelab</a></h3> <p>Learn about testing Jetpack Compose UIs. Write your first tests, and learn about testing in isolation, debugging tests, the semantics tree, and test synchronization.</p> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-accessibility">Accessibility codelab</a></h3> <p>Learn about the various ways to improve an app’s accessibility. Increase touch target sizes, add content descriptions, create custom actions, and more.</p> <h3><a href="https://developer.android.com/codelabs/jetpack-compose-adaptability">Adaptive codelab</a></h3> <p>Learn how to build adaptive apps for phones, tablets and foldables with Jetpack Compose. Improve reachability and ergonomics of your app with Material navigation components.</p> <h2>License</h2> <pre><code>Copyright 2021 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </code></pre> + + + AntiNeko/CatBoxForAndroid + 2023-09-24T01:54:46Z + tag:github.com,2023-09-24:/AntiNeko/CatBoxForAndroid + + <p>CatBox is a universal proxy program for Android using sing-box. It was adapted from NekoBoxForAndroid, removing some unappealing content and improving the experience in some cases.</p><hr><h1>CatBox for Android</h1> <p><a href="https://android-arsenal.com/api?level=21"><img src="https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat" alt="API"></a> <a href="https://github.com/AntiNeko/CatBoxForAndroid/releases"><img src="https://img.shields.io/github/v/release/AntiNeko/CatBoxForAndroid" alt="Releases"></a> <a href="https://www.gnu.org/licenses/gpl-3.0"><img src="https://img.shields.io/badge/license-GPL--3.0-orange.svg?sanitize=true" alt="License: GPL-3.0"></a></p> <p>sing-box / universal proxy toolchain for Android.</p> <p>一款使用 sing-box 的 Android 通用代理软件。</p> <p>改编自 <a href="https://github.com/MatsuriDayo/NekoBoxForAndroid">NekoBoxForAndroid</a>,移除了一些不令人喜欢的内容,改进了部分情况下的体验。</p> <h2>下载 / Downloads</h2> <h3>GitHub Releases</h3> <p><a href="https://github.com/AntiNeko/CatBoxForAndroid/releases"><img src="https://img.shields.io/github/downloads/AntiNeko/CatBoxForAndroid/total?label=downloads-total&amp;logo=github&amp;style=flat-square" alt="GitHub All Releases"></a></p> <p><a href="https://github.com/AntiNeko/CatBoxForAndroid/releases">下载</a></p> <h3>F-Droid</h3> <p><a href="https://apt.izzysoft.de/fdroid/"><img src="https://img.shields.io/badge/F--droid-IzzySoft-blue?logo=fdroid" alt="IzzySoft"></a></p> <p><a href="https://apt.izzysoft.de/fdroid/index/apk/moe.cb4a">下载 (IzzySoft)</a></p> <h2>更改记录 &amp; 发布频道 / Changelog &amp; Telegram channel</h2> <p><a href="https://t.me/AntiNek0">https://t.me/AntiNek0</a></p> <h2>项目主页 &amp; 文档 / Homepage &amp; Documents</h2> <p><a href="https://AntiNeko.github.io">https://AntiNeko.github.io</a></p> <h2>代理 / Proxy</h2> <ul> <li>SOCKS (4/4a/5)</li> <li>HTTP(S)</li> <li>SSH</li> <li>Shadowsocks</li> <li>VMess</li> <li>VLESS</li> <li>WireGuard</li> <li>Trojan</li> <li>Trojan-Go ( trojan-go-plugin )</li> <li>NaïveProxy ( naive-plugin )</li> <li>Hysteria ( hysteria-plugin )</li> <li>TUIC</li> </ul> <p>请到<a href="https://AntiNeko.github.io/m-plugin/">这里</a>下载插件。</p> <p>Please visit <a href="https://AntiNeko.github.io/m-plugin/">here</a> to download plugins.</p> <h2>订阅 / Subscription</h2> <ul> <li>Raw: some widely used formats (like shadowsocks, clash and v2rayN)</li> <li>原始格式:一些广泛使用的格式(如 shadowsocks、clash 和 v2rayN)</li> </ul> <h2>开发 / Development</h2> <h3>编译</h3> <h4>获取源代码</h4> <pre><code class="language-shell">git clone https://github.com/AntiNeko/CatBoxForAndroid.git </code></pre> <h4>libcore</h4> <p>环境:</p> <ul> <li>java-8-openjdk</li> <li>go (版本应尽可能新)</li> </ul> <p>运行:</p> <pre><code class="language-shell">./run lib core </code></pre> <p>得到 <code>app/libs/libcore.aar</code></p> <p>目前需要使用 <a href="https://github.com/MatsuriDayo/gomobile">带有 <code>-cache</code> 选项的 gomobile</a> 编译,如果 GOPATH 中不存在 gomobile 则会自动下载编译。</p> <h4>Dashboard</h4> <p>请确保已设置好正确的 Node 环境(pnpm 等)。</p> <pre><code class="language-shell">DASHBOARD_NAME=metacubexd # Or Yacd-meta ./run dashboard init $DASHBOARD_NAME </code></pre> <h4>apk</h4> <p>环境:</p> <ul> <li>jdk-17-openjdk</li> <li>ndk 25.0.8775105</li> </ul> <p>如果没有环境变量 <code>$ANDROID_HOME</code> 和 <code>$ANDROID_NDK_HOME</code> 可以运行脚本 <code>buildScript/init/env_ndk.sh</code></p> <pre><code class="language-shell">echo "sdk.dir=${ANDROID_HOME}" &gt; local.properties echo "ndk.dir=${ANDROID_HOME}/ndk/25.0.8775105" &gt;&gt; local.properties </code></pre> <p>签名准备(可选,建议编译后再签名):替换 <code>release.keystore</code> 为自己的。</p> <pre><code class="language-shell">export KEYSTORE_PASS= export ALIAS_NAME= export ALIAS_PASS= </code></pre> <p>以上这只是举例,实际使用请勿直接把密码信息放入环境变量,建议在编译后自行签名。</p> <p>下载 geo 资源文件:</p> <pre><code class="language-shell">./run init action gradle </code></pre> <p>正式编译:</p> <pre><code class="language-shell">./gradlew app:assembleOssRelease </code></pre> <p>在 <code>app/build/outputs/apk</code> 得到 apk 文件。</p> <h2>Credits</h2> <p>Core:</p> <ul> <li><a href="https://github.com/SagerNet/sing-box">SagerNet/sing-box</a></li> <li><a href="https://github.com/MatsuriDayo/sing-box-extra">Matsuridayo/sing-box-extra</a></li> </ul> <p>Android GUI:</p> <ul> <li><a href="https://github.com/shadowsocks/shadowsocks-android">shadowsocks/shadowsocks-android</a></li> <li><a href="https://github.com/SagerNet/SagerNet">SagerNet/SagerNet</a></li> <li><a href="https://github.com/MatsuriDayo/Matsuri">Matsuridayo/Matsuri</a></li> <li><a href="https://github.com/MatsuriDayo/NekoBoxForAndroid">MatsuriDayo/NekoBoxForAndroid</a></li> </ul> <p>Web Dashboard:</p> <ul> <li><a href="https://github.com/MetaCubeX/Yacd-meta">MetaCubeX/Yacd-meta</a></li> <li><a href="https://github.com/MetaCubeX/metacubexd">MetaCubeX/metacubexd</a></li> </ul> + + \ No newline at end of file diff --git a/krl/daily/index.xml b/krl/daily/index.xml index 40af780ad74..f0fd8398543 100644 --- a/krl/daily/index.xml +++ b/krl/daily/index.xml @@ -1,7 +1,7 @@ GitHub KRL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:56Z + 2023-09-24T01:34:39Z Daily Trending of KRL in GitHub \ No newline at end of file diff --git a/krl/weekly/index.xml b/krl/weekly/index.xml new file mode 100644 index 00000000000..b298d3cd1fa --- /dev/null +++ b/krl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub KRL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:43Z + Weekly Trending of KRL in GitHub + + \ No newline at end of file diff --git a/kusto/daily/index.xml b/kusto/daily/index.xml index 9462a1e84be..90e076260b3 100644 --- a/kusto/daily/index.xml +++ b/kusto/daily/index.xml @@ -1,7 +1,7 @@ GitHub Kusto Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:30:57Z + 2023-09-24T01:34:41Z Daily Trending of Kusto in GitHub \ No newline at end of file diff --git a/kusto/weekly/index.xml b/kusto/weekly/index.xml new file mode 100644 index 00000000000..e6373afd1a8 --- /dev/null +++ b/kusto/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Kusto Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:42Z + Weekly Trending of Kusto in GitHub + + \ No newline at end of file diff --git a/kvlang/daily/index.xml b/kvlang/daily/index.xml index 8a6925507d8..1c46e552939 100644 --- a/kvlang/daily/index.xml +++ b/kvlang/daily/index.xml @@ -1,7 +1,7 @@ GitHub kvlang Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:09Z + 2023-09-24T01:34:52Z Daily Trending of kvlang in GitHub \ No newline at end of file diff --git a/kvlang/weekly/index.xml b/kvlang/weekly/index.xml new file mode 100644 index 00000000000..70a8004042b --- /dev/null +++ b/kvlang/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub kvlang Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:54Z + Weekly Trending of kvlang in GitHub + + \ No newline at end of file diff --git a/labview/daily/index.xml b/labview/daily/index.xml index 926bbb64062..0f6e7301802 100644 --- a/labview/daily/index.xml +++ b/labview/daily/index.xml @@ -1,7 +1,7 @@ GitHub LabVIEW Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:08Z + 2023-09-24T01:34:52Z Daily Trending of LabVIEW in GitHub \ No newline at end of file diff --git a/labview/weekly/index.xml b/labview/weekly/index.xml new file mode 100644 index 00000000000..2bb8b0874de --- /dev/null +++ b/labview/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LabVIEW Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:53Z + Weekly Trending of LabVIEW in GitHub + + \ No newline at end of file diff --git a/lark/daily/index.xml b/lark/daily/index.xml index 58b54fae4ed..645265aa723 100644 --- a/lark/daily/index.xml +++ b/lark/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lark Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:10Z + 2023-09-24T01:34:54Z Daily Trending of Lark in GitHub \ No newline at end of file diff --git a/lark/weekly/index.xml b/lark/weekly/index.xml new file mode 100644 index 00000000000..53b36131656 --- /dev/null +++ b/lark/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Lark Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:52Z + Weekly Trending of Lark in GitHub + + \ No newline at end of file diff --git a/lasso/daily/index.xml b/lasso/daily/index.xml index f7d5456e5a8..623359b8108 100644 --- a/lasso/daily/index.xml +++ b/lasso/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lasso Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:07Z + 2023-09-24T01:34:53Z Daily Trending of Lasso in GitHub \ No newline at end of file diff --git a/lasso/weekly/index.xml b/lasso/weekly/index.xml new file mode 100644 index 00000000000..96ad0292f71 --- /dev/null +++ b/lasso/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Lasso Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:53Z + Weekly Trending of Lasso in GitHub + + \ No newline at end of file diff --git a/latte/daily/index.xml b/latte/daily/index.xml index 7f2eb222916..20bc0837a27 100644 --- a/latte/daily/index.xml +++ b/latte/daily/index.xml @@ -1,7 +1,7 @@ GitHub Latte Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:12Z + 2023-09-24T01:34:56Z Daily Trending of Latte in GitHub \ No newline at end of file diff --git a/latte/weekly/index.xml b/latte/weekly/index.xml new file mode 100644 index 00000000000..afbcd9e104c --- /dev/null +++ b/latte/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Latte Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:55Z + Weekly Trending of Latte in GitHub + + \ No newline at end of file diff --git a/lean/daily/index.xml b/lean/daily/index.xml index 51772519ba9..a6ac93120c1 100644 --- a/lean/daily/index.xml +++ b/lean/daily/index.xml @@ -1,7 +1,21 @@ GitHub Lean Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:13Z + 2023-09-24T01:34:59Z Daily Trending of Lean in GitHub + + leanprover/lean4-cli + 2023-09-24T01:34:59Z + tag:github.com,2023-09-24:/leanprover/lean4-cli + + <p>A Lean 4 library for configuring Command Line Interfaces and parsing command line arguments.</p><hr> + + + blanchette/logical_verification_2023 + 2023-09-24T01:34:59Z + tag:github.com,2023-09-24:/blanchette/logical_verification_2023 + + <p>Hitchhiker's Guide to Logical Verification (2023 Edition)</p><hr> + \ No newline at end of file diff --git a/lean/weekly/index.xml b/lean/weekly/index.xml new file mode 100644 index 00000000000..d91bb889e71 --- /dev/null +++ b/lean/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Lean Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:59Z + Weekly Trending of Lean in GitHub + + + meoowers/rinha + 2023-09-24T01:54:59Z + tag:github.com,2023-09-24:/meoowers/rinha + + <p>🧪 | Rinha de Backend Lean4</p><hr> + + + leanprover/lean4-cli + 2023-09-24T01:54:59Z + tag:github.com,2023-09-24:/leanprover/lean4-cli + + <p>A Lean 4 library for configuring Command Line Interfaces and parsing command line arguments.</p><hr> + + + lftcm2023/lftcm2023 + 2023-09-24T01:54:59Z + tag:github.com,2023-09-24:/lftcm2023/lftcm2023 + + <p></p><hr> + + \ No newline at end of file diff --git a/less/daily/index.xml b/less/daily/index.xml index 7cc14926b4b..2e4b629d9fe 100644 --- a/less/daily/index.xml +++ b/less/daily/index.xml @@ -1,7 +1,7 @@ GitHub Less Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:11Z + 2023-09-24T01:34:58Z Daily Trending of Less in GitHub \ No newline at end of file diff --git a/less/weekly/index.xml b/less/weekly/index.xml new file mode 100644 index 00000000000..2d9ac1925df --- /dev/null +++ b/less/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Less Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:57Z + Weekly Trending of Less in GitHub + + \ No newline at end of file diff --git a/lex/daily/index.xml b/lex/daily/index.xml index b12cc843722..e88e034779a 100644 --- a/lex/daily/index.xml +++ b/lex/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:14Z + 2023-09-24T01:34:55Z Daily Trending of Lex in GitHub \ No newline at end of file diff --git a/lex/weekly/index.xml b/lex/weekly/index.xml new file mode 100644 index 00000000000..99ad457ecb3 --- /dev/null +++ b/lex/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Lex Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:54:57Z + Weekly Trending of Lex in GitHub + + \ No newline at end of file diff --git a/lfe/daily/index.xml b/lfe/daily/index.xml index 19c269227cc..a4fbba77e8c 100644 --- a/lfe/daily/index.xml +++ b/lfe/daily/index.xml @@ -1,7 +1,7 @@ GitHub LFE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:16Z + 2023-09-24T01:35:02Z Daily Trending of LFE in GitHub \ No newline at end of file diff --git a/lfe/weekly/index.xml b/lfe/weekly/index.xml new file mode 100644 index 00000000000..24679d20956 --- /dev/null +++ b/lfe/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LFE Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:00Z + Weekly Trending of LFE in GitHub + + \ No newline at end of file diff --git a/ligolang/daily/index.xml b/ligolang/daily/index.xml index 2ac85fbab6d..2a958a67070 100644 --- a/ligolang/daily/index.xml +++ b/ligolang/daily/index.xml @@ -1,7 +1,7 @@ GitHub LigoLANG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:17Z + 2023-09-24T01:35:01Z Daily Trending of LigoLANG in GitHub \ No newline at end of file diff --git a/ligolang/weekly/index.xml b/ligolang/weekly/index.xml new file mode 100644 index 00000000000..a191ea4bca3 --- /dev/null +++ b/ligolang/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LigoLANG Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:01Z + Weekly Trending of LigoLANG in GitHub + + \ No newline at end of file diff --git a/lilypond/daily/index.xml b/lilypond/daily/index.xml index a6c251d9d63..5480fab602c 100644 --- a/lilypond/daily/index.xml +++ b/lilypond/daily/index.xml @@ -1,7 +1,7 @@ GitHub LilyPond Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:16Z + 2023-09-24T01:35:00Z Daily Trending of LilyPond in GitHub \ No newline at end of file diff --git a/lilypond/weekly/index.xml b/lilypond/weekly/index.xml new file mode 100644 index 00000000000..6662bb45b61 --- /dev/null +++ b/lilypond/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LilyPond Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:02Z + Weekly Trending of LilyPond in GitHub + + \ No newline at end of file diff --git a/limbo/daily/index.xml b/limbo/daily/index.xml index b6168b55605..b7aa2a7df4d 100644 --- a/limbo/daily/index.xml +++ b/limbo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Limbo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:15Z + 2023-09-24T01:35:03Z Daily Trending of Limbo in GitHub \ No newline at end of file diff --git a/limbo/weekly/index.xml b/limbo/weekly/index.xml new file mode 100644 index 00000000000..49a2e1257d5 --- /dev/null +++ b/limbo/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Limbo Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:02Z + Weekly Trending of Limbo in GitHub + + \ No newline at end of file diff --git a/linker-script/daily/index.xml b/linker-script/daily/index.xml index f08bbda98b6..112fa63d2f8 100644 --- a/linker-script/daily/index.xml +++ b/linker-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Linker Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:18Z + 2023-09-24T01:35:04Z Daily Trending of Linker Script in GitHub \ No newline at end of file diff --git a/linker-script/weekly/index.xml b/linker-script/weekly/index.xml new file mode 100644 index 00000000000..faba98f8d2f --- /dev/null +++ b/linker-script/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Linker Script Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:04Z + Weekly Trending of Linker Script in GitHub + + \ No newline at end of file diff --git a/linux-kernel-module/daily/index.xml b/linux-kernel-module/daily/index.xml index 34caf99c4af..4629d309055 100644 --- a/linux-kernel-module/daily/index.xml +++ b/linux-kernel-module/daily/index.xml @@ -1,7 +1,7 @@ GitHub Linux Kernel Module Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:20Z + 2023-09-24T01:35:04Z Daily Trending of Linux Kernel Module in GitHub \ No newline at end of file diff --git a/linux-kernel-module/weekly/index.xml b/linux-kernel-module/weekly/index.xml new file mode 100644 index 00000000000..3f86b81a11b --- /dev/null +++ b/linux-kernel-module/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Linux Kernel Module Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:06Z + Weekly Trending of Linux Kernel Module in GitHub + + \ No newline at end of file diff --git a/liquid/daily/index.xml b/liquid/daily/index.xml index 1d79fca64f6..8e640575c38 100644 --- a/liquid/daily/index.xml +++ b/liquid/daily/index.xml @@ -1,7 +1,7 @@ GitHub Liquid Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:21Z + 2023-09-24T01:35:06Z Daily Trending of Liquid in GitHub \ No newline at end of file diff --git a/liquid/weekly/index.xml b/liquid/weekly/index.xml new file mode 100644 index 00000000000..9c7e023b53e --- /dev/null +++ b/liquid/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Liquid Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:05Z + Weekly Trending of Liquid in GitHub + + \ No newline at end of file diff --git a/literate-agda/daily/index.xml b/literate-agda/daily/index.xml index b63015315ec..6318eee1f64 100644 --- a/literate-agda/daily/index.xml +++ b/literate-agda/daily/index.xml @@ -1,7 +1,7 @@ GitHub Literate Agda Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:19Z + 2023-09-24T01:35:06Z Daily Trending of Literate Agda in GitHub \ No newline at end of file diff --git a/literate-agda/weekly/index.xml b/literate-agda/weekly/index.xml new file mode 100644 index 00000000000..4b15aec4a39 --- /dev/null +++ b/literate-agda/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Literate Agda Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:04Z + Weekly Trending of Literate Agda in GitHub + + \ No newline at end of file diff --git a/literate-coffeescript/daily/index.xml b/literate-coffeescript/daily/index.xml index 68b59b53805..ef5f7753d5a 100644 --- a/literate-coffeescript/daily/index.xml +++ b/literate-coffeescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Literate CoffeeScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:23Z + 2023-09-24T01:35:08Z Daily Trending of Literate CoffeeScript in GitHub \ No newline at end of file diff --git a/literate-coffeescript/weekly/index.xml b/literate-coffeescript/weekly/index.xml new file mode 100644 index 00000000000..466b4557b0a --- /dev/null +++ b/literate-coffeescript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Literate CoffeeScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:09Z + Weekly Trending of Literate CoffeeScript in GitHub + + \ No newline at end of file diff --git a/literate-haskell/daily/index.xml b/literate-haskell/daily/index.xml index 85ecc6e8772..ff842b7b4ca 100644 --- a/literate-haskell/daily/index.xml +++ b/literate-haskell/daily/index.xml @@ -1,7 +1,7 @@ GitHub Literate Haskell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:24Z + 2023-09-24T01:35:08Z Daily Trending of Literate Haskell in GitHub \ No newline at end of file diff --git a/literate-haskell/weekly/index.xml b/literate-haskell/weekly/index.xml new file mode 100644 index 00000000000..521384d69b7 --- /dev/null +++ b/literate-haskell/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Literate Haskell Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:08Z + Weekly Trending of Literate Haskell in GitHub + + \ No newline at end of file diff --git a/livescript/daily/index.xml b/livescript/daily/index.xml index 3f383f5d54d..f184b828c56 100644 --- a/livescript/daily/index.xml +++ b/livescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub LiveScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:22Z + 2023-09-24T01:35:09Z Daily Trending of LiveScript in GitHub \ No newline at end of file diff --git a/livescript/weekly/index.xml b/livescript/weekly/index.xml new file mode 100644 index 00000000000..bef94a888dd --- /dev/null +++ b/livescript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LiveScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:07Z + Weekly Trending of LiveScript in GitHub + + \ No newline at end of file diff --git a/llvm/daily/index.xml b/llvm/daily/index.xml index a6698ff331c..12b32d958d0 100644 --- a/llvm/daily/index.xml +++ b/llvm/daily/index.xml @@ -1,7 +1,7 @@ GitHub LLVM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:25Z + 2023-09-24T01:35:10Z Daily Trending of LLVM in GitHub \ No newline at end of file diff --git a/llvm/weekly/index.xml b/llvm/weekly/index.xml new file mode 100644 index 00000000000..112b5dccec0 --- /dev/null +++ b/llvm/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LLVM Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:10Z + Weekly Trending of LLVM in GitHub + + \ No newline at end of file diff --git a/logos/daily/index.xml b/logos/daily/index.xml index 3f223c56a32..cdde54ba79c 100644 --- a/logos/daily/index.xml +++ b/logos/daily/index.xml @@ -1,7 +1,7 @@ GitHub Logos Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:28Z + 2023-09-24T01:35:14Z Daily Trending of Logos in GitHub \ No newline at end of file diff --git a/logos/weekly/index.xml b/logos/weekly/index.xml new file mode 100644 index 00000000000..13a93fd812a --- /dev/null +++ b/logos/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Logos Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:12Z + Weekly Trending of Logos in GitHub + + + 1094401996/CareerCup + 2023-09-24T01:55:12Z + tag:github.com,2023-09-24:/1094401996/CareerCup + + <p>The first step to realize my dream</p><hr> + + \ No newline at end of file diff --git a/logtalk/daily/index.xml b/logtalk/daily/index.xml index 810e430b69a..61f3f72cfac 100644 --- a/logtalk/daily/index.xml +++ b/logtalk/daily/index.xml @@ -1,7 +1,7 @@ GitHub Logtalk Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:26Z + 2023-09-24T01:35:12Z Daily Trending of Logtalk in GitHub \ No newline at end of file diff --git a/logtalk/weekly/index.xml b/logtalk/weekly/index.xml new file mode 100644 index 00000000000..007697be355 --- /dev/null +++ b/logtalk/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Logtalk Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:13Z + Weekly Trending of Logtalk in GitHub + + \ No newline at end of file diff --git a/lolcode/daily/index.xml b/lolcode/daily/index.xml index b8d8e97878a..ac6184121f9 100644 --- a/lolcode/daily/index.xml +++ b/lolcode/daily/index.xml @@ -1,7 +1,7 @@ GitHub LOLCODE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:27Z + 2023-09-24T01:35:13Z Daily Trending of LOLCODE in GitHub \ No newline at end of file diff --git a/lolcode/weekly/index.xml b/lolcode/weekly/index.xml new file mode 100644 index 00000000000..a6b717b4389 --- /dev/null +++ b/lolcode/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LOLCODE Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:14Z + Weekly Trending of LOLCODE in GitHub + + \ No newline at end of file diff --git a/lookml/daily/index.xml b/lookml/daily/index.xml index f784ec4f8f4..42aa28de1cd 100644 --- a/lookml/daily/index.xml +++ b/lookml/daily/index.xml @@ -1,7 +1,7 @@ GitHub LookML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:27Z + 2023-09-24T01:35:11Z Daily Trending of LookML in GitHub \ No newline at end of file diff --git a/lookml/weekly/index.xml b/lookml/weekly/index.xml new file mode 100644 index 00000000000..29d74dcc954 --- /dev/null +++ b/lookml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LookML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:11Z + Weekly Trending of LookML in GitHub + + \ No newline at end of file diff --git a/loomscript/daily/index.xml b/loomscript/daily/index.xml index 21c0e14136c..2d6d4839410 100644 --- a/loomscript/daily/index.xml +++ b/loomscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub LoomScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:31Z + 2023-09-24T01:35:16Z Daily Trending of LoomScript in GitHub \ No newline at end of file diff --git a/loomscript/weekly/index.xml b/loomscript/weekly/index.xml new file mode 100644 index 00000000000..24b22e72efb --- /dev/null +++ b/loomscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LoomScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:17Z + Weekly Trending of LoomScript in GitHub + + \ No newline at end of file diff --git a/lsl/daily/index.xml b/lsl/daily/index.xml index 77e0a9ecad5..77a8e66d3c0 100644 --- a/lsl/daily/index.xml +++ b/lsl/daily/index.xml @@ -1,7 +1,7 @@ GitHub LSL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:30Z + 2023-09-24T01:35:17Z Daily Trending of LSL in GitHub \ No newline at end of file diff --git a/lsl/weekly/index.xml b/lsl/weekly/index.xml new file mode 100644 index 00000000000..2a2db133871 --- /dev/null +++ b/lsl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LSL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:16Z + Weekly Trending of LSL in GitHub + + \ No newline at end of file diff --git a/ltspice-symbol/daily/index.xml b/ltspice-symbol/daily/index.xml index 2fd3bf8da91..1524b4574b6 100644 --- a/ltspice-symbol/daily/index.xml +++ b/ltspice-symbol/daily/index.xml @@ -1,7 +1,7 @@ GitHub LTspice Symbol Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:29Z + 2023-09-24T01:35:16Z Daily Trending of LTspice Symbol in GitHub \ No newline at end of file diff --git a/ltspice-symbol/weekly/index.xml b/ltspice-symbol/weekly/index.xml new file mode 100644 index 00000000000..a22794f538a --- /dev/null +++ b/ltspice-symbol/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub LTspice Symbol Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:15Z + Weekly Trending of LTspice Symbol in GitHub + + \ No newline at end of file diff --git a/lua/daily/index.xml b/lua/daily/index.xml index 1015f204e76..d4ad0cc60b8 100644 --- a/lua/daily/index.xml +++ b/lua/daily/index.xml @@ -1,7 +1,14 @@ GitHub Lua Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:34Z + 2023-09-24T01:35:20Z Daily Trending of Lua in GitHub + + chrisgrieser/nvim-kickstart-python + 2023-09-24T01:35:20Z + tag:github.com,2023-09-24:/chrisgrieser/nvim-kickstart-python + + <p>A launch point for your nvim configuration for Python</p><hr><h1>nvim-kickstart-python <!-- LTeX: enabled=true --></h1> <p>A launch point for your nvim config for python.</p> <p>Similar to <a href="https://github.com/nvim-lua/kickstart.nvim">kickstart.nvim</a>, but specifically for python development.</p> <h2>Motivation</h2> <!-- vale Google.FirstPerson = NO --> <p>While there are quite a few great nvim distros and nvim starter configs out there, one thing I somewhat missed was a base config for specific languages. I recently started to learn python and was missing a minimal example what the state-of-the-art nvim setup specifically for python is.</p> <p>After figuring most of it out, I decided to publish this config for others to use. It is intended as a launch point for python devs switching to nvim, or as a reference for nvim users who want to start doing python development.</p> <!-- vale Google.FirstPerson = NO --> <h2>Philosophy &amp; Features</h2> <ul> <li>This is not a nvim-distro, this is a <em>minimal</em> nvim config specifically for python. It's intended as a starting point for creating your own config.</li> <li>~20 plugins, ~400 lines, single <code>init.lua</code></li> <li>Includes detailled comments explaining what the config does.</li> <li>The config can be fully bootstrapped: all plugins and tools are automatically installed on startup.</li> <li>Uses the current state-of-the-art of the nvim plugin ecosystem. -Includes some common tooling for python development: <ul> <li>LSP (Completion, Typing): <code>pyright</code></li> <li>Linting (Diagnostics): <code>ruff</code></li> <li>Formatting: <code>black</code> &amp; <code>isort</code></li> <li>Debugger: <code>debugpy</code></li> <li>Embedded REPL: <code>ipython</code> (if not installed, falls back to <code>python3</code>)</li> </ul> </li> <li>In addition, this config includes editing utilities specifically for python, like for example docstrings creation, selecting virtual environments, or auto-converting f-strings.</li> </ul> <h2>Recommendation</h2> <p>Go though the <a href="https://raw.githubusercontent.com/chrisgrieser/nvim-kickstart-python/main/kickstart-python.lua">kickstart-python.lua</a>, it is commented in detail.</p> <p>You can copypaste the config into you current <code>init.lua</code> to use it as a starting point for your regular config, or you can copypaste parts of it into your existing config.</p> <h2>Download</h2> <p>Download the <a href="https://raw.githubusercontent.com/chrisgrieser/nvim-kickstart-python/main/kickstart-python.lua">kickstart-python.lua</a> file and run neovim with it:</p> <pre><code class="language-bash"># download the config curl --remote-name "https://raw.githubusercontent.com/chrisgrieser/nvim-kickstart-python/main/kickstart-python.lua" # start neovim with the config, opening a file `foobar.py` # (any existing config you are using remains untouched) nvim -u kickstart-python.lua foobar.py </code></pre> <p>The config automatically installs all the plugins and tooling needed.</p> <!-- vale Google.FirstPerson = NO --> <h2>Additional plugins of interest</h2> <p>These plugins are not included in the config, but they are worth mentioning, as some people might be interested in them:</p> <ul> <li><a href="https://github.com/chrisgrieser/nvim-various-textobjs">nvim-various-textobjs</a>: Adds various indentation-based text objects.</li> <li><a href="https://github.com/GCBallesteros/NotebookNavigator.nvim">NotebookNavigator</a>: Emulate Jupyter Notebook like REPL-behavior.</li> <li><a href="https://github.com/dccsillag/magma-nvim">magma.nvim</a></li> </ul> <h2>Contributions</h2> <p>Though I am experienced with nvim, I am quite new to python. So improvements are welcome.</p> <h2>Credits</h2> <p><strong>Thanks</strong><br> <a href="https://github.com/nvim-lua/kickstart.nvim">kickstart.nvim</a> as an example how to do this.</p> <p><strong>About Me</strong><br> In my day job, I am a sociologist studying the social mechanisms underlying the digital economy. For my PhD project, I investigate the governance of the app economy and how software ecosystems manage the tension between innovation and compatibility. If you are interested in this subject, feel free to get in touch.</p> <p><strong>Blog</strong><br> I also occasionally blog about vim: <a href="https://nanotipsforvim.prose.sh">Nano Tips for Vim</a></p> <p><strong>Profiles</strong></p> <ul> <li><a href="https://www.reddit.com/user/pseudometapseudo/">reddit</a></li> <li><a href="https://discordapp.com/users/462774483044794368/">Discord</a></li> <li><a href="https://chris-grieser.de/">Academic Website</a></li> <li><a href="https://github.com/chrisgrieser/">GitHub</a></li> <li><a href="https://twitter.com/pseudo_meta">Twitter</a></li> <li><a href="https://www.researchgate.net/profile/Christopher-Grieser">ResearchGate</a></li> <li><a href="https://www.linkedin.com/in/christopher-grieser-ba693b17a/">LinkedIn</a></li> </ul> <p><strong>Buy Me a Coffee</strong><br> <br> <a href="https://ko-fi.com/Y8Y86SQ91" target="_blank"><img height="36" style="border:0px;height:36px;" src="https://cdn.ko-fi.com/cdn/kofi1.png?v=3" border="0" alt="Buy Me a Coffee at ko-fi.com"></a></p> + \ No newline at end of file diff --git a/lua/weekly/index.xml b/lua/weekly/index.xml new file mode 100644 index 00000000000..930814bb808 --- /dev/null +++ b/lua/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Lua Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:20Z + Weekly Trending of Lua in GitHub + + + stevearc/conform.nvim + 2023-09-24T01:55:20Z + tag:github.com,2023-09-24:/stevearc/conform.nvim + + <p>Lightweight yet powerful formatter plugin for Neovim</p><hr><h1>conform.nvim</h1> <p>Lightweight yet powerful formatter plugin for Neovim</p> <!-- TOC --> <ul> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#requirements">Requirements</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#features">Features</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#installation">Installation</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#setup">Setup</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#formatters">Formatters</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#options">Options</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#recipes">Recipes</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#api">API</a> <ul> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#formatopts-callback">format(opts, callback)</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#list_formattersbufnr">list_formatters(bufnr)</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#list_all_formatters">list_all_formatters()</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#get_formatter_infoformatter-bufnr">get_formatter_info(formatter, bufnr)</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#will_fallback_lspoptions">will_fallback_lsp(options)</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#acknowledgements">Acknowledgements</a></li> </ul> <!-- /TOC --> <h2>Requirements</h2> <ul> <li>Neovim 0.8+</li> </ul> <h2>Features</h2> <ul> <li><strong>Preserves extmarks and folds</strong> - Most formatters replace the entire buffer, which clobbers extmarks and folds, and can cause the viewport and cursor to jump unexpectedly. Conform calculates minimal diffs and applies them using the built-in LSP format utilities.</li> <li><strong>Fixes bad-behaving LSP formatters</strong> - Some LSP servers are lazy and simply replace the entire buffer, leading to the problems mentioned above. Conform hooks into the LSP handler and turns these responses into proper piecewise changes.</li> <li><strong>Enables range formatting for all formatters</strong> - Since conform calculates minimal diffs, it can perform range formatting even if the underlying formatter doesn't support it.</li> <li><strong>Simple API</strong> - Conform exposes a simple, imperative API modeled after <code>vim.lsp.buf.format()</code>.</li> </ul> <h2>Installation</h2> <p>conform.nvim supports all the usual plugin managers</p> <details> <summary>lazy.nvim</summary> <pre><code class="language-lua">{ 'stevearc/conform.nvim', opts = {}, } </code></pre> </details> <details> <summary>Packer</summary> <pre><code class="language-lua">require('packer').startup(function() use { 'stevearc/conform.nvim', config = function() require('conform').setup() end } end) </code></pre> </details> <details> <summary>Paq</summary> <pre><code class="language-lua">require "paq" { {'stevearc/conform.nvim'}; } </code></pre> </details> <details> <summary>vim-plug</summary> <pre><code class="language-vim">Plug 'stevearc/conform.nvim' </code></pre> </details> <details> <summary>dein</summary> <pre><code class="language-vim">call dein#add('stevearc/conform.nvim') </code></pre> </details> <details> <summary>Pathogen</summary> <pre><code class="language-sh">git clone --depth=1 https://github.com/stevearc/conform.nvim.git ~/.vim/bundle/ </code></pre> </details> <details> <summary>Neovim native package</summary> <pre><code class="language-sh">git clone --depth=1 https://github.com/stevearc/conform.nvim.git \ "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/pack/conform/start/conform.nvim </code></pre> </details> <h2>Setup</h2> <p>At a minimum, you will need to set up some formatters by filetype</p> <pre><code class="language-lua">require("conform").setup({ formatters_by_ft = { lua = { "stylua" }, -- Conform will run multiple formatters sequentially python = { "isort", "black" }, -- Use a sub-list to run only the first available formatter javascript = { { "prettierd", "prettier" } }, }, }) </code></pre> <p>Then you can use <code>conform.format()</code> just like you would <code>vim.lsp.buf.format()</code>. For example, to format on save:</p> <pre><code class="language-lua">vim.api.nvim_create_autocmd("BufWritePre", { pattern = "*", callback = function(args) require("conform").format({ bufnr = args.buf }) end, }) </code></pre> <p>As a shortcut, conform will optionally set up this format-on-save autocmd for you</p> <pre><code class="language-lua">require("conform").setup({ format_on_save = { -- These options will be passed to conform.format() timeout_ms = 500, lsp_fallback = true, }, }) </code></pre> <p>See <a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/#formatopts-callback">conform.format()</a> for more details about the parameters.</p> <p>Conform also provides a formatexpr, same as the LSP client:</p> <pre><code class="language-lua">vim.o.formatexpr = "v:lua.require'conform'.formatexpr()" </code></pre> <p>To view configured and available formatters, as well as to see the log file, run <code>:ConformInfo</code></p> <h2>Formatters</h2> <!-- FORMATTERS --> <ul> <li><a href="https://kamadorueda.com/alejandra/">alejandra</a> - The Uncompromising Nix Code Formatter.</li> <li><a href="https://github.com/PyCQA/autoflake">autoflake</a> - Removes unused imports and unused variables as reported by pyflakes.</li> <li><a href="https://github.com/hhatto/autopep8">autopep8</a> - A tool that automatically formats Python code to conform to the PEP 8 style guide.</li> <li><a href="https://github.com/lovesegfault/beautysh">beautysh</a> - A Bash beautifier for the masses.</li> <li><a href="https://github.com/FlamingTempura/bibtex-tidy">bibtex-tidy</a> - Cleaner and Formatter for BibTeX files.</li> <li><a href="https://github.com/biomejs/biome">biome</a> - A toolchain for web projects, aimed to provide functionalities to maintain them.</li> <li><a href="https://github.com/psf/black">black</a> - The uncompromising Python code formatter.</li> <li><a href="https://buf.build/docs/reference/cli/buf/format">buf</a> - A new way of working with Protocol Buffers</li> <li><a href="https://www.kernel.org/doc/html/latest/process/clang-format.html">clang_format</a> - Tool to format C/C++/… code according to a set of rules and heuristics.</li> <li><a href="https://github.com/greglook/cljstyle">cljstyle</a> - Formatter for Clojure code.</li> <li><a href="https://github.com/cheshirekow/cmake_format">cmake_format</a> - Parse cmake listfiles and format them nicely.</li> <li><a href="https://github.com/codespell-project/codespell">codespell</a> - Check code for common misspellings.</li> <li><a href="https://dart.dev/tools/dart-format">dart_format</a> - Replace the whitespace in your program with formatting that follows Dart guidelines.</li> <li><a href="https://deno.land/manual/tools/formatter">deno_fmt</a> - Use <a href="https://deno.land/">Deno</a> to format TypeScript, JavaScript/JSON and markdown.</li> <li><a href="https://github.com/dlang-community/dfmt">dfmt</a> - Formatter for D source code.</li> <li><a href="https://github.com/Riverside-Healthcare/djLint">djlint</a> - ✨ HTML Template Linter and Formatter. Django - Jinja - Nunjucks - Handlebars - GoLang.</li> <li><a href="https://github.com/dprint/dprint">dprint</a> - Pluggable and configurable code formatting platform written in Rust.</li> <li><a href="https://github.com/avh4/elm-format">elm_format</a> - elm-format formats Elm source code according to a standard set of rules based on the official <a href="https://elm-lang.org/docs/style-guide">Elm Style Guide</a>.</li> <li><a href="https://github.com/nebulab/erb-formatter">erb_format</a> - Format ERB files with speed and precision.</li> <li><a href="https://github.com/mantoni/eslint_d.js/">eslint_d</a> - Like ESLint, but faster.</li> <li><a href="https://fishshell.com/docs/current/cmds/fish_indent.html">fish_indent</a> - Indent or otherwise prettify a piece of fish code.</li> <li><a href="https://github.com/Scony/godot-gdscript-toolkit">gdformat</a> - A formatter for Godot's gdscript.</li> <li><a href="https://pkg.go.dev/cmd/gofmt">gofmt</a> - Formats go programs.</li> <li><a href="https://github.com/mvdan/gofumpt">gofumpt</a> - Enforce a stricter format than gofmt, while being backwards compatible. That is, gofumpt is happy with a subset of the formats that gofmt is happy with.</li> <li><a href="https://pkg.go.dev/golang.org/x/tools/cmd/goimports">goimports</a> - Updates your Go import lines, adding missing ones and removing unreferenced ones.</li> <li><a href="https://github.com/segmentio/golines">golines</a> - A golang formatter that fixes long lines</li> <li><a href="https://github.com/threedaymonk/htmlbeautifier">htmlbeautifier</a> - A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates.</li> <li><a href="https://www.gnu.org/software/indent/">indent</a> - GNU Indent</li> <li><a href="https://github.com/PyCQA/isort">isort</a> - Python utility / library to sort imports alphabetically and automatically separate them into sections and by type.</li> <li><a href="https://github.com/stedolan/jq">jq</a> - Command-line JSON processor.</li> <li><a href="https://github.com/cmhughes/latexindent.pl">latexindent</a> - A perl script for formatting LaTeX files that is generally included in major TeX distributions.</li> <li><a href="https://github.com/DavidAnson/markdownlint">markdownlint</a> - A Node.js style checker and lint tool for Markdown/CommonMark files.</li> <li><a href="https://github.com/executablebooks/mdformat">mdformat</a> - An opinionated Markdown formatter.</li> <li><a href="https://github.com/serokell/nixfmt">nixfmt</a> - nixfmt is a formatter for Nix code, intended to apply a uniform style.</li> <li><a href="https://github.com/nix-community/nixpkgs-fmt">nixpkgs_fmt</a> - nixpkgs-fmt is a Nix code formatter for nixpkgs.</li> <li><a href="https://github.com/ocaml-ppx/ocamlformat">ocamlformat</a> - Auto-formatter for OCaml code.</li> <li><a href="https://github.com/perl-ide/App-perlimports">perlimports</a> - Make implicit Perl imports explicit</li> <li><a href="https://github.com/perltidy/perltidy">perltidy</a> - Perl::Tidy, a source code formatter for Perl</li> <li><a href="https://github.com/darold/pgFormatter">pg_format</a> - PostgreSQL SQL syntax beautifier.</li> <li><a href="https://github.com/prettier/prettier">prettier</a> - Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.</li> <li><a href="https://github.com/fsouza/prettierd">prettierd</a> - prettier, as a daemon, for ludicrous formatting speed.</li> <li><a href="https://github.com/rubocop/rubocop">rubocop</a> - Ruby static code analyzer and formatter, based on the community Ruby style guide.</li> <li><a href="https://beta.ruff.rs/docs/">ruff_fix</a> - An extremely fast Python linter, written in Rust. Fix lint errors.</li> <li><a href="https://beta.ruff.rs/docs/">ruff_format</a> - An extremely fast Python linter, written in Rust. Formatter subcommand.</li> <li><a href="https://github.com/rust-lang/rustfmt">rustfmt</a> - A tool for formatting rust code according to style guidelines.</li> <li><a href="https://github.com/avencera/rustywind">rustywind</a> - A tool for formatting Tailwind CSS classes.</li> <li><a href="https://github.com/scalameta/scalafmt">scalafmt</a> - Code formatter for Scala.</li> <li><a href="https://github.com/koalaman/shellcheck">shellcheck</a> - A static analysis tool for shell scripts.</li> <li><a href="https://github.com/anordal/shellharden">shellharden</a> - The corrective bash syntax highlighter</li> <li><a href="https://github.com/mvdan/sh">shfmt</a> - A shell parser, formatter, and interpreter with <code>bash</code> support.</li> <li><a href="https://github.com/sql-formatter-org/sql-formatter">sql_formatter</a> - A whitespace formatter for different query languages.</li> <li><a href="https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html#cat-invocation">squeeze_blanks</a> - Squeeze repeated blank lines into a single blank line via <code>cat -s</code>.</li> <li><a href="https://github.com/stylelint/stylelint">stylelint</a> - A mighty CSS linter that helps you avoid errors and enforce conventions.</li> <li><a href="https://github.com/JohnnyMorganz/StyLua">stylua</a> - An opinionated code formatter for Lua.</li> <li><a href="https://github.com/apple/swift-format">swift_format</a> - Swift formatter from apple. Requires building from source with <code>swift build</code>.</li> <li><a href="https://github.com/nicklockwood/SwiftFormat">swiftformat</a> - SwiftFormat is a code library and command-line tool for reformatting <code>swift</code> code on macOS or Linux.</li> <li><a href="https://github.com/tamasfe/taplo">taplo</a> - A TOML toolkit written in Rust</li> <li><a href="https://www.terraform.io/docs/cli/commands/fmt.html">terraform_fmt</a> - The terraform-fmt command rewrites <code>terraform</code> configuration files to a canonical format and style.</li> <li><a href="https://www.gnu.org/software/gawk/manual/gawk.html">trim_newlines</a> - Trim new lines with awk</li> <li><a href="https://www.gnu.org/software/gawk/manual/gawk.html">trim_whitespace</a> - Trim whitespaces with awk</li> <li><a href="https://github.com/uncrustify/uncrustify">uncrustify</a> - A source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and Vala.</li> <li><a href="https://github.com/pamoller/xmlformatter">xmlformat</a> - xmlformatter is an Open Source Python package, which provides formatting of XML documents.</li> <li><a href="https://github.com/lyz-code/yamlfix">yamlfix</a> - A configurable YAML formatter that keeps comments.</li> <li><a href="https://github.com/google/yamlfmt">yamlfmt</a> - yamlfmt is an extensible command line tool or library to format yaml files.</li> <li><a href="https://github.com/google/yapf">yapf</a> - Yet Another Python Formatter.</li> <li><a href="https://github.com/ziglang/zig">zigfmt</a> - Reformat Zig source into canonical form.</li> </ul> <!-- /FORMATTERS --> <h2>Options</h2> <p>A complete list of all configuration options</p> <!-- OPTIONS --> <pre><code class="language-lua">require("conform").setup({ -- Map of filetype to formatters formatters_by_ft = { lua = { "stylua" }, -- Conform will run multiple formatters sequentially python = { "isort", "black" }, -- Use a sub-list to run only the first available formatter javascript = { { "prettierd", "prettier" } }, -- Use the "*" filetype to run formatters on all filetypes. ["*"] = { "codespell" }, -- Use the "_" filetype to run formatters on filetypes that don't -- have other formatters configured. ["_"] = { "trim_whitespace" }, }, -- If this is set, Conform will run the formatter on save. -- It will pass the table to conform.format(). -- This can also be a function that returns the table. format_on_save = { -- I recommend these options. See :help conform.format for details. lsp_fallback = true, timeout_ms = 500, }, -- If this is set, Conform will run the formatter asynchronously after save. -- It will pass the table to conform.format(). -- This can also be a function that returns the table. format_after_save = { lsp_fallback = true, }, -- Set the log level. Use `:ConformInfo` to see the location of the log file. log_level = vim.log.levels.ERROR, -- Conform will notify you when a formatter errors notify_on_error = true, -- Define custom formatters here formatters = { my_formatter = { -- This can be a string or a function that returns a string command = "my_cmd", -- OPTIONAL - all fields below this are optional -- A list of strings, or a function that returns a list of strings -- Return a single string instead to run the command in a shell args = { "--stdin-from-filename", "$FILENAME" }, -- If the formatter supports range formatting, create the range arguments here range_args = function(ctx) return { "--line-start", ctx.range.start[1], "--line-end", ctx.range["end"][1] } end, -- Send file contents to stdin, read new contents from stdout (default true) -- When false, will create a temp file (will appear in "$FILENAME" args). The temp -- file is assumed to be modified in-place by the format command. stdin = true, -- A function that calculates the directory to run the command in cwd = require("conform.util").root_file({ ".editorconfig", "package.json" }), -- When cwd is not found, don't run the formatter (default false) require_cwd = true, -- When returns false, the formatter will not be used condition = function(ctx) return vim.fs.basename(ctx.filename) ~= "README.md" end, -- Exit codes that indicate success (default {0}) exit_codes = { 0, 1 }, -- Environment variables. This can also be a function that returns a table. env = { VAR = "value", }, }, -- These can also be a function that returns the formatter other_formatter = function() return { command = "my_cmd", } end, }, }) -- You can set formatters_by_ft and formatters directly require("conform").formatters_by_ft.lua = { "stylua" } require("conform").formatters.my_formatter = { command = "my_cmd", } </code></pre> <!-- /OPTIONS --> <h2>Recipes</h2> <!-- RECIPES --> <ul> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/doc/recipes.md#format-command">Format command</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/doc/recipes.md#customizing-formatters">Customizing formatters</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/doc/recipes.md#autoformat-with-extra-features">Autoformat with extra features</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/doc/recipes.md#command-to-toggle-format-on-save">Command to toggle format-on-save</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/doc/recipes.md#automatically-run-slow-formatters-async">Automatically run slow formatters async</a></li> <li><a href="https://raw.githubusercontent.com/stevearc/conform.nvim/master/doc/recipes.md#add-extra-arguments-to-a-formatter-command">Add extra arguments to a formatter command</a></li> </ul> <!-- /RECIPES --> <h2>API</h2> <!-- API --> <h3>format(opts, callback)</h3> <p><code>format(opts, callback): boolean</code> <br> Format a buffer</p> <table> <thead> <tr> <th>Param</th> <th>Type</th> <th>Desc</th> <th></th> </tr> </thead> <tbody> <tr> <td>opts</td> <td><code>nil|table</code></td> <td></td> <td></td> </tr> <tr> <td></td> <td>timeout_ms</td> <td><code>nil|integer</code></td> <td>Time in milliseconds to block for formatting. Defaults to 1000. No effect if async = true.</td> </tr> <tr> <td></td> <td>bufnr</td> <td><code>nil|integer</code></td> <td>Format this buffer (default 0)</td> </tr> <tr> <td></td> <td>async</td> <td><code>nil|boolean</code></td> <td>If true the method won't block. Defaults to false. If the buffer is modified before the formatter completes, the formatting will be discarded.</td> </tr> <tr> <td></td> <td>formatters</td> <td><code>nil|string[]</code></td> <td>List of formatters to run. Defaults to all formatters for the buffer filetype.</td> </tr> <tr> <td></td> <td>lsp_fallback</td> <td><code>nil|boolean|"always"</code></td> <td>Attempt LSP formatting if no formatters are available. Defaults to false. If "always", will attempt LSP formatting even if formatters are available.</td> </tr> <tr> <td></td> <td>quiet</td> <td><code>nil|boolean</code></td> <td>Don't show any notifications for warnings or failures. Defaults to false.</td> </tr> <tr> <td></td> <td>range</td> <td><code>nil|table</code></td> <td>Range to format. Table must contain <code>start</code> and <code>end</code> keys with {row, col} tuples using (1,0) indexing. Defaults to current selection in visual mode</td> </tr> <tr> <td></td> <td>id</td> <td><code>nil|integer</code></td> <td>Passed to vim.lsp.buf.format when lsp_fallback = true</td> </tr> <tr> <td></td> <td>name</td> <td><code>nil|string</code></td> <td>Passed to vim.lsp.buf.format when lsp_fallback = true</td> </tr> <tr> <td></td> <td>filter</td> <td><code>nil|fun(client: table): boolean</code></td> <td>Passed to vim.lsp.buf.format when lsp_fallback = true</td> </tr> <tr> <td>callback</td> <td><code>nil|fun(err: nil|string)</code></td> <td>Called once formatting has completed</td> <td></td> </tr> </tbody> </table> <p>Returns:</p> <table> <thead> <tr> <th>Type</th> <th>Desc</th> </tr> </thead> <tbody> <tr> <td>boolean</td> <td>True if any formatters were attempted</td> </tr> </tbody> </table> <h3>list_formatters(bufnr)</h3> <p><code>list_formatters(bufnr): conform.FormatterInfo[]</code> <br> Retrieve the available formatters for a buffer</p> <table> <thead> <tr> <th>Param</th> <th>Type</th> <th>Desc</th> </tr> </thead> <tbody> <tr> <td>bufnr</td> <td><code>nil|integer</code></td> <td></td> </tr> </tbody> </table> <h3>list_all_formatters()</h3> <p><code>list_all_formatters(): conform.FormatterInfo[]</code> <br> List information about all filetype-configured formatters</p> <h3>get_formatter_info(formatter, bufnr)</h3> <p><code>get_formatter_info(formatter, bufnr): conform.FormatterInfo</code> <br> Get information about a formatter (including availability)</p> <table> <thead> <tr> <th>Param</th> <th>Type</th> <th>Desc</th> </tr> </thead> <tbody> <tr> <td>formatter</td> <td><code>string</code></td> <td>The name of the formatter</td> </tr> <tr> <td>bufnr</td> <td><code>nil|integer</code></td> <td></td> </tr> </tbody> </table> <h3>will_fallback_lsp(options)</h3> <p><code>will_fallback_lsp(options): boolean</code> <br> Check if the buffer will use LSP formatting when lsp_fallback = true</p> <table> <thead> <tr> <th>Param</th> <th>Type</th> <th>Desc</th> </tr> </thead> <tbody> <tr> <td>options</td> <td><code>nil|table</code></td> <td>Options passed to vim.lsp.buf.format</td> </tr> </tbody> </table> <!-- /API --> <h2>Acknowledgements</h2> <p>Thanks to</p> <ul> <li><a href="https://github.com/mfussenegger/nvim-lint">nvim-lint</a> for providing inspiration for the config and API. It's an excellent plugin that balances power and simplicity.</li> <li><a href="https://github.com/jose-elias-alvarez/null-ls.nvim">null-ls</a> for formatter configurations and being my formatter/linter of choice for a long time.</li> </ul> + + + nvim-orgmode/orgmode + 2023-09-24T01:55:20Z + tag:github.com,2023-09-24:/nvim-orgmode/orgmode + + <p>Orgmode clone written in Lua for Neovim 0.8+.</p><hr><div align="center"> <img alt="A blend of the Neovim (shape) and Org-mode (colours) logos" src="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/assets/nvim-orgmode.svg?sanitize=true" width="250px"> <h1>nvim-orgmode</h1> <p><a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-brightgreen?style=flat-square" alt="License"></a><a href="https://ko-fi.com/kristijanhusak"> <img src="https://img.shields.io/badge/support-kofi-00b9fe?style=flat-square&amp;logo=kofi" alt="Kofi"></a><a href="https://matrix.to/#/#neovim-orgmode:matrix.org"> <img src="https://img.shields.io/matrix/neovim-orgmode:matrix.org?logo=matrix&amp;server_fqdn=matrix.org&amp;style=flat-square" alt="Chat"></a></p> <p>Orgmode clone written in Lua for Neovim 0.8+</p> <p><a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/#setup">Setup</a> • <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/DOCS.md">Docs</a> • <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/#showcase">Showcase</a> • <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/#treesitter-info">Treesitter</a> • <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/#troubleshoot">Troubleshoot</a> • <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/#plugins">Plugins</a> • <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/CONTRIBUTING.md">Contributing</a> • <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/#thanks-to">Kudos</a></p> </div> <h2>Quickstart</h2> <h3>Requirements</h3> <ul> <li>Neovim 0.8.0 or later</li> <li><a href="https://github.com/nvim-treesitter/nvim-treesitter">nvim-treesitter</a></li> </ul> <h3>Installation</h3> <p>Use your favourite package manager:</p> <details open> <summary><b><a href="https://github.com/folke/lazy.nvim">lazy.nvim</a> (recommended)</b></summary> <br> <pre><code class="language-lua">{ 'nvim-orgmode/orgmode', dependencies = { { 'nvim-treesitter/nvim-treesitter', lazy = true }, }, event = 'VeryLazy', config = function() -- Load treesitter grammar for org require('orgmode').setup_ts_grammar() -- Setup treesitter require('nvim-treesitter.configs').setup({ highlight = { enable = true, additional_vim_regex_highlighting = { 'org' }, }, ensure_installed = { 'org' }, }) -- Setup orgmode require('orgmode').setup({ org_agenda_files = '~/orgfiles/**/*', org_default_notes_file = '~/orgfiles/refile.org', }) end, } </code></pre> </details> <details open> <summary><b><a href="https://github.com/wbthomason/packer.nvim">packer.nvim</a></b></summary> <br> <pre><code class="language-lua">use {'nvim-treesitter/nvim-treesitter'} use {'nvim-orgmode/orgmode', config = function() require('orgmode').setup{} end } </code></pre> </details> <details> <summary><a href="https://github.com/junegunn/vim-plug"><b>vim-plug</b></a></summary> <br> <pre><code class="language-vim">Plug 'nvim-treesitter/nvim-treesitter' Plug 'nvim-orgmode/orgmode' </code></pre> </details> <details> <summary><a href="https://github.com/Shougo/dein.vim"><b>dein.vim</b></a></summary> <br> <pre><code class="language-vim">call dein#add('nvim-treesitter/nvim-treesitter') call dein#add('nvim-orgmode/orgmode') </code></pre> </details> ### Setup <p>Note that this setup is not needed for <a href="https://github.com/folke/lazy.nvim">lazy.nvim</a> since instructions above covers full setup</p> <pre><code class="language-lua">-- init.lua -- Load custom treesitter grammar for org filetype require('orgmode').setup_ts_grammar() -- Treesitter configuration require('nvim-treesitter.configs').setup { -- If TS highlights are not enabled at all, or disabled via `disable` prop, -- highlighting will fallback to default Vim syntax highlighting highlight = { enable = true, -- Required for spellcheck, some LaTex highlights and -- code block highlights that do not have ts grammar additional_vim_regex_highlighting = {'org'}, }, ensure_installed = {'org'}, -- Or run :TSUpdate org } require('orgmode').setup({ org_agenda_files = {'~/Dropbox/org/*', '~/my-orgs/**/*'}, org_default_notes_file = '~/Dropbox/org/refile.org', }) </code></pre> <p>Or if you are using <code>init.vim</code>, wrap the above snippet like so:</p> <pre><code class="language-vim">" init.vim lua &lt;&lt; EOF require('orgmode').setup_ts_grammar() ... EOF </code></pre> <h4>Completion</h4> <details> <summary><a href="https://github.com/hrsh7th/nvim-compe"><b>nvim-compe</b></a></summary> <br> <pre><code class="language-lua">require('compe').setup({ source = { orgmode = true } }) </code></pre> </details> <details> <summary><a href="https://github.com/hrsh7th/nvim-cmp"><b>nvim-cmp</b></a></summary> <br> <pre><code class="language-lua">require('cmp').setup({ sources = { { name = 'orgmode' } } }) </code></pre> </details> <details> <summary><a href="https://github.com/nvim-lua/completion-nvim"><b>completion-nvim</b></a></summary> <br> <pre><code class="language-lua">vim.g.completion_chain_complete_list = { org = { { mode = 'omni'}, }, } -- add additional keyword chars vim.cmd[[autocmd FileType org setlocal iskeyword+=:,#,+]] </code></pre> </details> <p>Or just use <code>omnifunc</code> via <kbd>&lt;C-x&gt;&lt;C-o&gt;</kbd></p> <h3>Usage</h3> <ul> <li><strong>Open agenda prompt</strong>: <kbd>&lt;Leader&gt;oa</kbd></li> <li><strong>Open capture prompt</strong>: <kbd>&lt;Leader&gt;oc</kbd></li> <li>In any orgmode buffer press <kbd>g?</kbd> for help</li> </ul> <p>If you are new to Orgmode, see <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/DOCS.md#getting-started-with-orgmode">Getting started</a> section in the Docs or a hands-on <a href="https://github.com/nvim-orgmode/orgmode/wiki/Getting-Started">tutorial</a> in our wiki.</p> <h2>Showcase</h2> <h3>Agenda</h3> <p><img src="https://user-images.githubusercontent.com/1782860/123549968-8521f600-d76b-11eb-9a93-02bad08b37ce.gif" alt="agenda"></p> <h3>Org file</h3> <p><img src="https://user-images.githubusercontent.com/1782860/123549982-90752180-d76b-11eb-8828-9edf9f76af08.gif" alt="orgfile"></p> <h3>Capturing and refiling</h3> <p><img src="https://user-images.githubusercontent.com/1782860/123549993-9a972000-d76b-11eb-814b-b348a93df08a.gif" alt="capture"></p> <h3>Autocompletion</h3> <p><img src="https://user-images.githubusercontent.com/1782860/123550227-e8605800-d76c-11eb-96f6-c0a677d562d4.gif" alt="autocomplete"></p> <h2>Treesitter Info</h2> <p>The built-in treesitter parser is used for parsing the org files. Highlights are experimental and partially supported.</p> <h3>Advantages of treesitter over built in parsing/syntax:</h3> <ul> <li>More reliable, since parsing is done with a proper parsing tool</li> <li>Better highlighting (Experimental, still requires improvements)</li> <li>Future features will be easier to implement because the grammar already parses some things that were not parsed before (tables, latex, etc.)</li> <li>Allows for easier hacking (custom motions that can work with TS nodes, etc.)</li> </ul> <h3>Known highlighting issues and limitations</h3> <ul> <li>Performance issues. This is generally an issue in Neovim that should be resolved before 0.6 release (<a href="https://github.com/neovim/neovim/issues/14762">https://github.com/neovim/neovim/issues/14762</a>, <a href="https://github.com/neovim/neovim/issues/14762">https://github.com/neovim/neovim/issues/14762</a>)</li> <li>Anything that requires concealing (<a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/DOCS.md#org_hide_emphasis_markers">org_hide_emphasis_markers</a>, links concealing) is not (yet) supported in TS highlighter</li> <li>LaTex is still highlighted through syntax file</li> </ul> <h3>Improvements over Vim's syntax highlighting</h3> <ul> <li>Better highlighting of certain parts (tags, deadline/schedule/closed dates)</li> <li><a href="https://github.com/nvim-treesitter/nvim-treesitter/raw/4f2265632becabcd2c5b1791fa31ef278f1e496c/CONTRIBUTING.md#injections">Treesitter highlight injections</a> through <code>#BEGIN_SRC filetype</code> blocks</li> <li>Headline markup highlighting (<a href="https://github.com/nvim-orgmode/orgmode/issues/67">https://github.com/nvim-orgmode/orgmode/issues/67</a>)</li> </ul> <h2>Troubleshoot</h2> <h3>Indentation is not working</h3> <p>Make sure you are not overriding indentexpr in Org buffers with <a href="https://github.com/nvim-treesitter/nvim-treesitter#indentation">nvim-treesitter indentation</a></p> <h3>I get <code>treesitter/query.lua</code> errors when opening agenda/capture prompt or org files</h3> <p>Make sure you are using latest changes from <a href="https://github.com/milisims/tree-sitter-org">tree-sitter-org</a> grammar.<br> by running <code>:TSUpdate org</code> and restarting the editor.</p> <h3>Dates are not in English</h3> <p>Dates are generated with Lua native date support, and it reads your current locale when creating them.<br> To use different locale you can add this to your <code>init.lua</code>:</p> <pre><code class="language-lua">vim.cmd('language en_US.utf8') </code></pre> <p>or <code>init.vim</code></p> <pre><code>language en_US.utf8 </code></pre> <p>Just make sure you have <code>en_US</code> locale installed on your system. To see what you have available on the system you can start the command <code>:language </code> and press <code>&lt;TAB&gt;</code> to autocomplete possible options.</p> <h3>Links are not concealed</h3> <p>Links are concealed with Vim's conceal feature (see <code>:help conceal</code>). To enable concealing, add this to your <code>init.lua</code>:</p> <pre><code class="language-lua">vim.opt.conceallevel = 2 vim.opt.concealcursor = 'nc' </code></pre> <p>Or if you are using <code>init.vim</code>:</p> <pre><code class="language-vim">set conceallevel=2 set concealcursor=nc </code></pre> <h3>Jumping to file path is not working for paths with forward slash</h3> <p>If you are using Windows, paths are by default written with backslashes. To use forward slashes, you must enable <code>shellslash</code> option (see <code>:help 'shellslash'</code>).</p> <pre><code class="language-lua">vim.opt.shellslash = true </code></pre> <p>Or if you are using <code>init.vim</code>:</p> <pre><code class="language-vim">set shellslash </code></pre> <p>More info on issue <a href="https://github.com/nvim-orgmode/orgmode/issues/281#issuecomment-1120200775">#281</a></p> <h2>Features</h2> <h3>TL;DR</h3> <ul> <li>Agenda view</li> <li>Search by tags/keyword</li> <li>Clocking time</li> <li>Repeatable dates, date and time ranges</li> <li>Capturing to default notes file/destination</li> <li>Archiving (archive file or ARCHIVE tag)</li> <li>Exporting (via <code>emacs</code>, <code>pandoc</code> and custom export options)</li> <li>Notifications (experimental, see <a href="https://github.com/nvim-orgmode/orgmode/issues/49">Issue #49</a>)</li> <li>Calendar popup for easier navigation and date updates</li> <li>Various org file mappings: <ul> <li>Promote/Demote</li> <li>Change TODO state</li> <li>Change dates</li> <li>Insert/Move/Refile headlines</li> <li>Change tags</li> <li>Toggle checkbox state</li> </ul> </li> <li>Clocking time</li> <li>Remote editing from agenda view</li> <li>Repeatable mapping via <a href="https://github.com/tpope/vim-repeat">vim-repeat</a></li> </ul> <h3>Detailed breakdown</h3> <ul> <li>Agenda prompt: <ul> <li>Agenda view (<kbd>a</kbd>): <ul> <li>Ability to show daily(<kbd>vd</kbd>)/weekly(<kbd>vw</kbd>)/monthly(<kbd>vm</kbd>)/yearly(<kbd>vy</kbd>) agenda</li> <li>Support for various date settings: <ul> <li>DEADLINE: Warning settings - example: <code>&lt;2021-06-11 Fri 11:00 -1d&gt;</code></li> <li>SCHEDULED: Delay setting - example: <code>&lt;2021-06-11 Fri 11:00 -2d&gt;</code></li> <li>All dates - Repeater settings: <ul> <li>Cumulate type: <code>&lt;2021-06-11 Fri 11:00 +1w&gt;</code></li> <li>Catch-up type: <code>&lt;2021-06-11 Fri 11:00 ++1w&gt;</code></li> <li>Restart type: <code>&lt;2021-06-11 Fri 11:00 .+1w&gt;</code></li> </ul> </li> <li>Time ranges - example: <code>&lt;2021-06-11 Fri 11:00-12:30&gt;</code></li> <li>Date ranges - example: <code>&lt;2021-06-11 Fri 11:00-12:30&gt;--&lt;2021-06-13 Sun 22:00&gt;</code></li> </ul> </li> <li>Properly lists tasks according to defined dates (DEADLINE,SCHEDULED,Plain date)</li> <li>Navigate forward (<kbd>f</kbd>)/backward(<kbd>b</kbd>) or jump to specific date (<kbd>J</kbd>)</li> <li>Go to task under cursor in current window(<kbd>&lt;CR&gt;</kbd>) or other window(<kbd>&lt;TAB&gt;</kbd>)</li> <li>Print category from ":CATEGORY:" property if defined</li> </ul> </li> <li>List tasks that have "TODO" state (<kbd>t</kbd>):</li> <li>Find headlines matching tag(s) (<kbd>m</kbd>):</li> <li>Search for headlines (and it's content) for a query (<kbd>s</kbd>):</li> <li><a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/DOCS.md#advanced-search">Advanced search</a> for tags/todo kewords/properties</li> <li>Notifications (experimental, see <a href="https://github.com/nvim-orgmode/orgmode/issues/49">Issue #49</a>)</li> <li>Clocking time</li> </ul> </li> <li>Capture: <ul> <li>Define custom templates</li> <li>Fast capturing to default notes file via <kbd>&lt;C-c&gt;</kbd></li> <li>Capturing to specific destination <kbd>&lt;Leader&gt;or</kbd></li> <li>Abort capture with <kbd>&lt;Leader&gt;ok</kbd></li> </ul> </li> <li>Org files <ul> <li>Clocking time</li> <li>Refile to destination/headline: <kbd>&lt;Leader&gt;or</kbd></li> <li>Increase/Decrease date under cursor: <kbd>&lt;C-a&gt;</kbd>/<kbd>&lt;C-x&gt;</kbd></li> <li>Change date under cursor via calendar popup: <kbd>cid</kbd></li> <li>Change headline TODO state: forward<kbd>cit</kbd> or backward<kbd>ciT</kbd></li> <li>Open hyperlink or date under cursor: <kbd>&lt;Leader&gt;oo</kbd></li> <li>Toggle checkbox: <kbd>&lt;C-space&gt;</kbd></li> <li>Toggle current line to headline and vice versa: <kbd>&lt;Leader&gt;o*</kbd></li> <li>Toggle folding of current headline: <kbd>&lt;TAB&gt;</kbd></li> <li>Toggle folding in whole file: <kbd>&lt;S-TAB&gt;</kbd></li> <li>Archive headline: <kbd>&lt;Leader&gt;o$</kbd></li> <li>Add archive tag: <kbd>&lt;Leader&gt;oA</kbd></li> <li>Change tags: <kbd>&lt;Leader&gt;ot</kbd></li> <li>Promote headline: <kbd>&lt;&lt;</kbd></li> <li>Demote headline: <kbd>&gt;&gt;</kbd></li> <li>Promote subtree: <kbd>&lt;s</kbd></li> <li>Demote subtree: <kbd>&gt;s</kbd></li> <li>Add headline/list item/checkbox: <kbd>&lt;Leader&gt;&lt;CR&gt;</kbd></li> <li>Insert heading after current heading and it's content: <kbd>&lt;Leader&gt;oih</kbd></li> <li>Insert TODO heading after current line: <kbd>&lt;Leader&gt;oiT</kbd></li> <li>Insert TODO heading after current heading and it's content: <kbd>&lt;Leader&gt;oit</kbd></li> <li>Move headline up: <kbd>&lt;Leader&gt;oK</kbd></li> <li>Move headline down: <kbd>&lt;Leader&gt;oJ</kbd></li> <li>Highlighted code blocks (<code>#+BEGIN_SRC filetype</code>)</li> <li>Exporting (via <code>emacs</code>, <code>pandoc</code> and custom export options)</li> </ul> </li> </ul> <p>Link to detailed documentation: <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/DOCS.md">DOCS</a></p> <h2>Plugins</h2> <ul> <li><a href="https://github.com/akinsho/org-bullets.nvim">org-bullets.nvim</a> - Show org mode bullets as UTF-8 characters</li> <li><a href="https://github.com/lukas-reineke/headlines.nvim">headlines.nvim</a> - Add few highlight options for code blocks and headlines</li> <li><a href="https://github.com/michaelb/sniprun">sniprun</a> - For code evaluation in blocks</li> <li><a href="https://github.com/dhruvasagar/vim-table-mode">vim-table-mode</a> - For table support</li> </ul> <p>See all available plugins on <a href="https://github.com/topics/orgmode-nvim">orgmode-nvim</a></p> <p><strong>If you built a plugin please add "orgmode-nvim" topic to it.</strong></p> <p><strong>NOTE</strong>: None of the Emacs Orgmode plugins will be built into nvim-orgmode. Anything that's a separate plugin in Emacs Orgmode should be a separate plugin in here. The point of this plugin is to provide functionality that's built into Emacs Orgmode core, and a good foundation for external plugins.<br> If you want to build a plugin, post suggestions and improvements on <a href="https://github.com/nvim-orgmode/orgmode/issues/26">Plugins infrastructure</a> issue.</p> <h3><span>🔧</span> API</h3> <p>Documentation for our work-in-progress API can be found <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/doc/orgmode_api.txt">here</a></p> <h2>Contributing</h2> <p>See <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/CONTRIBUTING.md">CONTRIBUTING.md</a></p> <h2>Documentation</h2> <p>If you are just starting out with orgmode, have a look at the <a href="https://github.com/nvim-orgmode/orgmode/wiki/Getting-Started">Getting Started</a> section in our wiki.</p> <p>Vim documentation is auto generated from <a href="https://raw.githubusercontent.com/nvim-orgmode/orgmode/master/DOCS.md">DOCS.md</a> file with <a href="https://github.com/FooSoft/md2vim">md2vim</a>.</p> <p>Hosted documentation is on: <a href="https://nvim-orgmode.github.io/">https://nvim-orgmode.github.io/</a></p> <h2>Roadmap</h2> <ul> <li><input type="checkbox" checked disabled> Support searching by properties</li> <li><input type="checkbox" disabled> Improve checkbox hierarchy</li> <li><input type="checkbox" checked disabled> Support todo keyword faces</li> <li><input type="checkbox" checked disabled> Support clocking work time</li> <li><input type="checkbox" checked disabled> Improve folding</li> <li><input type="checkbox" checked disabled> Support exporting (via existing emacs tools)</li> <li><input type="checkbox" disabled> Support archiving to specific headline</li> <li><input type="checkbox" checked disabled> Support tables</li> <li><input type="checkbox" disabled> Support diary format dates</li> <li><input type="checkbox" disabled> Support evaluating code blocks</li> </ul> <h2>Thanks to</h2> <ul> <li><a href="https://github.com/dhruvasagar">@dhruvasagar</a> and his <a href="https://github.com/dhruvasagar/vim-dotoo">vim-dotoo</a> plugin that got me started using orgmode. Without him this plugin would not happen.</li> <li><a href="https://github.com/milisims">@milisims</a> for writing a treesitter parser for org</li> <li><a href="https://github.com/jceb/vim-orgmode">vim-orgmode</a> for some parts of the code (mostly syntax)</li> </ul> + + + mfussenegger/nvim-jdtls + 2023-09-24T01:55:20Z + tag:github.com,2023-09-24:/mfussenegger/nvim-jdtls + + <p>Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls</p><hr><h1>nvim-jdtls</h1> <p>Extensions for the built-in <a href="https://microsoft.github.io/language-server-protocol/">Language Server Protocol</a> support in <a href="https://neovim.io/">Neovim</a> (&gt;= 0.6.0) for <a href="https://github.com/eclipse/eclipse.jdt.ls">eclipse.jdt.ls</a>.</p> <h2>Audience</h2> <p>This project follows the <a href="https://en.wikipedia.org/wiki/KISS_principle">KISS principle</a> and targets users with some experience with Neovim, Java and its build tools Maven or Gradle who prefer configuration as code over GUI configuration. Ease of use is not the main priority.</p> <p>If you prioritize ease of use over simplicity, you may want to use an alternative:</p> <ul> <li><a href="https://github.com/neoclide/coc-java">coc-java</a></li> <li><a href="https://code.visualstudio.com/">vscode</a></li> <li><a href="https://www.jetbrains.com/idea/">IntelliJ IDEA</a></li> <li><a href="https://www.eclipse.org/ide/">Eclipse</a></li> </ul> <h2>Extensions</h2> <ul> <li><input type="checkbox" checked disabled> <code>organize_imports</code> function to organize imports</li> <li><input type="checkbox" checked disabled> <code>extract_variable</code> function to introduce a local variable</li> <li><input type="checkbox" checked disabled> <code>extract_variable_all</code> function to introduce a local variable and replace all occurrences.</li> <li><input type="checkbox" checked disabled> <code>extract_constant</code> function to extract a constant</li> <li><input type="checkbox" checked disabled> <code>extract_method</code> function to extract a block of code into a method</li> <li><input type="checkbox" checked disabled> Open class file contents</li> <li><input type="checkbox" checked disabled> Code action extensions <ul> <li><input type="checkbox" checked disabled> Generate constructors</li> <li><input type="checkbox" checked disabled> Generate <code>toString</code> function</li> <li><input type="checkbox" checked disabled> <code>hashCode</code> and <code>equals</code> generation.</li> <li><input type="checkbox" checked disabled> Extract variables or methods</li> <li><input type="checkbox" checked disabled> Generate delegate methods</li> <li><input type="checkbox" checked disabled> Move package, instance method, static method or type</li> <li><input type="checkbox" checked disabled> Signature refactoring</li> </ul> </li> <li><input type="checkbox" checked disabled> <code>javap</code> command to show bytecode of current file</li> <li><input type="checkbox" checked disabled> <code>jol</code> command to show memory usage of current file (<code>jol_path</code> must be set)</li> <li><input type="checkbox" checked disabled> <code>jshell</code> command to open up <code>jshell</code> with <code>classpath</code> from project set</li> <li><input type="checkbox" checked disabled> Debugger support via <a href="https://github.com/mfussenegger/nvim-dap">nvim-dap</a></li> <li><input type="checkbox" checked disabled> Optional vscode-java-test extensions <ul> <li><input type="checkbox" checked disabled> Generate tests via <code>require("jdtls.tests").generate()</code></li> <li><input type="checkbox" checked disabled> Jump to tests or subjects via <code>require("jdtls.tests").goto_subjects()</code></li> </ul> </li> </ul> <p>Take a look at <a href="https://github.com/mfussenegger/nvim-jdtls/issues/3">a demo</a> to see some of the functionality in action.</p> <h2>Plugin Installation</h2> <ul> <li>Requires Neovim (Latest stable (recommended) or nightly)</li> <li>nvim-jdtls is a plugin. Install it like any other Vim plugin: <ul> <li><code>git clone https://github.com/mfussenegger/nvim-jdtls.git ~/.config/nvim/pack/plugins/start/nvim-jdtls</code></li> <li>Or with <a href="https://github.com/junegunn/vim-plug">vim-plug</a>: <code>Plug 'mfussenegger/nvim-jdtls'</code></li> <li>Or with <a href="https://github.com/wbthomason/packer.nvim">packer.nvim</a>: <code>use 'mfussenegger/nvim-jdtls'</code></li> </ul> </li> </ul> <h2>Language Server Installation</h2> <p>Install <a href="https://github.com/eclipse/eclipse.jdt.ls">eclipse.jdt.ls</a> by following their <a href="https://github.com/eclipse/eclipse.jdt.ls#installation">Installation instructions</a>.</p> <h2>Configuration (quickstart)</h2> <p>Add the following to <code>~/.config/nvim/ftplugin/java.lua</code> (See <code>:help base-directory</code>):</p> <pre><code class="language-lua">local config = { cmd = {'/path/to/jdt-language-server/bin/jdtls'}, root_dir = vim.fs.dirname(vim.fs.find({'gradlew', '.git', 'mvnw'}, { upward = true })[1]), } require('jdtls').start_or_attach(config) </code></pre> <p><strong>Important</strong>:</p> <ul> <li>eclipse.jdt.ls requires Java 17</li> <li>The <code>jdtls</code> script requires Python 3.9</li> <li>You'll have to teach eclipse.jdt.ls about your JDK installations by setting up <code>runtimes</code> if your projects use a different Java version than the one you're using for eclipse.jdt.ls itself. See <code>Java XY language features are not available</code> in the troubleshooting section further below to learn how to do that.</li> </ul> <p>This should get you started, but will create temporary eclipse data folders when you open a project. Please read the <code>Configuration (verbose)</code> section if you want more control over the configuration or want to understand how things work.</p> <h2>Configuration (verbose)</h2> <p>To configure <code>nvim-jdtls</code>, add the following in <code>ftplugin/java.lua</code> within the Neovim configuration base directory (e.g. <code>~/.config/nvim/ftplugin/java.lua</code>, see <code>:help base-directory</code>).</p> <p>Watch out for the 💀, it indicates that you must adjust something.</p> <pre><code class="language-lua">-- See `:help vim.lsp.start_client` for an overview of the supported `config` options. local config = { -- The command that starts the language server -- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line cmd = { -- 💀 'java', -- or '/path/to/java17_or_newer/bin/java' -- depends on if `java` is in your $PATH env variable and if it points to the right version. '-Declipse.application=org.eclipse.jdt.ls.core.id1', '-Dosgi.bundles.defaultStartLevel=4', '-Declipse.product=org.eclipse.jdt.ls.core.product', '-Dlog.protocol=true', '-Dlog.level=ALL', '-Xmx1g', '--add-modules=ALL-SYSTEM', '--add-opens', 'java.base/java.util=ALL-UNNAMED', '--add-opens', 'java.base/java.lang=ALL-UNNAMED', -- 💀 '-jar', '/path/to/jdtls_install_location/plugins/org.eclipse.equinox.launcher_VERSION_NUMBER.jar', -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ -- Must point to the Change this to -- eclipse.jdt.ls installation the actual version -- 💀 '-configuration', '/path/to/jdtls_install_location/config_SYSTEM', -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ -- Must point to the Change to one of `linux`, `win` or `mac` -- eclipse.jdt.ls installation Depending on your system. -- 💀 -- See `data directory configuration` section in the README '-data', '/path/to/unique/per/project/workspace/folder' }, -- 💀 -- This is the default if not provided, you can remove it. Or adjust as needed. -- One dedicated LSP server &amp; client will be started per unique root_dir root_dir = require('jdtls.setup').find_root({'.git', 'mvnw', 'gradlew'}), -- Here you can configure eclipse.jdt.ls specific settings -- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request -- for a list of options settings = { java = { } }, -- Language server `initializationOptions` -- You need to extend the `bundles` with paths to jar files -- if you want to use additional eclipse.jdt.ls plugins. -- -- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation -- -- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this init_options = { bundles = {} }, } -- This starts a new client &amp; server, -- or attaches to an existing client &amp; server depending on the `root_dir`. require('jdtls').start_or_attach(config) </code></pre> <p>The <code>ftplugin/java.lua</code> logic is executed each time a <code>FileType</code> event triggers. This happens every time you open a <code>.java</code> file or when you invoke <code>:set ft=java</code>:</p> <p>You can also find more <a href="https://github.com/mfussenegger/nvim-jdtls/wiki/Sample-Configurations">complete configuration examples in the Wiki</a>.</p> <p>If you have trouble getting jdtls to work, please read the <a href="https://raw.githubusercontent.com/mfussenegger/nvim-jdtls/master/#troubleshooting">Troubleshooting</a> section.</p> <h3>data directory configuration</h3> <p><code>eclipse.jdt.ls</code> stores project specific data within the folder set via the <code>-data</code> flag. If you're using <code>eclipse.jdt.ls</code> with multiple different projects you must use a dedicated data directory per project.</p> <p>An example how you could accomplish that is to infer the workspace directory name from the current working directory:</p> <pre><code class="language-lua">-- If you started neovim within `~/dev/xy/project-1` this would resolve to `project-1` local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t') local workspace_dir = '/path/to/workspace-root/' .. project_name -- ^^ -- string concattenation in Lua local config = { cmd = { ..., '-data', workspace_dir, ..., } } </code></pre> <p><code>...</code> is not valid Lua in this context. It is meant as placeholder for the other options from the <a href="https://raw.githubusercontent.com/mfussenegger/nvim-jdtls/master/#configuration">Configuration</a> section above.)</p> <h3>nvim-lspconfig and nvim-jdtls differences</h3> <p>Both <a href="https://github.com/neovim/nvim-lspconfig">nvim-lspconfig</a> and nvim-jdtls use the client built into neovim:</p> <pre><code class="language-txt"> ┌────────────┐ ┌────────────────┐ │ nvim-jdtls │ │ nvim-lspconfig │ └────────────┘ └────────────────┘ | | start_or_attach nvim_lsp.jdtls.setup │ | │ setup java filetype hook │ ┌─────────┐ │ └───►│ vim.lsp │◄─────────────────┘ └─────────┘ .start_client .buf_attach_client </code></pre> <p>Some differences between the two:</p> <ul> <li>The <code>setup</code> of lspconfig creates a <code>java</code> <code>filetype</code> hook itself and provides some defaults for the <code>cmd</code> of the <code>config</code>.</li> <li><code>nvim-jdtls</code> delegates the choice when to call <code>start_or_attach</code> to the user.</li> <li><code>nvim-jdtls</code> adds some logic to handle <code>jdt://</code> URIs. These are necessary to load source code from third party libraries or the JDK.</li> <li><code>nvim-jdtls</code> adds some additional handlers and sets same extra capabilities to enable all the extensions.</li> </ul> <p>You could use either to start the <code>eclipse.jdt.ls</code> client, but it is recommended to use the <code>start_or_attach</code> method from <code>nvim-jdtls</code> because of the additional capabilities it configures and because of the <code>jdt://</code> URI handling.</p> <p>You <strong>must not</strong> use both at the same time for java. You'd end up with two clients and two language server instances.</p> <h3>UI picker customization</h3> <p><strong>Tip</strong>: You can get a better UI for code-actions and other functions by overriding the <code>jdtls.ui</code> picker. See <a href="https://github.com/mfussenegger/nvim-jdtls/wiki/UI-Extensions">UI Extensions</a>.</p> <h2>Usage</h2> <p><code>nvim-jdtls</code> extends the capabilities of the built-in LSP support in Neovim, so all the functions mentioned in <code>:help lsp</code> will work.</p> <p><code>nvim-jdtls</code> provides some extras, for those you'll want to create additional mappings:</p> <pre><code class="language-vimL">nnoremap &lt;A-o&gt; &lt;Cmd&gt;lua require'jdtls'.organize_imports()&lt;CR&gt; nnoremap crv &lt;Cmd&gt;lua require('jdtls').extract_variable()&lt;CR&gt; vnoremap crv &lt;Esc&gt;&lt;Cmd&gt;lua require('jdtls').extract_variable(true)&lt;CR&gt; nnoremap crc &lt;Cmd&gt;lua require('jdtls').extract_constant()&lt;CR&gt; vnoremap crc &lt;Esc&gt;&lt;Cmd&gt;lua require('jdtls').extract_constant(true)&lt;CR&gt; vnoremap crm &lt;Esc&gt;&lt;Cmd&gt;lua require('jdtls').extract_method(true)&lt;CR&gt; " If using nvim-dap " This requires java-debug and vscode-java-test bundles, see install steps in this README further below. nnoremap &lt;leader&gt;df &lt;Cmd&gt;lua require'jdtls'.test_class()&lt;CR&gt; nnoremap &lt;leader&gt;dn &lt;Cmd&gt;lua require'jdtls'.test_nearest_method()&lt;CR&gt; </code></pre> <p><code>nvim-jdtls</code> also adds several commands if the server starts up correctly:</p> <ul> <li><code>JdtCompile</code></li> <li><code>JdtSetRuntime</code></li> <li><code>JdtUpdateConfig</code></li> <li><code>JdtUpdateDebugConfig</code> (if <code>dap</code> and java-debug bundles are available)</li> <li><code>JdtUpdateHotcode</code> (if <code>dap</code> and java-debug bundles are available)</li> <li><code>JdtBytecode</code></li> <li><code>JdtJol</code></li> <li><code>JdtJshell</code></li> <li><code>JdtRestart</code></li> </ul> <h2>API Reference</h2> <p>See <code>:help jdtls</code></p> <h2>Debugger (via nvim-dap)</h2> <p><code>nvim-jdtls</code> provides integration with <a href="https://github.com/mfussenegger/nvim-dap">nvim-dap</a>.</p> <p>Once setup correctly, it enables the following additional functionality:</p> <ol> <li>Debug applications via explicit configurations</li> <li>Debug automatically discovered main classes</li> <li>Debug junit tests. Either whole classes or individual test methods</li> </ol> <p>For 1 &amp; 2 to work, <a href="https://github.com/eclipse/eclipse.jdt.ls">eclipse.jdt.ls</a> needs to load the <a href="https://github.com/microsoft/java-debug">java-debug</a> extension. For 3 to work, it also needs to load the <a href="https://github.com/microsoft/vscode-java-test">vscode-java-test</a> extension.</p> <p>For usage instructions once installed, read the <a href="https://github.com/mfussenegger/nvim-dap">nvim-dap</a> help. Debugging junit test classes or methods will be possible via these two functions:</p> <pre><code class="language-lua">require'jdtls'.test_class() require'jdtls'.test_nearest_method() </code></pre> <h3>java-debug installation</h3> <ul> <li>Clone <a href="https://github.com/microsoft/java-debug">java-debug</a></li> <li>Navigate into the cloned repository (<code>cd java-debug</code>)</li> <li>Run <code>./mvnw clean install</code></li> <li>Set or extend the <code>initializationOptions</code> (= <code>init_options</code> of the <code>config</code> from <a href="https://raw.githubusercontent.com/mfussenegger/nvim-jdtls/master/#Configuration-verbose">configuration</a>) as follows:</li> </ul> <pre><code class="language-lua">config['init_options'] = { bundles = { vim.fn.glob("path/to/java-debug/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar", 1) }; } </code></pre> <h3>nvim-dap setup</h3> <p><code>nvim-jdtls</code> will automatically register a <code>java</code> debug adapter with nvim-dap, if nvim-dap is available.</p> <h3>nvim-dap configuration</h3> <p><code>nvim-jdtls</code> includes functionality to discover main classes and create <code>nvim-dap</code> configuration entries for them.</p> <p>To discover the main classes you have to call <code>require('jdtls.dap').setup_dap_main_class_configs()</code> or use the <code>JdtUpdateDebugConfigs</code> command. It will only discover classes once eclipse.jdt.ls fully loaded the project. Depending on the project that may take a while. Because of that, calling <code>require('jdtls.dap').setup_dap_main_class_configs()</code> as part of an <code>on_attach</code> handler may not work well.</p> <p>For manual configuration see <a href="https://github.com/mfussenegger/nvim-dap/wiki/Java">nvim-dap Adapter Installation Wiki</a>.</p> <p>To get an overview of all available <code>attach</code> and <code>launch</code> options, take a look at <a href="https://github.com/microsoft/vscode-java-debug#options">java-debug options</a>. Keep in mind that any <code>java.debug</code> options are settings of the vscode-java client extension and not understood by the debug-adapter itself.</p> <h3>vscode-java-test installation</h3> <p>To be able to debug junit tests, it is necessary to install the bundles from <a href="https://github.com/microsoft/vscode-java-test">vscode-java-test</a>:</p> <ul> <li>Clone the repository</li> <li>Navigate into the folder (<code>cd vscode-java-test</code>)</li> <li>Run <code>npm install</code></li> <li>Run <code>npm run build-plugin</code></li> <li>Extend the bundles in the nvim-jdtls config:</li> </ul> <pre><code class="language-lua"> -- This bundles definition is the same as in the previous section (java-debug installation) local bundles = { vim.fn.glob("path/to/java-debug/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar", 1), }; -- This is the new part vim.list_extend(bundles, vim.split(vim.fn.glob("/path/to/microsoft/vscode-java-test/server/*.jar", 1), "\n")) config['init_options'] = { bundles = bundles; } </code></pre> <h2>Troubleshooting</h2> <h3>The client exits with an error / eclipse.jdt.ls stopped working</h3> <p>This can have two reasons:</p> <ol> <li>Your <code>cmd</code> definition in the <a href="https://raw.githubusercontent.com/mfussenegger/nvim-jdtls/master/#configuration">Configuration</a> is wrong.</li> </ol> <ul> <li> <p>Check the log files. Use <code>:JdtShowLogs</code> or open the log file manually. <code>:lua print(vim.fn.stdpath('cache'))</code> lists the path, there should be a <code>lsp.log</code>. You may have to increase the log level. See <code>:help vim.lsp.set_log_level()</code>.</p> </li> <li> <p>Ensure you can start the language server standalone by invoking the <code>cmd</code> defined in the configuration manually within a terminal.</p> </li> </ul> <ol start="2"> <li>The data folder got corrupted.</li> </ol> <p>Wipe the folder and ensure that it is in a dedicated directory and not within your project repository. See <a href="https://raw.githubusercontent.com/mfussenegger/nvim-jdtls/master/#data-directory-configuration">data directory configuration</a>. You can use <code>:JdtWipeDataAndRestart</code> to do this.</p> <h3>Nothing happens when opening a Java file and I can't use any <code>vim.lsp.buf</code> functions</h3> <p>This can have several reasons:</p> <ol> <li> <p>You didn't follow <a href="https://raw.githubusercontent.com/mfussenegger/nvim-jdtls/master/#configuration">Configuration</a> closely and aren't invoking <code>require('jdtls').start_or_attach(config)</code> as part of a <code>java</code> <code>filetype</code> event. Go back to the configuration section and follow it closely.</p> </li> <li> <p>You made a mistake in your configuration and there is a failure happening when you open the file. Try <code>:set ft=java</code> and look at the <code>:messages</code> output.</p> </li> <li> <p>eclipse.jdt.ls is starting but it cannot recognize your project, or it cannot import it properly. Try running <code>:JdtCompile full</code> or <code>:lua require('jdtls').compile('full')</code>. It should open the <code>quickfix</code> list with errors if eclipse.jdt.ls started but cannot handle your project.</p> </li> </ol> <p>Check the log files. Use <code>:JdtShowLogs</code> or open the log file manually. <code>:lua print(vim.fn.stdpath('cache'))</code> lists the path, there should be a <code>lsp.log</code>. You may have to increase the log level. See <code>:help vim.lsp.set_log_level()</code>.</p> <h3>Error: Unable to access jarfile</h3> <p>Either the file doesn't exist or you're using <code>~</code> characters in your path. Neovim doesn't automatically expand <code>~</code> characters in the <code>cmd</code> definition. You either need to write them out or wrap the fragments in <code>vim.fn.expand</code> calls.</p> <h3>Unrecognized option: --add-modules=ALL-SYSTEM</h3> <p>Eclipse.jdt.ls requires at least Java 17. You're using a lower version.</p> <h3>is a non-project file, only syntax errors are reported</h3> <p>You're opening a single file without having a Gradle or Maven project. You need to use Gradle or Maven for the full functionality.</p> <h3>Java XY language features are not available</h3> <p>You need to set the language level via the Gradle or Maven configuration.</p> <p>If you're starting eclipse.jdt.ls with a Java version that's different from the one the project uses, you need to configure the available Java runtimes. Add them to the <code>config</code> from the <a href="https://raw.githubusercontent.com/mfussenegger/nvim-jdtls/master/#configuration">configuration section</a>:</p> <pre><code class="language-lua">local config = { ..., -- not valid Lua, this is a placeholder for your other properties. settings = { java = { configuration = { -- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request -- And search for `interface RuntimeOption` -- The `name` is NOT arbitrary, but must match one of the elements from `enum ExecutionEnvironment` in the link above runtimes = { { name = "JavaSE-11", path = "/usr/lib/jvm/java-11-openjdk/", }, { name = "JavaSE-17", path = "/usr/lib/jvm/java-17-openjdk/", }, } } } } } </code></pre> <p>You can also change the language level at runtime using the <code>:JdtSetRuntime</code> command.</p> <h3>Diagnostics and completion suggestions are slow</h3> <p>Completion requests can be quite expensive on big projects. If you're using some kind of auto-completion plugin that triggers completion requests automatically, consider deactivating it or tuning it so it is less aggressive. Triggering a completion request on each typed character is likely overloading <a href="https://github.com/eclipse/eclipse.jdt.ls">eclipse.jdt.ls</a>.</p> <h3>Newly added dependencies are not found</h3> <p>You can try running <code>:JdtUpdateConfig</code> to refresh the configuration. If that doesn't work you'll need to restart the language server.</p> <h3>Language server doesn't find classes that should be there</h3> <p>The language server supports <a href="https://gradle.org/">gradle</a> and <a href="https://maven.apache.org/ref/3.8.4/">maven</a> as build tools. Your project should either have a <code>pom.xml</code> or <code>settings.gradle</code> and <code>build.gradle</code> file to declare the dependencies.</p> <p>As an alternative you could manually specify the dependencies within your nvim-jdtls configuration like the following, but this is not recommended.</p> <pre><code class="language-lua">config.settings = { java = { project = { referencedLibraries = { '/path/to/dependencyA.jar', '/path/to/dependencyB.jar', }, } } } </code></pre> <p>If you modify files outside of Neovim (for example with a git checkout), the language client and language server may not detect these changes and the state of the file on disk diverges with the mental model of the language server. If that happens, you need to open all changed files within Neovim and reload them with <code>:e!</code> to synchronize the state.</p> <h3>Indentation settings from eclipse formatting configuration are not recognized</h3> <p>This is expected. The Neovim <code>shiftwidth</code> and <code>tabstop</code> settings have a higher priority.</p> + + \ No newline at end of file diff --git a/m/daily/index.xml b/m/daily/index.xml index 975de94e3bd..b91bdcae83a 100644 --- a/m/daily/index.xml +++ b/m/daily/index.xml @@ -1,7 +1,7 @@ GitHub M Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:43Z + 2023-09-24T01:35:32Z Daily Trending of M in GitHub \ No newline at end of file diff --git a/m/weekly/index.xml b/m/weekly/index.xml new file mode 100644 index 00000000000..f09e078238f --- /dev/null +++ b/m/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub M Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:34Z + Weekly Trending of M in GitHub + + \ No newline at end of file diff --git a/m4/daily/index.xml b/m4/daily/index.xml index 12c7ab0c028..044f94fb73c 100644 --- a/m4/daily/index.xml +++ b/m4/daily/index.xml @@ -1,7 +1,7 @@ GitHub M4 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:44Z + 2023-09-24T01:35:33Z Daily Trending of M4 in GitHub \ No newline at end of file diff --git a/m4/weekly/index.xml b/m4/weekly/index.xml new file mode 100644 index 00000000000..a9d39b651cd --- /dev/null +++ b/m4/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub M4 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:32Z + Weekly Trending of M4 in GitHub + + \ No newline at end of file diff --git a/m4sugar/daily/index.xml b/m4sugar/daily/index.xml index 6bb1f92c9c4..c06a5ee5aa5 100644 --- a/m4sugar/daily/index.xml +++ b/m4sugar/daily/index.xml @@ -1,7 +1,7 @@ GitHub M4Sugar Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:46Z + 2023-09-24T01:35:32Z Daily Trending of M4Sugar in GitHub \ No newline at end of file diff --git a/m4sugar/weekly/index.xml b/m4sugar/weekly/index.xml new file mode 100644 index 00000000000..140ab4dea42 --- /dev/null +++ b/m4sugar/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub M4Sugar Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:33Z + Weekly Trending of M4Sugar in GitHub + + \ No newline at end of file diff --git a/macaulay2/daily/index.xml b/macaulay2/daily/index.xml index df5d39c413e..ae2616f5526 100644 --- a/macaulay2/daily/index.xml +++ b/macaulay2/daily/index.xml @@ -1,7 +1,7 @@ GitHub Macaulay2 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:45Z + 2023-09-24T01:35:31Z Daily Trending of Macaulay2 in GitHub \ No newline at end of file diff --git a/macaulay2/weekly/index.xml b/macaulay2/weekly/index.xml new file mode 100644 index 00000000000..3c4302b70f1 --- /dev/null +++ b/macaulay2/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Macaulay2 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:34Z + Weekly Trending of Macaulay2 in GitHub + + \ No newline at end of file diff --git a/makefile/daily/index.xml b/makefile/daily/index.xml index a92f1434071..1f554130c77 100644 --- a/makefile/daily/index.xml +++ b/makefile/daily/index.xml @@ -1,7 +1,21 @@ GitHub Makefile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:50Z + 2023-09-24T01:35:38Z Daily Trending of Makefile in GitHub + + eecs281staff/Makefile + 2023-09-24T01:35:38Z + tag:github.com,2023-09-24:/eecs281staff/Makefile + + <p></p><hr> + + + 92bondstreet/javascript-empire + 2023-09-24T01:35:38Z + tag:github.com,2023-09-24:/92bondstreet/javascript-empire + + <p>🛣️ 2023 ESILV courses on Web Application Architecture(s)</p><hr> + \ No newline at end of file diff --git a/makefile/weekly/index.xml b/makefile/weekly/index.xml new file mode 100644 index 00000000000..24978f2e777 --- /dev/null +++ b/makefile/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Makefile Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:42Z + Weekly Trending of Makefile in GitHub + + + tim-rose/abckit + 2023-09-24T01:55:42Z + tag:github.com,2023-09-24:/tim-rose/abckit + + <p>Tools for manipulating "abc" format music files</p><hr> + + + 0xType/0xProto + 2023-09-24T01:55:42Z + tag:github.com,2023-09-24:/0xType/0xProto + + <p>Free and Open-source font for programming.</p><hr> + + + aquasecurity/trivy-plugin-aqua + 2023-09-24T01:55:42Z + tag:github.com,2023-09-24:/aquasecurity/trivy-plugin-aqua + + <p></p><hr> + + \ No newline at end of file diff --git a/mako/daily/index.xml b/mako/daily/index.xml index 3c32dd2ff6c..3f72c7021bc 100644 --- a/mako/daily/index.xml +++ b/mako/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mako Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:48Z + 2023-09-24T01:35:35Z Daily Trending of Mako in GitHub \ No newline at end of file diff --git a/mako/weekly/index.xml b/mako/weekly/index.xml new file mode 100644 index 00000000000..070835e96da --- /dev/null +++ b/mako/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Mako Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:36Z + Weekly Trending of Mako in GitHub + + \ No newline at end of file diff --git a/markdown/daily/index.xml b/markdown/daily/index.xml index 3ee242a19f9..2bf94209313 100644 --- a/markdown/daily/index.xml +++ b/markdown/daily/index.xml @@ -1,7 +1,7 @@ GitHub Markdown Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:53Z + 2023-09-24T01:35:40Z Daily Trending of Markdown in GitHub \ No newline at end of file diff --git a/markdown/weekly/index.xml b/markdown/weekly/index.xml new file mode 100644 index 00000000000..8167fa2a688 --- /dev/null +++ b/markdown/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Markdown Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:39Z + Weekly Trending of Markdown in GitHub + + + DELWP-DTV/santa + 2023-09-24T01:55:39Z + tag:github.com,2023-09-24:/DELWP-DTV/santa + + <p>📈 Uptime monitor and status page for alex-vic-geo, powered by @upptime</p><hr> + + \ No newline at end of file diff --git a/marko/daily/index.xml b/marko/daily/index.xml index a9c30c036b5..dfde45cd508 100644 --- a/marko/daily/index.xml +++ b/marko/daily/index.xml @@ -1,7 +1,7 @@ GitHub Marko Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:47Z + 2023-09-24T01:35:34Z Daily Trending of Marko in GitHub \ No newline at end of file diff --git a/marko/weekly/index.xml b/marko/weekly/index.xml new file mode 100644 index 00000000000..20d054156a6 --- /dev/null +++ b/marko/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Marko Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:36Z + Weekly Trending of Marko in GitHub + + \ No newline at end of file diff --git a/mask/daily/index.xml b/mask/daily/index.xml index 942191d9a92..da3d2ff67b5 100644 --- a/mask/daily/index.xml +++ b/mask/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mask Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:56Z + 2023-09-24T01:35:43Z Daily Trending of Mask in GitHub \ No newline at end of file diff --git a/mask/weekly/index.xml b/mask/weekly/index.xml new file mode 100644 index 00000000000..421da47b1f2 --- /dev/null +++ b/mask/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Mask Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:44Z + Weekly Trending of Mask in GitHub + + \ No newline at end of file diff --git a/mathematica/daily/index.xml b/mathematica/daily/index.xml index f055740c9a3..9689ce2521b 100644 --- a/mathematica/daily/index.xml +++ b/mathematica/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mathematica Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:54Z + 2023-09-24T01:35:42Z Daily Trending of Mathematica in GitHub \ No newline at end of file diff --git a/mathematica/weekly/index.xml b/mathematica/weekly/index.xml new file mode 100644 index 00000000000..4fde2a287be --- /dev/null +++ b/mathematica/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Mathematica Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:45Z + Weekly Trending of Mathematica in GitHub + + \ No newline at end of file diff --git a/matlab/daily/index.xml b/matlab/daily/index.xml index 1633128f432..ca68f533f22 100644 --- a/matlab/daily/index.xml +++ b/matlab/daily/index.xml @@ -1,21 +1,14 @@ GitHub MATLAB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:59Z + 2023-09-24T01:35:46Z Daily Trending of MATLAB in GitHub - cmcgehee/ben_collab - 2023-09-23T01:31:59Z - tag:github.com,2023-09-23:/cmcgehee/ben_collab - - <p></p><hr> - - - neurodebian/spm12 - 2023-09-23T01:31:59Z - tag:github.com,2023-09-23:/neurodebian/spm12 - - <p>NeuroDebian packaging of SPM12 (official repo at https://github.com/spm)</p><hr> + Patrick9313/Sudoku + 2023-09-24T01:35:46Z + tag:github.com,2023-09-24:/Patrick9313/Sudoku + + <p>一个基于启发式搜索解决具体数独问题的MATLAB程序</p><hr> \ No newline at end of file diff --git a/matlab/weekly/index.xml b/matlab/weekly/index.xml new file mode 100644 index 00000000000..5df3da06f2e --- /dev/null +++ b/matlab/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub MATLAB Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:47Z + Weekly Trending of MATLAB in GitHub + + + Patrick9313/Digital-Image-Processing + 2023-09-24T01:55:47Z + tag:github.com,2023-09-24:/Patrick9313/Digital-Image-Processing + + <p>基于MATLAB的图像加解密及传输仿真</p><hr> + + + ME435/MATLAB-Robot-Arm-GUI-Start + 2023-09-24T01:55:47Z + tag:github.com,2023-09-24:/ME435/MATLAB-Robot-Arm-GUI-Start + + <p>Starting code for the MATLAB Robot Arm GUI</p><hr> + + + Hannah-Zhou/Optimization_Algorithm + 2023-09-24T01:55:47Z + tag:github.com,2023-09-24:/Hannah-Zhou/Optimization_Algorithm + + <p>非线性优化主要算法的Matlab程序,有精确线搜索的0.618法和抛物线法, 非精确线搜索的Armijo准则, 最速下降法, 牛顿法, 共轭梯度法, BFGS 算法, DFP 算法, Broyden 族方法, 信赖域方法, 求解非线性最小二乘问题的L-M算法, 解约束优化问题的乘子法, 求解二次规划的有效集法, SQP 子问题的光滑牛顿法以及求解约束优化问题的SQP方法等. 程序基本通用.</p><hr> + + \ No newline at end of file diff --git a/maven-pom/daily/index.xml b/maven-pom/daily/index.xml index 543eaed559f..e29e97ab17f 100644 --- a/maven-pom/daily/index.xml +++ b/maven-pom/daily/index.xml @@ -1,7 +1,7 @@ GitHub Maven POM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:31:55Z + 2023-09-24T01:35:44Z Daily Trending of Maven POM in GitHub \ No newline at end of file diff --git a/maven-pom/weekly/index.xml b/maven-pom/weekly/index.xml new file mode 100644 index 00000000000..7eb09deb067 --- /dev/null +++ b/maven-pom/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Maven POM Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:43Z + Weekly Trending of Maven POM in GitHub + + \ No newline at end of file diff --git a/max/daily/index.xml b/max/daily/index.xml index b1f11d38962..1d35bbcf94d 100644 --- a/max/daily/index.xml +++ b/max/daily/index.xml @@ -1,7 +1,7 @@ GitHub Max Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:01Z + 2023-09-24T01:35:48Z Daily Trending of Max in GitHub \ No newline at end of file diff --git a/max/weekly/index.xml b/max/weekly/index.xml new file mode 100644 index 00000000000..45712213e72 --- /dev/null +++ b/max/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Max Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:49Z + Weekly Trending of Max in GitHub + + \ No newline at end of file diff --git a/maxscript/daily/index.xml b/maxscript/daily/index.xml index d5d4cec3d1f..582d6161146 100644 --- a/maxscript/daily/index.xml +++ b/maxscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub MAXScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:00Z + 2023-09-24T01:35:48Z Daily Trending of MAXScript in GitHub \ No newline at end of file diff --git a/maxscript/weekly/index.xml b/maxscript/weekly/index.xml new file mode 100644 index 00000000000..c221085da49 --- /dev/null +++ b/maxscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub MAXScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:50Z + Weekly Trending of MAXScript in GitHub + + \ No newline at end of file diff --git a/mcfunction/daily/index.xml b/mcfunction/daily/index.xml index 051a0bcaa52..4e5bb42acd7 100644 --- a/mcfunction/daily/index.xml +++ b/mcfunction/daily/index.xml @@ -1,7 +1,7 @@ GitHub mcfunction Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:01Z + 2023-09-24T01:35:47Z Daily Trending of mcfunction in GitHub \ No newline at end of file diff --git a/mcfunction/weekly/index.xml b/mcfunction/weekly/index.xml new file mode 100644 index 00000000000..32ca8aa2775 --- /dev/null +++ b/mcfunction/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub mcfunction Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:48Z + Weekly Trending of mcfunction in GitHub + + \ No newline at end of file diff --git a/mercury/daily/index.xml b/mercury/daily/index.xml index 9315d5b5e0e..1e83552c68d 100644 --- a/mercury/daily/index.xml +++ b/mercury/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mercury Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:07Z + 2023-09-24T01:35:54Z Daily Trending of Mercury in GitHub \ No newline at end of file diff --git a/mercury/weekly/index.xml b/mercury/weekly/index.xml new file mode 100644 index 00000000000..698cc8b8aab --- /dev/null +++ b/mercury/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Mercury Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:54Z + Weekly Trending of Mercury in GitHub + + \ No newline at end of file diff --git a/meson/daily/index.xml b/meson/daily/index.xml index 1c8a6927ad6..3b357e68a33 100644 --- a/meson/daily/index.xml +++ b/meson/daily/index.xml @@ -1,7 +1,7 @@ GitHub Meson Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:08Z + 2023-09-24T01:35:55Z Daily Trending of Meson in GitHub \ No newline at end of file diff --git a/meson/weekly/index.xml b/meson/weekly/index.xml new file mode 100644 index 00000000000..b99fa7559b0 --- /dev/null +++ b/meson/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Meson Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:55Z + Weekly Trending of Meson in GitHub + + \ No newline at end of file diff --git a/metal/daily/index.xml b/metal/daily/index.xml index 4b2f89411ae..b68e808ec10 100644 --- a/metal/daily/index.xml +++ b/metal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Metal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:12Z + 2023-09-24T01:35:56Z Daily Trending of Metal in GitHub \ No newline at end of file diff --git a/metal/weekly/index.xml b/metal/weekly/index.xml new file mode 100644 index 00000000000..3b6aa2b30c2 --- /dev/null +++ b/metal/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Metal Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:58Z + Weekly Trending of Metal in GitHub + + \ No newline at end of file diff --git a/microsoft-developer-studio-project/daily/index.xml b/microsoft-developer-studio-project/daily/index.xml index eca3885462a..c9646db7e83 100644 --- a/microsoft-developer-studio-project/daily/index.xml +++ b/microsoft-developer-studio-project/daily/index.xml @@ -1,7 +1,7 @@ GitHub Microsoft Developer Studio Project Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:13Z + 2023-09-24T01:35:57Z Daily Trending of Microsoft Developer Studio Project in GitHub \ No newline at end of file diff --git a/microsoft-developer-studio-project/weekly/index.xml b/microsoft-developer-studio-project/weekly/index.xml new file mode 100644 index 00000000000..081f6e0387d --- /dev/null +++ b/microsoft-developer-studio-project/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Microsoft Developer Studio Project Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:57Z + Weekly Trending of Microsoft Developer Studio Project in GitHub + + \ No newline at end of file diff --git a/microsoft-visual-studio-solution/daily/index.xml b/microsoft-visual-studio-solution/daily/index.xml index 88a10db34ee..89a82a5396a 100644 --- a/microsoft-visual-studio-solution/daily/index.xml +++ b/microsoft-visual-studio-solution/daily/index.xml @@ -1,7 +1,7 @@ GitHub Microsoft Visual Studio Solution Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:11Z + 2023-09-24T01:35:59Z Daily Trending of Microsoft Visual Studio Solution in GitHub \ No newline at end of file diff --git a/microsoft-visual-studio-solution/weekly/index.xml b/microsoft-visual-studio-solution/weekly/index.xml new file mode 100644 index 00000000000..9eb4f7ed632 --- /dev/null +++ b/microsoft-visual-studio-solution/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Microsoft Visual Studio Solution Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:55:59Z + Weekly Trending of Microsoft Visual Studio Solution in GitHub + + \ No newline at end of file diff --git a/minid/daily/index.xml b/minid/daily/index.xml index 010834e4ccc..ae99b76eb68 100644 --- a/minid/daily/index.xml +++ b/minid/daily/index.xml @@ -1,7 +1,7 @@ GitHub MiniD Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:11Z + 2023-09-24T01:35:58Z Daily Trending of MiniD in GitHub \ No newline at end of file diff --git a/minid/weekly/index.xml b/minid/weekly/index.xml new file mode 100644 index 00000000000..f2ca63e7557 --- /dev/null +++ b/minid/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub MiniD Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:00Z + Weekly Trending of MiniD in GitHub + + \ No newline at end of file diff --git a/mint/daily/index.xml b/mint/daily/index.xml index 38fb1f33b03..eb535d30ae3 100644 --- a/mint/daily/index.xml +++ b/mint/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mint Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:16Z + 2023-09-24T01:36:02Z Daily Trending of Mint in GitHub \ No newline at end of file diff --git a/mint/weekly/index.xml b/mint/weekly/index.xml new file mode 100644 index 00000000000..5ab8c3b51ac --- /dev/null +++ b/mint/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Mint Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:02Z + Weekly Trending of Mint in GitHub + + \ No newline at end of file diff --git a/mirah/daily/index.xml b/mirah/daily/index.xml index 5dc266b27f3..c59ab2ca6ac 100644 --- a/mirah/daily/index.xml +++ b/mirah/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mirah Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:16Z + 2023-09-24T01:36:00Z Daily Trending of Mirah in GitHub \ No newline at end of file diff --git a/mirah/weekly/index.xml b/mirah/weekly/index.xml new file mode 100644 index 00000000000..5f3640e463c --- /dev/null +++ b/mirah/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Mirah Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:02Z + Weekly Trending of Mirah in GitHub + + \ No newline at end of file diff --git a/mirc-script/daily/index.xml b/mirc-script/daily/index.xml index ffa72b520f6..3ec1490eb7b 100644 --- a/mirc-script/daily/index.xml +++ b/mirc-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub mIRC Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:17Z + 2023-09-24T01:36:03Z Daily Trending of mIRC Script in GitHub \ No newline at end of file diff --git a/mirc-script/weekly/index.xml b/mirc-script/weekly/index.xml new file mode 100644 index 00000000000..bed13524f7d --- /dev/null +++ b/mirc-script/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub mIRC Script Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:03Z + Weekly Trending of mIRC Script in GitHub + + \ No newline at end of file diff --git a/mlir/daily/index.xml b/mlir/daily/index.xml index 713cde4d9d7..ca8df1a36e1 100644 --- a/mlir/daily/index.xml +++ b/mlir/daily/index.xml @@ -1,7 +1,7 @@ GitHub MLIR Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:20Z + 2023-09-24T01:36:04Z Daily Trending of MLIR in GitHub \ No newline at end of file diff --git a/mlir/weekly/index.xml b/mlir/weekly/index.xml new file mode 100644 index 00000000000..abe0163c9c9 --- /dev/null +++ b/mlir/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub MLIR Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:04Z + Weekly Trending of MLIR in GitHub + + \ No newline at end of file diff --git a/modelica/daily/index.xml b/modelica/daily/index.xml index 1f29928011b..2ac1907ce5e 100644 --- a/modelica/daily/index.xml +++ b/modelica/daily/index.xml @@ -1,7 +1,7 @@ GitHub Modelica Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:22Z + 2023-09-24T01:36:05Z Daily Trending of Modelica in GitHub \ No newline at end of file diff --git a/modelica/weekly/index.xml b/modelica/weekly/index.xml new file mode 100644 index 00000000000..24bb7e7412d --- /dev/null +++ b/modelica/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Modelica Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:05Z + Weekly Trending of Modelica in GitHub + + \ No newline at end of file diff --git a/modula-2/daily/index.xml b/modula-2/daily/index.xml index f99323c288d..5c20e60f4fb 100644 --- a/modula-2/daily/index.xml +++ b/modula-2/daily/index.xml @@ -1,7 +1,7 @@ GitHub Modula-2 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:21Z + 2023-09-24T01:36:06Z Daily Trending of Modula-2 in GitHub \ No newline at end of file diff --git a/modula-2/weekly/index.xml b/modula-2/weekly/index.xml new file mode 100644 index 00000000000..6ae01eb2550 --- /dev/null +++ b/modula-2/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Modula-2 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:06Z + Weekly Trending of Modula-2 in GitHub + + \ No newline at end of file diff --git a/modula-3/daily/index.xml b/modula-3/daily/index.xml index a14cd741663..5c1db24b988 100644 --- a/modula-3/daily/index.xml +++ b/modula-3/daily/index.xml @@ -1,7 +1,7 @@ GitHub Modula-3 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:19Z + 2023-09-24T01:36:06Z Daily Trending of Modula-3 in GitHub \ No newline at end of file diff --git a/modula-3/weekly/index.xml b/modula-3/weekly/index.xml new file mode 100644 index 00000000000..4d0647c78cf --- /dev/null +++ b/modula-3/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Modula-3 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:07Z + Weekly Trending of Modula-3 in GitHub + + \ No newline at end of file diff --git a/module-management-system/daily/index.xml b/module-management-system/daily/index.xml index bdcfcda8505..819eda2bc95 100644 --- a/module-management-system/daily/index.xml +++ b/module-management-system/daily/index.xml @@ -1,7 +1,7 @@ GitHub Module Management System Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:25Z + 2023-09-24T01:36:10Z Daily Trending of Module Management System in GitHub \ No newline at end of file diff --git a/module-management-system/weekly/index.xml b/module-management-system/weekly/index.xml new file mode 100644 index 00000000000..278f05583f0 --- /dev/null +++ b/module-management-system/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Module Management System Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:08Z + Weekly Trending of Module Management System in GitHub + + \ No newline at end of file diff --git a/monkey-c/daily/index.xml b/monkey-c/daily/index.xml index 0ee42912aa6..7cfd2aa25a1 100644 --- a/monkey-c/daily/index.xml +++ b/monkey-c/daily/index.xml @@ -1,7 +1,7 @@ GitHub Monkey C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:26Z + 2023-09-24T01:36:09Z Daily Trending of Monkey C in GitHub \ No newline at end of file diff --git a/monkey-c/weekly/index.xml b/monkey-c/weekly/index.xml new file mode 100644 index 00000000000..5886eef5657 --- /dev/null +++ b/monkey-c/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Monkey C Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:10Z + Weekly Trending of Monkey C in GitHub + + \ No newline at end of file diff --git a/monkey/daily/index.xml b/monkey/daily/index.xml index f056482dbc0..cea167f29f2 100644 --- a/monkey/daily/index.xml +++ b/monkey/daily/index.xml @@ -1,7 +1,7 @@ GitHub Monkey Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:25Z + 2023-09-24T01:36:08Z Daily Trending of Monkey in GitHub \ No newline at end of file diff --git a/monkey/weekly/index.xml b/monkey/weekly/index.xml new file mode 100644 index 00000000000..9c0e40e0573 --- /dev/null +++ b/monkey/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Monkey Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:11Z + Weekly Trending of Monkey in GitHub + + \ No newline at end of file diff --git a/moocode/daily/index.xml b/moocode/daily/index.xml index 87b75f3a7ab..dae469d3bd8 100644 --- a/moocode/daily/index.xml +++ b/moocode/daily/index.xml @@ -1,7 +1,7 @@ GitHub Moocode Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:24Z + 2023-09-24T01:36:09Z Daily Trending of Moocode in GitHub \ No newline at end of file diff --git a/moocode/weekly/index.xml b/moocode/weekly/index.xml new file mode 100644 index 00000000000..ce6f46d03e8 --- /dev/null +++ b/moocode/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Moocode Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:09Z + Weekly Trending of Moocode in GitHub + + \ No newline at end of file diff --git a/moonscript/daily/index.xml b/moonscript/daily/index.xml index d2ad6145ce8..cbb8294f554 100644 --- a/moonscript/daily/index.xml +++ b/moonscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub MoonScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:29Z + 2023-09-24T01:36:12Z Daily Trending of MoonScript in GitHub \ No newline at end of file diff --git a/moonscript/weekly/index.xml b/moonscript/weekly/index.xml new file mode 100644 index 00000000000..e93ce364768 --- /dev/null +++ b/moonscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub MoonScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:13Z + Weekly Trending of MoonScript in GitHub + + \ No newline at end of file diff --git a/motoko/daily/index.xml b/motoko/daily/index.xml index b8e03e8b864..37b26855fe3 100644 --- a/motoko/daily/index.xml +++ b/motoko/daily/index.xml @@ -1,7 +1,7 @@ GitHub Motoko Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:30Z + 2023-09-24T01:36:13Z Daily Trending of Motoko in GitHub \ No newline at end of file diff --git a/motoko/weekly/index.xml b/motoko/weekly/index.xml new file mode 100644 index 00000000000..1dac285c433 --- /dev/null +++ b/motoko/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Motoko Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:13Z + Weekly Trending of Motoko in GitHub + + \ No newline at end of file diff --git a/motorola-68k-assembly/daily/index.xml b/motorola-68k-assembly/daily/index.xml index c927a0085cf..7bded073f8f 100644 --- a/motorola-68k-assembly/daily/index.xml +++ b/motorola-68k-assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Motorola 68K Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:28Z + 2023-09-24T01:36:14Z Daily Trending of Motorola 68K Assembly in GitHub \ No newline at end of file diff --git a/motorola-68k-assembly/weekly/index.xml b/motorola-68k-assembly/weekly/index.xml new file mode 100644 index 00000000000..b910d99aab8 --- /dev/null +++ b/motorola-68k-assembly/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Motorola 68K Assembly Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:12Z + Weekly Trending of Motorola 68K Assembly in GitHub + + \ No newline at end of file diff --git a/mql4/daily/index.xml b/mql4/daily/index.xml index 5c4b54e2449..4cee45cd158 100644 --- a/mql4/daily/index.xml +++ b/mql4/daily/index.xml @@ -1,7 +1,7 @@ GitHub MQL4 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:35Z + 2023-09-24T01:36:16Z Daily Trending of MQL4 in GitHub \ No newline at end of file diff --git a/mql4/weekly/index.xml b/mql4/weekly/index.xml new file mode 100644 index 00000000000..4a838632ca2 --- /dev/null +++ b/mql4/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub MQL4 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:16Z + Weekly Trending of MQL4 in GitHub + + \ No newline at end of file diff --git a/mql5/daily/index.xml b/mql5/daily/index.xml index c2b3624e5d6..2d02a445f4b 100644 --- a/mql5/daily/index.xml +++ b/mql5/daily/index.xml @@ -1,7 +1,7 @@ GitHub MQL5 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:34Z + 2023-09-24T01:36:18Z Daily Trending of MQL5 in GitHub \ No newline at end of file diff --git a/mql5/weekly/index.xml b/mql5/weekly/index.xml new file mode 100644 index 00000000000..ca445771322 --- /dev/null +++ b/mql5/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub MQL5 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:17Z + Weekly Trending of MQL5 in GitHub + + \ No newline at end of file diff --git a/mtml/daily/index.xml b/mtml/daily/index.xml index fc4cf256b89..472d18c2175 100644 --- a/mtml/daily/index.xml +++ b/mtml/daily/index.xml @@ -1,7 +1,7 @@ GitHub MTML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:33Z + 2023-09-24T01:36:17Z Daily Trending of MTML in GitHub \ No newline at end of file diff --git a/mtml/weekly/index.xml b/mtml/weekly/index.xml new file mode 100644 index 00000000000..13d716ca66d --- /dev/null +++ b/mtml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub MTML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:18Z + Weekly Trending of MTML in GitHub + + \ No newline at end of file diff --git a/muf/daily/index.xml b/muf/daily/index.xml index 1f65fe8185b..80659db5c18 100644 --- a/muf/daily/index.xml +++ b/muf/daily/index.xml @@ -1,7 +1,7 @@ GitHub MUF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:32Z + 2023-09-24T01:36:15Z Daily Trending of MUF in GitHub \ No newline at end of file diff --git a/muf/weekly/index.xml b/muf/weekly/index.xml new file mode 100644 index 00000000000..abbdbf9231d --- /dev/null +++ b/muf/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub MUF Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:15Z + Weekly Trending of MUF in GitHub + + \ No newline at end of file diff --git a/mupad/daily/index.xml b/mupad/daily/index.xml index 5f9a63ac605..ab0203d7dfa 100644 --- a/mupad/daily/index.xml +++ b/mupad/daily/index.xml @@ -1,7 +1,7 @@ GitHub mupad Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:36Z + 2023-09-24T01:36:20Z Daily Trending of mupad in GitHub \ No newline at end of file diff --git a/mupad/weekly/index.xml b/mupad/weekly/index.xml new file mode 100644 index 00000000000..661fa492e1d --- /dev/null +++ b/mupad/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub mupad Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:21Z + Weekly Trending of mupad in GitHub + + \ No newline at end of file diff --git a/muse/daily/index.xml b/muse/daily/index.xml index 85c2d4075a6..6410b98c912 100644 --- a/muse/daily/index.xml +++ b/muse/daily/index.xml @@ -1,7 +1,7 @@ GitHub Muse Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:38Z + 2023-09-24T01:36:21Z Daily Trending of Muse in GitHub \ No newline at end of file diff --git a/muse/weekly/index.xml b/muse/weekly/index.xml new file mode 100644 index 00000000000..6b198b4c0ac --- /dev/null +++ b/muse/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Muse Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:19Z + Weekly Trending of Muse in GitHub + + \ No newline at end of file diff --git a/mustache/daily/index.xml b/mustache/daily/index.xml index 21158976f83..3ab093d0f35 100644 --- a/mustache/daily/index.xml +++ b/mustache/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mustache Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:41Z + 2023-09-24T01:36:24Z Daily Trending of Mustache in GitHub \ No newline at end of file diff --git a/mustache/weekly/index.xml b/mustache/weekly/index.xml new file mode 100644 index 00000000000..b364c615208 --- /dev/null +++ b/mustache/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Mustache Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:23Z + Weekly Trending of Mustache in GitHub + + \ No newline at end of file diff --git a/myghty/daily/index.xml b/myghty/daily/index.xml index e5e209a3f47..67422052523 100644 --- a/myghty/daily/index.xml +++ b/myghty/daily/index.xml @@ -1,7 +1,7 @@ GitHub Myghty Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:37Z + 2023-09-24T01:36:19Z Daily Trending of Myghty in GitHub \ No newline at end of file diff --git a/myghty/weekly/index.xml b/myghty/weekly/index.xml new file mode 100644 index 00000000000..f18b4b62a28 --- /dev/null +++ b/myghty/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Myghty Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:20Z + Weekly Trending of Myghty in GitHub + + \ No newline at end of file diff --git a/nanorc/daily/index.xml b/nanorc/daily/index.xml index ded64d0f746..ea995eee5ae 100644 --- a/nanorc/daily/index.xml +++ b/nanorc/daily/index.xml @@ -1,7 +1,7 @@ GitHub nanorc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:44Z + 2023-09-24T01:36:25Z Daily Trending of nanorc in GitHub \ No newline at end of file diff --git a/nanorc/weekly/index.xml b/nanorc/weekly/index.xml new file mode 100644 index 00000000000..6221acd607c --- /dev/null +++ b/nanorc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub nanorc Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:26Z + Weekly Trending of nanorc in GitHub + + \ No newline at end of file diff --git a/nasl/daily/index.xml b/nasl/daily/index.xml index 005b5548103..dc06cdb4bd2 100644 --- a/nasl/daily/index.xml +++ b/nasl/daily/index.xml @@ -1,7 +1,7 @@ GitHub NASL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:45Z + 2023-09-24T01:36:28Z Daily Trending of NASL in GitHub \ No newline at end of file diff --git a/nasl/weekly/index.xml b/nasl/weekly/index.xml new file mode 100644 index 00000000000..d7f5fe7416b --- /dev/null +++ b/nasl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NASL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:27Z + Weekly Trending of NASL in GitHub + + \ No newline at end of file diff --git a/ncl/daily/index.xml b/ncl/daily/index.xml index c487f4ba8f1..e61cebf6d29 100644 --- a/ncl/daily/index.xml +++ b/ncl/daily/index.xml @@ -1,7 +1,7 @@ GitHub NCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:42Z + 2023-09-24T01:36:26Z Daily Trending of NCL in GitHub \ No newline at end of file diff --git a/ncl/weekly/index.xml b/ncl/weekly/index.xml new file mode 100644 index 00000000000..fb954f7d94e --- /dev/null +++ b/ncl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NCL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:25Z + Weekly Trending of NCL in GitHub + + \ No newline at end of file diff --git a/nearley/daily/index.xml b/nearley/daily/index.xml index 1e0e2664fb2..d6748ad5afa 100644 --- a/nearley/daily/index.xml +++ b/nearley/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nearley Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:47Z + 2023-09-24T01:36:29Z Daily Trending of Nearley in GitHub \ No newline at end of file diff --git a/nearley/weekly/index.xml b/nearley/weekly/index.xml new file mode 100644 index 00000000000..eb1edce0391 --- /dev/null +++ b/nearley/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Nearley Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:28Z + Weekly Trending of Nearley in GitHub + + \ No newline at end of file diff --git a/nemerle/daily/index.xml b/nemerle/daily/index.xml index 8c50a93055d..fe40191da21 100644 --- a/nemerle/daily/index.xml +++ b/nemerle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nemerle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:49Z + 2023-09-24T01:36:30Z Daily Trending of Nemerle in GitHub \ No newline at end of file diff --git a/nemerle/weekly/index.xml b/nemerle/weekly/index.xml new file mode 100644 index 00000000000..33db213cf6f --- /dev/null +++ b/nemerle/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Nemerle Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:29Z + Weekly Trending of Nemerle in GitHub + + \ No newline at end of file diff --git a/neon/daily/index.xml b/neon/daily/index.xml index 9f932864aa5..39f5646e8e4 100644 --- a/neon/daily/index.xml +++ b/neon/daily/index.xml @@ -1,7 +1,7 @@ GitHub NEON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:46Z + 2023-09-24T01:36:30Z Daily Trending of NEON in GitHub \ No newline at end of file diff --git a/neon/weekly/index.xml b/neon/weekly/index.xml new file mode 100644 index 00000000000..741a72b69f9 --- /dev/null +++ b/neon/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NEON Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:31Z + Weekly Trending of NEON in GitHub + + \ No newline at end of file diff --git a/nesc/daily/index.xml b/nesc/daily/index.xml index 8a2461a021b..0bb4fbd4226 100644 --- a/nesc/daily/index.xml +++ b/nesc/daily/index.xml @@ -1,7 +1,7 @@ GitHub nesC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:48Z + 2023-09-24T01:36:31Z Daily Trending of nesC in GitHub \ No newline at end of file diff --git a/nesc/weekly/index.xml b/nesc/weekly/index.xml new file mode 100644 index 00000000000..13732b466b9 --- /dev/null +++ b/nesc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub nesC Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:30Z + Weekly Trending of nesC in GitHub + + \ No newline at end of file diff --git a/netlinx+erb/daily/index.xml b/netlinx+erb/daily/index.xml index 823f7d89f7a..74bbb62206a 100644 --- a/netlinx+erb/daily/index.xml +++ b/netlinx+erb/daily/index.xml @@ -1,7 +1,7 @@ GitHub NetLinx+ERB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:51Z + 2023-09-24T01:36:33Z Daily Trending of NetLinx+ERB in GitHub \ No newline at end of file diff --git a/netlinx+erb/weekly/index.xml b/netlinx+erb/weekly/index.xml new file mode 100644 index 00000000000..a129f3540d4 --- /dev/null +++ b/netlinx+erb/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NetLinx+ERB Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:34Z + Weekly Trending of NetLinx+ERB in GitHub + + \ No newline at end of file diff --git a/netlinx/daily/index.xml b/netlinx/daily/index.xml index d18b47951d3..12c53e12346 100644 --- a/netlinx/daily/index.xml +++ b/netlinx/daily/index.xml @@ -1,7 +1,7 @@ GitHub NetLinx Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:52Z + 2023-09-24T01:36:35Z Daily Trending of NetLinx in GitHub \ No newline at end of file diff --git a/netlinx/weekly/index.xml b/netlinx/weekly/index.xml new file mode 100644 index 00000000000..59ed4f532c1 --- /dev/null +++ b/netlinx/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NetLinx Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:35Z + Weekly Trending of NetLinx in GitHub + + \ No newline at end of file diff --git a/netlogo/daily/index.xml b/netlogo/daily/index.xml index fcf04c55140..1d5af64ed75 100644 --- a/netlogo/daily/index.xml +++ b/netlogo/daily/index.xml @@ -1,7 +1,7 @@ GitHub NetLogo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:50Z + 2023-09-24T01:36:32Z Daily Trending of NetLogo in GitHub \ No newline at end of file diff --git a/netlogo/weekly/index.xml b/netlogo/weekly/index.xml new file mode 100644 index 00000000000..aa6f52a5582 --- /dev/null +++ b/netlogo/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NetLogo Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:32Z + Weekly Trending of NetLogo in GitHub + + \ No newline at end of file diff --git a/newlisp/daily/index.xml b/newlisp/daily/index.xml index d9643f33721..10656bd0ec8 100644 --- a/newlisp/daily/index.xml +++ b/newlisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub NewLisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:53Z + 2023-09-24T01:36:34Z Daily Trending of NewLisp in GitHub \ No newline at end of file diff --git a/newlisp/weekly/index.xml b/newlisp/weekly/index.xml new file mode 100644 index 00000000000..67242c8fd01 --- /dev/null +++ b/newlisp/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NewLisp Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:33Z + Weekly Trending of NewLisp in GitHub + + \ No newline at end of file diff --git a/nextflow/daily/index.xml b/nextflow/daily/index.xml index f21ed5414bf..58df2c3c84f 100644 --- a/nextflow/daily/index.xml +++ b/nextflow/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nextflow Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:55Z + 2023-09-24T01:36:37Z Daily Trending of Nextflow in GitHub \ No newline at end of file diff --git a/nextflow/weekly/index.xml b/nextflow/weekly/index.xml new file mode 100644 index 00000000000..55a1e5dbdd9 --- /dev/null +++ b/nextflow/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Nextflow Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:37Z + Weekly Trending of Nextflow in GitHub + + \ No newline at end of file diff --git a/nginx/daily/index.xml b/nginx/daily/index.xml index fa5c7135b3f..05a0362b6a2 100644 --- a/nginx/daily/index.xml +++ b/nginx/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nginx Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:57Z + 2023-09-24T01:36:36Z Daily Trending of Nginx in GitHub \ No newline at end of file diff --git a/nginx/weekly/index.xml b/nginx/weekly/index.xml new file mode 100644 index 00000000000..4dc086cf9fc --- /dev/null +++ b/nginx/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Nginx Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:38Z + Weekly Trending of Nginx in GitHub + + + hamptonpaulk/php7-dockerized + 2023-09-24T01:56:38Z + tag:github.com,2023-09-24:/hamptonpaulk/php7-dockerized + + <p>Simple PHP7 Docker & Compose Environment</p><hr> + + \ No newline at end of file diff --git a/nim/daily/index.xml b/nim/daily/index.xml index 6300e82dadc..1e38a818803 100644 --- a/nim/daily/index.xml +++ b/nim/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nim Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:56Z + 2023-09-24T01:36:39Z Daily Trending of Nim in GitHub \ No newline at end of file diff --git a/nim/weekly/index.xml b/nim/weekly/index.xml new file mode 100644 index 00000000000..daa84217d49 --- /dev/null +++ b/nim/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub Nim Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:39Z + Weekly Trending of Nim in GitHub + + + radkesvat/ReverseTlsTunnel + 2023-09-24T01:56:39Z + tag:github.com,2023-09-24:/radkesvat/ReverseTlsTunnel + + <p>Reverse Tcp Tunnel with custom sni handshake, mux support and more...</p><hr> + + + nim-lang/atlas + 2023-09-24T01:56:39Z + tag:github.com,2023-09-24:/nim-lang/atlas + + <p>The Atlas Package cloner. It manages an isolated workspace that contains projects and dependencies.</p><hr> + + \ No newline at end of file diff --git a/ninja/daily/index.xml b/ninja/daily/index.xml index 26b25f29884..abfb416db37 100644 --- a/ninja/daily/index.xml +++ b/ninja/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ninja Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:54Z + 2023-09-24T01:36:38Z Daily Trending of Ninja in GitHub \ No newline at end of file diff --git a/ninja/weekly/index.xml b/ninja/weekly/index.xml new file mode 100644 index 00000000000..dcab552022a --- /dev/null +++ b/ninja/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ninja Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:36Z + Weekly Trending of Ninja in GitHub + + \ No newline at end of file diff --git a/nit/daily/index.xml b/nit/daily/index.xml index a6aa48b98ac..6d92ea3383a 100644 --- a/nit/daily/index.xml +++ b/nit/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nit Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:59Z + 2023-09-24T01:36:40Z Daily Trending of Nit in GitHub \ No newline at end of file diff --git a/nit/weekly/index.xml b/nit/weekly/index.xml new file mode 100644 index 00000000000..082a8eedd3b --- /dev/null +++ b/nit/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Nit Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:41Z + Weekly Trending of Nit in GitHub + + \ No newline at end of file diff --git a/nix/daily/index.xml b/nix/daily/index.xml index 5cf4f573ffa..ffc425c402f 100644 --- a/nix/daily/index.xml +++ b/nix/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nix Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:02Z + 2023-09-24T01:36:44Z Daily Trending of Nix in GitHub \ No newline at end of file diff --git a/nix/weekly/index.xml b/nix/weekly/index.xml new file mode 100644 index 00000000000..a982a6ace43 --- /dev/null +++ b/nix/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Nix Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:44Z + Weekly Trending of Nix in GitHub + + + accelbread/flakelight + 2023-09-24T01:56:44Z + tag:github.com,2023-09-24:/accelbread/flakelight + + <p>Framework for simplifying flake setup</p><hr> + + \ No newline at end of file diff --git a/nl/daily/index.xml b/nl/daily/index.xml index 5d5a16f8721..90c2431df3c 100644 --- a/nl/daily/index.xml +++ b/nl/daily/index.xml @@ -1,7 +1,7 @@ GitHub NL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:00Z + 2023-09-24T01:36:42Z Daily Trending of NL in GitHub \ No newline at end of file diff --git a/nl/weekly/index.xml b/nl/weekly/index.xml new file mode 100644 index 00000000000..79f66698067 --- /dev/null +++ b/nl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:42Z + Weekly Trending of NL in GitHub + + \ No newline at end of file diff --git a/npm-config/daily/index.xml b/npm-config/daily/index.xml index 6f277b52c2b..56f36e027fa 100644 --- a/npm-config/daily/index.xml +++ b/npm-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub NPM Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:32:58Z + 2023-09-24T01:36:41Z Daily Trending of NPM Config in GitHub \ No newline at end of file diff --git a/npm-config/weekly/index.xml b/npm-config/weekly/index.xml new file mode 100644 index 00000000000..28368e625bb --- /dev/null +++ b/npm-config/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NPM Config Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:40Z + Weekly Trending of NPM Config in GitHub + + \ No newline at end of file diff --git a/nsis/daily/index.xml b/nsis/daily/index.xml index e6e316a5bf2..bf28121664d 100644 --- a/nsis/daily/index.xml +++ b/nsis/daily/index.xml @@ -1,7 +1,7 @@ GitHub NSIS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:03Z + 2023-09-24T01:36:47Z Daily Trending of NSIS in GitHub \ No newline at end of file diff --git a/nsis/weekly/index.xml b/nsis/weekly/index.xml new file mode 100644 index 00000000000..083e0893113 --- /dev/null +++ b/nsis/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NSIS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:47Z + Weekly Trending of NSIS in GitHub + + \ No newline at end of file diff --git a/nu/daily/index.xml b/nu/daily/index.xml index 7d5472c93e2..6a9a75e32d4 100644 --- a/nu/daily/index.xml +++ b/nu/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nu Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:04Z + 2023-09-24T01:36:45Z Daily Trending of Nu in GitHub \ No newline at end of file diff --git a/nu/weekly/index.xml b/nu/weekly/index.xml new file mode 100644 index 00000000000..1623b11892f --- /dev/null +++ b/nu/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Nu Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:46Z + Weekly Trending of Nu in GitHub + + \ No newline at end of file diff --git a/numpy/daily/index.xml b/numpy/daily/index.xml index 9c87a36f29c..508f7a81be6 100644 --- a/numpy/daily/index.xml +++ b/numpy/daily/index.xml @@ -1,7 +1,7 @@ GitHub NumPy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:07Z + 2023-09-24T01:36:46Z Daily Trending of NumPy in GitHub \ No newline at end of file diff --git a/numpy/weekly/index.xml b/numpy/weekly/index.xml new file mode 100644 index 00000000000..5811e214bb5 --- /dev/null +++ b/numpy/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NumPy Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:45Z + Weekly Trending of NumPy in GitHub + + \ No newline at end of file diff --git a/nunjucks/daily/index.xml b/nunjucks/daily/index.xml index 22f6ae0b8b0..2a862fcc06d 100644 --- a/nunjucks/daily/index.xml +++ b/nunjucks/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nunjucks Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:06Z + 2023-09-24T01:36:49Z Daily Trending of Nunjucks in GitHub \ No newline at end of file diff --git a/nunjucks/weekly/index.xml b/nunjucks/weekly/index.xml new file mode 100644 index 00000000000..961e2e87102 --- /dev/null +++ b/nunjucks/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Nunjucks Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:48Z + Weekly Trending of Nunjucks in GitHub + + \ No newline at end of file diff --git a/nwscript/daily/index.xml b/nwscript/daily/index.xml index b37e090f206..9daea86c3bb 100644 --- a/nwscript/daily/index.xml +++ b/nwscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub NWScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:10Z + 2023-09-24T01:36:50Z Daily Trending of NWScript in GitHub \ No newline at end of file diff --git a/nwscript/weekly/index.xml b/nwscript/weekly/index.xml new file mode 100644 index 00000000000..7906b533321 --- /dev/null +++ b/nwscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub NWScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:52Z + Weekly Trending of NWScript in GitHub + + \ No newline at end of file diff --git a/objdump/daily/index.xml b/objdump/daily/index.xml index 2d20cdc1b35..cda0ce450f9 100644 --- a/objdump/daily/index.xml +++ b/objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:15Z + 2023-09-24T01:36:54Z Daily Trending of ObjDump in GitHub \ No newline at end of file diff --git a/objdump/weekly/index.xml b/objdump/weekly/index.xml new file mode 100644 index 00000000000..e09f6cf5fae --- /dev/null +++ b/objdump/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ObjDump Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:55Z + Weekly Trending of ObjDump in GitHub + + \ No newline at end of file diff --git a/object-data-instance-notation/daily/index.xml b/object-data-instance-notation/daily/index.xml index a321eb90ed2..aefbc45a4d7 100644 --- a/object-data-instance-notation/daily/index.xml +++ b/object-data-instance-notation/daily/index.xml @@ -1,7 +1,7 @@ GitHub Object Data Instance Notation Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:14Z + 2023-09-24T01:36:53Z Daily Trending of Object Data Instance Notation in GitHub \ No newline at end of file diff --git a/object-data-instance-notation/weekly/index.xml b/object-data-instance-notation/weekly/index.xml new file mode 100644 index 00000000000..86635d196b6 --- /dev/null +++ b/object-data-instance-notation/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Object Data Instance Notation Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:54Z + Weekly Trending of Object Data Instance Notation in GitHub + + \ No newline at end of file diff --git a/objective-c++/daily/index.xml b/objective-c++/daily/index.xml index 2923081476d..0201ee9e0f6 100644 --- a/objective-c++/daily/index.xml +++ b/objective-c++/daily/index.xml @@ -1,7 +1,7 @@ GitHub Objective-C++ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:18Z + 2023-09-24T01:36:59Z Daily Trending of Objective-C++ in GitHub \ No newline at end of file diff --git a/objective-c++/weekly/index.xml b/objective-c++/weekly/index.xml new file mode 100644 index 00000000000..fc23dea37b5 --- /dev/null +++ b/objective-c++/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Objective-C++ Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:59Z + Weekly Trending of Objective-C++ in GitHub + + + AppLovin/AppLovin-MAX-Godot + 2023-09-24T01:56:59Z + tag:github.com,2023-09-24:/AppLovin/AppLovin-MAX-Godot + + <p></p><hr> + + \ No newline at end of file diff --git a/objective-c/daily/index.xml b/objective-c/daily/index.xml index c4dfd12b811..6608e73e06e 100644 --- a/objective-c/daily/index.xml +++ b/objective-c/daily/index.xml @@ -1,7 +1,7 @@ GitHub Objective-C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:22Z + 2023-09-24T01:37:03Z Daily Trending of Objective-C in GitHub \ No newline at end of file diff --git a/objective-c/weekly/index.xml b/objective-c/weekly/index.xml new file mode 100644 index 00000000000..d9acb59f40f --- /dev/null +++ b/objective-c/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Objective-C Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:02Z + Weekly Trending of Objective-C in GitHub + + + Sependa/google-api-objectivec-client + 2023-09-24T01:57:02Z + tag:github.com,2023-09-24:/Sependa/google-api-objectivec-client + + <p>Fork of Google's SVN Repo</p><hr><p>This is a fork of Google's public SVN repository from <a href="http://code.google.com/p/google-api-objectivec-client/">http://code.google.com/p/google-api-objectivec-client/</a></p> + + \ No newline at end of file diff --git a/objective-j/daily/index.xml b/objective-j/daily/index.xml index ef76a01efbf..e69ee5e55b9 100644 --- a/objective-j/daily/index.xml +++ b/objective-j/daily/index.xml @@ -1,7 +1,7 @@ GitHub Objective-J Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:16Z + 2023-09-24T01:36:58Z Daily Trending of Objective-J in GitHub \ No newline at end of file diff --git a/objective-j/weekly/index.xml b/objective-j/weekly/index.xml new file mode 100644 index 00000000000..109e283224c --- /dev/null +++ b/objective-j/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Objective-J Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:56Z + Weekly Trending of Objective-J in GitHub + + \ No newline at end of file diff --git a/objectscript/daily/index.xml b/objectscript/daily/index.xml index 88653e4644b..743369e5292 100644 --- a/objectscript/daily/index.xml +++ b/objectscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ObjectScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:17Z + 2023-09-24T01:36:57Z Daily Trending of ObjectScript in GitHub \ No newline at end of file diff --git a/objectscript/weekly/index.xml b/objectscript/weekly/index.xml new file mode 100644 index 00000000000..3b344c6a09d --- /dev/null +++ b/objectscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ObjectScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:56:57Z + Weekly Trending of ObjectScript in GitHub + + \ No newline at end of file diff --git a/ocaml/daily/index.xml b/ocaml/daily/index.xml index d9a4441fefb..836acedf4a2 100644 --- a/ocaml/daily/index.xml +++ b/ocaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub OCaml Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:36Z + 2023-09-24T01:37:17Z Daily Trending of OCaml in GitHub \ No newline at end of file diff --git a/ocaml/weekly/index.xml b/ocaml/weekly/index.xml new file mode 100644 index 00000000000..4b00219e21b --- /dev/null +++ b/ocaml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub OCaml Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:15Z + Weekly Trending of OCaml in GitHub + + \ No newline at end of file diff --git a/odin/daily/index.xml b/odin/daily/index.xml index 217ff313827..6e2bd3bf87a 100644 --- a/odin/daily/index.xml +++ b/odin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Odin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:33Z + 2023-09-24T01:37:15Z Daily Trending of Odin in GitHub \ No newline at end of file diff --git a/odin/weekly/index.xml b/odin/weekly/index.xml new file mode 100644 index 00000000000..b2d8d7dd3ec --- /dev/null +++ b/odin/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Odin Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:13Z + Weekly Trending of Odin in GitHub + + \ No newline at end of file diff --git a/omgrofl/daily/index.xml b/omgrofl/daily/index.xml index d93dec6c728..30a00d03ee3 100644 --- a/omgrofl/daily/index.xml +++ b/omgrofl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Omgrofl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:34Z + 2023-09-24T01:37:14Z Daily Trending of Omgrofl in GitHub \ No newline at end of file diff --git a/omgrofl/weekly/index.xml b/omgrofl/weekly/index.xml new file mode 100644 index 00000000000..de2eea8092f --- /dev/null +++ b/omgrofl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Omgrofl Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:11Z + Weekly Trending of Omgrofl in GitHub + + \ No newline at end of file diff --git a/ooc/daily/index.xml b/ooc/daily/index.xml index b5b9b5c6f3e..81e51dc7f59 100644 --- a/ooc/daily/index.xml +++ b/ooc/daily/index.xml @@ -1,7 +1,7 @@ GitHub ooc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:32Z + 2023-09-24T01:37:13Z Daily Trending of ooc in GitHub \ No newline at end of file diff --git a/ooc/weekly/index.xml b/ooc/weekly/index.xml new file mode 100644 index 00000000000..de284bd50ac --- /dev/null +++ b/ooc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ooc Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:12Z + Weekly Trending of ooc in GitHub + + \ No newline at end of file diff --git a/opa/daily/index.xml b/opa/daily/index.xml index 7f151a5364c..0d4b68a2960 100644 --- a/opa/daily/index.xml +++ b/opa/daily/index.xml @@ -1,7 +1,7 @@ GitHub Opa Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:39Z + 2023-09-24T01:37:21Z Daily Trending of Opa in GitHub \ No newline at end of file diff --git a/opa/weekly/index.xml b/opa/weekly/index.xml new file mode 100644 index 00000000000..1ddba254a54 --- /dev/null +++ b/opa/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Opa Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:18Z + Weekly Trending of Opa in GitHub + + \ No newline at end of file diff --git a/opal/daily/index.xml b/opal/daily/index.xml index aade4568eab..38dd4ebc3db 100644 --- a/opal/daily/index.xml +++ b/opal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Opal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:40Z + 2023-09-24T01:37:19Z Daily Trending of Opal in GitHub \ No newline at end of file diff --git a/opal/weekly/index.xml b/opal/weekly/index.xml new file mode 100644 index 00000000000..fa453230bdd --- /dev/null +++ b/opal/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Opal Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:17Z + Weekly Trending of Opal in GitHub + + \ No newline at end of file diff --git a/open-policy-agent/daily/index.xml b/open-policy-agent/daily/index.xml index a220aa28657..9da0b7194e0 100644 --- a/open-policy-agent/daily/index.xml +++ b/open-policy-agent/daily/index.xml @@ -1,7 +1,7 @@ GitHub Open Policy Agent Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:37Z + 2023-09-24T01:37:20Z Daily Trending of Open Policy Agent in GitHub \ No newline at end of file diff --git a/open-policy-agent/weekly/index.xml b/open-policy-agent/weekly/index.xml new file mode 100644 index 00000000000..ff0c4aeeaa2 --- /dev/null +++ b/open-policy-agent/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Open Policy Agent Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:19Z + Weekly Trending of Open Policy Agent in GitHub + + \ No newline at end of file diff --git a/opencl/daily/index.xml b/opencl/daily/index.xml index 61f0b76af4c..889c743e14b 100644 --- a/opencl/daily/index.xml +++ b/opencl/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:43Z + 2023-09-24T01:37:24Z Daily Trending of OpenCL in GitHub \ No newline at end of file diff --git a/opencl/weekly/index.xml b/opencl/weekly/index.xml new file mode 100644 index 00000000000..7100a949183 --- /dev/null +++ b/opencl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub OpenCL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:20Z + Weekly Trending of OpenCL in GitHub + + \ No newline at end of file diff --git a/openedge-abl/daily/index.xml b/openedge-abl/daily/index.xml index a80f3b11d12..2067852d1bb 100644 --- a/openedge-abl/daily/index.xml +++ b/openedge-abl/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenEdge ABL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:42Z + 2023-09-24T01:37:22Z Daily Trending of OpenEdge ABL in GitHub \ No newline at end of file diff --git a/openedge-abl/weekly/index.xml b/openedge-abl/weekly/index.xml new file mode 100644 index 00000000000..d069fb0a4f3 --- /dev/null +++ b/openedge-abl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub OpenEdge ABL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:21Z + Weekly Trending of OpenEdge ABL in GitHub + + \ No newline at end of file diff --git a/openqasm/daily/index.xml b/openqasm/daily/index.xml index c7efe89e4bb..185b28b3162 100644 --- a/openqasm/daily/index.xml +++ b/openqasm/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenQASM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:41Z + 2023-09-24T01:37:23Z Daily Trending of OpenQASM in GitHub \ No newline at end of file diff --git a/openqasm/weekly/index.xml b/openqasm/weekly/index.xml new file mode 100644 index 00000000000..c7ac8d131af --- /dev/null +++ b/openqasm/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub OpenQASM Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:22Z + Weekly Trending of OpenQASM in GitHub + + \ No newline at end of file diff --git a/openrc-runscript/daily/index.xml b/openrc-runscript/daily/index.xml index f7ccf65823b..e48a6ed3b5a 100644 --- a/openrc-runscript/daily/index.xml +++ b/openrc-runscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenRC runscript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:46Z + 2023-09-24T01:37:28Z Daily Trending of OpenRC runscript in GitHub \ No newline at end of file diff --git a/openrc-runscript/weekly/index.xml b/openrc-runscript/weekly/index.xml new file mode 100644 index 00000000000..2b2c840a320 --- /dev/null +++ b/openrc-runscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub OpenRC runscript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:25Z + Weekly Trending of OpenRC runscript in GitHub + + \ No newline at end of file diff --git a/openscad/daily/index.xml b/openscad/daily/index.xml index 708bf09de0a..024c08d6557 100644 --- a/openscad/daily/index.xml +++ b/openscad/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenSCAD Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:47Z + 2023-09-24T01:37:26Z Daily Trending of OpenSCAD in GitHub \ No newline at end of file diff --git a/openscad/weekly/index.xml b/openscad/weekly/index.xml new file mode 100644 index 00000000000..b59d0d9b5a1 --- /dev/null +++ b/openscad/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub OpenSCAD Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:26Z + Weekly Trending of OpenSCAD in GitHub + + \ No newline at end of file diff --git a/openstep-property-list/daily/index.xml b/openstep-property-list/daily/index.xml index a5b1f1a207d..6a2f4158564 100644 --- a/openstep-property-list/daily/index.xml +++ b/openstep-property-list/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenStep Property List Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:46Z + 2023-09-24T01:37:27Z Daily Trending of OpenStep Property List in GitHub \ No newline at end of file diff --git a/openstep-property-list/weekly/index.xml b/openstep-property-list/weekly/index.xml new file mode 100644 index 00000000000..2b2f81a0502 --- /dev/null +++ b/openstep-property-list/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub OpenStep Property List Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:25Z + Weekly Trending of OpenStep Property List in GitHub + + \ No newline at end of file diff --git a/opentype-feature-file/daily/index.xml b/opentype-feature-file/daily/index.xml index 70ba05a5486..1d2e20cbb76 100644 --- a/opentype-feature-file/daily/index.xml +++ b/opentype-feature-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenType Feature File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:45Z + 2023-09-24T01:37:28Z Daily Trending of OpenType Feature File in GitHub \ No newline at end of file diff --git a/opentype-feature-file/weekly/index.xml b/opentype-feature-file/weekly/index.xml new file mode 100644 index 00000000000..082530ae850 --- /dev/null +++ b/opentype-feature-file/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub OpenType Feature File Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:24Z + Weekly Trending of OpenType Feature File in GitHub + + \ No newline at end of file diff --git a/org/daily/index.xml b/org/daily/index.xml index 02d58581ffb..6d91ff41211 100644 --- a/org/daily/index.xml +++ b/org/daily/index.xml @@ -1,7 +1,7 @@ GitHub Org Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:48Z + 2023-09-24T01:37:29Z Daily Trending of Org in GitHub \ No newline at end of file diff --git a/org/weekly/index.xml b/org/weekly/index.xml new file mode 100644 index 00000000000..19675a3698b --- /dev/null +++ b/org/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Org Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:28Z + Weekly Trending of Org in GitHub + + \ No newline at end of file diff --git a/ox/daily/index.xml b/ox/daily/index.xml index 5e05725b150..e6a78e1f1a5 100644 --- a/ox/daily/index.xml +++ b/ox/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ox Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:49Z + 2023-09-24T01:37:30Z Daily Trending of Ox in GitHub \ No newline at end of file diff --git a/ox/weekly/index.xml b/ox/weekly/index.xml new file mode 100644 index 00000000000..74c7e4a713f --- /dev/null +++ b/ox/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ox Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:27Z + Weekly Trending of Ox in GitHub + + \ No newline at end of file diff --git a/oxygene/daily/index.xml b/oxygene/daily/index.xml index d6bd7353786..044aefb0e02 100644 --- a/oxygene/daily/index.xml +++ b/oxygene/daily/index.xml @@ -1,7 +1,7 @@ GitHub Oxygene Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:51Z + 2023-09-24T01:37:32Z Daily Trending of Oxygene in GitHub \ No newline at end of file diff --git a/oxygene/weekly/index.xml b/oxygene/weekly/index.xml new file mode 100644 index 00000000000..b3434a4415a --- /dev/null +++ b/oxygene/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Oxygene Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:29Z + Weekly Trending of Oxygene in GitHub + + \ No newline at end of file diff --git a/oz/daily/index.xml b/oz/daily/index.xml index b6158cadcee..299ca3ce47a 100644 --- a/oz/daily/index.xml +++ b/oz/daily/index.xml @@ -1,7 +1,7 @@ GitHub Oz Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:52Z + 2023-09-24T01:37:34Z Daily Trending of Oz in GitHub \ No newline at end of file diff --git a/oz/weekly/index.xml b/oz/weekly/index.xml new file mode 100644 index 00000000000..5e4a3a4d285 --- /dev/null +++ b/oz/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Oz Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:34Z + Weekly Trending of Oz in GitHub + + \ No newline at end of file diff --git a/p4/daily/index.xml b/p4/daily/index.xml index 06d14e5bb71..b54a56f6f6f 100644 --- a/p4/daily/index.xml +++ b/p4/daily/index.xml @@ -1,7 +1,7 @@ GitHub P4 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:53Z + 2023-09-24T01:37:36Z Daily Trending of P4 in GitHub \ No newline at end of file diff --git a/p4/weekly/index.xml b/p4/weekly/index.xml new file mode 100644 index 00000000000..92d82b24ff1 --- /dev/null +++ b/p4/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub P4 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:33Z + Weekly Trending of P4 in GitHub + + \ No newline at end of file diff --git a/pan/daily/index.xml b/pan/daily/index.xml index 3eb994fd04e..ccd7e2e472b 100644 --- a/pan/daily/index.xml +++ b/pan/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pan Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:55Z + 2023-09-24T01:37:33Z Daily Trending of Pan in GitHub \ No newline at end of file diff --git a/pan/weekly/index.xml b/pan/weekly/index.xml new file mode 100644 index 00000000000..3fe6acdb31a --- /dev/null +++ b/pan/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pan Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:31Z + Weekly Trending of Pan in GitHub + + \ No newline at end of file diff --git a/papyrus/daily/index.xml b/papyrus/daily/index.xml index 466808db5f4..987ad499faa 100644 --- a/papyrus/daily/index.xml +++ b/papyrus/daily/index.xml @@ -1,7 +1,7 @@ GitHub Papyrus Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:57Z + 2023-09-24T01:37:40Z Daily Trending of Papyrus in GitHub \ No newline at end of file diff --git a/papyrus/weekly/index.xml b/papyrus/weekly/index.xml new file mode 100644 index 00000000000..a44204480b9 --- /dev/null +++ b/papyrus/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Papyrus Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:35Z + Weekly Trending of Papyrus in GitHub + + \ No newline at end of file diff --git a/parrot-assembly/daily/index.xml b/parrot-assembly/daily/index.xml index 5fd60778a11..c9638ed610b 100644 --- a/parrot-assembly/daily/index.xml +++ b/parrot-assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Parrot Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:58Z + 2023-09-24T01:37:39Z Daily Trending of Parrot Assembly in GitHub \ No newline at end of file diff --git a/parrot-assembly/weekly/index.xml b/parrot-assembly/weekly/index.xml new file mode 100644 index 00000000000..706ca6598ea --- /dev/null +++ b/parrot-assembly/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Parrot Assembly Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:36Z + Weekly Trending of Parrot Assembly in GitHub + + \ No newline at end of file diff --git a/parrot-internal-representation/daily/index.xml b/parrot-internal-representation/daily/index.xml index 1be76e45660..439e91225c6 100644 --- a/parrot-internal-representation/daily/index.xml +++ b/parrot-internal-representation/daily/index.xml @@ -1,7 +1,7 @@ GitHub Parrot Internal Representation Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:56Z + 2023-09-24T01:37:37Z Daily Trending of Parrot Internal Representation in GitHub \ No newline at end of file diff --git a/parrot-internal-representation/weekly/index.xml b/parrot-internal-representation/weekly/index.xml new file mode 100644 index 00000000000..0f51d4e30d2 --- /dev/null +++ b/parrot-internal-representation/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Parrot Internal Representation Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:35Z + Weekly Trending of Parrot Internal Representation in GitHub + + \ No newline at end of file diff --git a/parrot/daily/index.xml b/parrot/daily/index.xml index 177af5fc4ce..9d127e7d15b 100644 --- a/parrot/daily/index.xml +++ b/parrot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Parrot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:33:59Z + 2023-09-24T01:37:38Z Daily Trending of Parrot in GitHub \ No newline at end of file diff --git a/parrot/weekly/index.xml b/parrot/weekly/index.xml new file mode 100644 index 00000000000..262d8fd10bb --- /dev/null +++ b/parrot/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Parrot Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:37Z + Weekly Trending of Parrot in GitHub + + \ No newline at end of file diff --git a/pascal/daily/index.xml b/pascal/daily/index.xml index d7a4c3cb6b0..66c598198be 100644 --- a/pascal/daily/index.xml +++ b/pascal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pascal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:03Z + 2023-09-24T01:37:44Z Daily Trending of Pascal in GitHub \ No newline at end of file diff --git a/pascal/weekly/index.xml b/pascal/weekly/index.xml new file mode 100644 index 00000000000..0459273e96c --- /dev/null +++ b/pascal/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Pascal Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:42Z + Weekly Trending of Pascal in GitHub + + + HashLoad/handle-exception + 2023-09-24T01:57:42Z + tag:github.com,2023-09-24:/HashLoad/handle-exception + + <p>Middleware for handle exception in HORSE</p><hr> + + \ No newline at end of file diff --git a/pawn/daily/index.xml b/pawn/daily/index.xml index 20cfbb8d2fb..a25c1926947 100644 --- a/pawn/daily/index.xml +++ b/pawn/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pawn Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:01Z + 2023-09-24T01:37:42Z Daily Trending of Pawn in GitHub \ No newline at end of file diff --git a/pawn/weekly/index.xml b/pawn/weekly/index.xml new file mode 100644 index 00000000000..406da079b7b --- /dev/null +++ b/pawn/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pawn Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:40Z + Weekly Trending of Pawn in GitHub + + \ No newline at end of file diff --git a/peg.js/daily/index.xml b/peg.js/daily/index.xml index da75eac1dab..b0426e5ba16 100644 --- a/peg.js/daily/index.xml +++ b/peg.js/daily/index.xml @@ -1,7 +1,7 @@ GitHub PEG.js Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:04Z + 2023-09-24T01:37:43Z Daily Trending of PEG.js in GitHub \ No newline at end of file diff --git a/peg.js/weekly/index.xml b/peg.js/weekly/index.xml new file mode 100644 index 00000000000..20ada04230c --- /dev/null +++ b/peg.js/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PEG.js Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:38Z + Weekly Trending of PEG.js in GitHub + + \ No newline at end of file diff --git a/pep8/daily/index.xml b/pep8/daily/index.xml index 4cbb8e1b561..4f22570d215 100644 --- a/pep8/daily/index.xml +++ b/pep8/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pep8 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:05Z + 2023-09-24T01:37:46Z Daily Trending of Pep8 in GitHub \ No newline at end of file diff --git a/pep8/weekly/index.xml b/pep8/weekly/index.xml new file mode 100644 index 00000000000..3f1c8dd3b46 --- /dev/null +++ b/pep8/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pep8 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:43Z + Weekly Trending of Pep8 in GitHub + + \ No newline at end of file diff --git a/perl/daily/index.xml b/perl/daily/index.xml index ae626605892..f78ef773e5c 100644 --- a/perl/daily/index.xml +++ b/perl/daily/index.xml @@ -1,7 +1,21 @@ GitHub Perl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:12Z + 2023-09-24T01:37:52Z Daily Trending of Perl in GitHub + + dlas/inventory + 2023-09-24T01:37:52Z + tag:github.com,2023-09-24:/dlas/inventory + + <p></p><hr> + + + Ensembl/VEP_plugins + 2023-09-24T01:37:52Z + tag:github.com,2023-09-24:/Ensembl/VEP_plugins + + <p>Plugins for the Ensembl Variant Effect Predictor (VEP)</p><hr><h1>Ensembl Variant Effect Predictor - Plugins</h1> <p>This repository holds plugins which are developed to extend the functionality of the Ensembl Variant Effect Predictor (VEP). See <a href="https://github.com/Ensembl/ensembl-vep/raw/main/README.md">here</a> for the core VEP code.</p> <h2>Usage</h2> <p>Please refer to the documentation in each file for details of what each plugin does and how to run it. At minimum, you will need to put the module in your ~/.vep/Plugins directory (or elsewhere on your $PERL5LIB) and then run the VEP with the argument --plugin <module name> . </module></p> <h2>Documentation</h2> <ul> <li><a href="https://www.ensembl.org/info/docs/tools/vep/index.html">VEP documentation</a> has general information on installing and running VEP.</li> <li><a href="https://www.ensembl.org/info/docs/tools/vep/script/vep_plugins.html">VEP plugin documentation</a> details how plugins are developed and used.</li> </ul> <h2>Contact Us</h2> <p>Please create a separate <a href="https://github.com/Ensembl/VEP_plugins/issues">issue</a> for each query.</p> <p>Comments or questions can also be sent to the Ensembl Helpdesk at:</p> <p><a href="https://www.ensembl.org/Help/Contact">https://www.ensembl.org/Help/Contact</a>.</p> + \ No newline at end of file diff --git a/perl/weekly/index.xml b/perl/weekly/index.xml new file mode 100644 index 00000000000..6e6c9972b1f --- /dev/null +++ b/perl/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Perl Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:50Z + Weekly Trending of Perl in GitHub + + + JJ/IV- + 2023-09-24T01:57:50Z + tag:github.com,2023-09-24:/JJ/IV- + + <p>Repositorio anual de IV</p><hr><h1>Repositorio de clase de Infraestructura Virtual de la <a href="https://etsiit.ugr.es">ETSIIT</a></h1> <blockquote> <p>Este repositorio está añadido al <a href="https://hacktoberfest.com">Hacktoberfest</a>. Puedes ayudar mirando los diferentes documentos, sobre todo sobre sesiones semanales, y ayudar con errores de enlaces o aportando de cualquier otra forma. También se agradecen cambios a los workflows de CI que se usan.</p> </blockquote> <p>Repositorio para el material específico de cada clase, planificación y ejercicios.</p> <ul> <li>Debes consultar <a href="http://jj.github.io/IV">los apuntes de la materia</a> antes de pasar a ejecutar las diferentes fases del proyecto.</li> <li>Comprueba la <a href="https://raw.githubusercontent.com/JJ/IV-/master/Metodolog%C3%ADa_y_criterios_de_evaluaci%C3%B3n.md">metodología y criterios de evaluación</a>.</li> <li>Comienza con <a href="https://raw.githubusercontent.com/JJ/IV-/master/sesiones/README.md">la programación y objetivos de las diferentes sesiones de la asignatura</a>.</li> <li>Las entregas de los diferentes objetivos se hacen mediante pull requests a ficheros en <a href="https://raw.githubusercontent.com/JJ/IV-/master/proyectos">este directorio</a>. Lee <a href="https://raw.githubusercontent.com/JJ/IV-/master/proyectos/README.md">las instrucciones</a> para hacerlo correctamente, y resolver los conflictos que puedan surgir.</li> </ul> + + + nichtich/App-Run + 2023-09-24T01:57:50Z + tag:github.com,2023-09-24:/nichtich/App-Run + + <p>Boilerplate for Applications</p><hr><p>The Perl module App::Run provides a boilerplate for applications that can be executed both from command line and as backend. The package provides a convenient wrapper for initialization and configuration.</p> <p><strong>This module is not maintaned anymore, please just <a href="http://neilb.org/2013/07/24/adopt-a-module.html">adopt it</a> as you like or have a look at <a href="https://metacpan.org/release/App-Cmd">App::Cmd</a>!</strong></p> + + + kentfredric/XT + 2023-09-24T01:57:50Z + tag:github.com,2023-09-24:/kentfredric/XT + + <p>A viral platform for content aggregation and world domination</p><hr><h1>NAME</h1> <p>XT - A viral platform for content aggregation and world domination</p> <h1>VERSION</h1> <p>version 0.001000</p> <h1>DESCRIPTION</h1> <p>You've seen them before, 9-gag and all those pesky "funny pics" websites that are forever clogging your <code>$socialnetwork</code>.</p> <p>They're effective at what they do, find cool stuff and make it go viral.</p> <p>Outside these specific websites, the concept doesn't seem to have spread yet, the only noteworthy example being reddit, which is a generalised approach at unifying a sense of virality with arbitrary content.</p> <p>This project is intended to fill this market niché, and provide a topic-specific platform for promoting content, in a way that will hopefully supercede the sphere of "Planet" RSS Aggregators, so that gems are more likely to surface, and chaff is more likely to vanish, as opposed to having a perpetual linear stream of randomly variating quality.</p> <p>In simple terms:</p> <ul> <li>people submit content ( either by individual content links, or via a feed )</li> <li>content is aggregated into a pool</li> <li>people vote up/down on content</li> <li>people classify content</li> <li>"hot" content is delivered to a "hot" page.</li> <li>everyone benefits</li> </ul> <h1>AUTHORS</h1> <ul> <li>Kent Fredric <a href="mailto:kentfredric@gmail.com">kentfredric@gmail.com</a></li> <li>Torsten Raudssus <a href="mailto:getty@cpan.org">getty@cpan.org</a></li> </ul> <h1>COPYRIGHT AND LICENSE</h1> <p>This software is copyright (c) 2013 by Kent Fredric <a href="mailto:kentfredric@gmail.com">kentfredric@gmail.com</a>.</p> <p>This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.</p> + + \ No newline at end of file diff --git a/php/daily/index.xml b/php/daily/index.xml index c7e26094244..c7a64d9181b 100644 --- a/php/daily/index.xml +++ b/php/daily/index.xml @@ -1,7 +1,14 @@ GitHub PHP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:19Z + 2023-09-24T01:38:06Z Daily Trending of PHP in GitHub + + laravel/pail + 2023-09-24T01:38:06Z + tag:github.com,2023-09-24:/laravel/pail + + <p>Effortlessly tail Logs in Laravel 🪣</p><hr><p align="center"> <img src="https://raw.githubusercontent.com/nunomaduro/pail/master/docs/demo.jpg" style="width:70%;" alt="Pail"> </p> <p align="center"> <a href="https://github.com/nunomaduro/pail/actions"><img alt="GitHub Workflow Status (master)" src="https://github.com/nunomaduro/pail/actions/workflows/tests.yml/badge.svg?sanitize=true"></a> <a href="https://packagist.org/packages/nunomaduro/pail"><img alt="Total Downloads" src="https://img.shields.io/packagist/dt/nunomaduro/pail"></a> <a href="https://packagist.org/packages/nunomaduro/pail"><img alt="Latest Version" src="https://img.shields.io/packagist/v/nunomaduro/pail"></a> <a href="https://packagist.org/packages/nunomaduro/pail"><img alt="License" src="https://img.shields.io/packagist/l/nunomaduro/pail"></a> </p> <p></p> <hr> <p><strong>Pail</strong> is an experimental package (or, who knows, perhaps a future Laravel feature?) designed with a single goal in mind: to provide an effortless way to tail logs in our Laravel applications.</p> <p>Difference from other log tailing packages:</p> <ul> <li>🌌 A user-friendly, sleek CLI interface.</li> <li>⚗️ <strong>Compatibility with any log driver</strong>. You don't need to use <code>app.log</code> or <code>laravel.log</code>. Whether you're integrated with <a href="https://sentry.io">Sentry</a> or <a href="https://bugsnag.com">Bugsnag</a>, <strong>Pail</strong> is crafted to work alongside.</li> <li>🔑 <strong>Filter logs by the authenticated user</strong>. Yes, you read it right. <strong>Pail</strong> can filter logs by the authenticated user, the one that triggered the request.</li> </ul> <p>🚧 <strong>Note:</strong> As of now, <strong>Pail</strong> is still in its proof-of-concept phase. It's an idea in the making, not yet optimized for production scenarios. Any feedback is welcome!</p> <h2>Installation</h2> <blockquote> <p><strong>Requires <a href="https://php.net/releases/">PHP 8.2+</a></strong></p> </blockquote> <p>Get started with <strong>Pail</strong> by installing the package via Composer:</p> <pre><code class="language-bash">composer require nunomaduro/pail:dev-main </code></pre> <h2>Usage</h2> <p>To start tailing logs, run the <code>pail</code> command:</p> <pre><code class="language-bash">php artisan pail </code></pre> <p>To increase the verbosity of the output, avoiding truncation (...), use the <code>-v</code> option:</p> <pre><code class="language-bash">php artisan pail -v </code></pre> <p>To filter logs by its content, use the <code>--filter</code> option:</p> <pre><code class="language-bash">php artisan pail --filter="Illuminate\Database" </code></pre> <p>To filter logs by the authenticated user, the one that triggered the request, use the <code>--user</code> option:</p> <pre><code class="language-bash">php artisan pail --user=1 </code></pre> <h2>License</h2> <p><strong>Pail</strong> was created by <strong><a href="https://twitter.com/enunomaduro">Nuno Maduro</a></strong> under the <strong><a href="https://opensource.org/licenses/MIT">MIT license</a></strong>.</p> + \ No newline at end of file diff --git a/php/weekly/index.xml b/php/weekly/index.xml new file mode 100644 index 00000000000..2669ae57ea3 --- /dev/null +++ b/php/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub PHP Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:58Z + Weekly Trending of PHP in GitHub + + + phpseclib/phpseclib + 2023-09-24T01:57:58Z + tag:github.com,2023-09-24:/phpseclib/phpseclib + + <p>PHP Secure Communications Library</p><hr><h1>phpseclib - PHP Secure Communications Library</h1> <p><a href="https://github.com/phpseclib/phpseclib/actions/workflows/ci.yml?query=branch%3Amaster"><img src="https://github.com/phpseclib/phpseclib/actions/workflows/ci.yml/badge.svg?branch=master&amp;event=push" alt="CI Status" title="CI Status"></a></p> <h2>Supporting phpseclib</h2> <ul> <li><a href="https://www.patreon.com/phpseclib">Become a backer or sponsor on Patreon</a></li> <li><a href="http://sourceforge.net/donate/index.php?group_id=198487">One-time donation via PayPal or crypto-currencies</a></li> <li><a href="https://tidelift.com/subscription/pkg/packagist-phpseclib-phpseclib?utm_source=packagist-phpseclib-phpseclib&amp;utm_medium=referral&amp;utm_campaign=readme">Subscribe to Tidelift</a></li> </ul> <h2>Introduction</h2> <p>MIT-licensed pure-PHP implementations of the following:</p> <p>SSH-2, SFTP, X.509, an arbitrary-precision integer arithmetic library, Ed25519 / Ed449 / Curve25519 / Curve449, ECDSA / ECDH (with support for 66 curves), RSA (PKCS#1 v2.2 compliant), DSA / DH, DES / 3DES / RC4 / Rijndael / AES / Blowfish / Twofish / Salsa20 / ChaCha20, GCM / Poly1305</p> <ul> <li><a href="https://github.com/phpseclib/phpseclib">Browse Git</a></li> </ul> <h2>Documentation</h2> <ul> <li><a href="https://phpseclib.com/">Documentation / Manual</a></li> <li><a href="https://api.phpseclib.com/master/">API Documentation</a> (generated by Doctum)</li> </ul> <h2>Branches</h2> <h3>master</h3> <ul> <li>Development Branch</li> <li>Unstable API</li> <li>Do not use in production</li> </ul> <h3>3.0</h3> <ul> <li>Long term support (LTS) release</li> <li>Major expansion of cryptographic primitives</li> <li>Minimum PHP version: 5.6.1</li> <li>PSR-4 autoloading with namespace rooted at <code>\phpseclib3</code></li> <li>Install via Composer: <code>composer require phpseclib/phpseclib:~3.0</code></li> </ul> <h3>2.0</h3> <ul> <li>Long term support (LTS) release</li> <li>Modernized version of 1.0</li> <li>Minimum PHP version: 5.3.3</li> <li>PSR-4 autoloading with namespace rooted at <code>\phpseclib</code></li> <li>Install via Composer: <code>composer require phpseclib/phpseclib:~2.0</code></li> </ul> <h3>1.0</h3> <ul> <li>Long term support (LTS) release</li> <li>PHP4 compatible</li> <li>Composer compatible (PSR-0 autoloading)</li> <li>Install using Composer: <code>composer require phpseclib/phpseclib:~1.0</code></li> <li><a href="http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.21.zip/download">Download 1.0.21 as ZIP</a></li> </ul> <h2>Security contact information</h2> <p>To report a security vulnerability, please use the <a href="https://tidelift.com/security">Tidelift security contact</a>. Tidelift will coordinate the fix and disclosure.</p> <h2>Support</h2> <p>Need Support?</p> <ul> <li><a href="http://stackoverflow.com/questions/tagged/phpseclib">Checkout Questions and Answers on Stack Overflow</a></li> <li><a href="https://github.com/phpseclib/phpseclib/issues/new">Create a Support Ticket on GitHub</a></li> <li><a href="http://www.frostjedi.com/phpbb/viewforum.php?f=46">Browse the Support Forum</a> (no longer in use)</li> </ul> <h2>Special Thanks</h2> <p>Special Thanks to our $50+ sponsors!:</p> <ul> <li>Allan Simon</li> <li><a href="https://chargeover.com/">ChargeOver</a></li> </ul> <h2>Contributing</h2> <ol> <li> <p>Fork the Project</p> </li> <li> <p>Ensure you have Composer installed (see <a href="https://getcomposer.org/download/">Composer Download Instructions</a>)</p> </li> <li> <p>Install Development Dependencies</p> <pre><code class="language-sh">composer install </code></pre> </li> <li> <p>Create a Feature Branch</p> </li> <li> <p>Run continuous integration checks:</p> <pre><code class="language-sh">composer run-script all-quality-tools </code></pre> </li> <li> <p>Send us a Pull Request</p> </li> </ol> + + + piotrplenik/clean-code-php + 2023-09-24T01:57:58Z + tag:github.com,2023-09-24:/piotrplenik/clean-code-php + + <p>🛁 Clean Code concepts adapted for PHP</p><hr><h1>Clean Code PHP</h1> <h2>Table of Contents</h2> <ol> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#introduction">Introduction</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#variables">Variables</a> <ul> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#use-meaningful-and-pronounceable-variable-names">Use meaningful and pronounceable variable names</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#use-the-same-vocabulary-for-the-same-type-of-variable">Use the same vocabulary for the same type of variable</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#use-searchable-names-part-1">Use searchable names (part 1)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#use-searchable-names-part-2">Use searchable names (part 2)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#use-explanatory-variables">Use explanatory variables</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#avoid-nesting-too-deeply-and-return-early-part-1">Avoid nesting too deeply and return early (part 1)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#avoid-nesting-too-deeply-and-return-early-part-2">Avoid nesting too deeply and return early (part 2)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#avoid-mental-mapping">Avoid Mental Mapping</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#dont-add-unneeded-context">Don't add unneeded context</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#comparison">Comparison</a> <ul> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#use-identical-comparison">Use identical comparison</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#null-coalescing-operator">Null coalescing operator</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#functions">Functions</a> <ul> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#use-default-arguments-instead-of-short-circuiting-or-conditionals">Use default arguments instead of short circuiting or conditionals</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#function-arguments-2-or-fewer-ideally">Function arguments (2 or fewer ideally)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#function-names-should-say-what-they-do">Function names should say what they do</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#functions-should-only-be-one-level-of-abstraction">Functions should only be one level of abstraction</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#dont-use-flags-as-function-parameters">Don't use flags as function parameters</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#avoid-side-effects">Avoid Side Effects</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#dont-write-to-global-functions">Don't write to global functions</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#dont-use-a-singleton-pattern">Don't use a Singleton pattern</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#encapsulate-conditionals">Encapsulate conditionals</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#avoid-negative-conditionals">Avoid negative conditionals</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#avoid-conditionals">Avoid conditionals</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#avoid-type-checking-part-1">Avoid type-checking (part 1)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#avoid-type-checking-part-2">Avoid type-checking (part 2)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#remove-dead-code">Remove dead code</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#objects-and-data-structures">Objects and Data Structures</a> <ul> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#use-object-encapsulation">Use object encapsulation</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#make-objects-have-privateprotected-members">Make objects have private/protected members</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#classes">Classes</a> <ul> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#prefer-composition-over-inheritance">Prefer composition over inheritance</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#avoid-fluent-interfaces">Avoid fluent interfaces</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#prefer-final-classes">Prefer final classes</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#solid">SOLID</a> <ul> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#single-responsibility-principle-srp">Single Responsibility Principle (SRP)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#openclosed-principle-ocp">Open/Closed Principle (OCP)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#liskov-substitution-principle-lsp">Liskov Substitution Principle (LSP)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#interface-segregation-principle-isp">Interface Segregation Principle (ISP)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#dependency-inversion-principle-dip">Dependency Inversion Principle (DIP)</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#dont-repeat-yourself-dry">Don’t repeat yourself (DRY)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#translations">Translations</a></li> </ol> <h2>Introduction</h2> <p>Software engineering principles, from Robert C. Martin's book <a href="https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"><em>Clean Code</em></a>, adapted for PHP. This is not a style guide. It's a guide to producing readable, reusable, and refactorable software in PHP.</p> <p>Not every principle herein has to be strictly followed, and even fewer will be universally agreed upon. These are guidelines and nothing more, but they are ones codified over many years of collective experience by the authors of <em>Clean Code</em>.</p> <p>Inspired from <a href="https://github.com/ryanmcdermott/clean-code-javascript">clean-code-javascript</a>.</p> <p>Although many developers still use PHP 5, most of the examples in this article only work with PHP 7.1+.</p> <h2>Variables</h2> <h3>Use meaningful and pronounceable variable names</h3> <p><strong>Bad:</strong></p> <pre><code class="language-php">$ymdstr = $moment-&gt;format('y-m-d'); </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">$currentDate = $moment-&gt;format('y-m-d'); </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Use the same vocabulary for the same type of variable</h3> <p><strong>Bad:</strong></p> <pre><code class="language-php">getUserInfo(); getUserData(); getUserRecord(); getUserProfile(); </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">getUser(); </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Use searchable names (part 1)</h3> <p>We will read more code than we will ever write. It's important that the code we do write is readable and searchable. By <em>not</em> naming variables that end up being meaningful for understanding our program, we hurt our readers. Make your names searchable.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">// What the heck is 448 for? $result = $serializer-&gt;serialize($data, 448); </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">$json = $serializer-&gt;serialize($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); </code></pre> <h3>Use searchable names (part 2)</h3> <p><strong>Bad:</strong></p> <pre><code class="language-php">class User { // What the heck is 7 for? public $access = 7; } // What the heck is 4 for? if ($user-&gt;access &amp; 4) { // ... } // What's going on here? $user-&gt;access ^= 2; </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class User { public const ACCESS_READ = 1; public const ACCESS_CREATE = 2; public const ACCESS_UPDATE = 4; public const ACCESS_DELETE = 8; // User as default can read, create and update something public $access = self::ACCESS_READ | self::ACCESS_CREATE | self::ACCESS_UPDATE; } if ($user-&gt;access &amp; User::ACCESS_UPDATE) { // do edit ... } // Deny access rights to create something $user-&gt;access ^= User::ACCESS_CREATE; </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Use explanatory variables</h3> <p><strong>Bad:</strong></p> <pre><code class="language-php">$address = 'One Infinite Loop, Cupertino 95014'; $cityZipCodeRegex = '/^[^,]+,\s*(.+?)\s*(\d{5})$/'; preg_match($cityZipCodeRegex, $address, $matches); saveCityZipCode($matches[1], $matches[2]); </code></pre> <p><strong>Not bad:</strong></p> <p>It's better, but we are still heavily dependent on regex.</p> <pre><code class="language-php">$address = 'One Infinite Loop, Cupertino 95014'; $cityZipCodeRegex = '/^[^,]+,\s*(.+?)\s*(\d{5})$/'; preg_match($cityZipCodeRegex, $address, $matches); [, $city, $zipCode] = $matches; saveCityZipCode($city, $zipCode); </code></pre> <p><strong>Good:</strong></p> <p>Decrease dependence on regex by naming subpatterns.</p> <pre><code class="language-php">$address = 'One Infinite Loop, Cupertino 95014'; $cityZipCodeRegex = '/^[^,]+,\s*(?&lt;city&gt;.+?)\s*(?&lt;zipCode&gt;\d{5})$/'; preg_match($cityZipCodeRegex, $address, $matches); saveCityZipCode($matches['city'], $matches['zipCode']); </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Avoid nesting too deeply and return early (part 1)</h3> <p>Too many if-else statements can make your code hard to follow. Explicit is better than implicit.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">function isShopOpen($day): bool { if ($day) { if (is_string($day)) { $day = strtolower($day); if ($day === 'friday') { return true; } elseif ($day === 'saturday') { return true; } elseif ($day === 'sunday') { return true; } return false; } return false; } return false; } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">function isShopOpen(string $day): bool { if (empty($day)) { return false; } $openingDays = ['friday', 'saturday', 'sunday']; return in_array(strtolower($day), $openingDays, true); } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Avoid nesting too deeply and return early (part 2)</h3> <p><strong>Bad:</strong></p> <pre><code class="language-php">function fibonacci(int $n) { if ($n &lt; 50) { if ($n !== 0) { if ($n !== 1) { return fibonacci($n - 1) + fibonacci($n - 2); } return 1; } return 0; } return 'Not supported'; } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">function fibonacci(int $n): int { if ($n === 0 || $n === 1) { return $n; } if ($n &gt;= 50) { throw new Exception('Not supported'); } return fibonacci($n - 1) + fibonacci($n - 2); } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Avoid Mental Mapping</h3> <p>Don’t force the reader of your code to translate what the variable means. Explicit is better than implicit.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">$l = ['Austin', 'New York', 'San Francisco']; for ($i = 0; $i &lt; count($l); $i++) { $li = $l[$i]; doStuff(); doSomeOtherStuff(); // ... // ... // ... // Wait, what is `$li` for again? dispatch($li); } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">$locations = ['Austin', 'New York', 'San Francisco']; foreach ($locations as $location) { doStuff(); doSomeOtherStuff(); // ... // ... // ... dispatch($location); } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Don't add unneeded context</h3> <p>If your class/object name tells you something, don't repeat that in your variable name.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class Car { public $carMake; public $carModel; public $carColor; //... } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class Car { public $make; public $model; public $color; //... } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h2>Comparison</h2> <h3>Use <a href="http://php.net/manual/en/language.operators.comparison.php">identical comparison</a></h3> <p><strong>Not good:</strong></p> <p>The simple comparison will convert the string into an integer.</p> <pre><code class="language-php">$a = '42'; $b = 42; if ($a != $b) { // The expression will always pass } </code></pre> <p>The comparison <code>$a != $b</code> returns <code>FALSE</code> but in fact it's <code>TRUE</code>! The string <code>42</code> is different than the integer <code>42</code>.</p> <p><strong>Good:</strong></p> <p>The identical comparison will compare type and value.</p> <pre><code class="language-php">$a = '42'; $b = 42; if ($a !== $b) { // The expression is verified } </code></pre> <p>The comparison <code>$a !== $b</code> returns <code>TRUE</code>.</p> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Null coalescing operator</h3> <p>Null coalescing is a new operator <a href="https://www.php.net/manual/en/migration70.new-features.php">introduced in PHP 7</a>. The null coalescing operator <code>??</code> has been added as syntactic sugar for the common case of needing to use a ternary in conjunction with <code>isset()</code>. It returns its first operand if it exists and is not <code>null</code>; otherwise it returns its second operand.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">if (isset($_GET['name'])) { $name = $_GET['name']; } elseif (isset($_POST['name'])) { $name = $_POST['name']; } else { $name = 'nobody'; } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">$name = $_GET['name'] ?? $_POST['name'] ?? 'nobody'; </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h2>Functions</h2> <h3>Use default arguments instead of short circuiting or conditionals</h3> <p><strong>Not good:</strong></p> <p>This is not good because <code>$breweryName</code> can be <code>NULL</code>.</p> <pre><code class="language-php">function createMicrobrewery($breweryName = 'Hipster Brew Co.'): void { // ... } </code></pre> <p><strong>Not bad:</strong></p> <p>This opinion is more understandable than the previous version, but it better controls the value of the variable.</p> <pre><code class="language-php">function createMicrobrewery($name = null): void { $breweryName = $name ?: 'Hipster Brew Co.'; // ... } </code></pre> <p><strong>Good:</strong></p> <p>You can use <a href="https://www.php.net/manual/en/language.types.declarations.php">type hinting</a> and be sure that the <code>$breweryName</code> will not be <code>NULL</code>.</p> <pre><code class="language-php">function createMicrobrewery(string $breweryName = 'Hipster Brew Co.'): void { // ... } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Function arguments (2 or fewer ideally)</h3> <p>Limiting the amount of function parameters is incredibly important because it makes testing your function easier. Having more than three leads to a combinatorial explosion where you have to test tons of different cases with each separate argument.</p> <p>Zero arguments is the ideal case. One or two arguments is ok, and three should be avoided. Anything more than that should be consolidated. Usually, if you have more than two arguments then your function is trying to do too much. In cases where it's not, most of the time a higher-level object will suffice as an argument.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class Questionnaire { public function __construct( string $firstname, string $lastname, string $patronymic, string $region, string $district, string $city, string $phone, string $email ) { // ... } } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class Name { private $firstname; private $lastname; private $patronymic; public function __construct(string $firstname, string $lastname, string $patronymic) { $this-&gt;firstname = $firstname; $this-&gt;lastname = $lastname; $this-&gt;patronymic = $patronymic; } // getters ... } class City { private $region; private $district; private $city; public function __construct(string $region, string $district, string $city) { $this-&gt;region = $region; $this-&gt;district = $district; $this-&gt;city = $city; } // getters ... } class Contact { private $phone; private $email; public function __construct(string $phone, string $email) { $this-&gt;phone = $phone; $this-&gt;email = $email; } // getters ... } class Questionnaire { public function __construct(Name $name, City $city, Contact $contact) { // ... } } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Function names should say what they do</h3> <p><strong>Bad:</strong></p> <pre><code class="language-php">class Email { //... public function handle(): void { mail($this-&gt;to, $this-&gt;subject, $this-&gt;body); } } $message = new Email(...); // What is this? A handle for the message? Are we writing to a file now? $message-&gt;handle(); </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class Email { //... public function send(): void { mail($this-&gt;to, $this-&gt;subject, $this-&gt;body); } } $message = new Email(...); // Clear and obvious $message-&gt;send(); </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Functions should only be one level of abstraction</h3> <p>When you have more than one level of abstraction your function is usually doing too much. Splitting up functions leads to reusability and easier testing.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">function parseBetterPHPAlternative(string $code): void { $regexes = [ // ... ]; $statements = explode(' ', $code); $tokens = []; foreach ($regexes as $regex) { foreach ($statements as $statement) { // ... } } $ast = []; foreach ($tokens as $token) { // lex... } foreach ($ast as $node) { // parse... } } </code></pre> <p><strong>Bad too:</strong></p> <p>We have carried out some of the functionality, but the <code>parseBetterPHPAlternative()</code> function is still very complex and not testable.</p> <pre><code class="language-php">function tokenize(string $code): array { $regexes = [ // ... ]; $statements = explode(' ', $code); $tokens = []; foreach ($regexes as $regex) { foreach ($statements as $statement) { $tokens[] = /* ... */; } } return $tokens; } function lexer(array $tokens): array { $ast = []; foreach ($tokens as $token) { $ast[] = /* ... */; } return $ast; } function parseBetterPHPAlternative(string $code): void { $tokens = tokenize($code); $ast = lexer($tokens); foreach ($ast as $node) { // parse... } } </code></pre> <p><strong>Good:</strong></p> <p>The best solution is move out the dependencies of <code>parseBetterPHPAlternative()</code> function.</p> <pre><code class="language-php">class Tokenizer { public function tokenize(string $code): array { $regexes = [ // ... ]; $statements = explode(' ', $code); $tokens = []; foreach ($regexes as $regex) { foreach ($statements as $statement) { $tokens[] = /* ... */; } } return $tokens; } } class Lexer { public function lexify(array $tokens): array { $ast = []; foreach ($tokens as $token) { $ast[] = /* ... */; } return $ast; } } class BetterPHPAlternative { private $tokenizer; private $lexer; public function __construct(Tokenizer $tokenizer, Lexer $lexer) { $this-&gt;tokenizer = $tokenizer; $this-&gt;lexer = $lexer; } public function parse(string $code): void { $tokens = $this-&gt;tokenizer-&gt;tokenize($code); $ast = $this-&gt;lexer-&gt;lexify($tokens); foreach ($ast as $node) { // parse... } } } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Don't use flags as function parameters</h3> <p>Flags tell your user that this function does more than one thing. Functions should do one thing. Split out your functions if they are following different code paths based on a boolean.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">function createFile(string $name, bool $temp = false): void { if ($temp) { touch('./temp/' . $name); } else { touch($name); } } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">function createFile(string $name): void { touch($name); } function createTempFile(string $name): void { touch('./temp/' . $name); } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Avoid Side Effects</h3> <p>A function produces a side effect if it does anything other than take a value in and return another value or values. A side effect could be writing to a file, modifying some global variable, or accidentally wiring all your money to a stranger.</p> <p>Now, you do need to have side effects in a program on occasion. Like the previous example, you might need to write to a file. What you want to do is to centralize where you are doing this. Don't have several functions and classes that write to a particular file. Have one service that does it. One and only one.</p> <p>The main point is to avoid common pitfalls like sharing state between objects without any structure, using mutable data types that can be written to by anything, and not centralizing where your side effects occur. If you can do this, you will be happier than the vast majority of other programmers.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">// Global variable referenced by following function. // If we had another function that used this name, now it'd be an array and it could break it. $name = 'Ryan McDermott'; function splitIntoFirstAndLastName(): void { global $name; $name = explode(' ', $name); } splitIntoFirstAndLastName(); var_dump($name); // ['Ryan', 'McDermott']; </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">function splitIntoFirstAndLastName(string $name): array { return explode(' ', $name); } $name = 'Ryan McDermott'; $newName = splitIntoFirstAndLastName($name); var_dump($name); // 'Ryan McDermott'; var_dump($newName); // ['Ryan', 'McDermott']; </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Don't write to global functions</h3> <p>Polluting globals is a bad practice in many languages because you could clash with another library and the user of your API would be none-the-wiser until they get an exception in production. Let's think about an example: what if you wanted to have configuration array? You could write global function like <code>config()</code>, but it could clash with another library that tried to do the same thing.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">function config(): array { return [ 'foo' =&gt; 'bar', ]; } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class Configuration { private $configuration = []; public function __construct(array $configuration) { $this-&gt;configuration = $configuration; } public function get(string $key): ?string { // null coalescing operator return $this-&gt;configuration[$key] ?? null; } } </code></pre> <p>Load configuration and create instance of <code>Configuration</code> class</p> <pre><code class="language-php">$configuration = new Configuration([ 'foo' =&gt; 'bar', ]); </code></pre> <p>And now you must use instance of <code>Configuration</code> in your application.</p> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Don't use a Singleton pattern</h3> <p>Singleton is an <a href="https://en.wikipedia.org/wiki/Singleton_pattern">anti-pattern</a>. Paraphrased from Brian Button:</p> <ol> <li>They are generally used as a <strong>global instance</strong>, why is that so bad? Because <strong>you hide the dependencies</strong> of your application in your code, instead of exposing them through the interfaces. Making something global to avoid passing it around is a <a href="https://en.wikipedia.org/wiki/Code_smell">code smell</a>.</li> <li>They violate the <a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#single-responsibility-principle-srp">single responsibility principle</a>: by virtue of the fact that <strong>they control their own creation and lifecycle</strong>.</li> <li>They inherently cause code to be tightly <a href="https://en.wikipedia.org/wiki/Coupling_%28computer_programming%29">coupled</a>. This makes faking them out under <strong>test rather difficult</strong> in many cases.</li> <li>They carry state around for the lifetime of the application. Another hit to testing since <strong>you can end up with a situation where tests need to be ordered</strong> which is a big no for unit tests. Why? Because each unit test should be independent from the other.</li> </ol> <p>There is also very good thoughts by <a href="http://misko.hevery.com/about/">Misko Hevery</a> about the <a href="http://misko.hevery.com/2008/08/25/root-cause-of-singletons/">root of problem</a>.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class DBConnection { private static $instance; private function __construct(string $dsn) { // ... } public static function getInstance(): self { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } // ... } $singleton = DBConnection::getInstance(); </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class DBConnection { public function __construct(string $dsn) { // ... } // ... } </code></pre> <p>Create instance of <code>DBConnection</code> class and configure it with <a href="http://php.net/manual/en/pdo.construct.php#refsect1-pdo.construct-parameters">DSN</a>.</p> <pre><code class="language-php">$connection = new DBConnection($dsn); </code></pre> <p>And now you must use instance of <code>DBConnection</code> in your application.</p> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Encapsulate conditionals</h3> <p><strong>Bad:</strong></p> <pre><code class="language-php">if ($article-&gt;state === 'published') { // ... } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">if ($article-&gt;isPublished()) { // ... } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Avoid negative conditionals</h3> <p><strong>Bad:</strong></p> <pre><code class="language-php">function isDOMNodeNotPresent(DOMNode $node): bool { // ... } if (! isDOMNodeNotPresent($node)) { // ... } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">function isDOMNodePresent(DOMNode $node): bool { // ... } if (isDOMNodePresent($node)) { // ... } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Avoid conditionals</h3> <p>This seems like an impossible task. Upon first hearing this, most people say, "how am I supposed to do anything without an <code>if</code> statement?" The answer is that you can use polymorphism to achieve the same task in many cases. The second question is usually, "well that's great but why would I want to do that?" The answer is a previous clean code concept we learned: a function should only do one thing. When you have classes and functions that have <code>if</code> statements, you are telling your user that your function does more than one thing. Remember, just do one thing.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class Airplane { // ... public function getCruisingAltitude(): int { switch ($this-&gt;type) { case '777': return $this-&gt;getMaxAltitude() - $this-&gt;getPassengerCount(); case 'Air Force One': return $this-&gt;getMaxAltitude(); case 'Cessna': return $this-&gt;getMaxAltitude() - $this-&gt;getFuelExpenditure(); } } } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">interface Airplane { // ... public function getCruisingAltitude(): int; } class Boeing777 implements Airplane { // ... public function getCruisingAltitude(): int { return $this-&gt;getMaxAltitude() - $this-&gt;getPassengerCount(); } } class AirForceOne implements Airplane { // ... public function getCruisingAltitude(): int { return $this-&gt;getMaxAltitude(); } } class Cessna implements Airplane { // ... public function getCruisingAltitude(): int { return $this-&gt;getMaxAltitude() - $this-&gt;getFuelExpenditure(); } } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Avoid type-checking (part 1)</h3> <p>PHP is untyped, which means your functions can take any type of argument. Sometimes you are bitten by this freedom and it becomes tempting to do type-checking in your functions. There are many ways to avoid having to do this. The first thing to consider is consistent APIs.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">function travelToTexas($vehicle): void { if ($vehicle instanceof Bicycle) { $vehicle-&gt;pedalTo(new Location('texas')); } elseif ($vehicle instanceof Car) { $vehicle-&gt;driveTo(new Location('texas')); } } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">function travelToTexas(Vehicle $vehicle): void { $vehicle-&gt;travelTo(new Location('texas')); } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Avoid type-checking (part 2)</h3> <p>If you are working with basic primitive values like strings, integers, and arrays, and you use PHP 7+ and you can't use polymorphism but you still feel the need to type-check, you should consider <a href="https://www.php.net/manual/en/language.types.declarations.php">type declaration</a> or strict mode. It provides you with static typing on top of standard PHP syntax. The problem with manually type-checking is that doing it will require so much extra verbiage that the faux "type-safety" you get doesn't make up for the lost readability. Keep your PHP clean, write good tests, and have good code reviews. Otherwise, do all of that but with PHP strict type declaration or strict mode.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">function combine($val1, $val2): int { if (! is_numeric($val1) || ! is_numeric($val2)) { throw new Exception('Must be of type Number'); } return $val1 + $val2; } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">function combine(int $val1, int $val2): int { return $val1 + $val2; } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Remove dead code</h3> <p>Dead code is just as bad as duplicate code. There's no reason to keep it in your codebase. If it's not being called, get rid of it! It will still be safe in your version history if you still need it.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">function oldRequestModule(string $url): void { // ... } function newRequestModule(string $url): void { // ... } $request = newRequestModule($requestUrl); inventoryTracker('apples', $request, 'www.inventory-awesome.io'); </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">function requestModule(string $url): void { // ... } $request = requestModule($requestUrl); inventoryTracker('apples', $request, 'www.inventory-awesome.io'); </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h2>Objects and Data Structures</h2> <h3>Use object encapsulation</h3> <p>In PHP you can set <code>public</code>, <code>protected</code> and <code>private</code> keywords for methods. Using it, you can control properties modification on an object.</p> <ul> <li>When you want to do more beyond getting an object property, you don't have to look up and change every accessor in your codebase.</li> <li>Makes adding validation simple when doing a <code>set</code>.</li> <li>Encapsulates the internal representation.</li> <li>Easy to add logging and error handling when getting and setting.</li> <li>Inheriting this class, you can override default functionality.</li> <li>You can lazy load your object's properties, let's say getting it from a server.</li> </ul> <p>Additionally, this is part of <a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#openclosed-principle-ocp">Open/Closed</a> principle.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class BankAccount { public $balance = 1000; } $bankAccount = new BankAccount(); // Buy shoes... $bankAccount-&gt;balance -= 100; </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class BankAccount { private $balance; public function __construct(int $balance = 1000) { $this-&gt;balance = $balance; } public function withdraw(int $amount): void { if ($amount &gt; $this-&gt;balance) { throw new \Exception('Amount greater than available balance.'); } $this-&gt;balance -= $amount; } public function deposit(int $amount): void { $this-&gt;balance += $amount; } &nbsp; &nbsp;public function getBalance(): int { return $this-&gt;balance; } } $bankAccount = new BankAccount(); // Buy shoes... $bankAccount-&gt;withdraw($shoesPrice); // Get balance $balance = $bankAccount-&gt;getBalance(); </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Make objects have private/protected members</h3> <ul> <li><code>public</code> methods and properties are most dangerous for changes, because some outside code may easily rely on them and you can't control what code relies on them. <strong>Modifications in class are dangerous for all users of class.</strong></li> <li><code>protected</code> modifier are as dangerous as public, because they are available in scope of any child class. This effectively means that difference between public and protected is only in access mechanism, but encapsulation guarantee remains the same. <strong>Modifications in class are dangerous for all descendant classes.</strong></li> <li><code>private</code> modifier guarantees that code is <strong>dangerous to modify only in boundaries of single class</strong> (you are safe for modifications and you won't have <a href="http://www.urbandictionary.com/define.php?term=Jengaphobia&amp;defid=2494196">Jenga effect</a>).</li> </ul> <p>Therefore, use <code>private</code> by default and <code>public/protected</code> when you need to provide access for external classes.</p> <p>For more information you can read the <a href="http://fabien.potencier.org/pragmatism-over-theory-protected-vs-private.html">blog post</a> on this topic written by <a href="https://github.com/fabpot">Fabien Potencier</a>.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class Employee { public $name; public function __construct(string $name) { $this-&gt;name = $name; } } $employee = new Employee('John Doe'); // Employee name: John Doe echo 'Employee name: ' . $employee-&gt;name; </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class Employee { private $name; public function __construct(string $name) { $this-&gt;name = $name; } public function getName(): string { return $this-&gt;name; } } $employee = new Employee('John Doe'); // Employee name: John Doe echo 'Employee name: ' . $employee-&gt;getName(); </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h2>Classes</h2> <h3>Prefer composition over inheritance</h3> <p>As stated famously in <a href="https://en.wikipedia.org/wiki/Design_Patterns"><em>Design Patterns</em></a> by the Gang of Four, you should prefer composition over inheritance where you can. There are lots of good reasons to use inheritance and lots of good reasons to use composition. The main point for this maxim is that if your mind instinctively goes for inheritance, try to think if composition could model your problem better. In some cases it can.</p> <p>You might be wondering then, "when should I use inheritance?" It depends on your problem at hand, but this is a decent list of when inheritance makes more sense than composition:</p> <ol> <li>Your inheritance represents an "is-a" relationship and not a "has-a" relationship (Human-&gt;Animal vs. User-&gt;UserDetails).</li> <li>You can reuse code from the base classes (Humans can move like all animals).</li> <li>You want to make global changes to derived classes by changing a base class. (Change the caloric expenditure of all animals when they move).</li> </ol> <p><strong>Bad:</strong></p> <pre><code class="language-php">class Employee { private $name; private $email; public function __construct(string $name, string $email) { $this-&gt;name = $name; $this-&gt;email = $email; } // ... } // Bad because Employees "have" tax data. // EmployeeTaxData is not a type of Employee class EmployeeTaxData extends Employee { private $ssn; private $salary; public function __construct(string $name, string $email, string $ssn, string $salary) { parent::__construct($name, $email); $this-&gt;ssn = $ssn; $this-&gt;salary = $salary; } // ... } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class EmployeeTaxData { private $ssn; private $salary; public function __construct(string $ssn, string $salary) { $this-&gt;ssn = $ssn; $this-&gt;salary = $salary; } // ... } class Employee { private $name; private $email; private $taxData; public function __construct(string $name, string $email) { $this-&gt;name = $name; $this-&gt;email = $email; } public function setTaxData(EmployeeTaxData $taxData): void { $this-&gt;taxData = $taxData; } // ... } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Avoid fluent interfaces</h3> <p>A <a href="https://en.wikipedia.org/wiki/Fluent_interface">Fluent interface</a> is an object oriented API that aims to improve the readability of the source code by using <a href="https://en.wikipedia.org/wiki/Method_chaining">Method chaining</a>.</p> <p>While there can be some contexts, frequently builder objects, where this pattern reduces the verbosity of the code (for example the <a href="https://phpunit.de/manual/current/en/test-doubles.html">PHPUnit Mock Builder</a> or the <a href="http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/query-builder.html">Doctrine Query Builder</a>), more often it comes at some costs:</p> <ol> <li>Breaks <a href="https://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29">Encapsulation</a>.</li> <li>Breaks <a href="https://en.wikipedia.org/wiki/Decorator_pattern">Decorators</a>.</li> <li>Is harder to <a href="https://en.wikipedia.org/wiki/Mock_object">mock</a> in a test suite.</li> <li>Makes diffs of commits harder to read.</li> </ol> <p>For more information you can read the full <a href="https://ocramius.github.io/blog/fluent-interfaces-are-evil/">blog post</a> on this topic written by <a href="https://github.com/Ocramius">Marco Pivetta</a>.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class Car { private $make = 'Honda'; private $model = 'Accord'; private $color = 'white'; public function setMake(string $make): self { $this-&gt;make = $make; // NOTE: Returning this for chaining return $this; } public function setModel(string $model): self { $this-&gt;model = $model; // NOTE: Returning this for chaining return $this; } public function setColor(string $color): self { $this-&gt;color = $color; // NOTE: Returning this for chaining return $this; } public function dump(): void { var_dump($this-&gt;make, $this-&gt;model, $this-&gt;color); } } $car = (new Car()) -&gt;setColor('pink') -&gt;setMake('Ford') -&gt;setModel('F-150') -&gt;dump(); </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class Car { private $make = 'Honda'; private $model = 'Accord'; private $color = 'white'; public function setMake(string $make): void { $this-&gt;make = $make; } public function setModel(string $model): void { $this-&gt;model = $model; } public function setColor(string $color): void { $this-&gt;color = $color; } public function dump(): void { var_dump($this-&gt;make, $this-&gt;model, $this-&gt;color); } } $car = new Car(); $car-&gt;setColor('pink'); $car-&gt;setMake('Ford'); $car-&gt;setModel('F-150'); $car-&gt;dump(); </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Prefer final classes</h3> <p>The <code>final</code> keyword should be used whenever possible:</p> <ol> <li>It prevents an uncontrolled inheritance chain.</li> <li>It encourages <a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#prefer-composition-over-inheritance">composition</a>.</li> <li>It encourages the <a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#single-responsibility-principle-srp">Single Responsibility Principle</a>.</li> <li>It encourages developers to use your public methods instead of extending the class to get access to protected ones.</li> <li>It allows you to change your code without breaking applications that use your class.</li> </ol> <p>The only condition is that your class should implement an interface and no other public methods are defined.</p> <p>For more informations you can read <a href="https://ocramius.github.io/blog/when-to-declare-classes-final/">the blog post</a> on this topic written by <a href="https://ocramius.github.io/">Marco Pivetta (Ocramius)</a>.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">final class Car { private $color; public function __construct($color) { $this-&gt;color = $color; } /** * @return string The color of the vehicle */ public function getColor() { return $this-&gt;color; } } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">interface Vehicle { /** * @return string The color of the vehicle */ public function getColor(); } final class Car implements Vehicle { private $color; public function __construct($color) { $this-&gt;color = $color; } public function getColor() { return $this-&gt;color; } } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h2>SOLID</h2> <p><strong>SOLID</strong> is the mnemonic acronym introduced by Michael Feathers for the first five principles named by Robert Martin, which meant five basic principles of object-oriented programming and design.</p> <ul> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#single-responsibility-principle-srp">S: Single Responsibility Principle (SRP)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#openclosed-principle-ocp">O: Open/Closed Principle (OCP)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#liskov-substitution-principle-lsp">L: Liskov Substitution Principle (LSP)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#interface-segregation-principle-isp">I: Interface Segregation Principle (ISP)</a></li> <li><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#dependency-inversion-principle-dip">D: Dependency Inversion Principle (DIP)</a></li> </ul> <h3>Single Responsibility Principle (SRP)</h3> <p>As stated in Clean Code, "There should never be more than one reason for a class to change". It's tempting to jam-pack a class with a lot of functionality, like when you can only take one suitcase on your flight. The issue with this is that your class won't be conceptually cohesive and it will give it many reasons to change. Minimizing the amount of times you need to change a class is important. It's important because if too much functionality is in one class and you modify a piece of it, it can be difficult to understand how that will affect other dependent modules in your codebase.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class UserSettings { private $user; public function __construct(User $user) { $this-&gt;user = $user; } public function changeSettings(array $settings): void { if ($this-&gt;verifyCredentials()) { // ... } } private function verifyCredentials(): bool { // ... } } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">class UserAuth { private $user; public function __construct(User $user) { $this-&gt;user = $user; } public function verifyCredentials(): bool { // ... } } class UserSettings { private $user; private $auth; public function __construct(User $user) { $this-&gt;user = $user; $this-&gt;auth = new UserAuth($user); } public function changeSettings(array $settings): void { if ($this-&gt;auth-&gt;verifyCredentials()) { // ... } } } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Open/Closed Principle (OCP)</h3> <p>As stated by Bertrand Meyer, "software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification." What does that mean though? This principle basically states that you should allow users to add new functionalities without changing existing code.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">abstract class Adapter { protected $name; public function getName(): string { return $this-&gt;name; } } class AjaxAdapter extends Adapter { public function __construct() { parent::__construct(); $this-&gt;name = 'ajaxAdapter'; } } class NodeAdapter extends Adapter { public function __construct() { parent::__construct(); $this-&gt;name = 'nodeAdapter'; } } class HttpRequester { private $adapter; public function __construct(Adapter $adapter) { $this-&gt;adapter = $adapter; } public function fetch(string $url): Promise { $adapterName = $this-&gt;adapter-&gt;getName(); if ($adapterName === 'ajaxAdapter') { return $this-&gt;makeAjaxCall($url); } elseif ($adapterName === 'httpNodeAdapter') { return $this-&gt;makeHttpCall($url); } } private function makeAjaxCall(string $url): Promise { // request and return promise } private function makeHttpCall(string $url): Promise { // request and return promise } } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">interface Adapter { public function request(string $url): Promise; } class AjaxAdapter implements Adapter { public function request(string $url): Promise { // request and return promise } } class NodeAdapter implements Adapter { public function request(string $url): Promise { // request and return promise } } class HttpRequester { private $adapter; public function __construct(Adapter $adapter) { $this-&gt;adapter = $adapter; } public function fetch(string $url): Promise { return $this-&gt;adapter-&gt;request($url); } } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Liskov Substitution Principle (LSP)</h3> <p>This is a scary term for a very simple concept. It's formally defined as "If S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e., objects of type S may substitute objects of type T) without altering any of the desirable properties of that program (correctness, task performed, etc.)." That's an even scarier definition.</p> <p>The best explanation for this is if you have a parent class and a child class, then the base class and child class can be used interchangeably without getting incorrect results. This might still be confusing, so let's take a look at the classic Square-Rectangle example. Mathematically, a square is a rectangle, but if you model it using the "is-a" relationship via inheritance, you quickly get into trouble.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class Rectangle { protected $width = 0; protected $height = 0; public function setWidth(int $width): void { $this-&gt;width = $width; } public function setHeight(int $height): void { $this-&gt;height = $height; } public function getArea(): int { return $this-&gt;width * $this-&gt;height; } } class Square extends Rectangle { public function setWidth(int $width): void { $this-&gt;width = $this-&gt;height = $width; } public function setHeight(int $height): void { $this-&gt;width = $this-&gt;height = $height; } } function printArea(Rectangle $rectangle): void { $rectangle-&gt;setWidth(4); $rectangle-&gt;setHeight(5); // BAD: Will return 25 for Square. Should be 20. echo sprintf('%s has area %d.', get_class($rectangle), $rectangle-&gt;getArea()) . PHP_EOL; } $rectangles = [new Rectangle(), new Square()]; foreach ($rectangles as $rectangle) { printArea($rectangle); } </code></pre> <p><strong>Good:</strong></p> <p>The best way is separate the quadrangles and allocation of a more general subtype for both shapes.</p> <p>Despite the apparent similarity of the square and the rectangle, they are different. A square has much in common with a rhombus, and a rectangle with a parallelogram, but they are not subtypes. A square, a rectangle, a rhombus and a parallelogram are separate shapes with their own properties, albeit similar.</p> <pre><code class="language-php">interface Shape { public function getArea(): int; } class Rectangle implements Shape { private $width = 0; private $height = 0; public function __construct(int $width, int $height) { $this-&gt;width = $width; $this-&gt;height = $height; } public function getArea(): int { return $this-&gt;width * $this-&gt;height; } } class Square implements Shape { private $length = 0; public function __construct(int $length) { $this-&gt;length = $length; } public function getArea(): int { &nbsp; &nbsp; &nbsp; &nbsp;return $this-&gt;length ** 2; &nbsp; &nbsp;} } function printArea(Shape $shape): void { echo sprintf('%s has area %d.', get_class($shape), $shape-&gt;getArea()).PHP_EOL; } $shapes = [new Rectangle(4, 5), new Square(5)]; foreach ($shapes as $shape) { printArea($shape); } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Interface Segregation Principle (ISP)</h3> <p>ISP states that "Clients should not be forced to depend upon interfaces that they do not use."</p> <p>A good example to look at that demonstrates this principle is for classes that require large settings objects. Not requiring clients to set up huge amounts of options is beneficial, because most of the time they won't need all of the settings. Making them optional helps prevent having a "fat interface".</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">interface Employee { public function work(): void; public function eat(): void; } class HumanEmployee implements Employee { public function work(): void { // ....working } public function eat(): void { // ...... eating in lunch break } } class RobotEmployee implements Employee { public function work(): void { //.... working much more } public function eat(): void { //.... robot can't eat, but it must implement this method } } </code></pre> <p><strong>Good:</strong></p> <p>Not every worker is an employee, but every employee is a worker.</p> <pre><code class="language-php">interface Workable { public function work(): void; } interface Feedable { public function eat(): void; } interface Employee extends Feedable, Workable { } class HumanEmployee implements Employee { public function work(): void { // ....working } public function eat(): void { //.... eating in lunch break } } // robot can only work class RobotEmployee implements Workable { public function work(): void { // ....working } } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h3>Dependency Inversion Principle (DIP)</h3> <p>This principle states two essential things:</p> <ol> <li>High-level modules should not depend on low-level modules. Both should depend on abstractions.</li> <li>Abstractions should not depend upon details. Details should depend on abstractions.</li> </ol> <p>This can be hard to understand at first, but if you've worked with PHP frameworks (like Symfony), you've seen an implementation of this principle in the form of Dependency Injection (DI). While they are not identical concepts, DIP keeps high-level modules from knowing the details of its low-level modules and setting them up. It can accomplish this through DI. A huge benefit of this is that it reduces the coupling between modules. Coupling is a very bad development pattern because it makes your code hard to refactor.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">class Employee { public function work(): void { // ....working } } class Robot extends Employee { public function work(): void { //.... working much more } } class Manager { private $employee; public function __construct(Employee $employee) { $this-&gt;employee = $employee; } public function manage(): void { $this-&gt;employee-&gt;work(); } } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">interface Employee { public function work(): void; } class Human implements Employee { public function work(): void { // ....working } } class Robot implements Employee { public function work(): void { //.... working much more } } class Manager { private $employee; public function __construct(Employee $employee) { $this-&gt;employee = $employee; } public function manage(): void { $this-&gt;employee-&gt;work(); } } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h2>Don’t repeat yourself (DRY)</h2> <p>Try to observe the <a href="https://en.wikipedia.org/wiki/Don%27t_repeat_yourself">DRY</a> principle.</p> <p>Do your absolute best to avoid duplicate code. Duplicate code is bad because it means that there's more than one place to alter something if you need to change some logic.</p> <p>Imagine if you run a restaurant and you keep track of your inventory: all your tomatoes, onions, garlic, spices, etc. If you have multiple lists that you keep this on, then all have to be updated when you serve a dish with tomatoes in them. If you only have one list, there's only one place to update!</p> <p>Often you have duplicate code because you have two or more slightly different things, that share a lot in common, but their differences force you to have two or more separate functions that do much of the same things. Removing duplicate code means creating an abstraction that can handle this set of different things with just one function/module/class.</p> <p>Getting the abstraction right is critical, that's why you should follow the SOLID principles laid out in the <a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#classes">Classes</a> section. Bad abstractions can be worse than duplicate code, so be careful! Having said this, if you can make a good abstraction, do it! Don't repeat yourself, otherwise you'll find yourself updating multiple places any time you want to change one thing.</p> <p><strong>Bad:</strong></p> <pre><code class="language-php">function showDeveloperList(array $developers): void { foreach ($developers as $developer) { $expectedSalary = $developer-&gt;calculateExpectedSalary(); $experience = $developer-&gt;getExperience(); $githubLink = $developer-&gt;getGithubLink(); $data = [$expectedSalary, $experience, $githubLink]; render($data); } } function showManagerList(array $managers): void { foreach ($managers as $manager) { $expectedSalary = $manager-&gt;calculateExpectedSalary(); $experience = $manager-&gt;getExperience(); $githubLink = $manager-&gt;getGithubLink(); $data = [$expectedSalary, $experience, $githubLink]; render($data); } } </code></pre> <p><strong>Good:</strong></p> <pre><code class="language-php">function showList(array $employees): void { foreach ($employees as $employee) { $expectedSalary = $employee-&gt;calculateExpectedSalary(); $experience = $employee-&gt;getExperience(); $githubLink = $employee-&gt;getGithubLink(); $data = [$expectedSalary, $experience, $githubLink]; render($data); } } </code></pre> <p><strong>Very good:</strong></p> <p>It is better to use a compact version of the code.</p> <pre><code class="language-php">function showList(array $employees): void { foreach ($employees as $employee) { render([$employee-&gt;calculateExpectedSalary(), $employee-&gt;getExperience(), $employee-&gt;getGithubLink()]); } } </code></pre> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> <h2>Translations</h2> <p>This is also available in other languages:</p> <ul> <li><span>🇨🇳</span> <strong>Chinese:</strong> <ul> <li><a href="https://github.com/php-cpm/clean-code-php">php-cpm/clean-code-php</a></li> </ul> </li> <li><span>🇷🇺</span> <strong>Russian:</strong> <ul> <li><a href="https://github.com/peter-gribanov/clean-code-php">peter-gribanov/clean-code-php</a></li> </ul> </li> <li><span>🇪🇸</span> <strong>Spanish:</strong> <ul> <li><a href="https://github.com/fikoborquez/clean-code-php">fikoborquez/clean-code-php</a></li> </ul> </li> <li><span>🇧🇷</span> <strong>Portuguese:</strong> <ul> <li><a href="https://github.com/fabioars/clean-code-php">fabioars/clean-code-php</a></li> <li><a href="https://github.com/jeanjar/clean-code-php/tree/pt-br">jeanjar/clean-code-php</a></li> </ul> </li> <li><span>🇹🇭</span> <strong>Thai:</strong> <ul> <li><a href="https://github.com/panuwizzle/clean-code-php">panuwizzle/clean-code-php</a></li> </ul> </li> <li><span>🇫🇷</span> <strong>French:</strong> <ul> <li><a href="https://github.com/errorname/clean-code-php">errorname/clean-code-php</a></li> </ul> </li> <li><span>🇻🇳</span> <strong>Vietnamese:</strong> <ul> <li><a href="https://github.com/viethuongdev/clean-code-php">viethuongdev/clean-code-php</a></li> </ul> </li> <li><span>🇰🇷</span> <strong>Korean:</strong> <ul> <li><a href="https://github.com/yujineeee/clean-code-php">yujineeee/clean-code-php</a></li> </ul> </li> <li><span>🇹🇷</span> <strong>Turkish:</strong> <ul> <li><a href="https://github.com/anilozmen/clean-code-php">anilozmen/clean-code-php</a></li> </ul> </li> <li><span>🇮🇷</span> <strong>Persian:</strong> <ul> <li><a href="https://github.com/amirshnll/clean-code-php">amirshnll/clean-code-php</a></li> </ul> </li> <li><span>🇧🇩</span> <strong>Bangla:</strong> <ul> <li><a href="https://github.com/nayeemdev/clean-code-php">nayeemdev/clean-code-php</a></li> </ul> </li> <li><span>🇪🇬</span> <strong>Arabic:</strong> <ul> <li><a href="https://github.com/ahmedalmory/clean-code-php">ahmedalmory/clean-code-php</a></li> </ul> </li> <li><span>🇯🇵</span> <strong>Japanese:</strong> <ul> <li><a href="https://github.com/hayato07/clean-code-php">hayato07/clean-code-php</a></li> </ul> </li> </ul> <p><strong><a href="https://raw.githubusercontent.com/piotrplenik/clean-code-php/master/#table-of-contents">⬆ back to top</a></strong></p> + + + sebastianbergmann/php-code-coverage + 2023-09-24T01:57:58Z + tag:github.com,2023-09-24:/sebastianbergmann/php-code-coverage + + <p>Library that provides collection, processing, and rendering functionality for PHP code coverage information.</p><hr><h1>phpunit/php-code-coverage</h1> <p><a href="https://packagist.org/packages/phpunit/php-code-coverage"><img src="https://poser.pugx.org/phpunit/php-code-coverage/v/stable.png" alt="Latest Stable Version"></a> <a href="https://github.com/sebastianbergmann/php-code-coverage/actions"><img src="https://github.com/sebastianbergmann/php-code-coverage/workflows/CI/badge.svg?sanitize=true" alt="CI Status"></a> <a href="https://shepherd.dev/github/sebastianbergmann/php-code-coverage"><img src="https://shepherd.dev/github/sebastianbergmann/php-code-coverage/coverage.svg?sanitize=true" alt="Type Coverage"></a> <a href="https://codecov.io/gh/sebastianbergmann/php-code-coverage"><img src="https://codecov.io/gh/sebastianbergmann/php-code-coverage/branch/main/graph/badge.svg?sanitize=true" alt="codecov"></a></p> <p>Provides collection, processing, and rendering functionality for PHP code coverage information.</p> <h2>Installation</h2> <p>You can add this library as a local, per-project dependency to your project using <a href="https://getcomposer.org/">Composer</a>:</p> <pre><code>composer require phpunit/php-code-coverage </code></pre> <p>If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:</p> <pre><code>composer require --dev phpunit/php-code-coverage </code></pre> <h2>Usage</h2> <pre><code class="language-php">&lt;?php declare(strict_types=1); use SebastianBergmann\CodeCoverage\Filter; use SebastianBergmann\CodeCoverage\Driver\Selector; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Report\Html\Facade as HtmlReport; $filter = new Filter; $filter-&gt;includeFiles( [ '/path/to/file.php', '/path/to/another_file.php', ] ); $coverage = new CodeCoverage( (new Selector)-&gt;forLineCoverage($filter), $filter ); $coverage-&gt;start('&lt;name of test&gt;'); // ... $coverage-&gt;stop(); (new HtmlReport)-&gt;process($coverage, '/tmp/code-coverage-report'); </code></pre> + + \ No newline at end of file diff --git a/pic/daily/index.xml b/pic/daily/index.xml index ee70c339083..71e7880ab17 100644 --- a/pic/daily/index.xml +++ b/pic/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:06Z + 2023-09-24T01:37:45Z Daily Trending of Pic in GitHub \ No newline at end of file diff --git a/pic/weekly/index.xml b/pic/weekly/index.xml new file mode 100644 index 00000000000..4b3c60ab410 --- /dev/null +++ b/pic/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pic Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:57:44Z + Weekly Trending of Pic in GitHub + + \ No newline at end of file diff --git a/pickle/daily/index.xml b/pickle/daily/index.xml index 8be5e2def11..aa6137c185a 100644 --- a/pickle/daily/index.xml +++ b/pickle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pickle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:31Z + 2023-09-24T01:38:13Z Daily Trending of Pickle in GitHub \ No newline at end of file diff --git a/pickle/weekly/index.xml b/pickle/weekly/index.xml new file mode 100644 index 00000000000..d220d47fb28 --- /dev/null +++ b/pickle/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pickle Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:08Z + Weekly Trending of Pickle in GitHub + + \ No newline at end of file diff --git a/picolisp/daily/index.xml b/picolisp/daily/index.xml index 3900afb164e..0d7941f0913 100644 --- a/picolisp/daily/index.xml +++ b/picolisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub PicoLisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:33Z + 2023-09-24T01:38:14Z Daily Trending of PicoLisp in GitHub \ No newline at end of file diff --git a/picolisp/weekly/index.xml b/picolisp/weekly/index.xml new file mode 100644 index 00000000000..cb3e5c54d96 --- /dev/null +++ b/picolisp/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PicoLisp Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:10Z + Weekly Trending of PicoLisp in GitHub + + \ No newline at end of file diff --git a/piglatin/daily/index.xml b/piglatin/daily/index.xml index 89cc52b0e06..3be67a07450 100644 --- a/piglatin/daily/index.xml +++ b/piglatin/daily/index.xml @@ -1,7 +1,7 @@ GitHub PigLatin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:32Z + 2023-09-24T01:38:14Z Daily Trending of PigLatin in GitHub \ No newline at end of file diff --git a/piglatin/weekly/index.xml b/piglatin/weekly/index.xml new file mode 100644 index 00000000000..77d6c3b05c9 --- /dev/null +++ b/piglatin/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PigLatin Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:09Z + Weekly Trending of PigLatin in GitHub + + \ No newline at end of file diff --git a/pike/daily/index.xml b/pike/daily/index.xml index 2d83cbe7425..3623dcea45c 100644 --- a/pike/daily/index.xml +++ b/pike/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pike Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:30Z + 2023-09-24T01:38:15Z Daily Trending of Pike in GitHub \ No newline at end of file diff --git a/pike/weekly/index.xml b/pike/weekly/index.xml new file mode 100644 index 00000000000..062456b4235 --- /dev/null +++ b/pike/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pike Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:11Z + Weekly Trending of Pike in GitHub + + \ No newline at end of file diff --git a/plantuml/daily/index.xml b/plantuml/daily/index.xml index 38a9e76dcf4..f9106997ad9 100644 --- a/plantuml/daily/index.xml +++ b/plantuml/daily/index.xml @@ -1,7 +1,7 @@ GitHub PlantUML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:36Z + 2023-09-24T01:38:17Z Daily Trending of PlantUML in GitHub \ No newline at end of file diff --git a/plantuml/weekly/index.xml b/plantuml/weekly/index.xml new file mode 100644 index 00000000000..2d10f5e7d66 --- /dev/null +++ b/plantuml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PlantUML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:13Z + Weekly Trending of PlantUML in GitHub + + \ No newline at end of file diff --git a/plpgsql/daily/index.xml b/plpgsql/daily/index.xml index 6c4208f5175..c3506a6c1f6 100644 --- a/plpgsql/daily/index.xml +++ b/plpgsql/daily/index.xml @@ -1,7 +1,21 @@ GitHub PLpgSQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:37Z + 2023-09-24T01:38:20Z Daily Trending of PLpgSQL in GitHub + + hacklabr/mapas-UFPEL + 2023-09-24T01:38:20Z + tag:github.com,2023-09-24:/hacklabr/mapas-UFPEL + + <p></p><hr> + + + SocialGouv/recosante + 2023-09-24T01:38:20Z + tag:github.com,2023-09-24:/SocialGouv/recosante + + <p></p><hr> + \ No newline at end of file diff --git a/plpgsql/weekly/index.xml b/plpgsql/weekly/index.xml new file mode 100644 index 00000000000..a697432c7c5 --- /dev/null +++ b/plpgsql/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub PLpgSQL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:15Z + Weekly Trending of PLpgSQL in GitHub + + + Vonng/pigsty + 2023-09-24T01:58:15Z + tag:github.com,2023-09-24:/Vonng/pigsty + + <p>PostgreSQL in Great STYle, Battery-Included Free RDS Alternative!</p><hr> + + \ No newline at end of file diff --git a/plsql/daily/index.xml b/plsql/daily/index.xml index ddb1cecd069..14081a600a6 100644 --- a/plsql/daily/index.xml +++ b/plsql/daily/index.xml @@ -1,7 +1,7 @@ GitHub PLSQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:34Z + 2023-09-24T01:38:18Z Daily Trending of PLSQL in GitHub \ No newline at end of file diff --git a/plsql/weekly/index.xml b/plsql/weekly/index.xml new file mode 100644 index 00000000000..10b77864fdf --- /dev/null +++ b/plsql/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PLSQL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:12Z + Weekly Trending of PLSQL in GitHub + + \ No newline at end of file diff --git a/pod-6/daily/index.xml b/pod-6/daily/index.xml index 64a72b8e296..ab03133a22c 100644 --- a/pod-6/daily/index.xml +++ b/pod-6/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pod 6 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:39Z + 2023-09-24T01:38:23Z Daily Trending of Pod 6 in GitHub \ No newline at end of file diff --git a/pod-6/weekly/index.xml b/pod-6/weekly/index.xml new file mode 100644 index 00000000000..616a4af4fa7 --- /dev/null +++ b/pod-6/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pod 6 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:17Z + Weekly Trending of Pod 6 in GitHub + + \ No newline at end of file diff --git a/pod/daily/index.xml b/pod/daily/index.xml index 0058edbd3b3..afc52faec3b 100644 --- a/pod/daily/index.xml +++ b/pod/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pod Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:35Z + 2023-09-24T01:38:16Z Daily Trending of Pod in GitHub \ No newline at end of file diff --git a/pod/weekly/index.xml b/pod/weekly/index.xml new file mode 100644 index 00000000000..d199b8e3e99 --- /dev/null +++ b/pod/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pod Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:13Z + Weekly Trending of Pod in GitHub + + \ No newline at end of file diff --git a/pogoscript/daily/index.xml b/pogoscript/daily/index.xml index 9ad7a3f9768..e396865176d 100644 --- a/pogoscript/daily/index.xml +++ b/pogoscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub PogoScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:40Z + 2023-09-24T01:38:24Z Daily Trending of PogoScript in GitHub \ No newline at end of file diff --git a/pogoscript/weekly/index.xml b/pogoscript/weekly/index.xml new file mode 100644 index 00000000000..c6114d53c91 --- /dev/null +++ b/pogoscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PogoScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:17Z + Weekly Trending of PogoScript in GitHub + + \ No newline at end of file diff --git a/pony/daily/index.xml b/pony/daily/index.xml index 67cb8d46cfc..ac2ab927c14 100644 --- a/pony/daily/index.xml +++ b/pony/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pony Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:41Z + 2023-09-24T01:38:22Z Daily Trending of Pony in GitHub \ No newline at end of file diff --git a/pony/weekly/index.xml b/pony/weekly/index.xml new file mode 100644 index 00000000000..485ad79b41f --- /dev/null +++ b/pony/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pony Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:18Z + Weekly Trending of Pony in GitHub + + \ No newline at end of file diff --git a/postcss/daily/index.xml b/postcss/daily/index.xml index 3c10cc1a1fd..19b40c6431f 100644 --- a/postcss/daily/index.xml +++ b/postcss/daily/index.xml @@ -1,7 +1,7 @@ GitHub PostCSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:45Z + 2023-09-24T01:38:27Z Daily Trending of PostCSS in GitHub \ No newline at end of file diff --git a/postcss/weekly/index.xml b/postcss/weekly/index.xml new file mode 100644 index 00000000000..d021fcb8440 --- /dev/null +++ b/postcss/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PostCSS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:22Z + Weekly Trending of PostCSS in GitHub + + \ No newline at end of file diff --git a/postscript/daily/index.xml b/postscript/daily/index.xml index c161af9cf60..ed2e5e0e063 100644 --- a/postscript/daily/index.xml +++ b/postscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub PostScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:42Z + 2023-09-24T01:38:28Z Daily Trending of PostScript in GitHub \ No newline at end of file diff --git a/postscript/weekly/index.xml b/postscript/weekly/index.xml new file mode 100644 index 00000000000..e4882b81a2b --- /dev/null +++ b/postscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PostScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:20Z + Weekly Trending of PostScript in GitHub + + \ No newline at end of file diff --git a/pov-ray-sdl/daily/index.xml b/pov-ray-sdl/daily/index.xml index d0b45d2ebbe..9bfb9f26669 100644 --- a/pov-ray-sdl/daily/index.xml +++ b/pov-ray-sdl/daily/index.xml @@ -1,7 +1,7 @@ GitHub POV-Ray SDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:44Z + 2023-09-24T01:38:26Z Daily Trending of POV-Ray SDL in GitHub \ No newline at end of file diff --git a/pov-ray-sdl/weekly/index.xml b/pov-ray-sdl/weekly/index.xml new file mode 100644 index 00000000000..956f28894bb --- /dev/null +++ b/pov-ray-sdl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub POV-Ray SDL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:21Z + Weekly Trending of POV-Ray SDL in GitHub + + \ No newline at end of file diff --git a/powerbuilder/daily/index.xml b/powerbuilder/daily/index.xml index 4cc9c18cf82..15e7a27e5eb 100644 --- a/powerbuilder/daily/index.xml +++ b/powerbuilder/daily/index.xml @@ -1,7 +1,7 @@ GitHub PowerBuilder Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:47Z + 2023-09-24T01:38:29Z Daily Trending of PowerBuilder in GitHub \ No newline at end of file diff --git a/powerbuilder/weekly/index.xml b/powerbuilder/weekly/index.xml new file mode 100644 index 00000000000..3fb1e77980d --- /dev/null +++ b/powerbuilder/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PowerBuilder Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:24Z + Weekly Trending of PowerBuilder in GitHub + + \ No newline at end of file diff --git a/powershell/daily/index.xml b/powershell/daily/index.xml index 2968a4d0ed9..b2b82f63859 100644 --- a/powershell/daily/index.xml +++ b/powershell/daily/index.xml @@ -1,7 +1,7 @@ GitHub PowerShell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:51Z + 2023-09-24T01:38:36Z Daily Trending of PowerShell in GitHub \ No newline at end of file diff --git a/powershell/weekly/index.xml b/powershell/weekly/index.xml new file mode 100644 index 00000000000..318c28e8033 --- /dev/null +++ b/powershell/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub PowerShell Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:28Z + Weekly Trending of PowerShell in GitHub + + + microsoftgraph/powershell-intune-samples + 2023-09-24T01:58:28Z + tag:github.com,2023-09-24:/microsoftgraph/powershell-intune-samples + + <p>This repository of PowerShell sample scripts show how to access Intune service resources. They demonstrate this by making HTTPS RESTful API requests to the Microsoft Graph API from PowerShell.</p><hr><hr> <p>page_type: sample products:</p> <ul> <li>ms-graph languages:</li> <li>powershell extensions: contentType: samples technologies: <ul> <li>Microsoft Graph services:</li> <li>Intune createdDate: 4/4/2017 9:41:27 AM noDependencies: true</li> </ul> </li> </ul> <hr> <h1>Intune Graph Samples</h1> <p>This repository of PowerShell sample scripts show how to access Intune service resources. They demonstrate this by making HTTPS RESTful API requests to the Microsoft Graph API from PowerShell.</p> <p>Documentation for Intune and Microsoft Graph can be found here <a href="https://docs.microsoft.com/en-us/graph/api/resources/intune-graph-overview?view=graph-rest-1.0">Intune Graph Documentation</a>.</p> <p>These samples demonstrate typical Intune administrator or Microsoft partner actions for managing Intune resources.</p> <p>The following samples are included in this repository:</p> <ul> <li>AdminConsent</li> <li>AndroidEnterprise</li> <li>AppleEnrollment</li> <li>Applications</li> <li>ApplicationSync</li> <li>AppProtectionPolicy</li> <li>Auditing</li> <li>Authentication</li> <li>CertificationAuthority</li> <li>CheckStatus</li> <li>CompanyPortalBranding</li> <li>CompliancePolicy</li> <li>CorporateDeviceEnrollment</li> <li>DeviceConfiguration</li> <li>EnrollmentRestrictions</li> <li>IntuneDataExport</li> <li>LOB_Application</li> <li>ManagedDevices</li> <li>Paging</li> <li>RBAC</li> <li>RemoteActionAudit</li> <li>SoftwareUpdates</li> <li>TermsAndConditions</li> <li>UserPolicyReport</li> </ul> <p>The scripts are licensed "as-is." under the MIT License.</p> <h4>Disclaimer</h4> <p>Some script samples retrieve information from your Intune tenant, and others create, delete or update data in your Intune tenant.&nbsp; Understand the impact of each sample script prior to running it; samples should be run using a non-production or "test" tenant account.&nbsp;</p> <h2>Using the Intune Graph API</h2> <p>The Intune Graph API enables access to Intune information programmatically for your tenant, and the API performs the same Intune operations as those available through the Azure Portal.&nbsp;&nbsp;</p> <p>Intune provides data into the Microsoft Graph in the same way as other cloud services do, with rich entity information and relationship navigation.&nbsp; Use Microsoft Graph to combine information from other services and Intune to build rich cross-service applications for IT professionals or end users.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p> <h2>Prerequisites</h2> <p>Use of these Microsoft Graph API Intune PowerShell samples requires the following:</p> <ul> <li>Install the AzureAD PowerShell module by running 'Install-Module AzureAD' or 'Install-Module AzureADPreview' from an elevated PowerShell prompt</li> <li>An Intune tenant which supports the Azure Portal with a production or trial license (<a href="https://docs.microsoft.com/en-us/intune-azure/introduction/what-is-microsoft-intune">https://docs.microsoft.com/en-us/intune-azure/introduction/what-is-microsoft-intune</a>)</li> <li>Using the Microsoft Graph APIs to configure Intune controls and policies requires an Intune license.</li> <li>An account with permissions to administer the Intune Service</li> <li>PowerShell v5.0 on Windows 10 x64 (PowerShell v4.0 is a minimum requirement for the scripts to function correctly)</li> <li>Note: For PowerShell 4.0 you will require the <a href="https://www.microsoft.com/en-us/download/details.aspx?id=51451">PowershellGet Module for PS 4.0</a> to enable the usage of the Install-Module functionality</li> <li>First time usage of these scripts requires a Global Administrator of the Tenant to accept the permissions of the application</li> </ul> <h2>Getting Started</h2> <p>After the prerequisites are installed or met, perform the following steps to use these scripts:</p> <h4>1. Script usage</h4> <ol> <li>Download the contents of the repository to your local Windows machine</li> </ol> <ul> <li>Extract the files to a local folder (e.g. C:\IntuneGraphSamples)</li> <li>Run PowerShell x64 from the start menu</li> <li>Browse to the directory (e.g. cd C:\IntuneGraphSamples)</li> <li>For each Folder in the local repository you can browse to that directory and then run the script of your choice</li> <li>Example Application script usage: <ul> <li>To use the Manage Applications scripts, from C:\IntuneGraphSamples, run "cd .\Applications"</li> <li>Once in the folder run .\Application_MDM_Get.ps1 to get all MDM added applications This sequence of steps can be used for each folder....</li> </ul> </li> </ul> <h4>2. Authentication with Microsoft Graph</h4> <p>The first time you run these scripts you will be asked to provide an account to authenticate with the service:</p> <pre><code>Please specify your user principal name for Azure Authentication: </code></pre> <p>Once you have provided a user principal name a popup will open prompting for your password. After a successful authentication with Azure Active Directory the user token will last for an hour, once the hour expires within the PowerShell session you will be asked to re-authenticate.</p> <p>If you are running the script for the first time against your tenant a popup will be presented stating:</p> <pre><code>Microsoft Intune PowerShell needs permission to: * Sign you in and read your profile * Read all groups * Read directory data * Read and write Microsoft Intune Device Configuration and Policies (preview) * Read and write Microsoft Intune RBAC settings (preview) * Perform user-impacting remote actions on Microsoft Intune devices (preview) * Sign in as you * Read and write Microsoft Intune devices (preview) * Read and write all groups * Read and write Microsoft Intune configuration (preview) * Read and write Microsoft Intune apps (preview) </code></pre> <p>Note: If your user account is targeted for device based conditional access your device must be enrolled or compliant to pass authentication.</p> <h2>Contributing</h2> <p>If you'd like to contribute to this sample, see CONTRIBUTING.MD.</p> <p>This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact <a href="mailto:opencode@microsoft.com">opencode@microsoft.com</a> with any additional questions or comments.</p> <h2>Questions and comments</h2> <p>We'd love to get your feedback about the Intune PowerShell sample. You can send your questions and suggestions to us in the Issues section of this repository.</p> <p>Your feedback is important to us. Connect with us on Stack Overflow. Tag your questions with [MicrosoftGraph] and [intune].</p> <h2>Additional resources</h2> <ul> <li><a href="https://developer.microsoft.com/en-us/graph/docs">Microsoft Graph API documentation</a></li> <li><a href="https://developer.microsoft.com/en-us/graph/graph-explorer">Microsoft Graph Portal</a></li> <li><a href="https://developer.microsoft.com/en-us/graph/code-samples-and-sdks">Microsoft code samples</a></li> <li><a href="https://docs.microsoft.com/en-us/graph/api/resources/intune-graph-overview?view=graph-rest-1.0">Intune Graph Documentation</a></li> </ul> <h2>Copyright</h2> <p>Copyright (c) 2017 Microsoft. All rights reserved.</p> <p>This project has adopted the <a href="https://opensource.microsoft.com/codeofconduct/">Microsoft Open Source Code of Conduct</a>. For more information see the <a href="https://opensource.microsoft.com/codeofconduct/faq/">Code of Conduct FAQ</a> or contact <a href="mailto:opencode@microsoft.com">opencode@microsoft.com</a> with any additional questions or comments.</p> + + + MicrosoftDocs/WSL + 2023-09-24T01:58:28Z + tag:github.com,2023-09-24:/MicrosoftDocs/WSL + + <p>Source code behind the Windows Subsystem for Linux documentation.</p><hr><h1>Windows Subsystem for Linux (WSL) Documentation</h1> <h2>Issues</h2> <p>If you find doc issues / errors or have an improvement you'd like to suggest, please file an issue and/or submit a pull-request - we greatly appreciate PR's in particular :)</p> <blockquote> <p><strong>Note:</strong> This repo's issue tracker is only for reporting issues with the WSL docs. Other related issue repo's:</p> <ul> <li>WSL: <a href="https://github.com/Microsoft/WSL/">https://github.com/Microsoft/WSL/</a></li> <li>Windows Console: <a href="https://github.com/Microsoft/Terminal/">https://github.com/Microsoft/Terminal/</a></li> </ul> </blockquote> <h2>External Links</h2> <p><a href="https://learn.microsoft.com/windows/wsl/">Rendered documentation website</a></p> <p><a href="https://learn.microsoft.com/windows/wsl/release-notes">Release notes for WSL</a></p> <h2>Microsoft Open Source Code of Conduct</h2> <p>This project has adopted the <a href="https://opensource.microsoft.com/codeofconduct/">Microsoft Open Source Code of Conduct</a>. For more information see the <a href="https://opensource.microsoft.com/codeofconduct/faq/">Code of Conduct FAQ</a> or contact <a href="mailto:opencode@microsoft.com">opencode@microsoft.com</a> with any additional questions or comments.</p> <p>Welcome to the markdown source for Microsoft's command-line shells and console documentation.</p> <h2>License</h2> <p>Distributed under the Creative Commons Attribution 4.0 International (CC BY 4.0) Public License.</p> + + + navy235/designpattern + 2023-09-24T01:58:28Z + tag:github.com,2023-09-24:/navy235/designpattern + + <p>designpattern</p><hr><h1>designpattern</h1> <p>designpattern</p> + + \ No newline at end of file diff --git a/prisma/daily/index.xml b/prisma/daily/index.xml index 3c3749052e2..05bfaf57042 100644 --- a/prisma/daily/index.xml +++ b/prisma/daily/index.xml @@ -1,7 +1,7 @@ GitHub Prisma Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:48Z + 2023-09-24T01:38:30Z Daily Trending of Prisma in GitHub \ No newline at end of file diff --git a/prisma/weekly/index.xml b/prisma/weekly/index.xml new file mode 100644 index 00000000000..90d542e504e --- /dev/null +++ b/prisma/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Prisma Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:23Z + Weekly Trending of Prisma in GitHub + + \ No newline at end of file diff --git a/processing/daily/index.xml b/processing/daily/index.xml index 43ca65471df..c73a591f733 100644 --- a/processing/daily/index.xml +++ b/processing/daily/index.xml @@ -1,7 +1,7 @@ GitHub Processing Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:34:46Z + 2023-09-24T01:38:31Z Daily Trending of Processing in GitHub \ No newline at end of file diff --git a/processing/weekly/index.xml b/processing/weekly/index.xml new file mode 100644 index 00000000000..0e31d0ef21a --- /dev/null +++ b/processing/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Processing Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:25Z + Weekly Trending of Processing in GitHub + + \ No newline at end of file diff --git a/procfile/daily/index.xml b/procfile/daily/index.xml index 063a7e109d3..5d09053fb58 100644 --- a/procfile/daily/index.xml +++ b/procfile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Procfile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:07Z + 2023-09-24T01:38:53Z Daily Trending of Procfile in GitHub \ No newline at end of file diff --git a/procfile/weekly/index.xml b/procfile/weekly/index.xml new file mode 100644 index 00000000000..d5dd1db05a7 --- /dev/null +++ b/procfile/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Procfile Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:37Z + Weekly Trending of Procfile in GitHub + + \ No newline at end of file diff --git a/proguard/daily/index.xml b/proguard/daily/index.xml index 22e28196372..5231f514e45 100644 --- a/proguard/daily/index.xml +++ b/proguard/daily/index.xml @@ -1,7 +1,7 @@ GitHub Proguard Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:08Z + 2023-09-24T01:38:54Z Daily Trending of Proguard in GitHub \ No newline at end of file diff --git a/proguard/weekly/index.xml b/proguard/weekly/index.xml new file mode 100644 index 00000000000..230a1ba6a65 --- /dev/null +++ b/proguard/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Proguard Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:39Z + Weekly Trending of Proguard in GitHub + + \ No newline at end of file diff --git a/prolog/daily/index.xml b/prolog/daily/index.xml index f33c24b2eda..202e3f7855d 100644 --- a/prolog/daily/index.xml +++ b/prolog/daily/index.xml @@ -1,7 +1,7 @@ GitHub Prolog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:09Z + 2023-09-24T01:38:55Z Daily Trending of Prolog in GitHub \ No newline at end of file diff --git a/prolog/weekly/index.xml b/prolog/weekly/index.xml new file mode 100644 index 00000000000..4b1a717b543 --- /dev/null +++ b/prolog/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Prolog Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:38Z + Weekly Trending of Prolog in GitHub + + + sebgod/goldparser-prolog + 2023-09-24T01:58:38Z + tag:github.com,2023-09-24:/sebgod/goldparser-prolog + + <p>A GOLD Parser implementation in SWI-Prolog</p><hr> + + \ No newline at end of file diff --git a/promela/daily/index.xml b/promela/daily/index.xml index 7c0d6cb596f..42862ed497c 100644 --- a/promela/daily/index.xml +++ b/promela/daily/index.xml @@ -1,7 +1,7 @@ GitHub Promela Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:07Z + 2023-09-24T01:38:54Z Daily Trending of Promela in GitHub \ No newline at end of file diff --git a/promela/weekly/index.xml b/promela/weekly/index.xml new file mode 100644 index 00000000000..cfc99442c89 --- /dev/null +++ b/promela/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Promela Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:38Z + Weekly Trending of Promela in GitHub + + \ No newline at end of file diff --git a/propeller-spin/daily/index.xml b/propeller-spin/daily/index.xml index d648aa36599..ceef870204b 100644 --- a/propeller-spin/daily/index.xml +++ b/propeller-spin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Propeller Spin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:11Z + 2023-09-24T01:38:59Z Daily Trending of Propeller Spin in GitHub \ No newline at end of file diff --git a/propeller-spin/weekly/index.xml b/propeller-spin/weekly/index.xml new file mode 100644 index 00000000000..13e7a4e358e --- /dev/null +++ b/propeller-spin/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Propeller Spin Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:42Z + Weekly Trending of Propeller Spin in GitHub + + \ No newline at end of file diff --git a/protocol-buffer-text-format/daily/index.xml b/protocol-buffer-text-format/daily/index.xml index d5d52606243..033ffe04435 100644 --- a/protocol-buffer-text-format/daily/index.xml +++ b/protocol-buffer-text-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Protocol Buffer Text Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:13Z + 2023-09-24T01:38:57Z Daily Trending of Protocol Buffer Text Format in GitHub \ No newline at end of file diff --git a/protocol-buffer-text-format/weekly/index.xml b/protocol-buffer-text-format/weekly/index.xml new file mode 100644 index 00000000000..ea0849acb71 --- /dev/null +++ b/protocol-buffer-text-format/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Protocol Buffer Text Format Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:43Z + Weekly Trending of Protocol Buffer Text Format in GitHub + + \ No newline at end of file diff --git a/protocol-buffer/daily/index.xml b/protocol-buffer/daily/index.xml index 56ae7642046..085e9e21ec0 100644 --- a/protocol-buffer/daily/index.xml +++ b/protocol-buffer/daily/index.xml @@ -1,7 +1,7 @@ GitHub Protocol Buffer Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:12Z + 2023-09-24T01:38:57Z Daily Trending of Protocol Buffer in GitHub \ No newline at end of file diff --git a/protocol-buffer/weekly/index.xml b/protocol-buffer/weekly/index.xml new file mode 100644 index 00000000000..d48fa2a38a8 --- /dev/null +++ b/protocol-buffer/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Protocol Buffer Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:41Z + Weekly Trending of Protocol Buffer in GitHub + + \ No newline at end of file diff --git a/public-key/daily/index.xml b/public-key/daily/index.xml index 0f32c4543c2..861437b7d1f 100644 --- a/public-key/daily/index.xml +++ b/public-key/daily/index.xml @@ -1,7 +1,7 @@ GitHub Public Key Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:10Z + 2023-09-24T01:38:58Z Daily Trending of Public Key in GitHub \ No newline at end of file diff --git a/public-key/weekly/index.xml b/public-key/weekly/index.xml new file mode 100644 index 00000000000..bb4407f60e9 --- /dev/null +++ b/public-key/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Public Key Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:40Z + Weekly Trending of Public Key in GitHub + + \ No newline at end of file diff --git a/pug/daily/index.xml b/pug/daily/index.xml index b28977bf171..b342d2daa25 100644 --- a/pug/daily/index.xml +++ b/pug/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pug Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:17Z + 2023-09-24T01:39:00Z Daily Trending of Pug in GitHub \ No newline at end of file diff --git a/pug/weekly/index.xml b/pug/weekly/index.xml new file mode 100644 index 00000000000..460eddfc227 --- /dev/null +++ b/pug/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Pug Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:47Z + Weekly Trending of Pug in GitHub + + + reddit/redditsans + 2023-09-24T01:58:47Z + tag:github.com,2023-09-24:/reddit/redditsans + + <p>Reddit Sans. The typeface of the internet.</p><hr> + + \ No newline at end of file diff --git a/puppet/daily/index.xml b/puppet/daily/index.xml index 9a1c1b0bdde..f8f5973bb83 100644 --- a/puppet/daily/index.xml +++ b/puppet/daily/index.xml @@ -1,7 +1,21 @@ GitHub Puppet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:15Z + 2023-09-24T01:39:02Z Daily Trending of Puppet in GitHub + + ankurpshah/cms-puppet + 2023-09-24T01:39:02Z + tag:github.com,2023-09-24:/ankurpshah/cms-puppet + + <p>Puppet recipes for the HouseTrip CMS</p><hr> + + + gwagner/puppet-firewall + 2023-09-24T01:39:02Z + tag:github.com,2023-09-24:/gwagner/puppet-firewall + + <p>Firewall module for puppet</p><hr> + \ No newline at end of file diff --git a/puppet/weekly/index.xml b/puppet/weekly/index.xml new file mode 100644 index 00000000000..c43c4ec84e3 --- /dev/null +++ b/puppet/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub Puppet Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:46Z + Weekly Trending of Puppet in GitHub + + + wulff/vagrant-dk-mwu-gere + 2023-09-24T01:58:46Z + tag:github.com,2023-09-24:/wulff/vagrant-dk-mwu-gere + + <p></p><hr> + + + gwagner/puppet-firewall + 2023-09-24T01:58:46Z + tag:github.com,2023-09-24:/gwagner/puppet-firewall + + <p>Firewall module for puppet</p><hr> + + \ No newline at end of file diff --git a/pure-data/daily/index.xml b/pure-data/daily/index.xml index 763aceb25d6..4949d0d5119 100644 --- a/pure-data/daily/index.xml +++ b/pure-data/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pure Data Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:18Z + 2023-09-24T01:39:02Z Daily Trending of Pure Data in GitHub \ No newline at end of file diff --git a/pure-data/weekly/index.xml b/pure-data/weekly/index.xml new file mode 100644 index 00000000000..533b0abc035 --- /dev/null +++ b/pure-data/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Pure Data Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:44Z + Weekly Trending of Pure Data in GitHub + + \ No newline at end of file diff --git a/purebasic/daily/index.xml b/purebasic/daily/index.xml index 4d6032509b4..280bc0f2faa 100644 --- a/purebasic/daily/index.xml +++ b/purebasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub PureBasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:14Z + 2023-09-24T01:39:03Z Daily Trending of PureBasic in GitHub \ No newline at end of file diff --git a/purebasic/weekly/index.xml b/purebasic/weekly/index.xml new file mode 100644 index 00000000000..f72e5cdab7b --- /dev/null +++ b/purebasic/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PureBasic Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:45Z + Weekly Trending of PureBasic in GitHub + + \ No newline at end of file diff --git a/purescript/daily/index.xml b/purescript/daily/index.xml index 908d9684de2..beb8cc6e662 100644 --- a/purescript/daily/index.xml +++ b/purescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub PureScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:23Z + 2023-09-24T01:39:08Z Daily Trending of PureScript in GitHub \ No newline at end of file diff --git a/purescript/weekly/index.xml b/purescript/weekly/index.xml new file mode 100644 index 00000000000..29569181f0a --- /dev/null +++ b/purescript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub PureScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:52Z + Weekly Trending of PureScript in GitHub + + \ No newline at end of file diff --git a/python-console/daily/index.xml b/python-console/daily/index.xml index 910929d19d9..909a31dcc8e 100644 --- a/python-console/daily/index.xml +++ b/python-console/daily/index.xml @@ -1,7 +1,7 @@ GitHub Python console Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:20Z + 2023-09-24T01:39:04Z Daily Trending of Python console in GitHub \ No newline at end of file diff --git a/python-console/weekly/index.xml b/python-console/weekly/index.xml new file mode 100644 index 00000000000..a57fd2a56d1 --- /dev/null +++ b/python-console/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Python console Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:49Z + Weekly Trending of Python console in GitHub + + \ No newline at end of file diff --git a/python-traceback/daily/index.xml b/python-traceback/daily/index.xml index c1098e28db8..ab32cc012b4 100644 --- a/python-traceback/daily/index.xml +++ b/python-traceback/daily/index.xml @@ -1,7 +1,7 @@ GitHub Python traceback Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:51Z + 2023-09-24T01:39:36Z Daily Trending of Python traceback in GitHub \ No newline at end of file diff --git a/python-traceback/weekly/index.xml b/python-traceback/weekly/index.xml new file mode 100644 index 00000000000..5499a999a3b --- /dev/null +++ b/python-traceback/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Python traceback Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:17Z + Weekly Trending of Python traceback in GitHub + + \ No newline at end of file diff --git a/python/daily/index.xml b/python/daily/index.xml index 1db361a7ee7..264a36bfcdc 100644 --- a/python/daily/index.xml +++ b/python/daily/index.xml @@ -1,28 +1,28 @@ GitHub Python Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:27Z + 2023-09-24T01:39:11Z Daily Trending of Python in GitHub - yl4579/HiFTNet - 2023-09-23T01:35:27Z - tag:github.com,2023-09-23:/yl4579/HiFTNet - - <p></p><hr><h1>HiFTNet: A Fast High-Quality Neural Vocoder with Harmonic-plus-Noise Filter and Inverse Short Time Fourier Transform</h1> <h3>Yinghao Aaron Li, Cong Han, Xilin Jiang, Nima Mesgarani</h3> <blockquote> <p>Recent advancements in speech synthesis have leveraged GAN-based networks like HiFi-GAN and BigVGAN to produce high-fidelity waveforms from mel-spectrograms. However, these networks are computationally expensive and parameter-heavy. iSTFTNet addresses these limitations by integrating inverse short-time Fourier transform (iSTFT) into the network, achieving both speed and parameter efficiency. In this paper, we introduce an extension to iSTFTNet, termed HiFTNet, which incorporates a harmonic-plus-noise source filter in the time-frequency domain that uses a sinusoidal source from the fundamental frequency (F0) inferred via a pre-trained F0 estimation network for fast inference speed. Subjective evaluations on LJSpeech show that our model significantly outperforms both iSTFTNet and HiFi-GAN, achieving ground-truth-level performance. HiFTNet also outperforms BigVGAN-base on LibriTTS for unseen speakers and achieves comparable performance to BigVGAN while being four times faster with only 1/6 of the parameters. Our work sets a new benchmark for efficient, high-quality neural vocoding, paving the way for real-time applications that demand high quality speech synthesis.</p> </blockquote> <p>Paper: <a href="https://arxiv.org/abs/2309.09493">https://arxiv.org/abs/2309.09493</a></p> <p>Audio samples: <a href="https://hiftnet.github.io/">https://hiftnet.github.io/</a></p> <h2>Pre-requisites</h2> <ol> <li>Python &gt;= 3.7</li> <li>Clone this repository:</li> </ol> <pre><code class="language-bash">git clone https://github.com/yl4579/HiFTNet.git cd HiFTNet </code></pre> <ol start="3"> <li>Install python requirements:</li> </ol> <pre><code class="language-bash">pip install -r requirements.txt </code></pre> <h2>Training</h2> <pre><code class="language-bash">python train.py --config config_v1.json --[args] </code></pre> <p>For the F0 model training, please refer to <a href="https://github.com/yl4579/PitchExtractor">yl4579/PitchExtractor</a>. This repo includes a pre-trained F0 model on LibriTTS. Still, you may want to train your own F0 model for the best performance, particularly for noisy or non-speech data, as we found that F0 estimation accuracy is essential for the vocoder performance.</p> <h2>Inference</h2> <p>Please refer to the notebook <a href="https://github.com/yl4579/HiFTNet/raw/main/inference.ipynb">inference.ipynb</a> for details.</p> <h3>Pre-Trained Models</h3> <p>You can download the pre-trained LJSpeech model <a href="https://drive.google.com/drive/folders/1gW9Qba0jEdH_2E0UrHyqsaNEbRkDS4nQ?usp=sharing">here</a> and the pre-trained LibriTTS model <a href="https://drive.google.com/drive/folders/1vOJKNpzYzbv8J_hh3ox5RvlhHjmf8PcX?usp=sharing">here</a>. The pre-trained models contain parameters of the optimizers and discriminators that can be used for fine-tuning.</p> <h2>References</h2> <ul> <li><a href="https://github.com/rishikksh20/iSTFTNet-pytorch">rishikksh20/iSTFTNet-pytorch</a></li> <li><a href="https://github.com/nii-yamagishilab/project-NN-Pytorch-scripts/tree/master/project/01-nsf">nii-yamagishilab/project-NN-Pytorch-scripts/project/01-nsf</a></li> </ul> + stas00/ml-engineering + 2023-09-24T01:39:11Z + tag:github.com,2023-09-24:/stas00/ml-engineering + + <p>Machine Learning Engineering Guides and Tools</p><hr><h1>Machine Learning Engineering Guides and Tools</h1> <p>An open collection of methodologies to help with successful training of large language models and multi-modal models.</p> <p>This is a technical material suitable for LLM/VLM training engineers and operators. That is the content here contains lots of scripts and copy-n-paste commands to enable you to quickly address your needs.</p> <p>This repo is an ongoing brain dump of my experiences training Large Language Models (LLM) (and VLMs); a lot of the know-how I acquired while training the open-source <a href="https://huggingface.co/bigscience/bloom">BLOOM-176B</a> model in 2022 and <a href="https://huggingface.co/HuggingFaceM4/idefics-80b-instruct">IDEFICS-80B</a> multi-modal model in 2023. Currently, I'm working on developing/training open-source Retrieval Augmented models at <a href="https://contextual.ai/">Contextual.AI</a>.</p> <p>I've been compiling this information mostly for myself so that I could quickly find solutions I have already researched in the past and which have worked, but as usual I'm happy to share these with the wider ML community.</p> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/debug/">Debugging software and hardware failures</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/performance/">Performance</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/multi-node">Multi-Node networking</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/model-parallelism/">Model parallelism</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/dtype/">Tensor precision / Data types</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/hparams/">Training hyper-parameters and model initializations</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/reproducibility/">Reproducibility</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/instabilities/">Instabilities</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/slurm/">SLURM</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/resources/">Resources</a></h2> <h2><a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/transformers/">HF Transformers notes</a></h2> <h1>Contributing</h1> <p>If you found a bug, typo or would like to propose an improvement please don't hesitate to open an <a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/Issue">Issue</a> or contribute a PR.</p> <h2>License</h2> <p>The content of this site is distributed under <a href="https://raw.githubusercontent.com/stas00/ml-engineering/master/LICENSE-CC-BY-SA">Attribution-ShareAlike 4.0 International</a>.</p> - google-deepmind/alphafold - 2023-09-23T01:35:27Z - tag:github.com,2023-09-23:/google-deepmind/alphafold - - <p>Open source code for AlphaFold.</p><hr><p><img src="https://raw.githubusercontent.com/google-deepmind/alphafold/main/imgs/header.jpg" alt="header"></p> <h1>AlphaFold</h1> <p>This package provides an implementation of the inference pipeline of AlphaFold v2. For simplicity, we refer to this model as AlphaFold throughout the rest of this document.</p> <p>We also provide:</p> <ol> <li>An implementation of AlphaFold-Multimer. This represents a work in progress and AlphaFold-Multimer isn't expected to be as stable as our monomer AlphaFold system. <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#updating-existing-installation">Read the guide</a> for how to upgrade and update code.</li> <li>The <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/docs/technical_note_v2.3.0.md">technical note</a> containing the models and inference procedure for an updated AlphaFold v2.3.0.</li> <li>A <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/docs/casp15_predictions.zip">CASP15 baseline</a> set of predictions along with documentation of any manual interventions performed.</li> </ol> <p>Any publication that discloses findings arising from using this source code or the model parameters should <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#citing-this-work">cite</a> the <a href="https://doi.org/10.1038/s41586-021-03819-2">AlphaFold paper</a> and, if applicable, the <a href="https://www.biorxiv.org/content/10.1101/2021.10.04.463034v1">AlphaFold-Multimer paper</a>.</p> <p>Please also refer to the <a href="https://static-content.springer.com/esm/art%3A10.1038%2Fs41586-021-03819-2/MediaObjects/41586_2021_3819_MOESM1_ESM.pdf">Supplementary Information</a> for a detailed description of the method.</p> <p><strong>You can use a slightly simplified version of AlphaFold with <a href="https://colab.research.google.com/github/deepmind/alphafold/blob/main/notebooks/AlphaFold.ipynb">this Colab notebook</a></strong> or community-supported versions (see below).</p> <p>If you have any questions, please contact the AlphaFold team at <a href="mailto:alphafold@deepmind.com">alphafold@deepmind.com</a>.</p> <p><img src="https://raw.githubusercontent.com/google-deepmind/alphafold/main/imgs/casp14_predictions.gif" alt="CASP14 predictions"></p> <h2>Installation and running your first prediction</h2> <p>You will need a machine running Linux, AlphaFold does not support other operating systems. Full installation requires up to 3 TB of disk space to keep genetic databases (SSD storage is recommended) and a modern NVIDIA GPU (GPUs with more memory can predict larger protein structures).</p> <p>Please follow these steps:</p> <ol> <li> <p>Install <a href="https://www.docker.com/">Docker</a>.</p> <ul> <li>Install <a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html">NVIDIA Container Toolkit</a> for GPU support.</li> <li>Setup running <a href="https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user">Docker as a non-root user</a>.</li> </ul> </li> <li> <p>Clone this repository and <code>cd</code> into it.</p> <pre><code class="language-bash">git clone https://github.com/deepmind/alphafold.git cd ./alphafold </code></pre> </li> <li> <p>Download genetic databases and model parameters:</p> <ul> <li> <p>Install <code>aria2c</code>. On most Linux distributions it is available via the package manager as the <code>aria2</code> package (on Debian-based distributions this can be installed by running <code>sudo apt install aria2</code>).</p> </li> <li> <p>Please use the script <code>scripts/download_all_data.sh</code> to download and set up full databases. This may take substantial time (download size is 556 GB), so we recommend running this script in the background:</p> </li> </ul> <pre><code class="language-bash">scripts/download_all_data.sh &lt;DOWNLOAD_DIR&gt; &gt; download.log 2&gt; download_all.log &amp; </code></pre> <ul> <li> <p><strong>Note: The download directory <code>&lt;DOWNLOAD_DIR&gt;</code> should <em>not</em> be a subdirectory in the AlphaFold repository directory.</strong> If it is, the Docker build will be slow as the large databases will be copied into the docker build context.</p> </li> <li> <p>It is possible to run AlphaFold with reduced databases; please refer to the <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#genetic-databases">complete documentation</a>.</p> </li> </ul> </li> <li> <p>Check that AlphaFold will be able to use a GPU by running:</p> <pre><code class="language-bash">docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi </code></pre> <p>The output of this command should show a list of your GPUs. If it doesn't, check if you followed all steps correctly when setting up the <a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html">NVIDIA Container Toolkit</a> or take a look at the following <a href="https://github.com/NVIDIA/nvidia-docker/issues/1447#issuecomment-801479573">NVIDIA Docker issue</a>.</p> <p>If you wish to run AlphaFold using Singularity (a common containerization platform on HPC systems) we recommend using some of the third party Singularity setups as linked in <a href="https://github.com/deepmind/alphafold/issues/10">https://github.com/deepmind/alphafold/issues/10</a> or <a href="https://github.com/deepmind/alphafold/issues/24">https://github.com/deepmind/alphafold/issues/24</a>.</p> </li> <li> <p>Build the Docker image:</p> <pre><code class="language-bash">docker build -f docker/Dockerfile -t alphafold . </code></pre> <p>If you encounter the following error:</p> <pre><code>W: GPG error: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC E: The repository 'https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease' is not signed. </code></pre> <p>use the workaround described in <a href="https://github.com/deepmind/alphafold/issues/463#issuecomment-1124881779">https://github.com/deepmind/alphafold/issues/463#issuecomment-1124881779</a>.</p> </li> <li> <p>Install the <code>run_docker.py</code> dependencies. Note: You may optionally wish to create a <a href="https://docs.python.org/3/tutorial/venv.html">Python Virtual Environment</a> to prevent conflicts with your system's Python environment.</p> <pre><code class="language-bash">pip3 install -r docker/requirements.txt </code></pre> </li> <li> <p>Make sure that the output directory exists (the default is <code>/tmp/alphafold</code>) and that you have sufficient permissions to write into it.</p> </li> <li> <p>Run <code>run_docker.py</code> pointing to a FASTA file containing the protein sequence(s) for which you wish to predict the structure (<code>--fasta_paths</code> parameter). AlphaFold will search for the available templates before the date specified by the <code>--max_template_date</code> parameter; this could be used to avoid certain templates during modeling. <code>--data_dir</code> is the directory with downloaded genetic databases and <code>--output_dir</code> is the absolute path to the output directory.</p> <pre><code class="language-bash">python3 docker/run_docker.py \ --fasta_paths=your_protein.fasta \ --max_template_date=2022-01-01 \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir </code></pre> </li> <li> <p>Once the run is over, the output directory shall contain predicted structures of the target protein. Please check the documentation below for additional options and troubleshooting tips.</p> </li> </ol> <h3>Genetic databases</h3> <p>This step requires <code>aria2c</code> to be installed on your machine.</p> <p>AlphaFold needs multiple genetic (sequence) databases to run:</p> <ul> <li><a href="https://bfd.mmseqs.com/">BFD</a>,</li> <li><a href="https://www.ebi.ac.uk/metagenomics/">MGnify</a>,</li> <li><a href="http://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/">PDB70</a>,</li> <li><a href="https://www.rcsb.org/">PDB</a> (structures in the mmCIF format),</li> <li><a href="https://www.rcsb.org/">PDB seqres</a> – only for AlphaFold-Multimer,</li> <li><a href="https://uniclust.mmseqs.com/">UniRef30 (FKA UniClust30)</a>,</li> <li><a href="https://www.uniprot.org/uniprot/">UniProt</a> – only for AlphaFold-Multimer,</li> <li><a href="https://www.uniprot.org/help/uniref">UniRef90</a>.</li> </ul> <p>We provide a script <code>scripts/download_all_data.sh</code> that can be used to download and set up all of these databases:</p> <ul> <li> <p>Recommended default:</p> <pre><code class="language-bash">scripts/download_all_data.sh &lt;DOWNLOAD_DIR&gt; </code></pre> <p>will download the full databases.</p> </li> <li> <p>With <code>reduced_dbs</code> parameter:</p> <pre><code class="language-bash">scripts/download_all_data.sh &lt;DOWNLOAD_DIR&gt; reduced_dbs </code></pre> <p>will download a reduced version of the databases to be used with the <code>reduced_dbs</code> database preset. This shall be used with the corresponding AlphaFold parameter <code>--db_preset=reduced_dbs</code> later during the AlphaFold run (please see <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#running-alphafold">AlphaFold parameters</a> section).</p> </li> </ul> <p><span>📒</span> <strong>Note: The download directory <code>&lt;DOWNLOAD_DIR&gt;</code> should <em>not</em> be a subdirectory in the AlphaFold repository directory.</strong> If it is, the Docker build will be slow as the large databases will be copied during the image creation.</p> <p>We don't provide exactly the database versions used in CASP14 – see the <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#note-on-casp14-reproducibility">note on reproducibility</a>. Some of the databases are mirrored for speed, see <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#mirrored-databases">mirrored databases</a>.</p> <p><span>📒</span> <strong>Note: The total download size for the full databases is around 556 GB and the total size when unzipped is 2.62 TB. Please make sure you have a large enough hard drive space, bandwidth and time to download. We recommend using an SSD for better genetic search performance.</strong></p> <p><span>📒</span> <strong>Note: If the download directory and datasets don't have full read and write permissions, it can cause errors with the MSA tools, with opaque (external) error messages. Please ensure the required permissions are applied, e.g. with the <code>sudo chmod 755 --recursive "$DOWNLOAD_DIR"</code> command.</strong></p> <p>The <code>download_all_data.sh</code> script will also download the model parameter files. Once the script has finished, you should have the following directory structure:</p> <pre><code>$DOWNLOAD_DIR/ # Total: ~ 2.62 TB (download: 556 GB) bfd/ # ~ 1.8 TB (download: 271.6 GB) # 6 files. mgnify/ # ~ 120 GB (download: 67 GB) mgy_clusters_2022_05.fa params/ # ~ 5.3 GB (download: 5.3 GB) # 5 CASP14 models, # 5 pTM models, # 5 AlphaFold-Multimer models, # LICENSE, # = 16 files. pdb70/ # ~ 56 GB (download: 19.5 GB) # 9 files. pdb_mmcif/ # ~ 238 GB (download: 43 GB) mmcif_files/ # About 199,000 .cif files. obsolete.dat pdb_seqres/ # ~ 0.2 GB (download: 0.2 GB) pdb_seqres.txt small_bfd/ # ~ 17 GB (download: 9.6 GB) bfd-first_non_consensus_sequences.fasta uniref30/ # ~ 206 GB (download: 52.5 GB) # 7 files. uniprot/ # ~ 105 GB (download: 53 GB) uniprot.fasta uniref90/ # ~ 67 GB (download: 34 GB) uniref90.fasta </code></pre> <p><code>bfd/</code> is only downloaded if you download the full databases, and <code>small_bfd/</code> is only downloaded if you download the reduced databases.</p> <h3>Model parameters</h3> <p>While the AlphaFold code is licensed under the Apache 2.0 License, the AlphaFold parameters and CASP15 prediction data are made available under the terms of the CC BY 4.0 license. Please see the <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#license-and-disclaimer">Disclaimer</a> below for more detail.</p> <p>The AlphaFold parameters are available from <a href="https://storage.googleapis.com/alphafold/alphafold_params_2022-12-06.tar">https://storage.googleapis.com/alphafold/alphafold_params_2022-12-06.tar</a>, and are downloaded as part of the <code>scripts/download_all_data.sh</code> script. This script will download parameters for:</p> <ul> <li>5 models which were used during CASP14, and were extensively validated for structure prediction quality (see Jumper et al. 2021, Suppl. Methods 1.12 for details).</li> <li>5 pTM models, which were fine-tuned to produce pTM (predicted TM-score) and (PAE) predicted aligned error values alongside their structure predictions (see Jumper et al. 2021, Suppl. Methods 1.9.7 for details).</li> <li>5 AlphaFold-Multimer models that produce pTM and PAE values alongside their structure predictions.</li> </ul> <h3>Updating existing installation</h3> <p>If you have a previous version you can either reinstall fully from scratch (remove everything and run the setup from scratch) or you can do an incremental update that will be significantly faster but will require a bit more work. Make sure you follow these steps in the exact order they are listed below:</p> <ol> <li><strong>Update the code.</strong> <ul> <li>Go to the directory with the cloned AlphaFold repository and run <code>git fetch origin main</code> to get all code updates.</li> </ul> </li> <li><strong>Update the UniProt, UniRef, MGnify and PDB seqres databases.</strong> <ul> <li>Remove <code>&lt;DOWNLOAD_DIR&gt;/uniprot</code>.</li> <li>Run <code>scripts/download_uniprot.sh &lt;DOWNLOAD_DIR&gt;</code>.</li> <li>Remove <code>&lt;DOWNLOAD_DIR&gt;/uniclust30</code>.</li> <li>Run <code>scripts/download_uniref30.sh &lt;DOWNLOAD_DIR&gt;</code>.</li> <li>Remove <code>&lt;DOWNLOAD_DIR&gt;/uniref90</code>.</li> <li>Run <code>scripts/download_uniref90.sh &lt;DOWNLOAD_DIR&gt;</code>.</li> <li>Remove <code>&lt;DOWNLOAD_DIR&gt;/mgnify</code>.</li> <li>Run <code>scripts/download_mgnify.sh &lt;DOWNLOAD_DIR&gt;</code>.</li> <li>Remove <code>&lt;DOWNLOAD_DIR&gt;/pdb_mmcif</code>. It is needed to have PDB SeqRes and PDB from exactly the same date. Failure to do this step will result in potential errors when searching for templates when running AlphaFold-Multimer.</li> <li>Run <code>scripts/download_pdb_mmcif.sh &lt;DOWNLOAD_DIR&gt;</code>.</li> <li>Run <code>scripts/download_pdb_seqres.sh &lt;DOWNLOAD_DIR&gt;</code>.</li> </ul> </li> <li><strong>Update the model parameters.</strong> <ul> <li>Remove the old model parameters in <code>&lt;DOWNLOAD_DIR&gt;/params</code>.</li> <li>Download new model parameters using <code>scripts/download_alphafold_params.sh &lt;DOWNLOAD_DIR&gt;</code>.</li> </ul> </li> <li><strong>Follow <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#running-alphafold">Running AlphaFold</a>.</strong></li> </ol> <h4>Using deprecated model weights</h4> <p>To use the deprecated v2.2.0 AlphaFold-Multimer model weights:</p> <ol> <li>Change <code>SOURCE_URL</code> in <code>scripts/download_alphafold_params.sh</code> to <code>https://storage.googleapis.com/alphafold/alphafold_params_2022-03-02.tar</code>, and download the old parameters.</li> <li>Change the <code>_v3</code> to <code>_v2</code> in the multimer <code>MODEL_PRESETS</code> in <code>config.py</code>.</li> </ol> <p>To use the deprecated v2.1.0 AlphaFold-Multimer model weights:</p> <ol> <li>Change <code>SOURCE_URL</code> in <code>scripts/download_alphafold_params.sh</code> to <code>https://storage.googleapis.com/alphafold/alphafold_params_2022-01-19.tar</code>, and download the old parameters.</li> <li>Remove the <code>_v3</code> in the multimer <code>MODEL_PRESETS</code> in <code>config.py</code>.</li> </ol> <h2>Running AlphaFold</h2> <p><strong>The simplest way to run AlphaFold is using the provided Docker script.</strong> This was tested on Google Cloud with a machine using the <code>nvidia-gpu-cloud-image</code> with 12 vCPUs, 85 GB of RAM, a 100 GB boot disk, the databases on an additional 3 TB disk, and an A100 GPU. For your first run, please follow the instructions from <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#installation-and-running-your-first-prediction">Installation and running your first prediction</a> section.</p> <ol> <li> <p>By default, Alphafold will attempt to use all visible GPU devices. To use a subset, specify a comma-separated list of GPU UUID(s) or index(es) using the <code>--gpu_devices</code> flag. See <a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html#gpu-enumeration">GPU enumeration</a> for more details.</p> </li> <li> <p>You can control which AlphaFold model to run by adding the <code>--model_preset=</code> flag. We provide the following models:</p> <ul> <li> <p><strong>monomer</strong>: This is the original model used at CASP14 with no ensembling.</p> </li> <li> <p><strong>monomer_casp14</strong>: This is the original model used at CASP14 with <code>num_ensemble=8</code>, matching our CASP14 configuration. This is largely provided for reproducibility as it is 8x more computationally expensive for limited accuracy gain (+0.1 average GDT gain on CASP14 domains).</p> </li> <li> <p><strong>monomer_ptm</strong>: This is the original CASP14 model fine tuned with the pTM head, providing a pairwise confidence measure. It is slightly less accurate than the normal monomer model.</p> </li> <li> <p><strong>multimer</strong>: This is the <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#citing-this-work">AlphaFold-Multimer</a> model. To use this model, provide a multi-sequence FASTA file. In addition, the UniProt database should have been downloaded.</p> </li> </ul> </li> <li> <p>You can control MSA speed/quality tradeoff by adding <code>--db_preset=reduced_dbs</code> or <code>--db_preset=full_dbs</code> to the run command. We provide the following presets:</p> <ul> <li> <p><strong>reduced_dbs</strong>: This preset is optimized for speed and lower hardware requirements. It runs with a reduced version of the BFD database. It requires 8 CPU cores (vCPUs), 8 GB of RAM, and 600 GB of disk space.</p> </li> <li> <p><strong>full_dbs</strong>: This runs with all genetic databases used at CASP14.</p> </li> </ul> <p>Running the command above with the <code>monomer</code> model preset and the <code>reduced_dbs</code> data preset would look like this:</p> <pre><code class="language-bash">python3 docker/run_docker.py \ --fasta_paths=T1050.fasta \ --max_template_date=2020-05-14 \ --model_preset=monomer \ --db_preset=reduced_dbs \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir </code></pre> </li> <li> <p>After generating the predicted model, AlphaFold runs a relaxation step to improve local geometry. By default, only the best model (by pLDDT) is relaxed (<code>--models_to_relax=best</code>), but also all of the models (<code>--models_to_relax=all</code>) or none of the models (<code>--models_to_relax=none</code>) can be relaxed.</p> </li> <li> <p>The relaxation step can be run on GPU (faster, but could be less stable) or CPU (slow, but stable). This can be controlled with <code>--enable_gpu_relax=true</code> (default) or <code>--enable_gpu_relax=false</code>.</p> </li> <li> <p>AlphaFold can re-use MSAs (multiple sequence alignments) for the same sequence via <code>--use_precomputed_msas=true</code> option; this can be useful for trying different AlphaFold parameters. This option assumes that the directory structure generated by the first AlphaFold run in the output directory exists and that the protein sequence is the same.</p> </li> </ol> <h3>Running AlphaFold-Multimer</h3> <p>All steps are the same as when running the monomer system, but you will have to</p> <ul> <li>provide an input fasta with multiple sequences,</li> <li>set <code>--model_preset=multimer</code>,</li> </ul> <p>An example that folds a protein complex <code>multimer.fasta</code>:</p> <pre><code class="language-bash">python3 docker/run_docker.py \ --fasta_paths=multimer.fasta \ --max_template_date=2020-05-14 \ --model_preset=multimer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir </code></pre> <p>By default the multimer system will run 5 seeds per model (25 total predictions) for a small drop in accuracy you may wish to run a single seed per model. This can be done via the <code>--num_multimer_predictions_per_model</code> flag, e.g. set it to <code>--num_multimer_predictions_per_model=1</code> to run a single seed per model.</p> <h3>AlphaFold prediction speed</h3> <p>The table below reports prediction runtimes for proteins of various lengths. We only measure unrelaxed structure prediction with three recycles while excluding runtimes from MSA and template search. When running <code>docker/run_docker.py</code> with <code>--benchmark=true</code>, this runtime is stored in <code>timings.json</code>. All runtimes are from a single A100 NVIDIA GPU. Prediction speed on A100 for smaller structures can be improved by increasing <code>global_config.subbatch_size</code> in <code>alphafold/model/config.py</code>.</p> <table> <thead> <tr> <th align="right">No. residues</th> <th align="right">Prediction time (s)</th> </tr> </thead> <tbody> <tr> <td align="right">100</td> <td align="right">4.9</td> </tr> <tr> <td align="right">200</td> <td align="right">7.7</td> </tr> <tr> <td align="right">300</td> <td align="right">13</td> </tr> <tr> <td align="right">400</td> <td align="right">18</td> </tr> <tr> <td align="right">500</td> <td align="right">29</td> </tr> <tr> <td align="right">600</td> <td align="right">36</td> </tr> <tr> <td align="right">700</td> <td align="right">53</td> </tr> <tr> <td align="right">800</td> <td align="right">60</td> </tr> <tr> <td align="right">900</td> <td align="right">91</td> </tr> <tr> <td align="right">1,000</td> <td align="right">96</td> </tr> <tr> <td align="right">1,100</td> <td align="right">140</td> </tr> <tr> <td align="right">1,500</td> <td align="right">280</td> </tr> <tr> <td align="right">2,000</td> <td align="right">450</td> </tr> <tr> <td align="right">2,500</td> <td align="right">969</td> </tr> <tr> <td align="right">3,000</td> <td align="right">1,240</td> </tr> <tr> <td align="right">3,500</td> <td align="right">2,465</td> </tr> <tr> <td align="right">4,000</td> <td align="right">5,660</td> </tr> <tr> <td align="right">4,500</td> <td align="right">12,475</td> </tr> <tr> <td align="right">5,000</td> <td align="right">18,824</td> </tr> </tbody> </table> <h3>Examples</h3> <p>Below are examples on how to use AlphaFold in different scenarios.</p> <h4>Folding a monomer</h4> <p>Say we have a monomer with the sequence <code>&lt;SEQUENCE&gt;</code>. The input fasta should be:</p> <pre><code class="language-fasta">&gt;sequence_name &lt;SEQUENCE&gt; </code></pre> <p>Then run the following command:</p> <pre><code class="language-bash">python3 docker/run_docker.py \ --fasta_paths=monomer.fasta \ --max_template_date=2021-11-01 \ --model_preset=monomer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir </code></pre> <h4>Folding a homomer</h4> <p>Say we have a homomer with 3 copies of the same sequence <code>&lt;SEQUENCE&gt;</code>. The input fasta should be:</p> <pre><code class="language-fasta">&gt;sequence_1 &lt;SEQUENCE&gt; &gt;sequence_2 &lt;SEQUENCE&gt; &gt;sequence_3 &lt;SEQUENCE&gt; </code></pre> <p>Then run the following command:</p> <pre><code class="language-bash">python3 docker/run_docker.py \ --fasta_paths=homomer.fasta \ --max_template_date=2021-11-01 \ --model_preset=multimer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir </code></pre> <h4>Folding a heteromer</h4> <p>Say we have an A2B3 heteromer, i.e. with 2 copies of <code>&lt;SEQUENCE A&gt;</code> and 3 copies of <code>&lt;SEQUENCE B&gt;</code>. The input fasta should be:</p> <pre><code class="language-fasta">&gt;sequence_1 &lt;SEQUENCE A&gt; &gt;sequence_2 &lt;SEQUENCE A&gt; &gt;sequence_3 &lt;SEQUENCE B&gt; &gt;sequence_4 &lt;SEQUENCE B&gt; &gt;sequence_5 &lt;SEQUENCE B&gt; </code></pre> <p>Then run the following command:</p> <pre><code class="language-bash">python3 docker/run_docker.py \ --fasta_paths=heteromer.fasta \ --max_template_date=2021-11-01 \ --model_preset=multimer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir </code></pre> <h4>Folding multiple monomers one after another</h4> <p>Say we have a two monomers, <code>monomer1.fasta</code> and <code>monomer2.fasta</code>.</p> <p>We can fold both sequentially by using the following command:</p> <pre><code class="language-bash">python3 docker/run_docker.py \ --fasta_paths=monomer1.fasta,monomer2.fasta \ --max_template_date=2021-11-01 \ --model_preset=monomer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir </code></pre> <h4>Folding multiple multimers one after another</h4> <p>Say we have a two multimers, <code>multimer1.fasta</code> and <code>multimer2.fasta</code>.</p> <p>We can fold both sequentially by using the following command:</p> <pre><code class="language-bash">python3 docker/run_docker.py \ --fasta_paths=multimer1.fasta,multimer2.fasta \ --max_template_date=2021-11-01 \ --model_preset=multimer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir </code></pre> <h3>AlphaFold output</h3> <p>The outputs will be saved in a subdirectory of the directory provided via the <code>--output_dir</code> flag of <code>run_docker.py</code> (defaults to <code>/tmp/alphafold/</code>). The outputs include the computed MSAs, unrelaxed structures, relaxed structures, ranked structures, raw model outputs, prediction metadata, and section timings. The <code>--output_dir</code> directory will have the following structure:</p> <pre><code>&lt;target_name&gt;/ features.pkl ranked_{0,1,2,3,4}.pdb ranking_debug.json relax_metrics.json relaxed_model_{1,2,3,4,5}.pdb result_model_{1,2,3,4,5}.pkl timings.json unrelaxed_model_{1,2,3,4,5}.pdb msas/ bfd_uniref_hits.a3m mgnify_hits.sto uniref90_hits.sto </code></pre> <p>The contents of each output file are as follows:</p> <ul> <li> <p><code>features.pkl</code> – A <code>pickle</code> file containing the input feature NumPy arrays used by the models to produce the structures.</p> </li> <li> <p><code>unrelaxed_model_*.pdb</code> – A PDB format text file containing the predicted structure, exactly as outputted by the model.</p> </li> <li> <p><code>relaxed_model_*.pdb</code> – A PDB format text file containing the predicted structure, after performing an Amber relaxation procedure on the unrelaxed structure prediction (see Jumper et al. 2021, Suppl. Methods 1.8.6 for details).</p> </li> <li> <p><code>ranked_*.pdb</code> – A PDB format text file containing the predicted structures, after reordering by model confidence. Here <code>ranked_i.pdb</code> should contain the prediction with the (<code>i + 1</code>)-th highest confidence (so that <code>ranked_0.pdb</code> has the highest confidence). To rank model confidence, we use predicted LDDT (pLDDT) scores (see Jumper et al. 2021, Suppl. Methods 1.9.6 for details). If <code>--models_to_relax=all</code> then all ranked structures are relaxed. If <code>--models_to_relax=best</code> then only <code>ranked_0.pdb</code> is relaxed (the rest are unrelaxed). If <code>--models_to_relax=none</code>, then the ranked structures are all unrelaxed.</p> </li> <li> <p><code>ranking_debug.json</code> – A JSON format text file containing the pLDDT values used to perform the model ranking, and a mapping back to the original model names.</p> </li> <li> <p><code>relax_metrics.json</code> – A JSON format text file containing relax metrics, for instance remaining violations.</p> </li> <li> <p><code>timings.json</code> – A JSON format text file containing the times taken to run each section of the AlphaFold pipeline.</p> </li> <li> <p><code>msas/</code> - A directory containing the files describing the various genetic tool hits that were used to construct the input MSA.</p> </li> <li> <p><code>result_model_*.pkl</code> – A <code>pickle</code> file containing a nested dictionary of the various NumPy arrays directly produced by the model. In addition to the output of the structure module, this includes auxiliary outputs such as:</p> <ul> <li>Distograms (<code>distogram/logits</code> contains a NumPy array of shape [N_res, N_res, N_bins] and <code>distogram/bin_edges</code> contains the definition of the bins).</li> <li>Per-residue pLDDT scores (<code>plddt</code> contains a NumPy array of shape [N_res] with the range of possible values from <code>0</code> to <code>100</code>, where <code>100</code> means most confident). This can serve to identify sequence regions predicted with high confidence or as an overall per-target confidence score when averaged across residues.</li> <li>Present only if using pTM models: predicted TM-score (<code>ptm</code> field contains a scalar). As a predictor of a global superposition metric, this score is designed to also assess whether the model is confident in the overall domain packing.</li> <li>Present only if using pTM models: predicted pairwise aligned errors (<code>predicted_aligned_error</code> contains a NumPy array of shape [N_res, N_res] with the range of possible values from <code>0</code> to <code>max_predicted_aligned_error</code>, where <code>0</code> means most confident). This can serve for a visualisation of domain packing confidence within the structure.</li> </ul> </li> </ul> <p>The pLDDT confidence measure is stored in the B-factor field of the output PDB files (although unlike a B-factor, higher pLDDT is better, so care must be taken when using for tasks such as molecular replacement).</p> <p>This code has been tested to match mean top-1 accuracy on a CASP14 test set with pLDDT ranking over 5 model predictions (some CASP targets were run with earlier versions of AlphaFold and some had manual interventions; see our forthcoming publication for details). Some targets such as T1064 may also have high individual run variance over random seeds.</p> <h2>Inferencing many proteins</h2> <p>The provided inference script is optimized for predicting the structure of a single protein, and it will compile the neural network to be specialized to exactly the size of the sequence, MSA, and templates. For large proteins, the compile time is a negligible fraction of the runtime, but it may become more significant for small proteins or if the multi-sequence alignments are already precomputed. In the bulk inference case, it may make sense to use our <code>make_fixed_size</code> function to pad the inputs to a uniform size, thereby reducing the number of compilations required.</p> <p>We do not provide a bulk inference script, but it should be straightforward to develop on top of the <code>RunModel.predict</code> method with a parallel system for precomputing multi-sequence alignments. Alternatively, this script can be run repeatedly with only moderate overhead.</p> <h2>Note on CASP14 reproducibility</h2> <p>AlphaFold's output for a small number of proteins has high inter-run variance, and may be affected by changes in the input data. The CASP14 target T1064 is a notable example; the large number of SARS-CoV-2-related sequences recently deposited changes its MSA significantly. This variability is somewhat mitigated by the model selection process; running 5 models and taking the most confident.</p> <p>To reproduce the results of our CASP14 system as closely as possible you must use the same database versions we used in CASP. These may not match the default versions downloaded by our scripts.</p> <p>For genetics:</p> <ul> <li>UniRef90: <a href="https://ftp.uniprot.org/pub/databases/uniprot/previous_releases/release-2020_01/uniref/">v2020_01</a></li> <li>MGnify: <a href="http://ftp.ebi.ac.uk/pub/databases/metagenomics/peptide_database/2018_12/">v2018_12</a></li> <li>Uniclust30: <a href="http://wwwuser.gwdg.de/~compbiol/uniclust/2018_08/">v2018_08</a></li> <li>BFD: <a href="https://bfd.mmseqs.com/">only version available</a></li> </ul> <p>For templates:</p> <ul> <li>PDB: (downloaded 2020-05-14)</li> <li>PDB70: <a href="http://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/old-releases/pdb70_from_mmcif_200513.tar.gz">2020-05-13</a></li> </ul> <p>An alternative for templates is to use the latest PDB and PDB70, but pass the flag <code>--max_template_date=2020-05-14</code>, which restricts templates only to structures that were available at the start of CASP14.</p> <h2>Citing this work</h2> <p>If you use the code or data in this package, please cite:</p> <pre><code class="language-bibtex">@Article{AlphaFold2021, author = {Jumper, John and Evans, Richard and Pritzel, Alexander and Green, Tim and Figurnov, Michael and Ronneberger, Olaf and Tunyasuvunakool, Kathryn and Bates, Russ and {\v{Z}}{\'\i}dek, Augustin and Potapenko, Anna and Bridgland, Alex and Meyer, Clemens and Kohl, Simon A A and Ballard, Andrew J and Cowie, Andrew and Romera-Paredes, Bernardino and Nikolov, Stanislav and Jain, Rishub and Adler, Jonas and Back, Trevor and Petersen, Stig and Reiman, David and Clancy, Ellen and Zielinski, Michal and Steinegger, Martin and Pacholska, Michalina and Berghammer, Tamas and Bodenstein, Sebastian and Silver, David and Vinyals, Oriol and Senior, Andrew W and Kavukcuoglu, Koray and Kohli, Pushmeet and Hassabis, Demis}, journal = {Nature}, title = {Highly accurate protein structure prediction with {AlphaFold}}, year = {2021}, volume = {596}, number = {7873}, pages = {583--589}, doi = {10.1038/s41586-021-03819-2} } </code></pre> <p>In addition, if you use the AlphaFold-Multimer mode, please cite:</p> <pre><code class="language-bibtex">@article {AlphaFold-Multimer2021, author = {Evans, Richard and O{\textquoteright}Neill, Michael and Pritzel, Alexander and Antropova, Natasha and Senior, Andrew and Green, Tim and {\v{Z}}{\'\i}dek, Augustin and Bates, Russ and Blackwell, Sam and Yim, Jason and Ronneberger, Olaf and Bodenstein, Sebastian and Zielinski, Michal and Bridgland, Alex and Potapenko, Anna and Cowie, Andrew and Tunyasuvunakool, Kathryn and Jain, Rishub and Clancy, Ellen and Kohli, Pushmeet and Jumper, John and Hassabis, Demis}, journal = {bioRxiv}, title = {Protein complex prediction with AlphaFold-Multimer}, year = {2021}, elocation-id = {2021.10.04.463034}, doi = {10.1101/2021.10.04.463034}, URL = {https://www.biorxiv.org/content/early/2021/10/04/2021.10.04.463034}, eprint = {https://www.biorxiv.org/content/early/2021/10/04/2021.10.04.463034.full.pdf}, } </code></pre> <h2>Community contributions</h2> <p>Colab notebooks provided by the community (please note that these notebooks may vary from our full AlphaFold system and we did not validate their accuracy):</p> <ul> <li>The <a href="https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb">ColabFold AlphaFold2 notebook</a> by Martin Steinegger, Sergey Ovchinnikov and Milot Mirdita, which uses an API hosted at the Södinglab based on the MMseqs2 server <a href="https://academic.oup.com/bioinformatics/article/35/16/2856/5280135">(Mirdita et al. 2019, Bioinformatics)</a> for the multiple sequence alignment creation.</li> </ul> <h2>Acknowledgements</h2> <p>AlphaFold communicates with and/or references the following separate libraries and packages:</p> <ul> <li><a href="https://github.com/abseil/abseil-py">Abseil</a></li> <li><a href="https://biopython.org">Biopython</a></li> <li><a href="https://github.com/deepmind/chex">Chex</a></li> <li><a href="https://research.google.com/colaboratory/">Colab</a></li> <li><a href="https://www.docker.com">Docker</a></li> <li><a href="https://github.com/soedinglab/hh-suite">HH Suite</a></li> <li><a href="http://eddylab.org/software/hmmer">HMMER Suite</a></li> <li><a href="https://github.com/deepmind/dm-haiku">Haiku</a></li> <li><a href="https://github.com/corenting/immutabledict">Immutabledict</a></li> <li><a href="https://github.com/google/jax/">JAX</a></li> <li><a href="https://msa.sbc.su.se/cgi-bin/msa.cgi">Kalign</a></li> <li><a href="https://matplotlib.org/">matplotlib</a></li> <li><a href="https://github.com/google/ml_collections">ML Collections</a></li> <li><a href="https://numpy.org">NumPy</a></li> <li><a href="https://github.com/openmm/openmm">OpenMM</a></li> <li><a href="https://openstructure.org">OpenStructure</a></li> <li><a href="https://pandas.pydata.org/">pandas</a></li> <li><a href="https://github.com/avirshup/py3dmol">pymol3d</a></li> <li><a href="https://scipy.org">SciPy</a></li> <li><a href="https://github.com/deepmind/sonnet">Sonnet</a></li> <li><a href="https://github.com/tensorflow/tensorflow">TensorFlow</a></li> <li><a href="https://github.com/deepmind/tree">Tree</a></li> <li><a href="https://github.com/tqdm/tqdm">tqdm</a></li> </ul> <p>We thank all their contributors and maintainers!</p> <h2>Get in Touch</h2> <p>If you have any questions not covered in this overview, please contact the AlphaFold team at <a href="mailto:alphafold@deepmind.com">alphafold@deepmind.com</a>.</p> <p>We would love to hear your feedback and understand how AlphaFold has been useful in your research. Share your stories with us at <a href="mailto:alphafold@deepmind.com">alphafold@deepmind.com</a>.</p> <h2>License and Disclaimer</h2> <p>This is not an officially supported Google product.</p> <p>Copyright 2022 DeepMind Technologies Limited.</p> <h3>AlphaFold Code License</h3> <p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at <a href="https://www.apache.org/licenses/LICENSE-2.0">https://www.apache.org/licenses/LICENSE-2.0</a>.</p> <p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p> <h3>Model Parameters License</h3> <p>The AlphaFold parameters are made available under the terms of the Creative Commons Attribution 4.0 International (CC BY 4.0) license. You can find details at: <a href="https://creativecommons.org/licenses/by/4.0/legalcode">https://creativecommons.org/licenses/by/4.0/legalcode</a></p> <h3>Third-party software</h3> <p>Use of the third-party software, libraries or code referred to in the <a href="https://raw.githubusercontent.com/google-deepmind/alphafold/main/#acknowledgements">Acknowledgements</a> section above may be governed by separate terms and conditions or license provisions. Your use of the third-party software, libraries or code is subject to any such terms and you should check that you can comply with any applicable restrictions or terms and conditions before use.</p> <h3>Mirrored Databases</h3> <p>The following databases have been mirrored by DeepMind, and are available with reference to the following:</p> <ul> <li> <p><a href="https://bfd.mmseqs.com/">BFD</a> (unmodified), by Steinegger M. and Söding J., available under a <a href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> </li> <li> <p><a href="https://bfd.mmseqs.com/">BFD</a> (modified), by Steinegger M. and Söding J., modified by DeepMind, available under a <a href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>. See the Methods section of the <a href="https://www.nature.com/articles/s41586-021-03828-1">AlphaFold proteome paper</a> for details.</p> </li> <li> <p><a href="http://wwwuser.gwdg.de/~compbiol/uniclust/2021_03/">Uniref30: v2021_03</a> (unmodified), by Mirdita M. et al., available under a <a href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> </li> <li> <p><a href="http://ftp.ebi.ac.uk/pub/databases/metagenomics/peptide_database/2022_05/README.txt">MGnify: v2022_05</a> (unmodified), by Mitchell AL et al., available free of all copyright restrictions and made fully and freely available for both non-commercial and commercial use under <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 Universal (CC0 1.0) Public Domain Dedication</a>.</p> </li> </ul> + Dicklesworthstone/automatic_log_collector_and_analyzer + 2023-09-24T01:39:11Z + tag:github.com,2023-09-24:/Dicklesworthstone/automatic_log_collector_and_analyzer + + <p>Replace Splunk in your small company with this one weird trick!</p><hr><h1>Automatically Download and Analyze Log Files from Remote Machines</h1> <p>This application is designed to collect and analyze logs from remote machines hosted on Amazon Web Services (AWS) and other cloud hosting services.</p> <p><strong>Note</strong>: This application was specifically designed for use with Pastel Network's log files. However, it can be easily adapted to work with any log files by modifying the parsing functions, data models, and specifying the location and names of the log files to be downloaded. It is compatible with log files stored in a standard format, where each entry is on a separate line and contains a timestamp, a log level, and a message. The application has been tested with log files several gigabytes in size from dozens of machines and can process all of it in minutes. It is designed for Ubuntu 22.04+, but can be adapted for other Linux distributions.</p> <p><img src="https://raw.githubusercontent.com/Dicklesworthstone/automatic_log_collector_and_analyzer/main/demo_screenshot.png" alt="Demo Screenshot:"></p> <h2>Customization</h2> <p>To adapt this application for your own use case, refer to the included sample log files and compare them to the parsing functions in the code. You can also modify the data models to store log entries as desired.</p> <h2>Features</h2> <p>The application consists of various Python scripts that perform the following functions:</p> <ul> <li><strong>Connect to Remote Machines</strong>: Using the boto3 library for AWS instances and an Ansible inventory file for non-AWS instances, the application establishes SSH connections to each remote machine.</li> <li><strong>Download and Parse Log Files</strong>: Downloads specified log files from each remote machine and parses them. The parsed log entries are then queued for database insertion.</li> <li><strong>Insert Log Entries into Database</strong>: Uses SQLAlchemy to insert the parsed log entries from the queue into an SQLite database.</li> <li><strong>Process and Analyze Log Entries</strong>: Processes and analyzes log entries stored in the database, offering functions to find error entries and create views of aggregated data based on specified criteria.</li> <li><strong>Generate Network Activity Data</strong>: Fetches and processes network activity data from each remote machine.</li> <li><strong>Expose Database via Web App using Datasette</strong>: Once the database is generated, it can be shared over the web using Datasette.</li> </ul> <h2>Compatibility</h2> <p>The tool is compatible with both AWS-hosted instances and any list of Linux instances stored in a standard Ansible inventory file with the following structure:</p> <pre><code class="language-yaml">all: vars: ansible_connection: ssh ansible_user: ubuntu ansible_ssh_private_key_file: /path/to/ssh/key/file.pem hosts: MyCoolMachine01: ansible_host: 1.2.3.41 MyCoolMachine02: ansible_host: 1.2.3.19 </code></pre> <p>(Both can be used seamlessly.)</p> <h2>Warning</h2> <p>To simplify the code, the tool is designed to delete all downloaded log files and generated databases each time it runs. Consequently, this can consume significant bandwidth depending on your log files' size. However, the design's high level of parallel processing and concurrency allows it to run quickly, even when connecting to dozens of remote machines and downloading hundreds of log files.</p> <h2>Usage</h2> <p>Designed for Ubuntu 22.04+, first install the requirements:</p> <pre><code class="language-bash">python3 -m venv venv source venv/bin/activate python3 -m pip install --upgrade pip python3 -m pip install wheel pip install -r requirements.txt </code></pre> <p>You will also need to install Redis:</p> <pre><code class="language-bash">sudo apt install redis -y </code></pre> <p>And install Datasette to expose the results as a website:</p> <pre><code class="language-bash">sudo apt install pipx -y &amp;&amp; pipx ensurepath &amp;&amp; pipx install datasette </code></pre> <p>To run the application every 30 minutes as a cron job, execute:</p> <pre><code class="language-bash">crontab -e </code></pre> <p>And add the following line:</p> <pre><code class="language-bash">*/15 * * * * . $HOME/.profile; /home/ubuntu/automatic_log_collector_and_analyzer/venv/bin/python /home/ubuntu/automatic_log_collector_and_analyzer/automatic_log_collector_and_analyzer.py &gt;&gt; /home/ubuntu/automatic_log_collector_and_analyzer/log_$(date +\%Y-\%m-\%dT\%H_\%M_\%S).log 2&gt;&amp;1 </code></pre> - zhudotexe/kani - 2023-09-23T01:35:27Z - tag:github.com,2023-09-23:/zhudotexe/kani - - <p>kani (カニ) is a highly hackable microframework for chat-based language models with tool usage/function calling.</p><hr><p align="center"> <img width="256" height="256" alt="kani" src="https://raw.githubusercontent.com/zhudotexe/kani/main/docs/_static/kani-logo@256.png"> </p> <p align="center"> <a href="https://github.com/zhudotexe/kani/actions/workflows/pytest.yml"> <img alt="Test Package" src="https://github.com/zhudotexe/kani/actions/workflows/pytest.yml/badge.svg?sanitize=true"> </a> <a href="https://kani.readthedocs.io/en/latest/?badge=latest"> <img alt="Documentation Status" src="https://readthedocs.org/projects/kani/badge/?version=latest"> </a> <a href="https://pypi.org/project/kani/"> <img alt="PyPI" src="https://img.shields.io/pypi/v/kani"> </a> <a href="https://colab.research.google.com/github/zhudotexe/kani/blob/main/examples/colab_examples.ipynb"> <img alt="Quickstart in Colab" src="https://colab.research.google.com/assets/colab-badge.svg?sanitize=true"> </a> <a href="https://discord.gg/eTepTNDxYT"> <img alt="Discord" src="https://img.shields.io/discord/1150902904773935214?color=5865F2&amp;label=discord&amp;logo=discord&amp;logoColor=white"> </a> </p> <h1>kani (カニ)</h1> <p>kani (カニ) is a lightweight and highly hackable framework for chat-based language models with tool usage/function calling.</p> <p>Compared to other LM frameworks, kani is less opinionated and offers more fine-grained customizability over the parts of the control flow that matter, making it the perfect choice for NLP researchers, hobbyists, and developers alike.</p> <p>kani comes with support for OpenAI models and LLaMA v2 out of the box, with a model-agnostic framework to add support for many more.</p> <p><a href="http://kani.readthedocs.io/">Read the docs on ReadTheDocs!</a></p> <p><a href="https://arxiv.org/abs/2309.05542">Read our preprint on arXiv!</a></p> <h2>Features</h2> <ul> <li><strong>Lightweight and high-level</strong> - kani implements common boilerplate to interface with language models without forcing you to use opinionated prompt frameworks or complex library-specific tooling.</li> <li><strong>Model agnostic</strong> - kani provides a simple interface to implement: token counting and completion generation. Implement these two, and kani can run with any language model.</li> <li><strong>Automatic chat memory management</strong> - Allow chat sessions to flow without worrying about managing the number of tokens in the history - kani takes care of it.</li> <li><strong>Function calling with model feedback and retry</strong> - Give models access to functions in just one line of code. kani elegantly provides feedback about hallucinated parameters and errors and allows the model to retry calls.</li> <li><strong>You control the prompts</strong> - There are no hidden prompt hacks. We will never decide for you how to format your own data, unlike other popular language model libraries.</li> <li><strong>Fast to iterate and intuitive to learn</strong> - With kani, you only write Python - we handle the rest.</li> <li><strong>Asynchronous design from the start</strong> - kani can scale to run multiple chat sessions in parallel easily, without having to manage multiple processes or programs.</li> </ul> <h2>Quickstart</h2> <a href="https://colab.research.google.com/github/zhudotexe/kani/blob/main/examples/colab_examples.ipynb"> <img alt="Quickstart in Colab" src="https://colab.research.google.com/assets/colab-badge.svg?sanitize=true"> </a> <p>kani requires Python 3.10 or above.</p> <p>First, install the library. In this quickstart, we'll use the OpenAI engine, though kani is <a href="https://kani.readthedocs.io/en/latest/engines.html">model-agnostic</a>.</p> <pre><code class="language-shell">$ pip install "kani[openai]" </code></pre> <p>Then, let's use kani to create a simple chatbot using ChatGPT as a backend.</p> <pre><code class="language-python"># import the library from kani import Kani, chat_in_terminal from kani.engines.openai import OpenAIEngine # Replace this with your OpenAI API key: https://platform.openai.com/account/api-keys api_key = "sk-..." # kani uses an Engine to interact with the language model. You can specify other model # parameters here, like temperature=0.7. engine = OpenAIEngine(api_key, model="gpt-3.5-turbo") # The kani manages the chat state, prompting, and function calling. Here, we only give # it the engine to call ChatGPT, but you can specify other parameters like # system_prompt="You are..." here. ai = Kani(engine) # kani comes with a utility to interact with a kani through your terminal! Check out # the docs for how to use kani programmatically. chat_in_terminal(ai) </code></pre> <p>kani makes the time to set up a working chat model short, while offering the programmer deep customizability over every prompt, function call, and even the underlying language model.</p> <h2>Function Calling</h2> <p>Function calling gives language models the ability to choose when to call a function you provide based off its documentation.</p> <p>With kani, you can write functions in Python and expose them to the model with just one line of code: the <code>@ai_function</code> decorator.</p> <pre><code class="language-python"># import the library from typing import Annotated from kani import AIParam, Kani, ai_function, chat_in_terminal from kani.engines.openai import OpenAIEngine # set up the engine as above api_key = "sk-..." engine = OpenAIEngine(api_key, model="gpt-3.5-turbo") # subclass Kani to add AI functions class MyKani(Kani): # Adding the annotation to a method exposes it to the AI @ai_function() def get_weather( self, # and you can provide extra documentation about specific parameters location: Annotated[str, AIParam(desc="The city and state, e.g. San Francisco, CA")], ): """Get the current weather in a given location.""" # In this example, we mock the return, but you could call a real weather API return f"Weather in {location}: Sunny, 72 degrees fahrenheit." ai = MyKani(engine) chat_in_terminal(ai) </code></pre> <p>kani guarantees that function calls are valid by the time they reach your methods while allowing you to focus on writing code. For more information, check out <a href="https://kani.readthedocs.io/en/latest/function_calling.html">the function calling docs</a>.</p> <h2>Why kani?</h2> <p>Existing frameworks for language models like langchain and simpleaichat are opinionated and/or heavyweight - they edit developers' prompts under the hood, are challenging to learn, and are difficult to customize without adding a lot of high-maintenance bloat to your codebase.</p> <p align="center"> <img style="max-width: 800px;" alt="kani" src="https://raw.githubusercontent.com/zhudotexe/kani/main/docs/_static/lib-comparison_white.png"> </p> <p>We built kani to be more flexible, simple, and robust. kani is appropriate for everyone from academic researchers to industry professionals to hobbyists to use without worrying about under-the-hood hacks.</p> <h2>Docs</h2> <p>To learn more about how to <a href="https://kani.readthedocs.io/en/latest/customization.html">customize kani with your own prompt wrappers</a>, <a href="https://kani.readthedocs.io/en/latest/function_calling.html">function calling</a>, and more, <a href="http://kani.readthedocs.io/">read the docs!</a></p> <p>Or take a look at the hands-on examples <a href="https://github.com/zhudotexe/kani/tree/main/examples">in this repo</a>.</p> <h2>Demo</h2> <p>Want to see kani in action? Using 4-bit quantization to shrink the model, we run LLaMA v2 as part of our test suite right on GitHub Actions:</p> <p><a href="https://github.com/zhudotexe/kani/actions/workflows/pytest.yml?query=branch%3Amain+is%3Asuccess">https://github.com/zhudotexe/kani/actions/workflows/pytest.yml?query=branch%3Amain+is%3Asuccess</a></p> <p>Simply click on the latest build to see LLaMA's output!</p> <h2>Citation</h2> <p>If you use Kani, please cite us as:</p> <pre><code>@misc{zhu2023kani, title={Kani: A Lightweight and Highly Hackable Framework for Building Language Model Applications}, author={Andrew Zhu and Liam Dugan and Alyssa Hwang and Chris Callison-Burch}, year={2023}, eprint={2309.05542}, archivePrefix={arXiv}, primaryClass={cs.SE} } </code></pre> <!-- For developers: ## Build and Publish `fastlmi` uses Hatchling to build. Make sure to bump the version in pyproject.toml before publishing. ```shell rm -r dist/ python -m build python -m twine upload dist/* ``` --> + google-deepmind/alphamissense + 2023-09-24T01:39:11Z + tag:github.com,2023-09-24:/google-deepmind/alphamissense + + <p></p><hr><h1>AlphaMissense</h1> <p>This package provides the AlphaMissense model implementation. This implementation is provided for reference alongside the <a href="https://www.science.org/doi/10.1126/science.adg7492">AlphaMissense 2023 publication</a> and will not be actively maintained moving forward.</p> <p>We forked the <a href="https://github.com/google-deepmind/alphafold/tree/v2.3.2">AlphaFold repository</a> and modified it to implement AlphaMissense.</p> <p>What we provide:</p> <ul> <li> <p>Detailed implementation of the AlphaMissense model and training losses (<a href="https://github.com/deepmind/alphamissense/raw/main/alphamissense/model/modules_missense.py">modules_missense.py</a>)</p> </li> <li> <p>The data pipeline to create input features for inference (<a href="https://github.com/deepmind/alphamissense/raw/main/alphamissense/data/pipeline_missense.py">pipeline_missense.py</a>). The data pipeline requires access to genetic databases for multiple sequence alignments and, if using spatial cropping, protein structures of the AlphaFold Database hosted in Google Cloud Storage. Please see the section for genetic databases and <a href="https://github.com/deepmind/alphafold/tree/main/afdb">AFDB readme file</a>) to learn how to access these datasets.</p> </li> <li> <p>Pre-computed predictions for all possible human amino acid substitutions and missense variants (<a href="https://console.cloud.google.com/storage/browser/dm_alphamissense">hosted here</a>).</p> </li> </ul> <p>What we don’t provide:</p> <ul> <li>The trained AlphaMissense model weights.</li> </ul> <h2>Access AlphaMissense predictions:</h2> <p>Predictions for human major transcripts and isoforms are provided <a href="https://console.cloud.google.com/storage/browser/dm_alphamissense">here</a>. You can use these files with the VEP tool and <a href="https://www.ensembl.org/info/docs/tools/vep/script/vep_plugins.html">AlphaMissense plug-in</a>.</p> <h2>Installation</h2> <ol> <li>Install all dependencies:</li> </ol> <pre><code class="language-bash">sudo apt install python3.11-venv aria2 hmmer </code></pre> <ol start="2"> <li>Clone this repository and <code>cd</code> into it.</li> </ol> <pre><code class="language-bash">git clone https://github.com/deepmind/alphamissense.git cd ./alphamissense </code></pre> <ol start="3"> <li>Set up a Python virtual environment and install the Python dependencies:</li> </ol> <pre><code class="language-bash">python3 -m venv ./venv venv/bin/pip install -r requirements.txt venv/bin/pip install -e . </code></pre> <ol start="4"> <li>Test the installation</li> </ol> <pre><code class="language-bash">venv/bin/python test/test_installation.py </code></pre> <h2>Usage</h2> <p>Because we are not releasing the trained model weights, the code is not meant to be used for making new predictions, but serve as an implementation reference. We are releasing the data pipeline, model and loss function code.</p> <p>The data pipeline requires a FASTA file (i.e. <code>protein_sequence_file</code>) which should contain all target sequences, and the genetic sequence databases outlined in the next section.</p> <pre><code class="language-python">from alphamissense.data import pipeline_missense protein_sequence_file = ... pipeline = pipeline_missense.DataPipeline( jackhmmer_binary_path=..., # Typically '/usr/bin/jackhmmer'. protein_sequence_file=protein_sequence_file, uniref90_database_path=DATABASES_DIR + '/uniref90/uniref90.fasta', mgnify_database_path=DATABASES_DIR + '/mgnify/mgy_clusters_2022_05.fa', small_bfd_database_path=DATABASES_DIR + '/small_bfd/bfd-first_non_consensus_sequences.fasta', ) sample = pipeline.process( protein_id=..., # Sequence identifier in the FASTA file. reference_aa=..., # Single capital letter, e.g. 'A'. alternate_aa=..., position=..., # Integer, note that the position is 1-based! msa_output_dir=msa_output_dir, ) </code></pre> <p>The model is implemented as a JAX module and can be instantiated for example as:</p> <pre><code class="language-python">from alphamissense.model import config from alphamissense.model import modules_missense def _forward_fn(batch): model = modules_missense.AlphaMissense(config.model_config().model) return model(batch, is_training=False, return_representations=False) random_seed = 0 prng = jax.random.PRNGKey(random_seed) params = hk.transform(_forward_fn).init(prng, sample) apply = jax.jit(hk.transform(_forward_fn).apply) output = apply(params, prng, sample) </code></pre> <p>For example, at this point the score of the variant would be stored in <code>output['logit_diff']['variant_pathogenicity']</code>.</p> <h2>Genetic databases</h2> <p>AlphaMissense used multiple genetic (sequence) databases for multiple sequence alignments:</p> <ul> <li><a href="https://bfd.mmseqs.com/">BFD</a>,</li> <li><a href="https://www.ebi.ac.uk/metagenomics/">MGnify</a>,</li> <li><a href="https://www.uniprot.org/help/uniref">UniRef90</a>.</li> </ul> <p>We refer to the <a href="https://github.com/deepmind/alphafold">AlphaFold repository</a> for instructions on how to download these databases.</p> <h2>Citing this work</h2> <p>Any publication that discloses findings arising from using this source code should cite:</p> <pre><code class="language-bibtex">@article {AlphaMissense2023, author = {Jun Cheng, Guido Novati, Joshua Pan, Clare Bycroft, Akvilė Žemgulytė, Taylor Applebaum, Alexander Pritzel, Lai Hong Wong, Michal Zielinski, Tobias Sargeant, Rosalia G. Schneider, Andrew W. Senior, John Jumper, Demis Hassabis, Pushmeet Kohli, Žiga Avsec}, journal = {Science}, title = {Accurate proteome-wide missense variant effect prediction with AlphaMissense}, year = {2023}, doi = {10.1126/science.adg7492}, URL = {https://www.science.org/doi/10.1126/science.adg7492}, } </code></pre> <h2>Acknowledgements</h2> <p>AlphaMissense communicates with and/or references the following separate libraries and packages:</p> <ul> <li>Abseil</li> <li>Biopython</li> <li>HMMER Suite</li> <li>Haiku</li> <li>Immutabledict</li> <li>JAX</li> <li>Matplotlib</li> <li>NumPy</li> <li>Pandas</li> <li>SciPy</li> <li>Tree</li> <li>Zstandard We thank all their contributors and maintainers!</li> </ul> <h2>License and Disclaimer</h2> <p>This is not an officially supported Google product.</p> <p>The information within the AlphaMissense Database and the model implementation is provided for theoretical modelling only, caution should be exercised in its use. This information is not intended to be a substitute for professional medical advice, diagnosis, or treatment, and does not constitute medical or other professional advice.</p> <p>Copyright 2023 DeepMind Technologies Limited.</p> <h3>AlphaMissense Code License</h3> <p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at <a href="https://www.apache.org/licenses/LICENSE-2.0">https://www.apache.org/licenses/LICENSE-2.0</a>.</p> <p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p> <h3>AlphaMissense predictions License</h3> <p>AlphaMissense predictions are made available under the terms of the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license. You can find details at: <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">https://creativecommons.org/licenses/by-nc-sa/4.0/</a></p> <h3>Third-party software</h3> <p>Use of the third-party software, libraries or code referred to in the <a href="https://raw.githubusercontent.com/google-deepmind/alphamissense/main/#acknowledgements">Acknowledgements</a> section above may be governed by separate terms and conditions or license provisions. Your use of the third-party software, libraries or code is subject to any such terms and you should check that you can comply with any applicable restrictions or terms and conditions before use.</p> \ No newline at end of file diff --git a/python/weekly/index.xml b/python/weekly/index.xml new file mode 100644 index 00000000000..d6ae3b37900 --- /dev/null +++ b/python/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Python Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:58:55Z + Weekly Trending of Python in GitHub + + + aiwaves-cn/agents + 2023-09-24T01:58:55Z + tag:github.com,2023-09-24:/aiwaves-cn/agents + + <p>An Open-source Framework for Autonomous Language Agents</p><hr><h1><p align="center"><img src="https://raw.githubusercontent.com/aiwaves-cn/agents/master/assets/agents-logo.png" width="300"> </p></h1> <h2><p align="center" style="display:inline-block;"><font face="Calisto MT"><font size="4">An Open-source Framework for Autonomous Language Agents</font></font></p></h2> <p align="center"><a href="https://arxiv.org/pdf/2309.07870.pdf">[📄 Paper]</a> <a href="http://www.aiwaves-agents.com/">[🌐 Website]</a> <a href="https://raw.githubusercontent.com/aiwaves-cn/agents/master/#web-demos">[🤖️ Demos]</a> <a href="https://discord.gg/DDPBeFt7">[🔥 Discord]</a> <a href="https://raw.githubusercontent.com/aiwaves-cn/agents/master/assets/wechat.jpg">[🔥 Wechat Group] </a> </p> <p></p> <hr> <h2>Overview</h2> <p><strong>Agents</strong> is an open-source library/framework for building autonomous language agents. The library is carefully engineered to support important features including <strong>long-short term memory</strong>, <strong>tool usage</strong>, <strong>web navigation</strong>, <strong>multi-agent communication</strong>, and brand new features including <strong>human-agent interaction</strong> and <strong>symbolic control</strong>. With <strong>Agents</strong>, one can customize a language agent or a multi-agent system by simply filling in a config file in natural language and deploy the language agents in a terminal, a Gradio interface, or a backend service.</p> <p>One major difference between <strong>Agents</strong> and other existing frameworks for language agents is that our framework allows users to provide fine-grained control and guidance to language agents via an <strong>SOP (Standard Operation Process)</strong>. An SOP defines subgoals/subtasks for the overall task and allows users to customize a fine-grained workflow for the language agents.</p> <p align="center"><img src="https://raw.githubusercontent.com/aiwaves-cn/agents/master/assets/agents-cover.png" width="800"></p> <h2>📢 Updates</h2> <ul> <li><input type="checkbox" disabled> Support LLM-based SOP generation</li> <li><input type="checkbox" checked disabled> 2023.9.20 Deploy Demos on Huggingface Space</li> <li><input type="checkbox" checked disabled> 2023.9.12 Official Release</li> </ul> <h2>💡 Highlights</h2> <ul> <li><strong>Long-short Term Memory</strong>: Language agents in the library are equipped with both long-term memory implemented via VectorDB + Semantic Search and short-term memory (working memory) maintained and updated by an LLM.</li> <li><strong>Tool Usage</strong>: Language agents in the library can use any external tools via <a href="https://platform.openai.com/docs/guides/gpt/function-calling">function-calling</a> and developers can add customized tools/APIs <a href="https://github.com/aiwaves-cn/agents/raw/master/src/agents/Component/ToolComponent.py">here</a>.</li> <li><strong>Web Navigation</strong>: Language agents in the library can use search engines to navigate the web and get useful information.</li> <li><strong>Multi-agent Communication</strong>: In addition to single language agents, the library supports building multi-agent systems in which language agents can communicate with other language agents and the environment. Different from most existing frameworks for multi-agent systems that use pre-defined rules to control the order for agents' action, <strong>Agents</strong> includes a <em>controller</em> function that dynamically decides which agent will perform the next action using an LLM by considering the previous actions, the environment, and the target of the current states. This makes multi-agent communication more flexible.</li> <li><strong>Human-Agent interaction</strong>: In addition to letting language agents communicate with each other in an environment, our framework seamlessly supports human users to play the role of the agent by himself/herself and input his/her own actions, and interact with other language agents in the environment.</li> <li><strong>Symbolic Control</strong>: Different from existing frameworks for language agents that only use a simple task description to control the entire multi-agent system over the whole task completion process, <strong>Agents</strong> allows users to use an <strong>SOP (Standard Operation Process)</strong> that defines subgoals/subtasks for the overall task to customize fine-grained workflows for the language agents.</li> </ul> <h2>🛠 Installation</h2> <h4>Option 1. Build from source</h4> <pre><code>git clone https://github.com/aiwaves-cn/agents.git cd agents pip install -e . </code></pre> <h4>Option 2. Install via PyPI</h4> <pre><code>pip install ai-agents </code></pre> <h2>📦 Usage</h2> <h3>🛠️ Generate the config file</h3> <h4>Option 1. Fill in the config template manually</h4> <p>Modify <code>example/{Muti|Single_Agent}/{target_agent}/config.json</code></p> <h4>Option 2. Try our <a href="http://www.aiwaves.cn/create-agent/">WebUI</a> for customizing the config file.</h4> <p>Haven't figured out how to write the JSON file yet? Check out our <a href="https://agents-readthedocsio.readthedocs.io/en/latest/index.html">documentation</a>!</p> <h3>🤖️ The Agent Hub</h3> <p>We provide an <strong>AgentHub</strong>, where you can search for interesting Agents shared by us or other developers, try them out or use them as the starting point to customize your own agent. We encourage you to share your customized agents to help others build their own agents more easily! You can share your customized agents by submitting PRs that adds configs and customized codes <a href="https://github.com/aiwaves-cn/agents/tree/master/examples/Community_Agent">here</a>. You can also send us your own config files and codes for customized agents by <a href="mailto:contact@aiwaves.cn">email</a>, and we will share your examples and acknowledge your contribution in future updates!</p> <p><em>A WebUI for automatically uploading of your customized agents will be available soon!</em></p> <h2>📷 Examples and Demos</h2> <p>We have provided exemplar config files, code, and demos for both single-agent and multi-agent systems <a href="https://github.com/aiwaves-cn/agents/tree/master/examples">here</a>.</p> <h3>Web demos</h3> <h4>Note</h4> <p>1.Due to massive traffic, our online demos may suffer from long queue time and unstable issues. <strong>Please follow our <a href="https://github.com/aiwaves-cn/agents/raw/master/examples/README.md">quick start guide</a>) and deploy language agents locally for testing. Or checkout our <a href="http://www.aiwaves-agents.com/">website</a></strong>. 2.Software Company is unable to generate executable code online, <strong>if you wish to generate executable code directly, please run it locally :)</strong></p> <ul> <li><a href="https://www.aiwaves.cn/customer-service-agent/">Customer Service Agent</a></li> <li><a href="https://huggingface.co/spaces/AIWaves/Debate">Debate</a>[now on Huggingface Space]</li> <li><a href="https://huggingface.co/spaces/AIWaves/Software_Company">Software Company</a>[now on Huggingface Space]</li> <li><a href="https://www.aiwaves.cn/fiction-studio/">Fiction Studio</a></li> </ul> <h2>Contributing to Agents</h2> <p>We appreciate your interest in contributing to our open-source initiative. Please feel free to submit a PR or share your thoughts on how to improve the library in Issues!</p> <h2>Note:</h2> <ol> <li>When running the code, we will download an embedding model, which will cause the code to run slowly. We will adjust it to the API interface later</li> <li>Currently, the shopping assistant cannot be used. We will replace the API later. Stay tuned</li> </ol> <h2>📚 Documentation</h2> <p>Please check our <a href="https://agents-readthedocsio.readthedocs.io/en/latest/index.html">documentation</a> for detailed documentation of the framework.</p> <h2>⭐ Star History</h2> <p><a href="https://star-history.com/#aiwaves-cn/agents&amp;Date"><img src="https://api.star-history.com/svg?repos=aiwaves-cn/agents&amp;type=Date" alt="Star History Chart"></a></p> <h2>Citation</h2> <p>If you find our repo useful in your research, please kindly consider cite:</p> <pre><code class="language-angular2">@misc{zhou2023agents, title={Agents: An Open-source Framework for Autonomous Language Agents}, author={Wangchunshu Zhou and Yuchen Eleanor Jiang and Long Li and Jialong Wu and Tiannan Wang and Shi Qiu and Jintian Zhang and Jing Chen and Ruipu Wu and Shuai Wang and Shiding Zhu and Jiyu Chen and Wentao Zhang and Ningyu Zhang and Huajun Chen and Peng Cui and Mrinmaya Sachan}, year={2023}, eprint={2309.07870}, archivePrefix={arXiv}, primaryClass={cs.CL} } </code></pre> + + + CorentinJ/Real-Time-Voice-Cloning + 2023-09-24T01:58:55Z + tag:github.com,2023-09-24:/CorentinJ/Real-Time-Voice-Cloning + + <p>Clone a voice in 5 seconds to generate arbitrary speech in real-time</p><hr><h1>Real-Time Voice Cloning</h1> <p>This repository is an implementation of <a href="https://arxiv.org/pdf/1806.04558.pdf">Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis</a> (SV2TTS) with a vocoder that works in real-time. This was my <a href="https://matheo.uliege.be/handle/2268.2/6801">master's thesis</a>.</p> <p>SV2TTS is a deep learning framework in three stages. In the first stage, one creates a digital representation of a voice from a few seconds of audio. In the second and third stages, this representation is used as reference to generate speech given arbitrary text.</p> <p><strong>Video demonstration</strong> (click the picture):</p> <p><a href="https://www.youtube.com/watch?v=-O_hYhToKoA"><img src="https://i.imgur.com/8lFUlgz.png" alt="Toolbox demo"></a></p> <h3>Papers implemented</h3> <table> <thead> <tr> <th>URL</th> <th>Designation</th> <th>Title</th> <th>Implementation source</th> </tr> </thead> <tbody> <tr> <td><a href="https://arxiv.org/pdf/1806.04558.pdf"><strong>1806.04558</strong></a></td> <td><strong>SV2TTS</strong></td> <td><strong>Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis</strong></td> <td>This repo</td> </tr> <tr> <td><a href="https://arxiv.org/pdf/1802.08435.pdf">1802.08435</a></td> <td>WaveRNN (vocoder)</td> <td>Efficient Neural Audio Synthesis</td> <td><a href="https://github.com/fatchord/WaveRNN">fatchord/WaveRNN</a></td> </tr> <tr> <td><a href="https://arxiv.org/pdf/1703.10135.pdf">1703.10135</a></td> <td>Tacotron (synthesizer)</td> <td>Tacotron: Towards End-to-End Speech Synthesis</td> <td><a href="https://github.com/fatchord/WaveRNN">fatchord/WaveRNN</a></td> </tr> <tr> <td><a href="https://arxiv.org/pdf/1710.10467.pdf">1710.10467</a></td> <td>GE2E (encoder)</td> <td>Generalized End-To-End Loss for Speaker Verification</td> <td>This repo</td> </tr> </tbody> </table> <h2>Heads up</h2> <p>Like everything else in Deep Learning, this repo is quickly getting old. Many other open-source repositories or SaaS apps (often paying) will give you a better audio quality than this repository will. If you care about the fidelity of the voice you're cloning, and its expressivity, here are some personal recommendations of alternative voice cloning solutions:</p> <ul> <li>Check out <a href="https://github.com/coqui-ai/tts">CoquiTTS</a> for an open source repository that is more up-to-date, with a better voice cloning quality and more functionalities.</li> <li>Check out <a href="https://paperswithcode.com/task/speech-synthesis/">paperswithcode</a> for other repositories and recent research in the field of speech synthesis.</li> <li>Check out <a href="https://www.resemble.ai/">Resemble.ai</a> (disclaimer: I work there) for state of the art voice cloning with little hassle.</li> </ul> <h2>Setup</h2> <h3>1. Install Requirements</h3> <ol> <li>Both Windows and Linux are supported. A GPU is recommended for training and for inference speed, but is not mandatory.</li> <li>Python 3.7 is recommended. Python 3.5 or greater should work, but you'll probably have to tweak the dependencies' versions. I recommend setting up a virtual environment using <code>venv</code>, but this is optional.</li> <li>Install <a href="https://ffmpeg.org/download.html#get-packages">ffmpeg</a>. This is necessary for reading audio files.</li> <li>Install <a href="https://pytorch.org/get-started/locally/">PyTorch</a>. Pick the latest stable version, your operating system, your package manager (pip by default) and finally pick any of the proposed CUDA versions if you have a GPU, otherwise pick CPU. Run the given command.</li> <li>Install the remaining requirements with <code>pip install -r requirements.txt</code></li> </ol> <h3>2. (Optional) Download Pretrained Models</h3> <p>Pretrained models are now downloaded automatically. If this doesn't work for you, you can manually download them <a href="https://github.com/CorentinJ/Real-Time-Voice-Cloning/wiki/Pretrained-models">here</a>.</p> <h3>3. (Optional) Test Configuration</h3> <p>Before you download any dataset, you can begin by testing your configuration with:</p> <p><code>python demo_cli.py</code></p> <p>If all tests pass, you're good to go.</p> <h3>4. (Optional) Download Datasets</h3> <p>For playing with the toolbox alone, I only recommend downloading <a href="https://www.openslr.org/resources/12/train-clean-100.tar.gz"><code>LibriSpeech/train-clean-100</code></a>. Extract the contents as <code>&lt;datasets_root&gt;/LibriSpeech/train-clean-100</code> where <code>&lt;datasets_root&gt;</code> is a directory of your choosing. Other datasets are supported in the toolbox, see <a href="https://github.com/CorentinJ/Real-Time-Voice-Cloning/wiki/Training#datasets">here</a>. You're free not to download any dataset, but then you will need your own data as audio files or you will have to record it with the toolbox.</p> <h3>5. Launch the Toolbox</h3> <p>You can then try the toolbox:</p> <p><code>python demo_toolbox.py -d &lt;datasets_root&gt;</code><br> or<br> <code>python demo_toolbox.py</code></p> <p>depending on whether you downloaded any datasets. If you are running an X-server or if you have the error <code>Aborted (core dumped)</code>, see <a href="https://github.com/CorentinJ/Real-Time-Voice-Cloning/issues/11#issuecomment-504733590">this issue</a>.</p> + + + pjialin/py12306 + 2023-09-24T01:58:55Z + tag:github.com,2023-09-24:/pjialin/py12306 + + <p>🚂 12306 购票助手,支持集群,多账号,多任务购票以及 Web 页面管理</p><hr><h1>🚂 py12306 购票助手</h1> <p>分布式,多账号,多任务购票</p> <h2>Features</h2> <ul> <li><input type="checkbox" checked disabled> 多日期查询余票</li> <li><input type="checkbox" checked disabled> 自动打码下单</li> <li><input type="checkbox" checked disabled> 用户状态恢复</li> <li><input type="checkbox" checked disabled> 电话语音通知</li> <li><input type="checkbox" checked disabled> 多账号、多任务、多线程支持</li> <li><input type="checkbox" checked disabled> 单个任务多站点查询</li> <li><input type="checkbox" checked disabled> 分布式运行</li> <li><input type="checkbox" checked disabled> Docker 支持</li> <li><input type="checkbox" checked disabled> 动态修改配置文件</li> <li><input type="checkbox" checked disabled> 邮件通知</li> <li><input type="checkbox" checked disabled> Web 管理页面</li> <li><input type="checkbox" checked disabled> 微信消息通知</li> <li><input type="checkbox" disabled> 代理池支持 (<a href="https://github.com/pjialin/pyproxy-async">pyproxy-async</a>)</li> </ul> <h2>使用</h2> <p>py12306 需要运行在 python 3.6 以上版本(其它版本暂未测试)</p> <p><strong>1. 安装依赖</strong></p> <pre><code class="language-bash">git clone https://github.com/pjialin/py12306 pip install -r requirements.txt </code></pre> <p><strong>2. 配置程序</strong></p> <pre><code class="language-bash">cp env.py.example env.py </code></pre> <p>自动打码</p> <p>(若快已停止服务,目前只能设置<strong>free</strong>打码模式) free 已对接到打码共享平台,<a href="https://py12306-helper.pjialin.com/">https://py12306-helper.pjialin.com</a>,欢迎参与分享</p> <p>语音通知</p> <p>语音验证码使用的是阿里云 API 市场上的一个服务商,需要到 <a href="https://market.aliyun.com/products/56928004/cmapi026600.html">https://market.aliyun.com/products/56928004/cmapi026600.html</a> 购买后将 appcode 填写到配置中</p> <p><strong>3. 启动前测试</strong></p> <p>目前提供了一些简单的测试,包括用户账号检测,乘客信息检测,车站检测等</p> <p>开始测试 -t</p> <pre><code class="language-bash">python main.py -t </code></pre> <p>测试通知消息 (语音, 邮件) -t -n</p> <pre><code class="language-bash"># 默认不会进行通知测试,要对通知进行测试需要加上 -n 参数 python main.py -t -n </code></pre> <p><strong>4. 运行程序</strong></p> <pre><code class="language-bash">python main.py </code></pre> <h3>参数列表</h3> <ul> <li>-t 测试配置信息</li> <li>-t -n 测试配置信息以及通知消息</li> <li>-c 指定自定义配置文件位置</li> </ul> <h3>分布式集群</h3> <p>集群依赖于 redis,目前支持情况</p> <ul> <li>单台主节点多个子节点同时运行</li> <li>主节点宕机后自动切换提升子节点为主节点</li> <li>主节点恢复后自动恢复为真实主节点</li> <li>配置通过主节点同步到所有子节点</li> <li>主节点配置修改后无需重启子节点,支持自动更新</li> <li>子节点消息实时同步到主节点</li> </ul> <p><strong>使用</strong></p> <p>将配置文件的中 <code>CLUSTER_ENABLED</code> 打开即开启分布式</p> <p>目前提供了一个单独的子节点配置文件 <code>env.slave.py.example</code> 将文件修改为 <code>env.slave.py</code>, 通过 <code>python main.py -c env.slave.py</code> 即可快速启动</p> <h2>Docker 使用</h2> <p><strong>1. 将配置文件下载到本地</strong></p> <pre><code class="language-bash">docker run --rm pjialin/py12306 cat /config/env.py &gt; env.py # 或 curl https://raw.githubusercontent.com/pjialin/py12306/master/env.docker.py.example -o env.py </code></pre> <p><strong>2. 修改好配置后运行</strong></p> <pre><code class="language-bash">docker run --rm --name py12306 -p 8008:8008 -d -v $(pwd):/config -v py12306:/data pjialin/py12306 </code></pre> <p>当前目录会多一个 12306.log 的日志文件, <code>tail -f 12306.log</code></p> <h3>Docker-compose 中使用</h3> <p><strong>1. 复制配置文件</strong></p> <pre><code>cp docker-compose.yml.example docker-compose.yml </code></pre> <p><strong>2. 从 docker-compose 运行</strong></p> <p>在<code>docker-compose.yml</code>所在的目录使用命令</p> <pre><code>docker-compose up -d </code></pre> <h2>Web 管理页面</h2> <p>目前支持用户和任务以及实时日志查看,更多功能后续会不断加入</p> <p><strong>使用</strong></p> <p>打开 Web 功能需要将配置中的 <code>WEB_ENABLE</code> 打开,启动程序后访问当前主机地址 + 端口号 (默认 8008) 即可,如 <a href="http://127.0.0.1:8008">http://127.0.0.1:8008</a></p> <h2>更新</h2> <ul> <li>19-01-10 <ul> <li>支持分布式集群</li> </ul> </li> <li>19-01-11 <ul> <li>配置文件支持动态修改</li> </ul> </li> <li>19-01-12 <ul> <li>新增免费打码</li> </ul> </li> <li>19-01-14 <ul> <li>新增 Web 页面支持</li> </ul> </li> <li>19-01-15 <ul> <li>新增 钉钉通知</li> <li>新增 Telegram 通知</li> <li>新增 ServerChan 和 PushBear 微信推送</li> </ul> </li> <li>19-01-18 <ul> <li>新增 CDN 查询</li> </ul> </li> </ul> <h2>截图</h2> <h3>Web 管理页面</h3> <p><img src="https://github.com/pjialin/py12306/raw/master/data/images/web.png" alt="Web 管理页面图片"></p> <h3>下单成功</h3> <p><img src="https://github.com/pjialin/py12306/raw/master/data/images/order_success.png" alt="下单成功图片"></p> <h3>关于防封</h3> <p>目前查询和登录操作是分开的,查询是不依赖用户是否登录,放在 A 云 T 云容易被限制 ip,建议在其它网络环境下运行</p> <p>QQ 交流群 <a href="https://jq.qq.com/?_wv=1027&amp;k=5PgzDwV">780289875</a>,TG 群 <a href="https://t.me/joinchat/F3sSegrF3x8KAmsd1mTu7w">Py12306 交流</a></p> <h3>Online IDE</h3> <p><a href="https://gitpod.io#https://github.com/pjialin/py12306"><img src="https://gitpod.io/button/open-in-gitpod.svg?sanitize=true" alt="在 Gitpod 中打开"></a></p> <h2>Thanks</h2> <ul> <li>感谢大佬 <a href="https://github.com/testerSunshine/12306">testerSunshine</a>,借鉴了部分实现</li> <li>感谢所有提供 pr 的大佬</li> <li>感谢大佬 <a href="https://github.com/zhaipro/easy12306">zhaipro</a> 的验证码本地识别模型与算法</li> </ul> <h2>License</h2> <p><a href="https://github.com/pjialin/py12306/raw/master/LICENSE">Apache License.</a></p> + + \ No newline at end of file diff --git a/q%23/daily/index.xml b/q%23/daily/index.xml index 367e1413ac6..07bcdb33f17 100644 --- a/q%23/daily/index.xml +++ b/q%23/daily/index.xml @@ -1,7 +1,7 @@ GitHub Q# Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:50Z + 2023-09-24T01:39:36Z Daily Trending of Q# in GitHub \ No newline at end of file diff --git a/q%23/weekly/index.xml b/q%23/weekly/index.xml new file mode 100644 index 00000000000..84cdbd8922a --- /dev/null +++ b/q%23/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Q# Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:15Z + Weekly Trending of Q# in GitHub + + \ No newline at end of file diff --git a/q/daily/index.xml b/q/daily/index.xml index 4740bf79dc3..5fc45da3012 100644 --- a/q/daily/index.xml +++ b/q/daily/index.xml @@ -1,7 +1,7 @@ GitHub q Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:53Z + 2023-09-24T01:39:35Z Daily Trending of q in GitHub \ No newline at end of file diff --git a/q/weekly/index.xml b/q/weekly/index.xml new file mode 100644 index 00000000000..3733b9000e2 --- /dev/null +++ b/q/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub q Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:15Z + Weekly Trending of q in GitHub + + \ No newline at end of file diff --git a/qmake/daily/index.xml b/qmake/daily/index.xml index 0ce92ea82ac..e76cc1e535f 100644 --- a/qmake/daily/index.xml +++ b/qmake/daily/index.xml @@ -1,7 +1,7 @@ GitHub QMake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:52Z + 2023-09-24T01:39:37Z Daily Trending of QMake in GitHub \ No newline at end of file diff --git a/qmake/weekly/index.xml b/qmake/weekly/index.xml new file mode 100644 index 00000000000..85e39301f6f --- /dev/null +++ b/qmake/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub QMake Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:16Z + Weekly Trending of QMake in GitHub + + \ No newline at end of file diff --git a/qml/daily/index.xml b/qml/daily/index.xml index 0c015478389..91102a1190b 100644 --- a/qml/daily/index.xml +++ b/qml/daily/index.xml @@ -1,7 +1,7 @@ GitHub QML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:54Z + 2023-09-24T01:39:40Z Daily Trending of QML in GitHub \ No newline at end of file diff --git a/qml/weekly/index.xml b/qml/weekly/index.xml new file mode 100644 index 00000000000..7cd7fa31c27 --- /dev/null +++ b/qml/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub QML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:20Z + Weekly Trending of QML in GitHub + + + Deltares/Ribasim-NL + 2023-09-24T01:59:20Z + tag:github.com,2023-09-24:/Deltares/Ribasim-NL + + <p>Ribasim water resources modeling in the Netherlands</p><hr> + + \ No newline at end of file diff --git a/qt-script/daily/index.xml b/qt-script/daily/index.xml index 167f433fba1..624842d9409 100644 --- a/qt-script/daily/index.xml +++ b/qt-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Qt Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:56Z + 2023-09-24T01:39:38Z Daily Trending of Qt Script in GitHub \ No newline at end of file diff --git a/qt-script/weekly/index.xml b/qt-script/weekly/index.xml new file mode 100644 index 00000000000..b49911dc610 --- /dev/null +++ b/qt-script/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Qt Script Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:19Z + Weekly Trending of Qt Script in GitHub + + \ No newline at end of file diff --git a/quake/daily/index.xml b/quake/daily/index.xml index 82c5a0e2f9d..b89f4e35c09 100644 --- a/quake/daily/index.xml +++ b/quake/daily/index.xml @@ -1,7 +1,7 @@ GitHub Quake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:55Z + 2023-09-24T01:39:39Z Daily Trending of Quake in GitHub \ No newline at end of file diff --git a/quake/weekly/index.xml b/quake/weekly/index.xml new file mode 100644 index 00000000000..4ad90a2e689 --- /dev/null +++ b/quake/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Quake Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:18Z + Weekly Trending of Quake in GitHub + + \ No newline at end of file diff --git a/r/daily/index.xml b/r/daily/index.xml index 2ccc94de323..2e3fa2ac64b 100644 --- a/r/daily/index.xml +++ b/r/daily/index.xml @@ -1,7 +1,21 @@ GitHub R Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:35:59Z + 2023-09-24T01:39:43Z Daily Trending of R in GitHub + + RamiKrispin/shinylive-r + 2023-09-24T01:39:43Z + tag:github.com,2023-09-24:/RamiKrispin/shinylive-r + + <p>A guide for deploying Shinylive R application into Github Pages</p><hr><h1>Deploy Shinylive R App on Github Pages</h1> <p>WIP...</p> <p>App rendered on the browser with Shinylive editor with <a href="https://shinylive.io/r/editor/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAYgAIAxIgJzgKgGdSBLCAc1oDKUCABMARkQAetALRyZAHQh0AKgAsu7WptrDacSbFQAbOLQBmzXYI0QAnsa4A3M1l3olqtWbSpaqJiInLhE4LSgLZlYObj5admFxKUimWlJvWgBBLiYABQ52Cl44Ji0RKFIOOFJPWgBJUniAV3RmUi0AZnjK9pTozh5+GCJQ4y0ZWgAZHjgoVKw4XhZ2di4SXCysOoBZTI3E2gAJImNSGQB1HnJSpSVHMSY5uwAKdls7AEolcsrn7LyCkUSuwvhBagBVOqyeRKJpcWgAHgm5mMcJE+WKz1uEFotDomXQaS4pFM0LkSlx3BJcHyEDgxixYEYLDYAziQlEEkkCjAH1wFPiITgYjmkygdiITVIWLBONxgtCIoBdIZAHcQulaABeWgdfly+XywqmAikOoQVBS548S1mkTa2g84ajHn6w3uj3u4xQMT0h08gT01iNbYjemugWeqPyghqIhcAhhB0ERnTOlzWgLJZhVYkV2OsCZLa7fM846nC5XYE8vmR6NR43BuD2nU8tOzeaLZa5sG8t2eujtjNZ7trHHOv1zXhNeBkdh1w3EUTEsdQYy0+nPJciFckf1gG1SjAT4zanUAciHnezKzH54jBvrT9osdYAGsuQBxQItc2260WlKdQtgWxgwAA+lO854I6j7PtG3q+qerZgIGJqNCOOZjgwsykE0yyIKWcHwZ6sbxomWg6o4nCMioLCiDyDoAIwbAuJHsR6AazOwJBrsSdiMTqABMtbERxRpBqazbMR8olRvixaZLQJ66Ew06zu0bG4tuu7QOuwibjp3B7ihh6kMeYbIReRY7Jk954Fp4numoACsjIAPJMKEqT5I88DXNBclOU+7CON5f5WmZwH7qgD7BfF8qIX6KGoIRDliQlJEwDwDoAAz9plTkwFA0g6i5BWFRxThrk0Zg6rlQWVbioVCkwEXSlFIE8iIcVNRxSXIQWIhpRVfXPtlOL1aNY31sVpW0OVjkzR61WonVtANdNmUteFgEdXt0UoQAjr1y1PgN+5HSNS1nfKE15Vtt2GnNDqLRlT24qttV5Y1TWuYygYcLxp6+bA1TAmlv2VTtJTtQBtqHQWuSnR9HoXShuTXe9H33VNN1PS9ZWPajX3rZt+PiTDbV7fDQFdWAAAiKOo4a6MFgzWMs56uMbcTOMla9fNPaTP1C5TYWwzTnX7gAiszXO0GzPIy5zCvPTlePYwTAtExTZ0i-VoJRlD8p0OWjSXGQwLKZZqnqRQmkZUZq76SqW4kDuxmTQWZkWaMZ60Oe5uVlbpT2WL8GvgQH5SN+kqoHD0soWoqqQWp0GsVrJFK6hkmNMHlsBbQoP+RDRFNWRCZJlRmjSjyABC1RQIJtBCZnau4jyn6wMVLcdCbwWNlJIEpixrcbP3A+D3nicHfTKfgYUQN6fLT052hwaCNxwO0CodioHAqtc5XFHJoymQiJ7zhwKWYDbE0pxcCYCYVNfNYR01Q-kPTF9Xy4NZT0clHGOkhZ4I3psYIgvBy7BRzpMKBu9HgQHYJYJgxUvar3ggbBgmRJgCAAKImypmAum+41CYPrDnZk-RYj8GOEwLgAAvEgR92I8xYnrd0hNaAADZ8qcMNNgoSAAWI27E6C4igKaMc9cpSkBILTO0+4Wg-BvulDiEj2I53BKgVRABCGs2JDSiTrHQbYUAcqoAMqeVBtAdzsBMOKQYtBJSkFtOMGEj5io8A3GqDUagHQAE5pp0GoayRouRIGNHkIoOCJgiCkHclKf8rjwH7nMAQcC8SajqPYt4LgvA1CNBQsI3KuVUDcl5EY+UYjQSglqAzOA5gZjxBKC4VIkDeAJloCwI6cIWD2nkXYx4qprAaE4FAvyZJYmFCYO0xEyImgQGkQosyGxUlSg+LQEAtR4FQEGRkH4VRGgRBYFI7gLgXFiAAFbBjrPaJEPTZjSJcAANRqmEZ4IhzAOiORgcwfk4CKIdBwDAEAZwlATH8HI+QVhAlKHyWC4keChHmoUI6GAGYVCBQCogMAQXsExdixkTFAnCMCTIXKTFKVMXfgI4KYg7D7mGGQchuS15FHSBgVxDpTB8HSNCgEcK+DAlklPDiFjUg6n+LCwoIqEXYkHAg0gSCUHMHQdhOsRAxCzJcPglwZBFEABJOm4B2RlLg5hjWdI+Oa58IgjXfIWXYioUB-mAuBVRKBzxQXgvgAwlMMrATypBIi+l2hRAGAdOiol5Bni4vxTqUFWK408lJeSmlNK6VZ0yoy5lJB0gUKany3gXKeVUU5WoQVsr4WhrEfWCmDrJXOs6dW4NxQFUZQAL76DGGYO1T4HVOseX8gFYNPW6EJX6yFgaYXttFe3DiKKo06hjSmnFgRE2TtjUCtNZKKVUqzX2cN4k80oRZYW9lt0S1lqlLyytbbhUdrrRTRtRrm2PKDU+6s3a6xdvqcoXeGRUE0OcSeLQBhWBSjMEs7yaQMjZKeZGpgAoNmkCNRkrJUTnX0W8pEhJzxzWmO0D8-ZO44gRACM2BMXsI3XFWloUwLhTxTghWQVpjQgglFoN4FgdZUDwkeblDAgSXLVNxGbE4ZxC7WxPHWS1xqVJahQgXKsNxeQDvdBER5YhnUEGdQAOXBJMSY4nDQKYMWAISjEACkPAbMRttEaheUFbWOV048+guCCFaS7WZ+UFmeQdFs-ZxzUpnOp1c5p90+nPPefwb5-zd0HkTHNjJ0oXz305EXdDbeekHSWvpIUY1C8l48Xy8pgsv8Vz-xgjyMjNW1GsTADAB+3Bn5sAuWo8Vp6m4OjEB-Z8vAe4RB1AQE9xtHIZOdVRncppngwBEBsCAGAoDeH2QVvazmNizZo2ODAanVoOhUFgcEhDaAAB8AB89LQWjo9fW90GSjXLukI8tdxKE0Ep3SSwJPDqWHqpdm1GZ6CwXrZYN2BlbuV3p1GZZzj2FK2Rti6R8PaitmAU-DpTKEbIlg045Ryi3nVzC4MVTLkrIeGmYHBsbxrUAbHh0tsL6Gjo9frGVneNcaI0+43T+HuRGdbYZkLpzMtZITc9I9w003Hm7fm4t5bq31sgXh2oHbAy9skAO6HI7OoTtna2dd27hL7vjq2Y5aA8B2DxoIFsx5KYeTNJyc1wohjZRRme6951H241faTYS9dv3-uZqB8enNCVQdOgLRDyX2doflpZwjpLuJnstFSI857zvaAAGpaBMREzw2gAAqCwBAjVu4ys94wqoM-InL9niYBe-sl7LxXm+j5BwzGHF2LCe45No97YUEjinbaVbbN368o48wE4956EQ4EwLOqHeYFPdjwKy4mGb+AAFUXRrgBioP-vt1B73SHwHtLw8g6ZeemPRbKo3rUDD4pSe1AS7nx6BTaaQsQAc-DsCacvAII0WUYC+YERqKqFAKW+eiAEAgQqoXyi+MA0u8+G+5ekBogzqC2JUiB4BGBIgWyeeTEHwiA2BkguBMAEBuGhBr+KBuIfmH+7oX+VmP+f+W2ABUWjaSB7ey8JOhK5g5yzAC2MeNuFBL2kakgYqXBz2nOOImeghTAwhrKohC+XuEhskGwTGRW96zGNuYBlBsh7+UYDBRO0BYEwKAAfrQBgBsEcr8kgcABsBMKqBoLGM8Fbp8voVsuPgeBITWAALp0HBRTaxYTDy7SiK60ArZrazCq5bbq50ZtJrgxSa4rK9iPRaGDQCbLZwCqh2E6iqF26XY3YR6SKm6ururm5Iqehr5qF77vYH4-bH7JrEpn4A7tHA4fRR4tZ35XpnSP7P6bZOZv5mYmGAaBikC0LwZmDZJ1gVDgRvZhEsCTEvC+4bp4oOgTSZbfLiGors71hDI6hzS267EGD7HRjdHg4AJmbzFMoO7PBUYrFbjbHmDiG2gbBp4BAaH55CRlIAYBBXDPAq627v4AmGophbEr5vGbIbDHGfFMBSGMHZLPDzRQmvYbA352KOqvFrJAInD7jUBMTmAADsxJYgwimCpA+860PIxgmCY68AGAiGOoXmeC+Cj0JU1cOCbJj0ViKo-yOQnAIKYgjgdIQJIKpA4EdgGwxAg0PI2YdgAAHLlJ0R6N4t7DyF+nKs+gwFEOEpgpII4FuhCTwC8acZIbCTgXUWcVPA4GTmfFsSaRAGaWZIilsdXrXmKpaeQRCVaeXunm6TgWiXtGKlPIaT6A6FYpwLunfJZCNEnieBsIUH4ChAWLaYhPuAZjOBgC4j8jWiGrQABEBpKAkKICCO7s9OQJINKKsKENqGPFWS-qgugj6pKZIB8eqhUPuDZgAJoyA2bbDvy6Av7zHtlsSyn7gKm-H5iinrRjyJjzTCaKkAYwCNmvBCjahtxpAGBNmdnSi3FJkEBcAOyWrdIsnxaIpdlJqSnSnjn4koRTkqkwSznMQykrobQYDLl1izk27zTWntm0CYlZ7Egyn3mByEkklknCLniaFUkOhbk14gQiQCg-kokOj-kYnoX+kBCgWDTngim1QwWKxwXCSaF5HwViKoV-nl7omAVYUmq164UOj4VrREWnCYkIXkXCQAaGj-rYhjF0AADCZy5ANgPATKvg0ySgbw4lBIqAzwcIDocISZbSfOrScyJQoIYAXa-hQAA">code</a> and <a href="https://shinylive.io/r/app/#h=0&amp;code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAYgAIAxIgJzgKgGdSBLCAc1oDKUCABMARkQAetALRyZAHQh0AKgAsu7WptrDacSbFQAbOLQBmzXYI0QAnsa4A3M1l3olqtWbSpaqJiInLhE4LSgLZlYObj5admFxKUimWlJvWgBBLiYABQ52Cl44Ji0RKFIOOFJPWgBJUniAV3RmUi0AZnjK9pTozh5+GCJQ4y0ZWgAZHjgoVKw4XhZ2di4SXCysOoBZTI3E2gAJImNSGQB1HnJSpSVHMSY5uwAKdls7AEolcsrn7LyCkUSuwvhBagBVOqyeRKJpcWgAHgm5mMcJE+WKz1uEFotDomXQaS4pFM0LkSlx3BJcHyEDgxixYEYLDYAziQlEEkkCjAH1wFPiITgYjmkygdiITVIWLBONxgtCIoBdIZAHcQulaABeWgdfly+XywqmAikOoQVBS548S1mkTa2g84ajHn6w3uj3u4xQMT0h08gT01iNbYjemugWeqPyghqIhcAhhB0ERnTOlzWgLJZhVYkV2OsCZLa7fM846nC5XYE8vmR6NR43BuD2nU8tOzeaLZa5sG8t2eujtjNZ7trHHOv1zXhNeBkdh1w3EUTEsdQYy0+nPJciFckf1gG1SjAT4zanUAciHnezKzH54jBvrT9osdYAGsuQBxQItc2260WlKdQtgWxgwAA+lO854I6j7PtG3q+qerZgIGJqNCOOZjgwsykE0yyIKWcHwZ6sbxomWg6o4nCMioLCiDyDoAIwbAuJHsR6AazOwJBrsSdiMTqABMtbERxRpBqazbMR8olRvixaZLQJ66Ew06zu0bG4tuu7QOuwibjp3B7ihh6kMeYbIReRY7Jk954Fp4numoACsjIAPJMKEqT5I88DXNBclOU+7CON5f5WmZwH7qgD7BfF8qIX6KGoIRDliQlJEwDwDoAAz9plTkwFA0g6i5BWFRxThrk0Zg6rlQWVbioVCkwEXSlFIE8iIcVNRxSXIQWIhpRVfXPtlOL1aNY31sVpW0OVjkzR61WonVtANdNmUteFgEdXt0UoQAjr1y1PgN+5HSNS1nfKE15Vtt2GnNDqLRlT24qttV5Y1TWuYygYcLxp6+bA1TAmlv2VTtJTtQBtqHQWuSnR9HoXShuTXe9H33VNN1PS9ZWPajX3rZt+PiTDbV7fDQFdWAAAiKOo4a6MFgzWMs56uMbcTOMla9fNPaTP1C5TYWwzTnX7gAiszXO0GzPIy5zCvPTlePYwTAtExTZ0i-VoJRlD8p0OWjSXGQwLKZZqnqRQmkZUZq76SqW4kDuxmTQWZkWaMZ60Oe5uVlbpT2WL8GvgQH5SN+kqoHD0soWoqqQWp0GsVrJFK6hkmNMHlsBbQoP+RDRFNWRCZJlRmjSjyABC1RQIJtBCZnau4jyn6wMVLcdCbwWNlJIEpixrcbP3A+D3nicHfTKfgYUQN6fLT052hwaCNxwO0CodioHAqtc5XFHJoymQiJ7zhwKWYDbE0pxcCYCYVNfNYR01Q-kPTF9Xy4NZT0clHGOkhZ4I3psYIgvBy7BRzpMKBu9HgQHYJYJgxUvar3ggbBgmRJgCAAKImypmAum+41CYPrDnZk-RYj8GOEwLgAAvEgR92I8xYnrd0hNaAADZ8qcMNNgoSAAWI27E6C4igKaMc9cpSkBILTO0+4Wg-BvulDiEj2I53BKgVRABCGs2JDSiTrHQbYUAcqoAMqeVBtAdzsBMOKQYtBJSkFtOMGEj5io8A3GqDUagHQAE5pp0GoayRouRIGNHkIoOCJgiCkHclKf8rjwH7nMAQcC8SajqPYt4LgvA1CNBQsI3KuVUDcl5EY+UYjQSglqAzOA5gZjxBKC4VIkDeAJloCwI6cIWD2nkXYx4qprAaE4FAvyZJYmFCYO0xEyImgQGkQosyGxUlSg+LQEAtR4FQEGRkH4VRGgRBYFI7gLgXFiAAFbBjrPaJEPTZjSJcAANRqmEZ4IhzAOiORgcwfk4CKIdBwDAEAZwlATH8HI+QVhAlKHyWC4keChHmoUI6GAGYVCBQCogMAQXsExdixkTFAnCMCTIXKTFKVMXfgI4KYg7D7mGGQchuS15FHSBgVxDpTB8HSNCgEcK+DAlklPDiFjUg6n+LCwoIqEXYkHAg0gSCUHMHQdhOsRAxCzJcPglwZBFEABJOm4B2RlLg5hjWdI+Oa58IgjXfIWXYioUB-mAuBVRKBzxQXgvgAwlMMrATypBIi+l2hRAGAdOiol5Bni4vxTqUFWK408lJeSmlNK6VZ0yoy5lJB0gUKany3gXKeVUU5WoQVsr4WhrEfWCmDrJXOs6dW4NxQFUZQAL76DGGYO1T4HVOseX8gFYNPW6EJX6yFgaYXttFe3DiKKo06hjSmnFgRE2TtjUCtNZKKVUqzX2cN4k80oRZYW9lt0S1lqlLyytbbhUdrrRTRtRrm2PKDU+6s3a6xdvqcoXeGRUE0OcSeLQBhWBSjMEs7yaQMjZKeZGpgAoNmkCNRkrJUTnX0W8pEhJzxzWmO0D8-ZO44gRACM2BMXsI3XFWloUwLhTxTghWQVpjQgglFoN4FgdZUDwkeblDAgSXLVNxGbE4ZxC7WxPHWS1xqVJahQgXKsNxeQDvdBER5YhnUEGdQAOXBJMSY4nDQKYMWAISjEACkPAbMRttEaheUFbWOV048+guCCFaS7WZ+UFmeQdFs-ZxzUpnOp1c5p90+nPPefwb5-zd0HkTHNjJ0oXz305EXdDbeekHSWvpIUY1C8l48Xy8pgsv8Vz-xgjyMjNW1GsTADAB+3Bn5sAuWo8Vp6m4OjEB-Z8vAe4RB1AQE9xtHIZOdVRncppngwBEBsCAGAoDeH2QVvazmNizZo2ODAanVoOhUFgcEhDaAAB8AB89LQWjo9fW90GSjXLukI8tdxKE0Ep3SSwJPDqWHqpdm1GZ6CwXrZYN2BlbuV3p1GZZzj2FK2Rti6R8PaitmAU-DpTKEbIlg045Ryi3nVzC4MVTLkrIeGmYHBsbxrUAbHh0tsL6Gjo9frGVneNcaI0+43T+HuRGdbYZkLpzMtZITc9I9w003Hm7fm4t5bq31sgXh2oHbAy9skAO6HI7OoTtna2dd27hL7vjq2Y5aA8B2DxoIFsx5KYeTNJyc1wohjZRRme6951H241faTYS9dv3-uZqB8enNCVQdOgLRDyX2doflpZwjpLuJnstFSI857zvaAAGpaBMREzw2gAAqCwBAjVu4ys94wqoM-InL9niYBe-sl7LxXm+j5BwzGHF2LCe45No97YUEjinbaVbbN368o48wE4956EQ4EwLOqHeYFPdjwKy4mGb+AAFUXRrgBioP-vt1B73SHwHtLw8g6ZeemPRbKo3rUDD4pSe1AS7nx6BTaaQsQAc-DsCacvAII0WUYC+YERqKqFAKW+eiAEAgQqoXyi+MA0u8+G+5ekBogzqC2JUiB4BGBIgWyeeTEHwiA2BkguBMAEBuGhBr+KBuIfmH+7oX+VmP+f+W2ABUWjaSB7ey8JOhK5g5yzAC2MeNuFBL2kakgYqXBz2nOOImeghTAwhrKohC+XuEhskGwTGRW96zGNuYBlBsh7+UYDBRO0BYEwKAAfrQBgBsEcr8kgcABsBMKqBoLGM8Fbp8voVsuPgeBITWAALp0HBRTaxYTDy7SiK60ArZrazCq5bbq50ZtJrgxSa4rK9iPRaGDQCbLZwCqh2E6iqF26XY3YR6SKm6ururm5Iqehr5qF77vYH4-bH7JrEpn4A7tHA4fRR4tZ35XpnSP7P6bZOZv5mYmGAaBikC0LwZmDZJ1gVDgRvZhEsCTEvC+4bp4oOgTSZbfLiGors71hDI6hzS267EGD7HRjdHg4AJmbzFMoO7PBUYrFbjbHmDiG2gbBp4BAaH55CRlIAYBBXDPAq627v4AmGophbEr5vGbIbDHGfFMBSGMHZLPDzRQmvYbA352KOqvFrJAInD7jUBMTmAADsxJYgwimCpA+860PIxgmCY68AGAiGOoXmeC+Cj0JU1cOCbJj0ViKo-yOQnAIKYgjgdIQJIKpA4EdgGwxAg0PI2YdgAAHLlJ0R6N4t7DyF+nKs+gwFEOEpgpII4FuhCTwC8acZIbCTgXUWcVPA4GTmfFsSaRAGaWZIilsdXrXmKpaeQRCVaeXunm6TgWiXtGKlPIaT6A6FYpwLunfJZCNEnieBsIUH4ChAWLaYhPuAZjOBgC4j8jWiGrQABEBpKAkKICCO7s9OQJINKKsKENqGPFWS-qgugj6pKZIB8eqhUPuDZgAJoyA2bbDvy6Av7zHtlsSyn7gKm-H5iinrRjyJjzTCaKkAYwCNmvBCjahtxpAGBNmdnSi3FJkEBcAOyWrdIsnxaIpdlJqSnSnjn4koRTkqkwSznMQykrobQYDLl1izk27zTWntm0CYlZ7Egyn3mByEkklknCLniaFUkOhbk14gQiQCg-kokOj-kYnoX+kBCgWDTngim1QwWKxwXCSaF5HwViKoV-nl7omAVYUmq164UOj4VrREWnCYkIXkXCQAaGj-rYhjF0AADCZy5ANgPATKvg0ySgbw4lBIqAzwcIDocISZbSfOrScyJQoIYAXa-hQAA">without</a>.</p> + + + jcheng5/posit-conf-2023-shinylive + 2023-09-24T01:39:43Z + tag:github.com,2023-09-24:/jcheng5/posit-conf-2023-shinylive + + <p></p><hr><h1>Running Shiny without a server</h1> <p>This repository contains the slides for the talk "Running Shiny without a server" given by Joe Cheng at <code>posit::conf(2023)</code> in Chicago, IL.</p> <h2>Slides</h2> <p><a href="https://jcheng5.github.io/posit-conf-2023-shinylive/">https://jcheng5.github.io/posit-conf-2023-shinylive/</a> (warning: many, many megabytes)</p> <h2>Next steps</h2> <h3>For R</h3> <ul> <li><strong>Convert</strong> Shiny apps to static websites: <a href="http://github.com/posit-dev/r-shinylive">{shinylive for R}</a></li> <li><strong>Write, run, and share</strong> Shiny apps right in the browser: <a href="https://shinylive.io/r/">https://shinylive.io/r/</a></li> <li><strong>Include</strong> Shiny apps in Quarto docs: <a href="https://github.com/quarto-ext/shinylive">Shinylive Quarto extension</a></li> </ul> <h3>For Python</h3> <ul> <li><strong>Convert</strong> Shiny apps to static websites: <a href="http://github.com/posit-dev/py-shinylive">{shinylive for Python}</a></li> <li><strong>Write, run, and share</strong> Shiny apps right in the browser: <a href="https://shinylive.io/py/">https://shinylive.io/py/</a></li> <li><strong>Include</strong> Shiny apps in Quarto docs: <a href="https://github.com/quarto-ext/shinylive">Shinylive Quarto extension</a></li> </ul> <h2>Questions?</h2> <p>File an issue in the appropriate GitHub repo, or <a href="https://discord.gg/yMGCamUMnS">join the Shiny community on Discord</a>.</p> + \ No newline at end of file diff --git a/r/weekly/index.xml b/r/weekly/index.xml new file mode 100644 index 00000000000..22fe8f81143 --- /dev/null +++ b/r/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub R Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:23Z + Weekly Trending of R in GitHub + + + 10XGenomics/loupeR + 2023-09-24T01:59:23Z + tag:github.com,2023-09-24:/10XGenomics/loupeR + + <p>Convert Seurat objects to 10x Genomics Loupe files.</p><hr><p align="center"> <img src="https://raw.githubusercontent.com/10XGenomics/loupeR/main/tools/doc/logo.svg?sanitize=true" width="50%" alt="loupeR - convert Seurat objects to Loupe files"><br> <a href="https://github.com/10XGenomics/loupeR/actions?query=workflow%3Acheck"><img src="https://github.com/10XGenomics/loupeR/actions/workflows/check.yml/badge.svg?sanitize=true" alt="Build Status"></a> <a href="https://github.com/10XGenomics/loupeR/releases/latest"><img src="https://img.shields.io/badge/latest_release-green" alt="Build Status"></a> <a href="https://10xgen.com/EULA"><img src="https://img.shields.io/badge/EULA-purple" alt="EULA"></a> <br> Convert Seurat objects to 10x Genomics Loupe files. </p> <p align="center"> <a href="https://raw.githubusercontent.com/10XGenomics/loupeR/main/#how-to-use">How To Use</a> • <a href="https://raw.githubusercontent.com/10XGenomics/loupeR/main/#installation">Installation</a> • <a href="https://raw.githubusercontent.com/10XGenomics/loupeR/main/#troubleshooting">Troubleshooting</a> </p> <p><code>loupeR</code> creates a 10x Genomics Loupe file from a Seurat object. 10x Genomics Loupe Browser can visualize single-cell and spatial data from 10x Genomics. <em>Only single-cell gene expression datasets are supported</em>.</p> <h2>How to Use</h2> <p>Converting a Seurat object to a Loupe file is as simple as the following:</p> <pre><code class="language-R"># import the library library("loupeR") # convert the SeuratObject named `seurat_obj` to a Loupe file create_loupe_from_seurat(seurat_obj) </code></pre> <p>Use the function <code>create_loupe</code> if you need more control in the clusters and projetions that included in the Loupe file.</p> <pre><code class="language-R"># import the library library("loupeR") # Gene Expression RNA assay assay &lt;- seurat_obj[["RNA"]] # convert the count matrix, clusters, and projections into a Loupe file create_loupe( assay@counts, clusters = select_clusters(seurat_obj), projections = select_projections(seurat_obj) ) </code></pre> <h2>Installation</h2> <h3>HDF5</h3> <p>Before using <code>loupeR</code>, make sure that your system has installed <a href="https://www.hdfgroup.org/downloads/hdf5">HDF5</a>. The HDF5 organization requires registration before being able to download the installer. Below are some other more convenient methods for installing HDF5 if you happen to have these package managers installed.</p> <ul> <li>macOS with <a href="https://brew.sh/">Homebrew</a> - <code>brew install hdf5</code> <br></li> <li>windows with <a href="https://vcpkg.io/en/index.html">vcpkg</a> - <code>.\vcpkg install hdf5</code></li> </ul> <h3>Installing loupeR from prebuilt bundle</h3> <p>In RStudio, or your R shell, run the following to install this package.</p> <pre><code class="language-r"># install dependencies if (!require("hdf5r")) install.packages("hdf5r") if (!require("Seurat")) install.packages("Seurat") # install platform specific source package os &lt;- sub("Darwin", "macOS", Sys.info()["sysname"]) url &lt;- paste0("https://github.com/10XGenomics/loupeR/releases/latest/download/loupeR_", os, ".tar.gz") install.packages(url, repos = NULL, type = "source") </code></pre> <h3>Installing loupeR using the <code>remotes</code> package</h3> <p>Another installation option is to use the <code>remotes</code> package to directly install <code>loupeR</code> and its dependencies. The installed package won't include the prebundled louper executable, so you must invoke the <code>loupeR::setup()</code> function which will go and download it.</p> <pre><code class="language-r">remotes::install_github("10XGenomics/loupeR") loupeR::setup() </code></pre> <h2>Troubleshooting</h2> <p>For more in depth documentation and support please head to our <a href="https://10xgen.com/louper">support page</a> or send an email to <a href="mailto:support@10xgenomics.com">support@10xgenomics.com</a></p> <p>Additionally, we have provided utility functions to help gather useful information when contacting support or creating a Github issue.</p> <pre><code class="language-R"># import the library library("loupeR") # print extra debug information create_bugreport_from_seurat(seurat_obj) </code></pre> + + + Sage-Bionetworks/Re-Attractor-Metagenes + 2023-09-24T01:59:23Z + tag:github.com,2023-09-24:/Sage-Bionetworks/Re-Attractor-Metagenes + + <p>Re-create Attractor Metagenes from PLoS Computation Biology Paper (Cheng et al)</p><hr><h1>Re-Attractor-Metagenes</h1> <p>Re-create Attractor Metagenes from PLoS Computation Biology Paper (Cheng et al)</p> + + + aufrank/R-hacks + 2023-09-24T01:59:23Z + tag:github.com,2023-09-24:/aufrank/R-hacks + + <p>useful bits of code for programming and analysis in R</p><hr><p>#+TITLE: README.org #+AUTHOR: Austin F. Frank #+EMAIL: <a href="mailto:austin.frank@gmail.com">austin.frank@gmail.com</a> #+DATE: 2011-02-24 Thu #+OPTIONS: H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t &lt;:t #+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc</p> <p>When I find I'm using the same functions on more than one project, I factor them out and keep them here.</p> + + \ No newline at end of file diff --git a/racket/daily/index.xml b/racket/daily/index.xml index 20c4de68407..496c6c9b518 100644 --- a/racket/daily/index.xml +++ b/racket/daily/index.xml @@ -1,7 +1,7 @@ GitHub Racket Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:07Z + 2023-09-24T01:39:52Z Daily Trending of Racket in GitHub \ No newline at end of file diff --git a/racket/weekly/index.xml b/racket/weekly/index.xml new file mode 100644 index 00000000000..c093bdc76cc --- /dev/null +++ b/racket/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Racket Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:29Z + Weekly Trending of Racket in GitHub + + + jtebert/racket-ruckus + 2023-09-24T01:59:29Z + tag:github.com,2023-09-24:/jtebert/racket-ruckus + + <p>Some of the chaos I have created in Racket. Because apparently I have nothing better to do with my time.</p><hr> + + \ No newline at end of file diff --git a/ragel/daily/index.xml b/ragel/daily/index.xml index 4acc96cd6a5..cbfc2f8f7d1 100644 --- a/ragel/daily/index.xml +++ b/ragel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ragel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:07Z + 2023-09-24T01:39:52Z Daily Trending of Ragel in GitHub \ No newline at end of file diff --git a/ragel/weekly/index.xml b/ragel/weekly/index.xml new file mode 100644 index 00000000000..046f9b3eb9f --- /dev/null +++ b/ragel/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ragel Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:27Z + Weekly Trending of Ragel in GitHub + + \ No newline at end of file diff --git a/raku/daily/index.xml b/raku/daily/index.xml index 870bfbb3af3..33dd53cce9a 100644 --- a/raku/daily/index.xml +++ b/raku/daily/index.xml @@ -1,7 +1,14 @@ GitHub Raku Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:08Z + 2023-09-24T01:39:54Z Daily Trending of Raku in GitHub + + kimryan/perl6-Lingua-EN-Sentence + 2023-09-24T01:39:54Z + tag:github.com,2023-09-24:/kimryan/perl6-Lingua-EN-Sentence + + <p>Perl6 Port of the Lingua::EN::Sentence CPAN module</p><hr> + \ No newline at end of file diff --git a/raku/weekly/index.xml b/raku/weekly/index.xml new file mode 100644 index 00000000000..4cac7210396 --- /dev/null +++ b/raku/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Raku Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:30Z + Weekly Trending of Raku in GitHub + + \ No newline at end of file diff --git a/raml/daily/index.xml b/raml/daily/index.xml index 263ee084a98..a13b15b9343 100644 --- a/raml/daily/index.xml +++ b/raml/daily/index.xml @@ -1,7 +1,7 @@ GitHub RAML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:09Z + 2023-09-24T01:39:53Z Daily Trending of RAML in GitHub \ No newline at end of file diff --git a/raml/weekly/index.xml b/raml/weekly/index.xml new file mode 100644 index 00000000000..f9e188858ca --- /dev/null +++ b/raml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub RAML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:28Z + Weekly Trending of RAML in GitHub + + \ No newline at end of file diff --git a/rascal/daily/index.xml b/rascal/daily/index.xml index f7f0f1e4b51..331cca56c0a 100644 --- a/rascal/daily/index.xml +++ b/rascal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rascal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:12Z + 2023-09-24T01:39:56Z Daily Trending of Rascal in GitHub \ No newline at end of file diff --git a/rascal/weekly/index.xml b/rascal/weekly/index.xml new file mode 100644 index 00000000000..6ada32e78db --- /dev/null +++ b/rascal/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Rascal Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:33Z + Weekly Trending of Rascal in GitHub + + \ No newline at end of file diff --git a/raw-token-data/daily/index.xml b/raw-token-data/daily/index.xml index f3cb00da335..0439307344e 100644 --- a/raw-token-data/daily/index.xml +++ b/raw-token-data/daily/index.xml @@ -1,7 +1,7 @@ GitHub Raw token data Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:11Z + 2023-09-24T01:39:57Z Daily Trending of Raw token data in GitHub \ No newline at end of file diff --git a/raw-token-data/weekly/index.xml b/raw-token-data/weekly/index.xml new file mode 100644 index 00000000000..a4b6777cd02 --- /dev/null +++ b/raw-token-data/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Raw token data Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:32Z + Weekly Trending of Raw token data in GitHub + + \ No newline at end of file diff --git a/rdoc/daily/index.xml b/rdoc/daily/index.xml index ec427130450..2f7af0fb6b6 100644 --- a/rdoc/daily/index.xml +++ b/rdoc/daily/index.xml @@ -1,7 +1,7 @@ GitHub RDoc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:10Z + 2023-09-24T01:39:58Z Daily Trending of RDoc in GitHub \ No newline at end of file diff --git a/rdoc/weekly/index.xml b/rdoc/weekly/index.xml new file mode 100644 index 00000000000..a04cf07540e --- /dev/null +++ b/rdoc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub RDoc Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:33Z + Weekly Trending of RDoc in GitHub + + \ No newline at end of file diff --git a/readline-config/daily/index.xml b/readline-config/daily/index.xml index 87470132f91..51bcb290ca1 100644 --- a/readline-config/daily/index.xml +++ b/readline-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Readline Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:14Z + 2023-09-24T01:39:59Z Daily Trending of Readline Config in GitHub \ No newline at end of file diff --git a/readline-config/weekly/index.xml b/readline-config/weekly/index.xml new file mode 100644 index 00000000000..8ddc01dd0f0 --- /dev/null +++ b/readline-config/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Readline Config Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:36Z + Weekly Trending of Readline Config in GitHub + + \ No newline at end of file diff --git a/realbasic/daily/index.xml b/realbasic/daily/index.xml index 7691ec815bc..2d01b97316c 100644 --- a/realbasic/daily/index.xml +++ b/realbasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub REALbasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:17Z + 2023-09-24T01:40:00Z Daily Trending of REALbasic in GitHub \ No newline at end of file diff --git a/realbasic/weekly/index.xml b/realbasic/weekly/index.xml new file mode 100644 index 00000000000..7f905631248 --- /dev/null +++ b/realbasic/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub REALbasic Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:35Z + Weekly Trending of REALbasic in GitHub + + \ No newline at end of file diff --git a/reason/daily/index.xml b/reason/daily/index.xml index dd3f12ec585..fac155eb85a 100644 --- a/reason/daily/index.xml +++ b/reason/daily/index.xml @@ -1,7 +1,7 @@ GitHub Reason Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:16Z + 2023-09-24T01:40:01Z Daily Trending of Reason in GitHub \ No newline at end of file diff --git a/reason/weekly/index.xml b/reason/weekly/index.xml new file mode 100644 index 00000000000..2421102bfbf --- /dev/null +++ b/reason/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Reason Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:37Z + Weekly Trending of Reason in GitHub + + \ No newline at end of file diff --git a/rebol/daily/index.xml b/rebol/daily/index.xml index 0760518ba02..d1936c81bd4 100644 --- a/rebol/daily/index.xml +++ b/rebol/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rebol Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:18Z + 2023-09-24T01:40:03Z Daily Trending of Rebol in GitHub \ No newline at end of file diff --git a/rebol/weekly/index.xml b/rebol/weekly/index.xml new file mode 100644 index 00000000000..b35e7805bd6 --- /dev/null +++ b/rebol/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Rebol Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:41Z + Weekly Trending of Rebol in GitHub + + + refaktor/Rebol2-PBKDF2 + 2023-09-24T01:59:41Z + tag:github.com,2023-09-24:/refaktor/Rebol2-PBKDF2 + + <p>Implementation of PBKDF2 in Rebol</p><hr> + + \ No newline at end of file diff --git a/record-jar/daily/index.xml b/record-jar/daily/index.xml index fb44a81a044..31f7be84582 100644 --- a/record-jar/daily/index.xml +++ b/record-jar/daily/index.xml @@ -1,7 +1,7 @@ GitHub Record Jar Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:20Z + 2023-09-24T01:40:04Z Daily Trending of Record Jar in GitHub \ No newline at end of file diff --git a/record-jar/weekly/index.xml b/record-jar/weekly/index.xml new file mode 100644 index 00000000000..9a8fc47e5fa --- /dev/null +++ b/record-jar/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Record Jar Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:40Z + Weekly Trending of Record Jar in GitHub + + \ No newline at end of file diff --git a/red/daily/index.xml b/red/daily/index.xml index e9a155ae06b..3042f21ad0d 100644 --- a/red/daily/index.xml +++ b/red/daily/index.xml @@ -1,7 +1,7 @@ GitHub Red Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:21Z + 2023-09-24T01:40:05Z Daily Trending of Red in GitHub \ No newline at end of file diff --git a/red/weekly/index.xml b/red/weekly/index.xml new file mode 100644 index 00000000000..052570b193a --- /dev/null +++ b/red/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Red Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:38Z + Weekly Trending of Red in GitHub + + \ No newline at end of file diff --git a/redcode/daily/index.xml b/redcode/daily/index.xml index 6712bc78ac6..f3ed3073c8c 100644 --- a/redcode/daily/index.xml +++ b/redcode/daily/index.xml @@ -1,7 +1,7 @@ GitHub Redcode Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:19Z + 2023-09-24T01:40:05Z Daily Trending of Redcode in GitHub \ No newline at end of file diff --git a/redcode/weekly/index.xml b/redcode/weekly/index.xml new file mode 100644 index 00000000000..4ca2adbb11d --- /dev/null +++ b/redcode/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Redcode Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:39Z + Weekly Trending of Redcode in GitHub + + \ No newline at end of file diff --git a/redirect-rules/daily/index.xml b/redirect-rules/daily/index.xml index 9af0d85d2ad..27cb6c4dbf5 100644 --- a/redirect-rules/daily/index.xml +++ b/redirect-rules/daily/index.xml @@ -1,7 +1,7 @@ GitHub Redirect Rules Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:23Z + 2023-09-24T01:40:06Z Daily Trending of Redirect Rules in GitHub \ No newline at end of file diff --git a/redirect-rules/weekly/index.xml b/redirect-rules/weekly/index.xml new file mode 100644 index 00000000000..efa2dc12da1 --- /dev/null +++ b/redirect-rules/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Redirect Rules Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:42Z + Weekly Trending of Redirect Rules in GitHub + + \ No newline at end of file diff --git a/regular-expression/daily/index.xml b/regular-expression/daily/index.xml index 71dfeb4ee7f..5a2ec6c2ba0 100644 --- a/regular-expression/daily/index.xml +++ b/regular-expression/daily/index.xml @@ -1,7 +1,7 @@ GitHub Regular Expression Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:22Z + 2023-09-24T01:40:07Z Daily Trending of Regular Expression in GitHub \ No newline at end of file diff --git a/regular-expression/weekly/index.xml b/regular-expression/weekly/index.xml new file mode 100644 index 00000000000..4938439e44e --- /dev/null +++ b/regular-expression/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Regular Expression Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:43Z + Weekly Trending of Regular Expression in GitHub + + \ No newline at end of file diff --git a/ren'py/daily/index.xml b/ren'py/daily/index.xml index a0ebe400f48..ba3bd9a9998 100644 --- a/ren'py/daily/index.xml +++ b/ren'py/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ren'Py Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:24Z + 2023-09-24T01:40:09Z Daily Trending of Ren'Py in GitHub \ No newline at end of file diff --git a/ren'py/weekly/index.xml b/ren'py/weekly/index.xml new file mode 100644 index 00000000000..a4c5d911c88 --- /dev/null +++ b/ren'py/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ren'Py Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:44Z + Weekly Trending of Ren'Py in GitHub + + \ No newline at end of file diff --git a/renderscript/daily/index.xml b/renderscript/daily/index.xml index 69e5ccb3f11..7647a121b9b 100644 --- a/renderscript/daily/index.xml +++ b/renderscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub RenderScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:24Z + 2023-09-24T01:40:08Z Daily Trending of RenderScript in GitHub \ No newline at end of file diff --git a/renderscript/weekly/index.xml b/renderscript/weekly/index.xml new file mode 100644 index 00000000000..1a362dc46fa --- /dev/null +++ b/renderscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub RenderScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:42Z + Weekly Trending of RenderScript in GitHub + + \ No newline at end of file diff --git a/rescript/daily/index.xml b/rescript/daily/index.xml index 06a9fd42d7c..36601e49e8c 100644 --- a/rescript/daily/index.xml +++ b/rescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ReScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:27Z + 2023-09-24T01:40:12Z Daily Trending of ReScript in GitHub \ No newline at end of file diff --git a/rescript/weekly/index.xml b/rescript/weekly/index.xml new file mode 100644 index 00000000000..03719987e1f --- /dev/null +++ b/rescript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ReScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:47Z + Weekly Trending of ReScript in GitHub + + \ No newline at end of file diff --git a/restructuredtext/daily/index.xml b/restructuredtext/daily/index.xml index b66df094bd4..f36619d220a 100644 --- a/restructuredtext/daily/index.xml +++ b/restructuredtext/daily/index.xml @@ -1,7 +1,7 @@ GitHub reStructuredText Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:28Z + 2023-09-24T01:40:11Z Daily Trending of reStructuredText in GitHub \ No newline at end of file diff --git a/restructuredtext/weekly/index.xml b/restructuredtext/weekly/index.xml new file mode 100644 index 00000000000..9a74fa7cc1f --- /dev/null +++ b/restructuredtext/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub reStructuredText Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:48Z + Weekly Trending of reStructuredText in GitHub + + \ No newline at end of file diff --git a/rexx/daily/index.xml b/rexx/daily/index.xml index 1331d7f7970..52be3fe9bcb 100644 --- a/rexx/daily/index.xml +++ b/rexx/daily/index.xml @@ -1,7 +1,7 @@ GitHub REXX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:26Z + 2023-09-24T01:40:13Z Daily Trending of REXX in GitHub \ No newline at end of file diff --git a/rexx/weekly/index.xml b/rexx/weekly/index.xml new file mode 100644 index 00000000000..0f1ab2c9677 --- /dev/null +++ b/rexx/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub REXX Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:45Z + Weekly Trending of REXX in GitHub + + \ No newline at end of file diff --git a/rich-text-format/daily/index.xml b/rich-text-format/daily/index.xml index 4cb2f870116..cc717cdc805 100644 --- a/rich-text-format/daily/index.xml +++ b/rich-text-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rich Text Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:30Z + 2023-09-24T01:40:17Z Daily Trending of Rich Text Format in GitHub \ No newline at end of file diff --git a/rich-text-format/weekly/index.xml b/rich-text-format/weekly/index.xml new file mode 100644 index 00000000000..0e6c769057d --- /dev/null +++ b/rich-text-format/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Rich Text Format Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:51Z + Weekly Trending of Rich Text Format in GitHub + + \ No newline at end of file diff --git a/ring/daily/index.xml b/ring/daily/index.xml index bdd1aae6dc5..7b5509d68f9 100644 --- a/ring/daily/index.xml +++ b/ring/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ring Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:32Z + 2023-09-24T01:40:15Z Daily Trending of Ring in GitHub \ No newline at end of file diff --git a/ring/weekly/index.xml b/ring/weekly/index.xml new file mode 100644 index 00000000000..3fbc4c4c834 --- /dev/null +++ b/ring/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Ring Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:49Z + Weekly Trending of Ring in GitHub + + \ No newline at end of file diff --git a/riot/daily/index.xml b/riot/daily/index.xml index f3f9159e46e..1284a961e1e 100644 --- a/riot/daily/index.xml +++ b/riot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Riot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:33Z + 2023-09-24T01:40:18Z Daily Trending of Riot in GitHub \ No newline at end of file diff --git a/riot/weekly/index.xml b/riot/weekly/index.xml new file mode 100644 index 00000000000..728d6e44bb1 --- /dev/null +++ b/riot/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Riot Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:51Z + Weekly Trending of Riot in GitHub + + \ No newline at end of file diff --git a/rmarkdown/daily/index.xml b/rmarkdown/daily/index.xml index 1af98d4af1e..bf9b756836c 100644 --- a/rmarkdown/daily/index.xml +++ b/rmarkdown/daily/index.xml @@ -1,7 +1,7 @@ GitHub RMarkdown Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:31Z + 2023-09-24T01:40:14Z Daily Trending of RMarkdown in GitHub \ No newline at end of file diff --git a/rmarkdown/weekly/index.xml b/rmarkdown/weekly/index.xml new file mode 100644 index 00000000000..c3950a48e4e --- /dev/null +++ b/rmarkdown/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub RMarkdown Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:52Z + Weekly Trending of RMarkdown in GitHub + + \ No newline at end of file diff --git a/robotframework/daily/index.xml b/robotframework/daily/index.xml index 36f0a92ba15..9ca4cceda4b 100644 --- a/robotframework/daily/index.xml +++ b/robotframework/daily/index.xml @@ -1,7 +1,14 @@ GitHub RobotFramework Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:36Z + 2023-09-24T01:40:21Z Daily Trending of RobotFramework in GitHub + + 3mdeb/sonoff-rest-api + 2023-09-24T01:40:21Z + tag:github.com,2023-09-24:/3mdeb/sonoff-rest-api + + <p>Robot Framework REST API dedicated for Sonoff controlling</p><hr> + \ No newline at end of file diff --git a/robotframework/weekly/index.xml b/robotframework/weekly/index.xml new file mode 100644 index 00000000000..53f68e94bc3 --- /dev/null +++ b/robotframework/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub RobotFramework Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:54Z + Weekly Trending of RobotFramework in GitHub + + + openbmc/openbmc-test-automation + 2023-09-24T01:59:54Z + tag:github.com,2023-09-24:/openbmc/openbmc-test-automation + + <p></p><hr> + + \ No newline at end of file diff --git a/robots.txt/daily/index.xml b/robots.txt/daily/index.xml index 987afeeb0c3..8d95d6c268a 100644 --- a/robots.txt/daily/index.xml +++ b/robots.txt/daily/index.xml @@ -1,7 +1,7 @@ GitHub robots.txt Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:35Z + 2023-09-24T01:40:20Z Daily Trending of robots.txt in GitHub \ No newline at end of file diff --git a/robots.txt/weekly/index.xml b/robots.txt/weekly/index.xml new file mode 100644 index 00000000000..dcd5ff236c6 --- /dev/null +++ b/robots.txt/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub robots.txt Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:55Z + Weekly Trending of robots.txt in GitHub + + \ No newline at end of file diff --git a/roff-manpage/daily/index.xml b/roff-manpage/daily/index.xml index 1cc63669564..04fe8004ec3 100644 --- a/roff-manpage/daily/index.xml +++ b/roff-manpage/daily/index.xml @@ -1,7 +1,7 @@ GitHub Roff Manpage Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:34Z + 2023-09-24T01:40:22Z Daily Trending of Roff Manpage in GitHub \ No newline at end of file diff --git a/roff-manpage/weekly/index.xml b/roff-manpage/weekly/index.xml new file mode 100644 index 00000000000..8407eab2378 --- /dev/null +++ b/roff-manpage/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Roff Manpage Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:53Z + Weekly Trending of Roff Manpage in GitHub + + \ No newline at end of file diff --git a/roff/daily/index.xml b/roff/daily/index.xml index 6c13f2ca8d8..2394985a6fd 100644 --- a/roff/daily/index.xml +++ b/roff/daily/index.xml @@ -1,7 +1,7 @@ GitHub Roff Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:37Z + 2023-09-24T01:40:24Z Daily Trending of Roff in GitHub \ No newline at end of file diff --git a/roff/weekly/index.xml b/roff/weekly/index.xml new file mode 100644 index 00000000000..3f4c7cb023d --- /dev/null +++ b/roff/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Roff Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:57Z + Weekly Trending of Roff in GitHub + + \ No newline at end of file diff --git a/rouge/daily/index.xml b/rouge/daily/index.xml index 0d6a956c093..1f01a580a23 100644 --- a/rouge/daily/index.xml +++ b/rouge/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rouge Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:40Z + 2023-09-24T01:40:26Z Daily Trending of Rouge in GitHub \ No newline at end of file diff --git a/rouge/weekly/index.xml b/rouge/weekly/index.xml new file mode 100644 index 00000000000..03469c030f8 --- /dev/null +++ b/rouge/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Rouge Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:06Z + Weekly Trending of Rouge in GitHub + + \ No newline at end of file diff --git a/rpc/daily/index.xml b/rpc/daily/index.xml index 327188c0a9f..039ed0e07ab 100644 --- a/rpc/daily/index.xml +++ b/rpc/daily/index.xml @@ -1,7 +1,7 @@ GitHub RPC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:41Z + 2023-09-24T01:40:25Z Daily Trending of RPC in GitHub \ No newline at end of file diff --git a/rpc/weekly/index.xml b/rpc/weekly/index.xml new file mode 100644 index 00000000000..aed2ea3cfcd --- /dev/null +++ b/rpc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub RPC Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:59Z + Weekly Trending of RPC in GitHub + + \ No newline at end of file diff --git a/rpgle/daily/index.xml b/rpgle/daily/index.xml index a84b7f63cd8..0b874e7893f 100644 --- a/rpgle/daily/index.xml +++ b/rpgle/daily/index.xml @@ -1,7 +1,7 @@ GitHub RPGLE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:39Z + 2023-09-24T01:40:27Z Daily Trending of RPGLE in GitHub \ No newline at end of file diff --git a/rpgle/weekly/index.xml b/rpgle/weekly/index.xml new file mode 100644 index 00000000000..d24f2c9c0ae --- /dev/null +++ b/rpgle/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub RPGLE Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:59:58Z + Weekly Trending of RPGLE in GitHub + + \ No newline at end of file diff --git a/rpm-spec/daily/index.xml b/rpm-spec/daily/index.xml index a95838a19e4..bf6842c7adb 100644 --- a/rpm-spec/daily/index.xml +++ b/rpm-spec/daily/index.xml @@ -1,7 +1,7 @@ GitHub RPM Spec Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:43Z + 2023-09-24T01:40:30Z Daily Trending of RPM Spec in GitHub \ No newline at end of file diff --git a/rpm-spec/weekly/index.xml b/rpm-spec/weekly/index.xml new file mode 100644 index 00000000000..457bcc1d7ff --- /dev/null +++ b/rpm-spec/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub RPM Spec Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:11Z + Weekly Trending of RPM Spec in GitHub + + \ No newline at end of file diff --git a/ruby/daily/index.xml b/ruby/daily/index.xml index 00fed832a94..db1880b11ac 100644 --- a/ruby/daily/index.xml +++ b/ruby/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ruby Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:57Z + 2023-09-24T01:40:36Z Daily Trending of Ruby in GitHub \ No newline at end of file diff --git a/ruby/weekly/index.xml b/ruby/weekly/index.xml new file mode 100644 index 00000000000..4d1b50b1ffc --- /dev/null +++ b/ruby/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Ruby Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:18Z + Weekly Trending of Ruby in GitHub + + + ruby/debug + 2023-09-24T02:00:18Z + tag:github.com,2023-09-24:/ruby/debug + + <p>Debugging functionality for Ruby</p><hr><p><a href="https://github.com/ruby/debug/actions/workflows/ruby.yml?query=branch%3Amaster"><img src="https://github.com/ruby/debug/actions/workflows/ruby.yml/badge.svg?branch=master" alt="Ruby"></a> <a href="https://github.com/ruby/debug/actions/workflows/protocol.yml"><img src="https://github.com/ruby/debug/actions/workflows/protocol.yml/badge.svg?sanitize=true" alt="Protocol"></a></p> <h1>debug.rb</h1> <p>This library provides debugging functionality to Ruby (MRI) 2.6 and later.</p> <p>This debug.rb is replacement of traditional lib/debug.rb standard library which is implemented by <code>set_trace_func</code>. New debug.rb has several advantages:</p> <ul> <li> <p>Fast: No performance penalty on non-stepping mode and non-breakpoints.</p> </li> <li> <p><a href="https://raw.githubusercontent.com/ruby/debug/master/#remote-debugging">Remote debugging</a>: Support remote debugging natively.</p> <ul> <li> <p>UNIX domain socket (UDS)</p> </li> <li> <p>TCP/IP</p> </li> <li> <p>Integration with rich debugger frontends</p> <table> <thead> <tr> <th>Frontend</th> <th><a href="https://github.com/ruby/debug#invoke-as-a-remote-debuggee">Console</a></th> <th><a href="https://github.com/ruby/debug#vscode-integration">VSCode</a></th> <th><a href="https://raw.githubusercontent.com/ruby/debug/master/#chrome-devtool-integration">Chrome DevTool</a></th> </tr> </thead> <tbody> <tr> <td>Connection</td> <td>UDS, TCP/IP</td> <td>UDS, TCP/IP</td> <td>TCP/IP</td> </tr> <tr> <td>Requirement</td> <td>No</td> <td><a href="https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg">vscode-rdbg</a></td> <td>Chrome</td> </tr> </tbody> </table> </li> </ul> </li> <li> <p>Extensible: application can introduce debugging support with several ways:</p> <ul> <li>By <code>rdbg</code> command</li> <li>By loading libraries with <code>-r</code> command line option</li> <li>By calling Ruby's method explicitly</li> </ul> </li> <li> <p>Misc</p> <ul> <li>Support threads (almost done) and ractors (TODO).</li> <li>Support suspending and entering to the console debugging with <code>Ctrl-C</code> at most of timing.</li> <li>Show parameters on backtrace command.</li> <li>Support recording &amp; replay debugging.</li> </ul> </li> </ul> <h1>Installation</h1> <pre><code>$ gem install debug </code></pre> <p>or specify <code>-Ipath/to/debug/lib</code> in <code>RUBYOPT</code> or each ruby command-line option, especially for debug this gem development.</p> <p>If you use Bundler, write the following line to your Gemfile.</p> <pre><code>gem "debug", "&gt;= 1.0.0" </code></pre> <p>(The version constraint is important; <code>debug &lt; 1.0.0</code> is an older, abandoned gem that is completely different from this product.)</p> <h1>HOW TO USE</h1> <p>To use a debugger, roughly you will do the following steps:</p> <ol> <li>Set breakpoints.</li> <li>Run a program with the debugger.</li> <li>At the breakpoint, enter the debugger console.</li> <li>Use debug commands. <ul> <li><a href="https://raw.githubusercontent.com/ruby/debug/master/#evaluate">Evaluate Ruby expressions</a> (e.g. <code>p lvar</code> to see the local variable <code>lvar</code>).</li> <li><a href="https://raw.githubusercontent.com/ruby/debug/master/#information">Query the program status</a> (e.g. <code>info</code> to see information about the current frame).</li> <li><a href="https://raw.githubusercontent.com/ruby/debug/master/#control-flow">Control program flow</a> (e.g. move to the another line with <code>step</code>, to the next line with <code>next</code>).</li> <li><a href="https://raw.githubusercontent.com/ruby/debug/master/#breakpoint">Set another breakpoint</a> (e.g. <code>catch Exception</code> to set a breakpoint that'll be triggered when <code>Exception</code> is raised).</li> <li><a href="https://raw.githubusercontent.com/ruby/debug/master/#trace">Activate tracing in your program</a> (e.g. <code>trace call</code> to trace method calls).</li> <li><a href="https://raw.githubusercontent.com/ruby/debug/master/#configuration-1">Change the configuration</a> (e.g. <code>config set no_color true</code> to disable coloring).</li> <li>Continue the program (<code>c</code> or <code>continue</code>) and goto 3.</li> </ul> </li> </ol> <h2>Invoke with the debugger</h2> <p>There are several options for (1) and (2). Please choose your favorite way.</p> <h3>Modify source code with <a href="https://raw.githubusercontent.com/ruby/debug/master/#bindingbreak-method"><code>binding.break</code></a> (similar to <code>binding.pry</code> or <code>binding.irb</code>)</h3> <p>If you can modify the source code, you can use the debugger by adding <code>require 'debug'</code> at the top of your program and putting <a href="https://raw.githubusercontent.com/ruby/debug/master/#bindingbreak-method"><code>binding.break</code></a> method into lines where you want to stop as breakpoints like <code>binding.pry</code> and <code>binding.irb</code>.</p> <p>You can also use its 2 aliases in the same way:</p> <ul> <li><code>binding.b</code></li> <li><code>debugger</code></li> </ul> <p>After that, run the program as usual and you will enter the debug console at breakpoints you inserted.</p> <p>The following example shows the demonstration of <a href="https://raw.githubusercontent.com/ruby/debug/master/#bindingbreak-method"><code>binding.break</code></a>.</p> <pre><code class="language-shell">$ cat target.rb # Sample program require 'debug' a = 1 b = 2 binding.break # Program will stop here c = 3 d = 4 binding.break # Program will stop here p [a, b, c, d] $ ruby target.rb # Run the program normally. DEBUGGER: Session start (pid: 7604) [1, 10] in target.rb 1| require 'debug' 2| 3| a = 1 4| b = 2 =&gt; 5| binding.break # Now you can see it stops at this line 6| c = 3 7| d = 4 8| binding.break 9| p [a, b, c, d] 10| =&gt;#0 &lt;main&gt; at target.rb:5 (rdbg) info locals # You can show local variables =&gt;#0 &lt;main&gt; at target.rb:5 %self =&gt; main a =&gt; 1 b =&gt; 2 c =&gt; nil d =&gt; nil (rdbg) continue # Continue the execution [3, 11] in target.rb 3| a = 1 4| b = 2 5| binding.break 6| c = 3 7| d = 4 =&gt; 8| binding.break # Again the program stops here 9| p [a, b, c, d] 10| 11| __END__ =&gt;#0 &lt;main&gt; at target.rb:8 (rdbg) info locals # And you can see the updated local variables =&gt;#0 &lt;main&gt; at target.rb:8 %self =&gt; main a =&gt; 1 b =&gt; 2 c =&gt; 3 d =&gt; 4 (rdbg) continue [1, 2, 3, 4] </code></pre> <h3>Invoke the program from the debugger as a traditional debuggers</h3> <p>If you don't want to modify the source code, you can set breakpoints with a debug command <code>break</code> (<code>b</code> for short). Using <code>rdbg</code> command (or <code>bundle exec rdbg</code>) to launch the program without any modifications, you can run the program with the debugger.</p> <pre><code class="language-shell">$ cat target.rb # Sample program a = 1 b = 2 c = 3 d = 4 p [a, b, c, d] $ rdbg target.rb # run like `ruby target.rb` DEBUGGER: Session start (pid: 7656) [1, 7] in target.rb =&gt; 1| a = 1 2| b = 2 3| c = 3 4| d = 4 5| p [a, b, c, d] 6| 7| __END__ =&gt;#0 &lt;main&gt; at target.rb:1 (rdbg) </code></pre> <p><code>rdbg</code> command suspends the program at the beginning of the given script (<code>target.rb</code> in this case) and you can use debug commands. <code>(rdbg)</code> is prompt. Let's set breakpoints on line 3 and line 5 with <code>break</code> command (<code>b</code> for short).</p> <pre><code class="language-shell">(rdbg) break 3 # set breakpoint at line 3 #0 BP - Line /mnt/c/ko1/src/rb/ruby-debug/target.rb:3 (line) (rdbg) b 5 # set breakpoint at line 5 #1 BP - Line /mnt/c/ko1/src/rb/ruby-debug/target.rb:5 (line) (rdbg) break # show all registered breakpoints #0 BP - Line /mnt/c/ko1/src/rb/ruby-debug/target.rb:3 (line) #1 BP - Line /mnt/c/ko1/src/rb/ruby-debug/target.rb:5 (line) </code></pre> <p>You can see that two breakpoints are registered. Let's continue the program by <code>continue</code> command.</p> <pre><code class="language-shell">(rdbg) continue [1, 7] in target.rb 1| a = 1 2| b = 2 =&gt; 3| c = 3 4| d = 4 5| p [a, b, c, d] 6| 7| __END__ =&gt;#0 &lt;main&gt; at target.rb:3 Stop by #0 BP - Line /mnt/c/ko1/src/rb/ruby-debug/target.rb:3 (line) (rdbg) </code></pre> <p>You can see that we can stop at line 3. Let's see the local variables with <code>info</code> command, and continue. You can also confirm that the program will suspend at line 5 and you can use <code>info</code> command again.</p> <pre><code class="language-shell">(rdbg) info =&gt;#0 &lt;main&gt; at target.rb:3 %self =&gt; main a =&gt; 1 b =&gt; 2 c =&gt; nil d =&gt; nil (rdbg) continue [1, 7] in target.rb 1| a = 1 2| b = 2 3| c = 3 4| d = 4 =&gt; 5| p [a, b, c, d] 6| 7| __END__ =&gt;#0 &lt;main&gt; at target.rb:5 Stop by #1 BP - Line /mnt/c/ko1/src/rb/ruby-debug/target.rb:5 (line) (rdbg) info =&gt;#0 &lt;main&gt; at target.rb:5 %self =&gt; main a =&gt; 1 b =&gt; 2 c =&gt; 3 d =&gt; 4 (rdbg) continue [1, 2, 3, 4] </code></pre> <p>By the way, using <code>rdbg</code> command you can suspend your application with <code>C-c</code> (SIGINT) and enter the debug console. It will help that if you want to know what the program is doing.</p> <h3>Use <code>rdbg</code> with commands written in Ruby</h3> <p>If you want to run a command written in Ruby like like <code>rake</code>, <code>rails</code>, <code>bundle</code>, <code>rspec</code> and so on, you can use <code>rdbg -c</code> option.</p> <ul> <li>Without <code>-c</code> option, <code>rdbg &lt;name&gt;</code> means that <code>&lt;name&gt;</code> is Ruby script and invoke it like <code>ruby &lt;name&gt;</code> with the debugger.</li> <li>With <code>-c</code> option, <code>rdbg -c &lt;name&gt;</code> means that <code>&lt;name&gt;</code> is command in <code>PATH</code> and simply invoke it with the debugger.</li> </ul> <p>Examples:</p> <ul> <li><code>rdbg -c -- rails server</code></li> <li><code>rdbg -c -- bundle exec ruby foo.rb</code></li> <li><code>rdbg -c -- bundle exec rake test</code></li> <li><code>rdbg -c -- ruby target.rb</code> is same as <code>rdbg target.rb</code></li> </ul> <p>NOTE: <code>--</code> is needed to separate the command line options for <code>rdbg</code> and invoking command. For example, <code>rdbg -c rake -T</code> is recognized like <code>rdbg -c -T -- rake</code>. It should be <code>rdbg -c -- rake -T</code>.</p> <p>NOTE: If you want to use bundler (<code>bundle</code> command), you need to write <code>gem debug</code> line in your <code>Gemfile</code>.</p> <h3>Using VSCode</h3> <p>Like other languages, you can use this debugger on the VSCode.</p> <ol> <li>Install <a href="https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg">VSCode rdbg Ruby Debugger - Visual Studio Marketplace</a></li> <li>Open <code>.rb</code> file (e.g. <code>target.rb</code>)</li> <li>Register breakpoints with "Toggle breakpoint" in Run menu (or type F9 key)</li> <li>Choose "Start debugging" in "Run" menu (or type F5 key)</li> <li>You will see a dialog "Debug command line" and you can choose your favorite command line your want to run.</li> <li>Chosen command line is invoked with <code>rdbg -c</code> and VSCode shows the details at breakpoints.</li> </ol> <p>Please refer <a href="https://code.visualstudio.com/docs/editor/debugging">Debugging in Visual Studio Code</a> for operations on VSCode.</p> <p>You can configure the extension in <code>.vscode/launch.json</code>. Please see the extension page for more details.</p> <h2>Remote debugging</h2> <p>You can use this debugger as a remote debugger. For example, it will help the following situations:</p> <ul> <li>Your application does not run on TTY and it is hard to use <code>binding.pry</code> or <code>binding.irb</code>. <ul> <li>Your application is running on Docker container and there is no TTY.</li> <li>Your application is running as a daemon.</li> <li>Your application uses pipe for STDIN or STDOUT.</li> </ul> </li> <li>Your application is running as a daemon and you want to query the running status (checking a backtrace and so on).</li> </ul> <p>You can run your application as a remote debuggee and the remote debugger console can attach to the debuggee anytime.</p> <h3>Invoke as a remote debuggee</h3> <p>There are multiple ways to run your program as a debuggee:</p> <table> <thead> <tr> <th>Stop at program start</th> <th><a href="https://github.com/ruby/debug#rdbg---open-or-rdbg--o-for-short"><code>rdbg</code> option</a></th> <th><a href="https://github.com/ruby/debug#require-debugopen-in-a-program">require</a></th> <th><a href="https://github.com/ruby/debug#start-by-method">debugger API</a></th> </tr> </thead> <tbody> <tr> <td>Yes</td> <td><code>rdbg --open</code></td> <td><code>require "debug/open"</code></td> <td><code>DEBUGGER__.open</code></td> </tr> <tr> <td>No</td> <td><code>rdbg --open --nonstop</code></td> <td><code>require "debug/open_nonstop"</code></td> <td><code>DEBUGGER__.open(nonstop: true)</code></td> </tr> </tbody> </table> <h4><code>rdbg --open</code> (or <code>rdbg -O</code> for short)</h4> <p>You can run a script with <code>rdbg --open target.rb</code> command and run a <code>target.rb</code> as a debuggee program. It also opens the network port and suspends at the beginning of <code>target.rb</code>.</p> <pre><code class="language-shell">$ exe/rdbg --open target.rb DEBUGGER: Session start (pid: 7773) DEBUGGER: Debugger can attach via UNIX domain socket (/home/ko1/.ruby-debug-sock/ruby-debug-ko1-7773) DEBUGGER: wait for debugger connection... </code></pre> <p>By default, <code>rdbg --open</code> uses UNIX domain socket and generates path name automatically (<code>/home/ko1/.ruby-debug-sock/ruby-debug-ko1-7773</code> in this case).</p> <p>You can connect to the debuggee with <code>rdbg --attach</code> command (<code>rdbg -A</code> for short).</p> <pre><code class="language-shell">$ rdbg -A [1, 7] in target.rb =&gt; 1| a = 1 2| b = 2 3| c = 3 4| d = 4 5| p [a, b, c, d] 6| 7| __END__ =&gt;#0 &lt;main&gt; at target.rb:1 (rdbg:remote) </code></pre> <p>If there is no other opening ports on the default directory, <code>rdbg --attach</code> command chooses the only one opening UNIX domain socket and connect to it. If there are more files, you need to specify the file.</p> <p>When <code>rdbg --attach</code> connects to the debuggee, you can use any debug commands (set breakpoints, continue the program and so on) like local debug console. When an debuggee program exits, the remote console will also terminate.</p> <p>NOTE: If you use <code>quit</code> command, only remote console exits and the debuggee program continues to run (and you can connect it again). If you want to exit the debuggee program, use <code>kill</code> command.</p> <p>If you want to use TCP/IP for the remote debugging, you need to specify the port and host with <code>--port</code> like <code>rdbg --open --port 12345</code> and it binds to <code>localhost:12345</code>.</p> <p>To connect to the debuggee, you need to specify the port.</p> <pre><code class="language-shell">$ rdbg --attach 12345 </code></pre> <p>If you want to choose the host to bind, you can use <code>--host</code> option. Note that all messages communicated between the debugger and the debuggee are <em>NOT</em> encrypted so please use remote debugging carefully.</p> <h4><code>require 'debug/open'</code> in a program</h4> <p>If you can modify the program, you can open debugging port by adding <code>require 'debug/open'</code> line in the program.</p> <p>If you don't want to stop the program at the beginning, you can also use <code>require 'debug/open_nonstop'</code>. Using <code>debug/open_nonstop</code> is useful if you want to open a backdoor to the application. However, it is also danger because it can become another vulnerability. Please use it carefully.</p> <p>By default, UNIX domain socket is used for the debugging port. To use TCP/IP, you can set the <code>RUBY_DEBUG_PORT</code> environment variable.</p> <pre><code class="language-shell">$ RUBY_DEBUG_PORT=12345 ruby target.rb </code></pre> <h3>Integration with external debugger frontend</h3> <p>You can attach with external debugger frontend with VSCode and Chrome.</p> <pre><code>$ rdbg --open=[frontend] target.rb </code></pre> <p>will open a debug port and <code>[frontend]</code> can attach to the port.</p> <p>Also <code>open</code> command allows opening the debug port.</p> <h4>VSCode integration</h4> <p>(<a href="https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg">vscode-rdbg v0.0.9</a> or later is required)</p> <p>If you don't run a debuggee Ruby process on VSCode, you can attach with VSCode later with the following steps.</p> <p><code>rdbg --open=vscode</code> opens the debug port and tries to invoke the VSCode (<code>code</code> command).</p> <pre><code>$ rdbg --open=vscode target.rb DEBUGGER: Debugger can attach via UNIX domain socket (/tmp/ruby-debug-sock-1000/ruby-debug-ko1-27706) DEBUGGER: wait for debugger connection... Launching: code /tmp/ruby-debug-vscode-20211014-27706-gd7e85/ /tmp/ruby-debug-vscode-20211014-27706-gd7e85/README.rb DEBUGGER: Connected. </code></pre> <p>And it tries to invoke the new VSCode window and VSCode starts attaching to the debuggee Ruby program automatically.</p> <p>You can also use <code>open vscode</code> command in REPL.</p> <pre><code>$ rdbg target.rb [1, 8] in target.rb 1| =&gt; 2| p a = 1 3| p b = 2 4| p c = 3 5| p d = 4 6| p e = 5 7| 8| __END__ =&gt;#0 &lt;main&gt; at target.rb:2 (rdbg) open vscode # command DEBUGGER: wait for debugger connection... DEBUGGER: Debugger can attach via UNIX domain socket (/tmp/ruby-debug-sock-1000/ruby-debug-ko1-28337) Launching: code /tmp/ruby-debug-vscode-20211014-28337-kg9dm/ /tmp/ruby-debug-vscode-20211014-28337-kg9dm/README.rb DEBUGGER: Connected. </code></pre> <p>If the machine which runs the Ruby process doesn't have a <code>code</code> command, the following message will be shown:</p> <pre><code>(rdbg) open vscode DEBUGGER: wait for debugger connection... DEBUGGER: Debugger can attach via UNIX domain socket (/tmp/ruby-debug-sock-1000/ruby-debug-ko1-455) Launching: code /tmp/ruby-debug-vscode-20211014-455-gtjpwi/ /tmp/ruby-debug-vscode-20211014-455-gtjpwi/README.rb DEBUGGER: Can not invoke the command. Use the command-line on your terminal (with modification if you need). code /tmp/ruby-debug-vscode-20211014-455-gtjpwi/ /tmp/ruby-debug-vscode-20211014-455-gtjpwi/README.rb If your application is running on a SSH remote host, please try: code --remote ssh-remote+[SSH hostname] /tmp/ruby-debug-vscode-20211014-455-gtjpwi/ /tmp/ruby-debug-vscode-20211014-455-gtjpwi/README.rb </code></pre> <p>and try to use proposed commands.</p> <p>Note that you can attach with <code>rdbg --attach</code> and continue REPL debugging.</p> <h4>Chrome DevTool integration</h4> <p>With <code>rdbg --open=chrome</code> command will show the following message.</p> <pre><code>$ rdbg target.rb --open=chrome DEBUGGER: Debugger can attach via TCP/IP (127.0.0.1:43633) DEBUGGER: With Chrome browser, type the following URL in the address-bar: devtools://devtools/bundled/inspector.html?v8only=true&amp;panel=sources&amp;ws=127.0.0.1:57231/b32a55cd-2eb5-4c5c-87d8-b3dfc59d80ef DEBUGGER: wait for debugger connection... </code></pre> <p>Type <code>devtools://devtools/bundled/inspector.html?v8only=true&amp;panel=sources&amp;ws=127.0.0.1:57231/b32a55cd-2eb5-4c5c-87d8-b3dfc59d80ef</code> in the address-bar on Chrome browser, and you can continue the debugging with chrome browser.</p> <p>Also <code>open chrome</code> command works like <code>open vscode</code>.</p> <p>For more information about how to use Chrome debugging, you might want to read <a href="https://developer.chrome.com/docs/devtools/">here</a>.</p> <h2>Configuration</h2> <p>You can configure the debugger's behavior with debug commands and environment variables. When the debug session is started, initial scripts are loaded so you can put your favorite configurations in the initial scripts.</p> <h3>Configuration list</h3> <p>You can configure debugger's behavior with environment variables and <code>config</code> command. Each configuration has environment variable and the name which can be specified by <code>config</code> command.</p> <pre><code># configuration example config set log_level INFO config set no_color true </code></pre> <ul> <li> <p>UI</p> <ul> <li><code>RUBY_DEBUG_LOG_LEVEL</code> (<code>log_level</code>): Log level same as Logger (default: WARN)</li> <li><code>RUBY_DEBUG_SHOW_SRC_LINES</code> (<code>show_src_lines</code>): Show n lines source code on breakpoint (default: 10)</li> <li><code>RUBY_DEBUG_SHOW_EVALEDSRC</code> (<code>show_evaledsrc</code>): Show actually evaluated source (default: false)</li> <li><code>RUBY_DEBUG_SHOW_FRAMES</code> (<code>show_frames</code>): Show n frames on breakpoint (default: 2)</li> <li><code>RUBY_DEBUG_USE_SHORT_PATH</code> (<code>use_short_path</code>): Show shorten PATH (like $(Gem)/foo.rb) (default: false)</li> <li><code>RUBY_DEBUG_NO_COLOR</code> (<code>no_color</code>): Do not use colorize (default: false)</li> <li><code>RUBY_DEBUG_NO_SIGINT_HOOK</code> (<code>no_sigint_hook</code>): Do not suspend on SIGINT (default: false)</li> <li><code>RUBY_DEBUG_NO_RELINE</code> (<code>no_reline</code>): Do not use Reline library (default: false)</li> <li><code>RUBY_DEBUG_NO_HINT</code> (<code>no_hint</code>): Do not show the hint on the REPL (default: false)</li> <li><code>RUBY_DEBUG_NO_LINENO</code> (<code>no_lineno</code>): Do not show line numbers (default: false)</li> </ul> </li> <li> <p>CONTROL</p> <ul> <li><code>RUBY_DEBUG_SKIP_PATH</code> (<code>skip_path</code>): Skip showing/entering frames for given paths</li> <li><code>RUBY_DEBUG_SKIP_NOSRC</code> (<code>skip_nosrc</code>): Skip on no source code lines (default: false)</li> <li><code>RUBY_DEBUG_KEEP_ALLOC_SITE</code> (<code>keep_alloc_site</code>): Keep allocation site and p, pp shows it (default: false)</li> <li><code>RUBY_DEBUG_POSTMORTEM</code> (<code>postmortem</code>): Enable postmortem debug (default: false)</li> <li><code>RUBY_DEBUG_FORK_MODE</code> (<code>fork_mode</code>): Control which process activates a debugger after fork (both/parent/child) (default: both)</li> <li><code>RUBY_DEBUG_SIGDUMP_SIG</code> (<code>sigdump_sig</code>): Sigdump signal (default: false)</li> </ul> </li> <li> <p>BOOT</p> <ul> <li><code>RUBY_DEBUG_NONSTOP</code> (<code>nonstop</code>): Nonstop mode (default: false)</li> <li><code>RUBY_DEBUG_STOP_AT_LOAD</code> (<code>stop_at_load</code>): Stop at just loading location (default: false)</li> <li><code>RUBY_DEBUG_INIT_SCRIPT</code> (<code>init_script</code>): debug command script path loaded at first stop</li> <li><code>RUBY_DEBUG_COMMANDS</code> (<code>commands</code>): debug commands invoked at first stop. Commands should be separated by <code>;;</code></li> <li><code>RUBY_DEBUG_NO_RC</code> (<code>no_rc</code>): ignore loading ~/.rdbgrc(.rb) (default: false)</li> <li><code>RUBY_DEBUG_HISTORY_FILE</code> (<code>history_file</code>): history file (default: ~/.rdbg_history)</li> <li><code>RUBY_DEBUG_SAVE_HISTORY</code> (<code>save_history</code>): maximum save history lines (default: 10000)</li> </ul> </li> <li> <p>REMOTE</p> <ul> <li><code>RUBY_DEBUG_OPEN</code> (<code>open</code>): Open remote port (same as <code>rdbg --open</code> option)</li> <li><code>RUBY_DEBUG_PORT</code> (<code>port</code>): TCP/IP remote debugging: port</li> <li><code>RUBY_DEBUG_HOST</code> (<code>host</code>): TCP/IP remote debugging: host (default: 127.0.0.1)</li> <li><code>RUBY_DEBUG_SOCK_PATH</code> (<code>sock_path</code>): UNIX Domain Socket remote debugging: socket path</li> <li><code>RUBY_DEBUG_SOCK_DIR</code> (<code>sock_dir</code>): UNIX Domain Socket remote debugging: socket directory</li> <li><code>RUBY_DEBUG_LOCAL_FS_MAP</code> (<code>local_fs_map</code>): Specify local fs map</li> <li><code>RUBY_DEBUG_SKIP_BP</code> (<code>skip_bp</code>): Skip breakpoints if no clients are attached (default: false)</li> <li><code>RUBY_DEBUG_COOKIE</code> (<code>cookie</code>): Cookie for negotiation</li> <li><code>RUBY_DEBUG_CHROME_PATH</code> (<code>chrome_path</code>): Platform dependent path of Chrome (For more information, See <a href="https://github.com/ruby/debug/pull/334/files#diff-5fc3d0a901379a95bc111b86cf0090b03f857edfd0b99a0c1537e26735698453R55-R64">here</a>)</li> </ul> </li> <li> <p>OBSOLETE</p> <ul> <li><code>RUBY_DEBUG_PARENT_ON_FORK</code> (<code>parent_on_fork</code>): Keep debugging parent process on fork (default: false)</li> </ul> </li> </ul> <p>There are other environment variables:</p> <ul> <li><code>NO_COLOR</code>: If the value is set, set <code>RUBY_DEBUG_NO_COLOR</code> (<a href="https://no-color.org/">NO_COLOR: disabling ANSI color output in various Unix commands</a>).</li> <li><code>RUBY_DEBUG_ENABLE</code>: If the value is <code>0</code>, do not enable debug.gem feature.</li> <li><code>RUBY_DEBUG_ADDED_RUBYOPT</code>: Remove this value from <code>RUBYOPT</code> at first. This feature helps loading debug.gem with <code>RUBYOPT='-r debug/...'</code> and you don't want to derive it to child processes. In this case you can set <code>RUBY_DEBUG_ADDED_RUBYOPT='-r debug/...'</code> (same value) and this string will be deleted from <code>RUBYOPT</code> at first.</li> <li><code>RUBY_DEBUG_EDITOR</code> or <code>EDITOR</code>: An editor used by <code>edit</code> debug command.</li> <li><code>RUBY_DEBUG_BB</code>: Define <code>Kernel#bb</code> method which is alias of <code>Kernel#debugger</code>.</li> </ul> <h3>Initial scripts</h3> <p>If there is <code>~/.rdbgrc</code>, the file is loaded as an initial script (which contains debug commands) when the debug session is started.</p> <ul> <li><code>RUBY_DEBUG_INIT_SCRIPT</code> environment variable can specify the initial script file.</li> <li>You can specify the initial script with <code>rdbg -x initial_script</code> (like gdb's <code>-x</code> option).</li> </ul> <p>Initial scripts are useful to write your favorite configurations. For example, you can set break points with <code>break file:123</code> in <code>~/.rdbgrc</code>.</p> <p>If there are <code>~/.rdbgrc.rb</code> is available, it is also loaded as a ruby script at same timing.</p> <h2>Debug command on the debug console</h2> <p>On the debug console, you can use the following debug commands.</p> <p>There are additional features:</p> <ul> <li><code>&lt;expr&gt;</code> without debug command is almost same as <code>pp &lt;expr&gt;</code>. <ul> <li>If the input line <code>&lt;expr&gt;</code> does <em>NOT</em> start with any debug command, the line <code>&lt;expr&gt;</code> will be evaluated as a Ruby expression and the result will be printed with <code>pp</code> method. So that the input <code>foo.bar</code> is same as <code>pp foo.bar</code>.</li> <li>If <code>&lt;expr&gt;</code> is recognized as a debug command, of course it is not evaluated as a Ruby expression, but is executed as debug command. For example, you can not evaluate such single letter local variables <code>i</code>, <code>b</code>, <code>n</code>, <code>c</code> because they are single letter debug commands. Use <code>p i</code> instead.</li> <li>So the author (Koichi Sasada) recommends to use <code>p</code>, <code>pp</code> or <code>eval</code> command to evaluate the Ruby expression everytime.</li> </ul> </li> <li><code>Enter</code> without any input repeats the last command (useful when repeating <code>step</code>s) for some commands.</li> <li><code>Ctrl-D</code> is equal to <code>quit</code> command.</li> <li><a href="https://docs.google.com/spreadsheets/d/1TlmmUDsvwK4sSIyoMv-io52BUUz__R5wpu-ComXlsw0/edit?usp=sharing">debug command compare sheet - Google Sheets</a></li> </ul> <p>You can use the following debug commands. Each command should be written in 1 line. The <code>[...]</code> notation means this part can be eliminate. For example, <code>s[tep]</code> means <code>s</code> or <code>step</code> are valid command. <code>ste</code> is not valid. The <code>&lt;...&gt;</code> notation means the argument.</p> <h3>Control flow</h3> <ul> <li><code>s[tep]</code> <ul> <li>Step in. Resume the program until next breakable point.</li> </ul> </li> <li><code>s[tep] &lt;n&gt;</code> <ul> <li>Step in, resume the program at <code>&lt;n&gt;</code>th breakable point.</li> </ul> </li> <li><code>n[ext]</code> <ul> <li>Step over. Resume the program until next line.</li> </ul> </li> <li><code>n[ext] &lt;n&gt;</code> <ul> <li>Step over, same as <code>step &lt;n&gt;</code>.</li> </ul> </li> <li><code>fin[ish]</code> <ul> <li>Finish this frame. Resume the program until the current frame is finished.</li> </ul> </li> <li><code>fin[ish] &lt;n&gt;</code> <ul> <li>Finish <code>&lt;n&gt;</code>th frames.</li> </ul> </li> <li><code>u[ntil]</code> <ul> <li>Similar to <code>next</code> command, but only stop later lines or the end of the current frame.</li> <li>Similar to gdb's <code>advance</code> command.</li> </ul> </li> <li><code>u[ntil] &lt;[file:]line&gt;</code> <ul> <li>Run til the program reaches given location or the end of the current frame.</li> </ul> </li> <li><code>u[ntil] &lt;name&gt;</code> <ul> <li>Run til the program invokes a method <code>&lt;name&gt;</code>. <code>&lt;name&gt;</code> can be a regexp with <code>/name/</code>.</li> </ul> </li> <li><code>c</code> or <code>cont</code> or <code>continue</code> <ul> <li>Resume the program.</li> </ul> </li> <li><code>q[uit]</code> or <code>Ctrl-D</code> <ul> <li>Finish debugger (with the debuggee process on non-remote debugging).</li> </ul> </li> <li><code>q[uit]!</code> <ul> <li>Same as q[uit] but without the confirmation prompt.</li> </ul> </li> <li><code>kill</code> <ul> <li>Stop the debuggee process with <code>Kernel#exit!</code>.</li> </ul> </li> <li><code>kill!</code> <ul> <li>Same as kill but without the confirmation prompt.</li> </ul> </li> <li><code>sigint</code> <ul> <li>Execute SIGINT handler registered by the debuggee.</li> <li>Note that this command should be used just after stop by <code>SIGINT</code>.</li> </ul> </li> </ul> <h3>Breakpoint</h3> <ul> <li><code>b[reak]</code> <ul> <li>Show all breakpoints.</li> </ul> </li> <li><code>b[reak] &lt;line&gt;</code> <ul> <li>Set breakpoint on <code>&lt;line&gt;</code> at the current frame's file.</li> </ul> </li> <li><code>b[reak] &lt;file&gt;:&lt;line&gt;</code> or <code>&lt;file&gt; &lt;line&gt;</code> <ul> <li>Set breakpoint on <code>&lt;file&gt;:&lt;line&gt;</code>.</li> </ul> </li> <li><code>b[reak] &lt;class&gt;#&lt;name&gt;</code> <ul> <li>Set breakpoint on the method <code>&lt;class&gt;#&lt;name&gt;</code>.</li> </ul> </li> <li><code>b[reak] &lt;expr&gt;.&lt;name&gt;</code> <ul> <li>Set breakpoint on the method <code>&lt;expr&gt;.&lt;name&gt;</code>.</li> </ul> </li> <li><code>b[reak] ... if: &lt;expr&gt;</code> <ul> <li>break if <code>&lt;expr&gt;</code> is true at specified location.</li> </ul> </li> <li><code>b[reak] ... pre: &lt;command&gt;</code> <ul> <li>break and run <code>&lt;command&gt;</code> before stopping.</li> </ul> </li> <li><code>b[reak] ... do: &lt;command&gt;</code> <ul> <li>break and run <code>&lt;command&gt;</code>, and continue.</li> </ul> </li> <li><code>b[reak] ... path: &lt;path&gt;</code> <ul> <li>break if the path matches to <code>&lt;path&gt;</code>. <code>&lt;path&gt;</code> can be a regexp with <code>/regexp/</code>.</li> </ul> </li> <li><code>b[reak] if: &lt;expr&gt;</code> <ul> <li>break if: <code>&lt;expr&gt;</code> is true at any lines.</li> <li>Note that this feature is super slow.</li> </ul> </li> <li><code>catch &lt;Error&gt;</code> <ul> <li>Set breakpoint on raising <code>&lt;Error&gt;</code>.</li> </ul> </li> <li><code>catch ... if: &lt;expr&gt;</code> <ul> <li>stops only if <code>&lt;expr&gt;</code> is true as well.</li> </ul> </li> <li><code>catch ... pre: &lt;command&gt;</code> <ul> <li>runs <code>&lt;command&gt;</code> before stopping.</li> </ul> </li> <li><code>catch ... do: &lt;command&gt;</code> <ul> <li>stops and run <code>&lt;command&gt;</code>, and continue.</li> </ul> </li> <li><code>catch ... path: &lt;path&gt;</code> <ul> <li>stops if the exception is raised from a <code>&lt;path&gt;</code>. <code>&lt;path&gt;</code> can be a regexp with <code>/regexp/</code>.</li> </ul> </li> <li><code>watch @ivar</code> <ul> <li>Stop the execution when the result of current scope's <code>@ivar</code> is changed.</li> <li>Note that this feature is super slow.</li> </ul> </li> <li><code>watch ... if: &lt;expr&gt;</code> <ul> <li>stops only if <code>&lt;expr&gt;</code> is true as well.</li> </ul> </li> <li><code>watch ... pre: &lt;command&gt;</code> <ul> <li>runs <code>&lt;command&gt;</code> before stopping.</li> </ul> </li> <li><code>watch ... do: &lt;command&gt;</code> <ul> <li>stops and run <code>&lt;command&gt;</code>, and continue.</li> </ul> </li> <li><code>watch ... path: &lt;path&gt;</code> <ul> <li>stops if the path matches <code>&lt;path&gt;</code>. <code>&lt;path&gt;</code> can be a regexp with <code>/regexp/</code>.</li> </ul> </li> <li><code>del[ete]</code> <ul> <li>delete all breakpoints.</li> </ul> </li> <li><code>del[ete] &lt;bpnum&gt;</code> <ul> <li>delete specified breakpoint.</li> </ul> </li> </ul> <h3>Information</h3> <ul> <li><code>bt</code> or <code>backtrace</code> <ul> <li>Show backtrace (frame) information.</li> </ul> </li> <li><code>bt &lt;num&gt;</code> or <code>backtrace &lt;num&gt;</code> <ul> <li>Only shows first <code>&lt;num&gt;</code> frames.</li> </ul> </li> <li><code>bt /regexp/</code> or <code>backtrace /regexp/</code> <ul> <li>Only shows frames with method name or location info that matches <code>/regexp/</code>.</li> </ul> </li> <li><code>bt &lt;num&gt; /regexp/</code> or <code>backtrace &lt;num&gt; /regexp/</code> <ul> <li>Only shows first <code>&lt;num&gt;</code> frames with method name or location info that matches <code>/regexp/</code>.</li> </ul> </li> <li><code>l[ist]</code> <ul> <li>Show current frame's source code.</li> <li>Next <code>list</code> command shows the successor lines.</li> </ul> </li> <li><code>l[ist] -</code> <ul> <li>Show predecessor lines as opposed to the <code>list</code> command.</li> </ul> </li> <li><code>l[ist] &lt;start&gt;</code> or <code>l[ist] &lt;start&gt;-&lt;end&gt;</code> <ul> <li>Show current frame's source code from the line <start> to <end> if given. </end> </start></li> </ul> </li> <li><code>whereami</code> <ul> <li>Show the current frame with source code.</li> </ul> </li> <li><code>edit</code> <ul> <li>Open the current file on the editor (use <code>EDITOR</code> environment variable).</li> <li>Note that edited file will not be reloaded.</li> </ul> </li> <li><code>edit &lt;file&gt;</code> <ul> <li>Open <file> on the editor. </file></li> </ul> </li> <li><code>i[nfo]</code> <ul> <li>Show information about current frame (local/instance variables and defined constants).</li> </ul> </li> <li><code>i[nfo]</code> <subcommand> <ul> <li><code>info</code> has the following sub-commands.</li> <li>Sub-commands can be specified with few letters which is unambiguous, like <code>l</code> for 'locals'.</li> </ul> </subcommand></li> <li><code>i[nfo] l or locals or local_variables</code> <ul> <li>Show information about the current frame (local variables)</li> <li>It includes <code>self</code> as <code>%self</code> and a return value as <code>_return</code>.</li> </ul> </li> <li><code>i[nfo] i or ivars or instance_variables</code> <ul> <li>Show information about instance variables about <code>self</code>.</li> <li><code>info ivars &lt;expr&gt;</code> shows the instance variables of the result of <code>&lt;expr&gt;</code>.</li> </ul> </li> <li><code>i[nfo] c or consts or constants</code> <ul> <li>Show information about accessible constants except toplevel constants.</li> <li><code>info consts &lt;expr&gt;</code> shows the constants of a class/module of the result of <code>&lt;expr&gt;</code></li> </ul> </li> <li><code>i[nfo] g or globals or global_variables</code> <ul> <li>Show information about global variables</li> </ul> </li> <li><code>i[nfo] th or threads</code> <ul> <li>Show all threads (same as <code>th[read]</code>).</li> </ul> </li> <li><code>i[nfo] b or breakpoints or w or watchpoints</code> <ul> <li>Show all breakpoints and watchpoints.</li> </ul> </li> <li><code>i[nfo] ... /regexp/</code> <ul> <li>Filter the output with <code>/regexp/</code>.</li> </ul> </li> <li><code>o[utline]</code> or <code>ls</code> <ul> <li>Show you available methods, constants, local variables, and instance variables in the current scope.</li> </ul> </li> <li><code>o[utline] &lt;expr&gt;</code> or <code>ls &lt;expr&gt;</code> <ul> <li>Show you available methods and instance variables of the given object.</li> <li>If the object is a class/module, it also lists its constants.</li> </ul> </li> <li><code>display</code> <ul> <li>Show display setting.</li> </ul> </li> <li><code>display &lt;expr&gt;</code> <ul> <li>Show the result of <code>&lt;expr&gt;</code> at every suspended timing.</li> </ul> </li> <li><code>undisplay</code> <ul> <li>Remove all display settings.</li> </ul> </li> <li><code>undisplay &lt;displaynum&gt;</code> <ul> <li>Remove a specified display setting.</li> </ul> </li> </ul> <h3>Frame control</h3> <ul> <li><code>f[rame]</code> <ul> <li>Show the current frame.</li> </ul> </li> <li><code>f[rame] &lt;framenum&gt;</code> <ul> <li>Specify a current frame. Evaluation are run on specified frame.</li> </ul> </li> <li><code>up</code> <ul> <li>Specify the upper frame.</li> </ul> </li> <li><code>down</code> <ul> <li>Specify the lower frame.</li> </ul> </li> </ul> <h3>Evaluate</h3> <ul> <li><code>p &lt;expr&gt;</code> <ul> <li>Evaluate like <code>p &lt;expr&gt;</code> on the current frame.</li> </ul> </li> <li><code>pp &lt;expr&gt;</code> <ul> <li>Evaluate like <code>pp &lt;expr&gt;</code> on the current frame.</li> </ul> </li> <li><code>eval &lt;expr&gt;</code> <ul> <li>Evaluate <code>&lt;expr&gt;</code> on the current frame.</li> </ul> </li> <li><code>irb</code> <ul> <li>Invoke <code>irb</code> on the current frame.</li> </ul> </li> </ul> <h3>Trace</h3> <ul> <li><code>trace</code> <ul> <li>Show available tracers list.</li> </ul> </li> <li><code>trace line</code> <ul> <li>Add a line tracer. It indicates line events.</li> </ul> </li> <li><code>trace call</code> <ul> <li>Add a call tracer. It indicate call/return events.</li> </ul> </li> <li><code>trace exception</code> <ul> <li>Add an exception tracer. It indicates raising exceptions.</li> </ul> </li> <li><code>trace object &lt;expr&gt;</code> <ul> <li>Add an object tracer. It indicates that an object by <code>&lt;expr&gt;</code> is passed as a parameter or a receiver on method call.</li> </ul> </li> <li><code>trace ... /regexp/</code> <ul> <li>Indicates only matched events to <code>/regexp/</code>.</li> </ul> </li> <li><code>trace ... into: &lt;file&gt;</code> <ul> <li>Save trace information into: <code>&lt;file&gt;</code>.</li> </ul> </li> <li><code>trace off &lt;num&gt;</code> <ul> <li>Disable tracer specified by <code>&lt;num&gt;</code> (use <code>trace</code> command to check the numbers).</li> </ul> </li> <li><code>trace off [line|call|pass]</code> <ul> <li>Disable all tracers. If <code>&lt;type&gt;</code> is provided, disable specified type tracers.</li> </ul> </li> <li><code>record</code> <ul> <li>Show recording status.</li> </ul> </li> <li><code>record [on|off]</code> <ul> <li>Start/Stop recording.</li> </ul> </li> <li><code>step back</code> <ul> <li>Start replay. Step back with the last execution log.</li> <li><code>s[tep]</code> does stepping forward with the last log.</li> </ul> </li> <li><code>step reset</code> <ul> <li>Stop replay .</li> </ul> </li> </ul> <h3>Thread control</h3> <ul> <li><code>th[read]</code> <ul> <li>Show all threads.</li> </ul> </li> <li><code>th[read] &lt;thnum&gt;</code> <ul> <li>Switch thread specified by <code>&lt;thnum&gt;</code>.</li> </ul> </li> </ul> <h3>Configuration</h3> <ul> <li><code>config</code> <ul> <li>Show all configuration with description.</li> </ul> </li> <li><code>config &lt;name&gt;</code> <ul> <li>Show current configuration of <name> . </name></li> </ul> </li> <li><code>config set &lt;name&gt; &lt;val&gt;</code> or <code>config &lt;name&gt; = &lt;val&gt;</code> <ul> <li>Set <name> to <val> . </val> </name></li> </ul> </li> <li><code>config append &lt;name&gt; &lt;val&gt;</code> or <code>config &lt;name&gt; &lt;&lt; &lt;val&gt;</code> <ul> <li>Append <code>&lt;val&gt;</code> to <code>&lt;name&gt;</code> if it is an array.</li> </ul> </li> <li><code>config unset &lt;name&gt;</code> <ul> <li>Set <name> to default. </name></li> </ul> </li> <li><code>source &lt;file&gt;</code> <ul> <li>Evaluate lines in <code>&lt;file&gt;</code> as debug commands.</li> </ul> </li> <li><code>open</code> <ul> <li>open debuggee port on UNIX domain socket and wait for attaching.</li> <li>Note that <code>open</code> command is EXPERIMENTAL.</li> </ul> </li> <li><code>open [&lt;host&gt;:]&lt;port&gt;</code> <ul> <li>open debuggee port on TCP/IP with given <code>[&lt;host&gt;:]&lt;port&gt;</code> and wait for attaching.</li> </ul> </li> <li><code>open vscode</code> <ul> <li>open debuggee port for VSCode and launch VSCode if available.</li> </ul> </li> <li><code>open chrome</code> <ul> <li>open debuggee port for Chrome and wait for attaching.</li> </ul> </li> </ul> <h3>Help</h3> <ul> <li><code>h[elp]</code> <ul> <li>Show help for all commands.</li> </ul> </li> <li><code>h[elp] &lt;command&gt;</code> <ul> <li>Show help for the given command.</li> </ul> </li> </ul> <h2>Debugger API</h2> <h3>Start debugging</h3> <h4>Start by requiring a library</h4> <p>You can start debugging without <code>rdbg</code> command by requiring the following libraries:</p> <ul> <li><code>require 'debug'</code>: Same as <code>rdbg --nonstop --no-sigint-hook</code>.</li> <li><code>require 'debug/start'</code>: Same as <code>rdbg</code>.</li> <li><code>require 'debug/open'</code>: Same as <code>rdbg --open</code>.</li> <li><code>require 'debug/open_nonstop'</code>: Same as <code>rdbg --open --nonstop</code>.</li> </ul> <p>You need to require one of them at the very beginning of the application. Using <code>ruby -r</code> (for example <code>ruby -r debug/start target.rb</code>) is another way to invoke with debugger.</p> <p>NOTE: Until Ruby 3.0, there is old <code>lib/debug.rb</code> standard library. So that if this gem is not installed, or if <code>Gemfile</code> missed to list this gem and <code>bundle exec</code> is used, you will see the following output:</p> <pre><code class="language-shell">$ ruby -r debug -e0 .../2.7.3/lib/ruby/2.7.0/x86_64-linux/continuation.so: warning: callcc is obsolete; use Fiber instead Debug.rb Emacs support available. .../2.7.3/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:162: if RUBYGEMS_ACTIVATION_MONITOR.respond_to?(:mon_owned?) (rdb:1) </code></pre> <p><code>lib/debug.rb</code> was not maintained well in recent years, and the purpose of this library is to rewrite old <code>lib/debug.rb</code> with recent techniques.</p> <h4>Start by method</h4> <p>After loading <code>debug/session</code>, you can start debug session with the following methods. They are convenient if you want to specify debug configurations in your program.</p> <ul> <li><code>DEBUGGER__.start(**kw)</code>: start debug session with local console.</li> <li><code>DEBUGGER__.open(**kw)</code>: open debug port with configuration (without configurations open with UNIX domain socket)</li> <li><code>DEBUGGER__.open_unix(**kw)</code>: open debug port with UNIX domain socket</li> <li><code>DEBUGGER__.open_tcp(**kw)</code>: open debug port with TCP/IP</li> </ul> <p>For example:</p> <pre><code class="language-ruby">require 'debug/session' DEBUGGER__.start(no_color: true, # disable colorize log_level: 'INFO') # Change log_level to INFO ... # your application code </code></pre> <h3><code>binding.break</code> method</h3> <p><code>binding.break</code> (or <code>binding.b</code>) set breakpoints at written line. It also has several keywords.</p> <p>If <code>do: 'command'</code> is specified, the debugger suspends the program and run the <code>command</code> as a debug command and continue the program. It is useful if you only want to call a debug command and don't want to stop there.</p> <pre><code>def initialize @a = 1 binding.b do: 'info \n watch @a' end </code></pre> <p>On this case, execute the <code>info</code> command then register a watch breakpoint for <code>@a</code> and continue to run. You can also use <code>;;</code> instead of <code>\n</code> to separate your commands.</p> <p>If <code>pre: 'command'</code> is specified, the debugger suspends the program and run the <code>command</code> as a debug command, and keep suspend. It is useful if you have operations before suspend.</p> <pre><code>def foo binding.b pre: 'p bar()' ... end </code></pre> <p>On this case, you can see the result of <code>bar()</code> every time you stop there.</p> <h2>rdbg command help</h2> <pre><code>exe/rdbg [options] -- [debuggee options] Debug console mode: -n, --nonstop Do not stop at the beginning of the script. -e DEBUG_COMMAND Execute debug command at the beginning of the script. -x, --init-script=FILE Execute debug command in the FILE. --no-rc Ignore ~/.rdbgrc --no-color Disable colorize --no-sigint-hook Disable to trap SIGINT -c, --command Enable command mode. The first argument should be a command name in $PATH. Example: 'rdbg -c bundle exec rake test' -O, --open=[FRONTEND] Start remote debugging with opening the network port. If TCP/IP options are not given, a UNIX domain socket will be used. If FRONTEND is given, prepare for the FRONTEND. Now rdbg, vscode and chrome is supported. --sock-path=SOCK_PATH UNIX Domain socket path --port=PORT Listening TCP/IP port --host=HOST Listening TCP/IP host --cookie=COOKIE Set a cookie for connection Debug console mode runs Ruby program with the debug console. 'rdbg target.rb foo bar' starts like 'ruby target.rb foo bar'. 'rdbg -- -r foo -e bar' starts like 'ruby -r foo -e bar'. 'rdbg -c rake test' starts like 'rake test'. 'rdbg -c -- rake test -t' starts like 'rake test -t'. 'rdbg -c bundle exec rake test' starts like 'bundle exec rake test'. 'rdbg -O target.rb foo bar' starts and accepts attaching with UNIX domain socket. 'rdbg -O --port 1234 target.rb foo bar' starts accepts attaching with TCP/IP localhost:1234. 'rdbg -O --port 1234 -- -r foo -e bar' starts accepts attaching with TCP/IP localhost:1234. 'rdbg target.rb -O chrome --port 1234' starts and accepts connecting from Chrome Devtools with localhost:1234. Attach mode: -A, --attach Attach to debuggee process. Attach mode attaches the remote debug console to the debuggee process. 'rdbg -A' tries to connect via UNIX domain socket. If there are multiple processes are waiting for the debugger connection, list possible debuggee names. 'rdbg -A path' tries to connect via UNIX domain socket with given path name. 'rdbg -A port' tries to connect to localhost:port via TCP/IP. 'rdbg -A host port' tries to connect to host:port via TCP/IP. Other options: -v Show version number --version Show version number and exit -h, --help Print help --util=NAME Utility mode (used by tools) --stop-at-load Stop immediately when the debugging feature is loaded. NOTE All messages communicated between a debugger and a debuggee are *NOT* encrypted. Please use the remote debugging feature carefully. </code></pre> <h1>Additional Resources</h1> <ul> <li><a href="https://st0012.dev/from-byebug-to-ruby-debug">From byebug to ruby/debug</a> by Stan Lo - A migration guide for <code>byebug</code> users.</li> <li><a href="https://st0012.dev/ruby-debug-cheatsheet">ruby/debug cheatsheet</a> by Stan Lo</li> </ul> <h1>Contributing</h1> <p>Bug reports and pull requests are welcome on GitHub at <a href="https://github.com/ruby/debug">https://github.com/ruby/debug</a>. This debugger is not mature so your feedback will help us.</p> <p>Please also check the <a href="https://raw.githubusercontent.com/ruby/debug/master/CONTRIBUTING.md">contributing guideline</a>.</p> <h1>Acknowledgement</h1> <ul> <li>Some tests are based on <a href="https://github.com/deivid-rodriguez/byebug">deivid-rodriguez/byebug: Debugging in Ruby 2</a></li> <li>Several codes in <code>server_cdp.rb</code> are based on <a href="https://github.com/geoffreylitt/ladybug">geoffreylitt/ladybug: Visual Debugger</a></li> </ul> + + \ No newline at end of file diff --git a/runoff/daily/index.xml b/runoff/daily/index.xml index 34a3970ae53..74d990c15af 100644 --- a/runoff/daily/index.xml +++ b/runoff/daily/index.xml @@ -1,7 +1,7 @@ GitHub RUNOFF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:42Z + 2023-09-24T01:40:31Z Daily Trending of RUNOFF in GitHub \ No newline at end of file diff --git a/runoff/weekly/index.xml b/runoff/weekly/index.xml new file mode 100644 index 00000000000..8c91f26f411 --- /dev/null +++ b/runoff/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub RUNOFF Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:12Z + Weekly Trending of RUNOFF in GitHub + + \ No newline at end of file diff --git a/rust/daily/index.xml b/rust/daily/index.xml index 370d9e88ed5..99a69cab618 100644 --- a/rust/daily/index.xml +++ b/rust/daily/index.xml @@ -1,7 +1,14 @@ GitHub Rust Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:36:49Z + 2023-09-24T01:40:51Z Daily Trending of Rust in GitHub + + hexagonal-sun/ampkt + 2023-09-24T01:40:51Z + tag:github.com,2023-09-24:/hexagonal-sun/ampkt + + <p>Amateur radio packet experimentation framework</p><hr><h1>AMPKT - Amateur radio packet explorer</h1> <p>This is a project to facilitate experimentation with connecting two Linux machine's network stacks via the amateur radio bands.</p> <h2>Required Hardware</h2> <p>You will need two full-duplex SDRs, one for each machine. They will also need to be compatible with SoapySDR.</p> <p>Hardware that is known to work:</p> <ul> <li>USRP N210</li> <li>BladeRF</li> <li>LimeSDR</li> </ul> <h2>Getting Started</h2> <ol> <li>Build the project:</li> </ol> <pre><code class="language-console">cargo build --release </code></pre> <ol start="2"> <li>Connect your SDR hardware and start the <code>ampkt</code> binary (note that you will probably need to run with <code>sudo</code> so that the <code>tap</code> interface can be created):</li> </ol> <pre><code class="language-console">sudo ./target/release/ampkt "driver=bladerf" 433000000 435000000 </code></pre> <p>This will start ampkt using bladerf hardware, Txing on 433MHz and Rxing on 435MHz.</p> <ol start="3"> <li> <p>On a second machine do the same, ensuring that you swap the frequencies.</p> </li> <li> <p>On both machines, bring up the tap interface and assign an IP address:</p> </li> </ol> <pre><code class="language-console">sudo ifconfig tap0 up sudo ip add 10.0.0.1/24 dev tap0 </code></pre> <p>Making sure you use a different IP address on the other machine.</p> <ol start="5"> <li>At this point you should have working comms. You can check running <code>ping</code>and seeing whether you get a reply from the other machine</li> </ol> <pre><code class="language-console">ping 10.0.0.2 </code></pre> <h2>Technical Information</h2> <p>A Linux <a href="https://www.kernel.org/doc/html/v5.8/networking/tuntap.html">TAP</a> interface is created. This interface is used as the sink for the RX path and the source for the TX path.</p> <h3>Tx Path</h3> <p>Each incoming packet that is read from the tap interface is converted into a frame. The frame consists of a sync header (repeated twice) a frame size (as u16) followed by the packet data. We then convert the frame to a stream of symbols. We use QPSK modulation which means we have two bits per symbol. Each 2-bit nibble is converted into a symbol using the following map:</p> <pre><code>A =&gt; 0b00 B =&gt; 0b01 C =&gt; 0b10 D =&gt; 0b11 </code></pre> <p>We then module the symbol stream into QPSK with the following constellation:</p> <pre><code> Im | B | A | | -------------&gt; re | | D | C | </code></pre> <p>The output of the QPSK modulator is then sent to the SDR for Tx.</p> <h3>Rx Path</h3> <p>Samples from the SDR are first sent into the clock sync block. This block decimates the incoming stream by selection of particular samples from the input stream. The number of samples that are 'skipped' during selection is shifted by an error function which attempts to pick the sample at the peak of a symbol.</p> <p>The decimated stream is then sent into the carrier sync block. This attempts to compensate for any difference in clocks between the SDRs by 'de-reotating' the constellation. When this block has 'locked' the output should be stable samples in each quadrent of the constellation plot.</p> <p>Next, the samples passed through the QPSK demodulator which converts the samples into a stream of symbols.</p> <p>The symbol stream is then passed through a frame decoder. This block attempts to create the original packet of data from a stream of symbols. We use a SYNC header of 16-bytes (repeated twice) to resolve the phase ambiguity. Then the computed difference in phase is applied to all incoming symbols to decode the frame.</p> <p>Finally the frames are written to the TAP interface for injection into the Linux kernel network stack.</p> + \ No newline at end of file diff --git a/rust/weekly/index.xml b/rust/weekly/index.xml new file mode 100644 index 00000000000..f31337230f2 --- /dev/null +++ b/rust/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Rust Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:27Z + Weekly Trending of Rust in GitHub + + + godot-rust/gdext + 2023-09-24T02:00:27Z + tag:github.com,2023-09-24:/godot-rust/gdext + + <p>Rust bindings for Godot 4</p><hr><p><img src="https://raw.githubusercontent.com/godot-rust/gdext/master/assets/gdext-ferris.png" alt="logo.png"></p> <h1>Rust bindings for Godot 4</h1> <p><em><strong><a href="https://godot-rust.github.io">Website</a></strong> | <strong><a href="https://godot-rust.github.io/docs/gdext">API Docs</a></strong> | <a href="https://discord.gg/aKUCJ8rJsc">Discord</a> | <a href="https://mastodon.gamedev.place/@GodotRust">Mastodon</a> | <a href="https://twitter.com/GodotRust">Twitter</a></em></p> <p><strong>gdext</strong> is a library to bind the <strong>Rust</strong> language to <strong>Godot 4</strong>.</p> <p><a href="https://godotengine.org">Godot</a> is an open-source game engine, whose version 4 has brought large-scale improvements.<br> Its <em>GDExtension</em> API allows integrating third-party languages and libraries.</p> <blockquote> <p>If you are looking for a Rust binding for GDNative (Godot 3), check out <a href="https://github.com/godot-rust/gdnative"><code>gdnative</code></a>.</p> </blockquote> <h2>Philosophy</h2> <p>The Rust binding is an alternative to GDScript, with a focus on type safety, scalability and performance.</p> <p>The primary goal of gdext is to provide a <em><strong>pragmatic Rust API</strong></em> for game developers.</p> <p>Recurring workflows should be simple and require minimal boilerplate. APIs are designed to be safe and idiomatic Rust wherever possible. Due to interacting with Godot as a C++ engine, we sometimes follow unconventional approaches to provide a good user experience.</p> <h2>Development status</h2> <p>The gdext library has evolved a lot during 2023 and is now in a usable state for smaller projects. However, it is still in an early stage and there are certain things to keep in mind.</p> <blockquote> <p><strong>Warning</strong> The public API introduces breaking changes from time to time. Most of these are motivated by new features and improved ergonomics for existing ones. See also <a href="https://godot-rust.github.io/book/gdext/advanced/compatibility.html#rust-api-stability">API stability</a> in the book.</p> </blockquote> <p><strong>Features:</strong> While most Godot features are available, some less commonly used ones are missing. See <a href="https://github.com/godot-rust/gdext/issues/24">#24</a> for an up-to-date overview.<br> At this point, there is <strong>no</strong> support for Android, iOS or WASM. Contributions are very welcome!</p> <p><strong>Bugs:</strong> Most undefined behavior related to the FFI layer has been ironed out, but there may still be occasional safety issues. Apart from that, new additions to the library are typically not feature-complete from the start, but become more robust due to feedback and testing over time. To counter bugs, we have an elaborate CI suite including clippy, unit tests, engine integration tests and memory sanitizers.</p> <h2>Getting started</h2> <p>To dive into Rust development with gdext, check out <a href="https://godot-rust.github.io/book/gdext">the godot-rust book</a>. The book is still under construction, but already includes a tutorial to set up a simple example.</p> <p>To consult the API reference, have a look at the online <a href="https://godot-rust.github.io/docs/gdext">API Docs</a>.</p> <p>Furthermore, we provide a small example game in the <a href="https://raw.githubusercontent.com/godot-rust/gdext/master/examples/dodge-the-creeps"><code>examples/dodge-the-creeps</code> directory</a>.</p> <p>If you need help, join our <a href="https://discord.gg/aKUCJ8rJsc">Discord</a> server and ask in the <code>#help-gdext</code> channel!</p> <h2>License</h2> <p>We use the <a href="https://www.mozilla.org/en-US/MPL">Mozilla Public License 2.0</a>. MPL tries to find a balance between permissive (MIT, Apache, Zlib) and copyleft licenses (GPL, LGPL).</p> <p>The license provides a lot of freedom: you can use the library commercially and keep your own code closed-source, i.e. game development is not restricted. The main condition is that if you change gdext <em>itself</em>, you need to make those changes available (and only those, no surrounding code).</p> <h2>Contributing</h2> <p>Contributions are very welcome! If you want to help out, see <a href="https://raw.githubusercontent.com/godot-rust/gdext/master/Contributing.md"><code>Contributing.md</code></a> for some pointers on getting started.</p> + + + CloudCannon/pagefind + 2023-09-24T02:00:27Z + tag:github.com,2023-09-24:/CloudCannon/pagefind + + <p>Static low-bandwidth search at scale</p><hr><h1>Pagefind</h1> <p>Pagefind is a fully static search library that aims to perform well on large sites, while using as little of your users’ bandwidth as possible, and without hosting any infrastructure.</p> <p>The full documentation on using Pagefind can be found at <a href="https://pagefind.app/">https://pagefind.app/</a>.</p> + + + SeaQL/sea-orm + 2023-09-24T02:00:27Z + tag:github.com,2023-09-24:/SeaQL/sea-orm + + <p>🐚 An async & dynamic ORM for Rust</p><hr><div align="center"> <img src="https://www.sea-ql.org/SeaORM/img/SeaORM banner.png"> <h1>SeaORM</h1> <h3>🐚 An async &amp; dynamic ORM for Rust</h3> <p><a href="https://crates.io/crates/sea-orm"><img src="https://img.shields.io/crates/v/sea-orm.svg?sanitize=true" alt="crate"></a> <a href="https://docs.rs/sea-orm"><img src="https://docs.rs/sea-orm/badge.svg?sanitize=true" alt="docs"></a> <a href="https://github.com/SeaQL/sea-orm/actions/workflows/rust.yml"><img src="https://github.com/SeaQL/sea-orm/actions/workflows/rust.yml/badge.svg?sanitize=true" alt="build status"></a></p> </div> <h1>SeaORM</h1> <h4>SeaORM is a relational ORM to help you build web services in Rust with the familiarity of dynamic languages.</h4> <h2>Getting Started</h2> <p><a href="https://github.com/SeaQL/sea-orm/stargazers/"><img src="https://img.shields.io/github/stars/SeaQL/sea-orm.svg?style=social&amp;label=Star&amp;maxAge=1" alt="GitHub stars"></a> If you like what we do, consider starring, sharing and contributing!</p> <ul> <li><a href="https://www.sea-ql.org/SeaORM">Documentation</a></li> <li><a href="https://www.sea-ql.org/sea-orm-tutorial">Tutorial</a></li> <li><a href="https://www.sea-ql.org/sea-orm-cookbook">Cookbook</a></li> </ul> <p><a href="https://discord.com/invite/uCPdDXzbdv"><img src="https://img.shields.io/discord/873880840487206962?label=Discord" alt="Discord"></a> Join our Discord server to chat with others in the SeaQL community!</p> <p>Please help us with maintaining SeaORM by completing the <a href="https://sea-ql.org/community-survey">SeaQL Community Survey 2023</a>!</p> <p>Integration examples:</p> <ul> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/actix_example">Actix v4 Example</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/actix3_example">Actix v3 Example</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/axum_example">Axum Example</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/graphql_example">GraphQL Example</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/jsonrpsee_example">jsonrpsee Example</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/poem_example">Poem Example</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/rocket_example">Rocket Example</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/salvo_example">Salvo Example</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/tonic_example">Tonic Example</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/examples/seaography_example">Seaography Example</a></li> </ul> <h2>Features</h2> <ol> <li> <p>Async</p> <p>Relying on <a href="https://github.com/launchbadge/sqlx">SQLx</a>, SeaORM is a new library with async support from day 1.</p> </li> <li> <p>Dynamic</p> <p>Built upon <a href="https://github.com/SeaQL/sea-query">SeaQuery</a>, SeaORM allows you to build complex dynamic queries.</p> </li> <li> <p>Testable</p> <p>Use mock connections and/or SQLite to write tests for your application logic.</p> </li> <li> <p>Service Oriented</p> <p>Quickly build services that join, filter, sort and paginate data in REST, GraphQL and gRPC APIs.</p> </li> </ol> <h2>A quick taste of SeaORM</h2> <h3>Entity</h3> <pre><code class="language-rust">use sea_orm::entity::prelude::*; #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] #[sea_orm(table_name = "cake")] pub struct Model { #[sea_orm(primary_key)] pub id: i32, pub name: String, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] pub enum Relation { #[sea_orm(has_many = "super::fruit::Entity")] Fruit, } impl Related&lt;super::fruit::Entity&gt; for Entity { fn to() -&gt; RelationDef { Relation::Fruit.def() } } </code></pre> <h3>Select</h3> <pre><code class="language-rust">// find all models let cakes: Vec&lt;cake::Model&gt; = Cake::find().all(db).await?; // find and filter let chocolate: Vec&lt;cake::Model&gt; = Cake::find() .filter(cake::Column::Name.contains("chocolate")) .all(db) .await?; // find one model let cheese: Option&lt;cake::Model&gt; = Cake::find_by_id(1).one(db).await?; let cheese: cake::Model = cheese.unwrap(); // find related models (lazy) let fruits: Vec&lt;fruit::Model&gt; = cheese.find_related(Fruit).all(db).await?; // find related models (eager) let cake_with_fruits: Vec&lt;(cake::Model, Vec&lt;fruit::Model&gt;)&gt; = Cake::find().find_with_related(Fruit).all(db).await?; </code></pre> <h3>Insert</h3> <pre><code class="language-rust">let apple = fruit::ActiveModel { name: Set("Apple".to_owned()), ..Default::default() // no need to set primary key }; let pear = fruit::ActiveModel { name: Set("Pear".to_owned()), ..Default::default() }; // insert one let pear = pear.insert(db).await?; // insert many Fruit::insert_many([apple, pear]).exec(db).await?; </code></pre> <h3>Update</h3> <pre><code class="language-rust">use sea_orm::sea_query::{Expr, Value}; let pear: Option&lt;fruit::Model&gt; = Fruit::find_by_id(1).one(db).await?; let mut pear: fruit::ActiveModel = pear.unwrap().into(); pear.name = Set("Sweet pear".to_owned()); // update one let pear: fruit::Model = pear.update(db).await?; // update many: UPDATE "fruit" SET "cake_id" = NULL WHERE "fruit"."name" LIKE '%Apple%' Fruit::update_many() .col_expr(fruit::Column::CakeId, Expr::value(Value::Int(None))) .filter(fruit::Column::Name.contains("Apple")) .exec(db) .await?; </code></pre> <h3>Save</h3> <pre><code class="language-rust">let banana = fruit::ActiveModel { id: NotSet, name: Set("Banana".to_owned()), ..Default::default() }; // create, because primary key `id` is `NotSet` let mut banana = banana.save(db).await?; banana.name = Set("Banana Mongo".to_owned()); // update, because primary key `id` is `Set` let banana = banana.save(db).await?; </code></pre> <h3>Delete</h3> <pre><code class="language-rust">// delete one let orange: Option&lt;fruit::Model&gt; = Fruit::find_by_id(1).one(db).await?; let orange: fruit::Model = orange.unwrap(); fruit::Entity::delete(orange.into_active_model()) .exec(db) .await?; // or simply let orange: Option&lt;fruit::Model&gt; = Fruit::find_by_id(1).one(db).await?; let orange: fruit::Model = orange.unwrap(); orange.delete(db).await?; // delete many: DELETE FROM "fruit" WHERE "fruit"."name" LIKE 'Orange' fruit::Entity::delete_many() .filter(fruit::Column::Name.contains("Orange")) .exec(db) .await?; </code></pre> <h2>🧭 Seaography: GraphQL integration (preview)</h2> <p><a href="https://github.com/SeaQL/seaography">Seaography</a> is a GraphQL framework built on top of SeaORM. Seaography allows you to build GraphQL resolvers quickly. With just a few commands, you can launch a GraphQL server from SeaORM entities!</p> <p>Starting <code>0.12</code>, <code>seaography</code> integration is built into <code>sea-orm</code>. While Seaography development is still in an early stage, it is especially useful in prototyping and building internal-use admin panels.</p> <img src="https://raw.githubusercontent.com/SeaQL/sea-orm/master/examples/seaography_example/Seaography%20example.png"> <p>Look at the <a href="https://github.com/SeaQL/sea-orm/tree/master/examples/seaography_example">Seaography Example</a> to learn more.</p> <h2>Learn More</h2> <ol> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/DESIGN.md">Design</a></li> <li><a href="https://www.sea-ql.org/SeaORM/docs/internal-design/architecture/">Architecture</a></li> <li><a href="https://www.sea-ql.org/blog/2022-07-30-engineering/">Engineering</a></li> <li><a href="https://github.com/SeaQL/sea-orm/tree/master/CHANGELOG.md">Change Log</a></li> </ol> <h2>Who's using SeaORM?</h2> <p>The following products are powered by SeaORM:</p> <table> <tbody> <tr> <td><br><a href="https://caido.io/"><img src="https://www.sea-ql.org/SeaORM/img/other/caido-logo.png" width="250"></a><br>A lightweight web security auditing toolkit</td> <td><a href="https://www.svix.com/"><img src="https://www.sea-ql.org/SeaORM/img/other/svix-logo.svg?sanitize=true" width="250"></a><br>The enterprise ready webhooks service</td> <td><a href="https://www.spyglass.fyi/"><img src="https://www.sea-ql.org/SeaORM/img/other/spyglass-logo.svg?sanitize=true" width="250"></a><br>A personal search engine</td> </tr> </tbody> </table> <p>For more projects, see <a href="https://github.com/SeaQL/sea-orm/raw/master/COMMUNITY.md#built-with-seaorm">Built with SeaORM</a>. Feel free to <a href="https://github.com/SeaQL/sea-orm/issues/403">submit yours</a>!</p> <h2>License</h2> <p>Licensed under either of</p> <ul> <li>Apache License, Version 2.0 (<a href="https://raw.githubusercontent.com/SeaQL/sea-orm/master/LICENSE-APACHE">LICENSE-APACHE</a> or <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> <li>MIT license (<a href="https://raw.githubusercontent.com/SeaQL/sea-orm/master/LICENSE-MIT">LICENSE-MIT</a> or <a href="http://opensource.org/licenses/MIT">http://opensource.org/licenses/MIT</a>)</li> </ul> <p>at your option.</p> <h2>Contribution</h2> <p>Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.</p> <p>SeaORM is a community driven project. We welcome you to participate, contribute and together help build Rust's future.</p> <p>A big shout out to our contributors!</p> <p><a href="https://github.com/SeaQL/sea-orm/graphs/contributors"><img src="https://opencollective.com/sea-orm/contributors.svg?width=1000&amp;button=false" alt="Contributors"></a></p> <h2>Sponsorship</h2> <p><a href="https://www.sea-ql.org/">SeaQL.org</a> is an independent open-source organization run by passionate developers. If you enjoy using our libraries, please star and share our repositories. If you feel generous, a small donation via <a href="https://github.com/sponsors/SeaQL">GitHub Sponsor</a> will be greatly appreciated, and goes a long way towards sustaining the organization.</p> <p>We invite you to participate, contribute and together help build Rust's future.</p> <h2>Mascot</h2> <p>A friend of Ferris, Terres the hermit crab is the official mascot of SeaORM. His hobby is collecting shells.</p> <img alt="Terres" src="https://www.sea-ql.org/SeaORM/img/Terres.png" width="400"> + + \ No newline at end of file diff --git a/sage/daily/index.xml b/sage/daily/index.xml index a786f1beb2b..33e409e0896 100644 --- a/sage/daily/index.xml +++ b/sage/daily/index.xml @@ -1,7 +1,7 @@ GitHub Sage Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:11Z + 2023-09-24T01:40:59Z Daily Trending of Sage in GitHub \ No newline at end of file diff --git a/sage/weekly/index.xml b/sage/weekly/index.xml new file mode 100644 index 00000000000..6ee96e45850 --- /dev/null +++ b/sage/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Sage Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:37Z + Weekly Trending of Sage in GitHub + + \ No newline at end of file diff --git a/saltstack/daily/index.xml b/saltstack/daily/index.xml index ed8b3ffb01f..1d1064acf4c 100644 --- a/saltstack/daily/index.xml +++ b/saltstack/daily/index.xml @@ -1,7 +1,7 @@ GitHub SaltStack Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:10Z + 2023-09-24T01:41:00Z Daily Trending of SaltStack in GitHub \ No newline at end of file diff --git a/saltstack/weekly/index.xml b/saltstack/weekly/index.xml new file mode 100644 index 00000000000..31eb48383c6 --- /dev/null +++ b/saltstack/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SaltStack Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:35Z + Weekly Trending of SaltStack in GitHub + + \ No newline at end of file diff --git a/sas/daily/index.xml b/sas/daily/index.xml index 80df789ae68..d9df0ee5943 100644 --- a/sas/daily/index.xml +++ b/sas/daily/index.xml @@ -1,7 +1,7 @@ GitHub SAS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:08Z + 2023-09-24T01:41:01Z Daily Trending of SAS in GitHub \ No newline at end of file diff --git a/sas/weekly/index.xml b/sas/weekly/index.xml new file mode 100644 index 00000000000..c777d951d3d --- /dev/null +++ b/sas/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SAS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:34Z + Weekly Trending of SAS in GitHub + + \ No newline at end of file diff --git a/sass/daily/index.xml b/sass/daily/index.xml index 87795760588..b1543b907a2 100644 --- a/sass/daily/index.xml +++ b/sass/daily/index.xml @@ -1,7 +1,7 @@ GitHub Sass Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:10Z + 2023-09-24T01:41:02Z Daily Trending of Sass in GitHub \ No newline at end of file diff --git a/sass/weekly/index.xml b/sass/weekly/index.xml new file mode 100644 index 00000000000..07102e11cc0 --- /dev/null +++ b/sass/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Sass Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:36Z + Weekly Trending of Sass in GitHub + + \ No newline at end of file diff --git a/scala/daily/index.xml b/scala/daily/index.xml index f72dde4470e..f1fe208d7cf 100644 --- a/scala/daily/index.xml +++ b/scala/daily/index.xml @@ -1,7 +1,28 @@ GitHub Scala Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:18Z + 2023-09-24T01:41:08Z Daily Trending of Scala in GitHub + + getkyo/kyo + 2023-09-24T01:41:08Z + tag:github.com,2023-09-24:/getkyo/kyo + + <p>Toolkit for Scala Development</p><hr><h2><img src="https://raw.githubusercontent.com/getkyo/kyo/master/kyo.png" alt="kyo"></h2> <p><img src="https://github.com/getkyo/kyo/workflows/build/badge.svg?sanitize=true" alt="Build Status"> <img src="https://img.shields.io/discord/1087005439859904574" alt="Chat"></p> <!--![Version](https://img.shields.io/maven-central/v/io.getkyo/kyo-core_3)---> <h3>This readme is a working in progress. If you'd like to try Kyo, please build from source.</h3> <p>Kyo is a complete toolkit for Scala development, spanning from browser-based apps in ScalaJS to high-performance backends on the JVM. It introduces a novel approach based on algebraic effects to deliver straightforward APIs in the pure Functional Programming paradigm. Unlike similar solutions, Kyo achieves this without inundating developers with esoteric concepts from Category Theory or using cryptic symbolic operators, resulting in a development experience that is both intuitive and robust.</p> <p>Drawing inspiration from <a href="https://zio.dev/">ZIO</a>'s <a href="https://degoes.net/articles/rotating-effects">effect rotation</a>, Kyo takes a more generalized approach. While ZIO restricts effects to two channels, dependency injection and short-circuiting, Kyo allows for an arbitrary number of effectful channels. This enhancement gives developers greater flexibility in effect management, while also simplifying Kyo's internal codebase through more principled design patterns.</p> <h2>Table of Contents</h2> <ol> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#the--type">The <code>&gt;</code> type</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#effect-widening">Effect widening</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#using-effects">Using effects</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#direct-syntax">Direct Syntax</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#core-effects">Core Effects</a> <ol> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#aborts-short-circuiting">Aborts: Short Circuiting</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#ios-side-effects">IOs: Side Effects</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#envs-dependency-injection">Envs: Dependency Injection</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#locals-scoped-values">Locals: Scoped Values</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#resources-resource-safety">Resources: Resource Safety</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#choices-exploratory-branching">Choices: Exploratory Branching</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#aspects-aspect-oriented-programming">Aspects: Aspect-Oriented Programming</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#options-optional-values">Options: Optional Values</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#tries-exception-handling">Tries: Exception Handling</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#consoles-console-interaction">Consoles: Console Interaction</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#clocks-time-management">Clocks: Time Management</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#randoms-random-values">Randoms: Random Values</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#loggers-logging">Loggers: Logging</a></li> </ol> </li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#concurrent-effects">Concurrent Effects</a> <ol> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#fibers-green-threads">Fibers: Green Threads</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#queues-concurrent-queuing">Queues: Concurrent Queuing</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#channels-asynchronous-communication">Channels: Asynchronous Communication</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#meters-computational-limits">Meters: Computational Limits</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#timers-scheduled-execution">Timers: Scheduled Execution</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#latches-fiber-coordination">Latches: Fiber Coordination</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#atomics-concurrent-state">Atomics: Concurrent State</a></li> <li><a href="https://raw.githubusercontent.com/getkyo/kyo/main/#adders-concurrent-accumulation">Adders: Concurrent Accumulation</a></li> </ol> </li> </ol> <h2>The <code>&gt;</code> type</h2> <p>In Kyo, computations are expressed via the infix type <code>&gt;</code>, which takes two parameters:</p> <ol> <li>The type of the expected output.</li> <li>The pending effects that need to be handled, represented as an unordered type-level set via a type intersection.</li> </ol> <pre><code class="language-scala">import kyo._ // Expect an 'Int' after handling // the 'Options' effect Int &gt; Options // Expect a 'String' after handling // both 'Options' and 'IOs' effects String &gt; (Options with IOs) </code></pre> <blockquote> <p>Note: The naming convention for effect types is the plural form of the functionalities they manage.</p> </blockquote> <p>In Kyo, any type <code>T</code> is automatically considered to be of type <code>T &gt; Any</code>, where <code>Any</code> denotes an absence of pending effects. In simpler terms, this means that every value in Kyo is automatically a computation, but one without any effects that you need to handle.</p> <p>This design choice streamlines your code by removing the necessity to differentiate between pure values and computations that may have effects. So, when you're dealing with a value of type <code>T &gt; Any</code>, you can safely extract the <code>pure</code> value directly, without worrying about handling any effects.</p> <pre><code class="language-scala">import kyo._ // An 'Int' is also an 'Int &gt; Any' val a: Int &gt; Any = 1 // Since there are no pending effects, // the computation can produce a pure value val b: Int = a.pure </code></pre> <blockquote> <p>Note: This README provides explicit type declarations for clarity. However, Scala's type inference is generally able to infer Kyo types properly.</p> </blockquote> <p>This unique property removes the need to juggle between <code>map</code> and <code>flatMap</code>. All values are automatically promoted to a Kyo computation with zero pending effects, enabling you to focus on your application logic rather than the intricacies of effect handling.</p> <pre><code class="language-scala">import kyo.options._ import kyo.tries._ // Kyo still supports both `map` and `flatMap` def example1(a: Int &gt; Options, b: Int &gt; Tries): Int &gt; (Options with Tries) = a.flatMap(v =&gt; b.map(_ + v)) // but using only `map` is recommended def example2(a: Int &gt; Options, b: Int &gt; Tries): Int &gt; (Options with Tries) = a.map(v =&gt; b.map(_ + v)) </code></pre> <p>The <code>map</code> method automatically updates the set of pending effects. When you apply <code>map</code> to computations that have different pending effects, Kyo reconciles these into a new computation type that combines all the unique pending effects from both operands.</p> <h2>Effect widening</h2> <p>Kyo's set of pending effects is a contravariant type parameter. This encoding permits computations to be widened to encompass a larger set of effects.</p> <pre><code class="language-scala">// An 'Int' with an empty effect set (`Any`) val a: Int &gt; Any = 1 // Widening the effect set from empty (`Any`) // to include `Options` val b: Int &gt; Options = a // Further widening the effect set to include // both `Options` and `Tries` val c: Int &gt; (Options with Tries) = b // Directly widening a pure value to have // `Options` and `Tries` val d: Int &gt; (Options with Tries) = 42 </code></pre> <p>This characteristic enables a fluent API for effectful code. Methods can accept parameters with a specific set of pending effects while also permitting those with fewer or no effects.</p> <pre><code class="language-scala">// The function expects a parameter with both // 'Options' and 'Tries' effects pending def example1(v: Int &gt; (Options with Tries)) = v.map(_ + 1) // A value with only the 'Tries' effect can be // automatically widened to include 'Options' def example2(v: Int &gt; Tries) = example1(v) // A pure value can also be automatically widened def example3 = example1(42) </code></pre> <p>Here, <code>example1</code> is designed to accept an <code>Int &gt; (Options with Tries)</code>. However, thanks to the contravariant encoding of the type-level set of effects, <code>example2</code> and <code>example3</code> demonstrate that you can also pass in computations with a smaller set of effects—or even a pure value—and they will be automatically widened to fit the expected type.</p> <h2>Using effects</h2> <p>Kyo offers a modular approach to effect management, accommodating both built-in and user-defined effects organized in <code>object</code> modules. Importing the corresponding module into scope brings in the effect and any additional types or implicits it may need. The naming convention uses lowercase module names for each effect type.</p> <pre><code class="language-scala">// for 'Options' effect import kyo.options._ // for 'Tries' effect import kyo.tries._ </code></pre> <p>For effects that support it, a <code>get</code> method is provided, which permits the "extraction" of the underlying value from a container type.</p> <pre><code class="language-scala">// Retrieve an 'Int' tagged with 'Options' val a: Int &gt; Options = Options.get(Some(1)) </code></pre> <p>Effect handling is done using the <code>run*</code> methods. Though named <code>run</code>, the operation doesn't necessarily execute the computation immediately, as the effect handling can also be suspended if another effect is pending.</p> <pre><code class="language-scala">// Handle the 'Options' effect val b: Option[Int] &gt; Any = Options.run(a) // Retrieve pure value as there are no more pending effects val c: Option[Int] = b.pure </code></pre> <p>The order in which you handle effects in Kyo can significantly influence both the type and value of the result. Since effects are unordered at the type level, the runtime behavior depends on the sequence in which effects are processed.</p> <pre><code class="language-scala">import scala.util._ def optionsFirst(a: Int &gt; (Options with Tries)): Try[Option[Int]] = { val b: Option[Int] &gt; Tries = Options.run(a) val c: Try[Option[Int]] &gt; Any = Tries.run(b) c.pure } def triesFirst(a: Int &gt; (Options with Tries)): Option[Try[Int]] = { val b: Try[Int] &gt; Options = Tries.run(a) val c: Option[Try[Int]] &gt; Any = Options.run(b) c.pure } </code></pre> <p>In this example, the sequence in which effects are handled has a significant impact on the outcome. This is especially true for effects that can short-circuit the computation.</p> <pre><code class="language-scala">val ex = new Exception // If the effects don't short-circuit, only the // order of nested types in the result changes assert(optionsFirst(Options.get(Some(1))) == Success(Some(1))) assert(optionsFirst(Tries.get(Success(1))) == Success(Some(1))) // Note how the result type changes from // 'Try[Option[T]]' to 'Option[Try[T]]' assert(triesFirst(Options.get(Some(1))) == Some(Success(1))) assert(triesFirst(Tries.get(Success(1))) == Some(Success(1))) // If there's short-circuiting, the // resulting value can be different assert(optionsFirst(Options.get(None)) == Success(None)) assert(optionsFirst(Tries.get(Failure(ex))) == Failure(ex)) assert(triesFirst(Options.get(None)) == None) assert(triesFirst(Tries.get(Failure(ex))) == Some(Failure(ex))) </code></pre> <h2>Direct Syntax</h2> <p>Kyo provides direct syntax for a more intuitive and concise way to express computations, especially when dealing with multiple effects. This syntax leverages two primary constructs: <code>defer</code> and <code>await</code>.</p> <p>Essentially, <code>await</code> is a syntactic sugar for the <code>map</code> function, allowing developers to directly access values from computations without the need for repetitive <code>map</code> chaining. This makes the code more linear and intuitive.</p> <pre><code class="language-scala">import kyo.direct._ import scala.util.Try // Use the direct syntax val a: String &gt; (Tries with Options) = defer { val b: String = await(Options.get(Some("hello"))) val c: String = await(Tries.get(Try("world"))) b + " " + c } // Equivalent desugared val b: String &gt; (Tries with Options) = Options.get(Some("hello")).map { b =&gt; Tries.get(Try("world")).map { c =&gt; b + " " + c } } </code></pre> <p>The <code>defer</code> macro translates the <code>defer</code> and <code>await</code> constructs by virtualizing control flow. It modifies value definitions, conditional branches, loops, and pattern matching to express compurations in terms of <code>map</code>.</p> <p>For added safety, the direct syntax enforces effectful hygiene. Within a <code>defer</code> block, values of the <code>&gt;</code> type must be enclosed by an <code>await</code> block. This approach ensures all effectful computations are explicitly processed, reducing the potential for missed effects or operation misalignment.</p> <pre><code class="language-scala">import kyo.ios._ // This code fails to compile val a: Int &gt; (IOs with Options) = defer { // Incorrect usage of a '&gt;' value // without 'await' IOs(println(42)) val c: Int = await(Options.get(Some(1))) c + 10 } </code></pre> <blockquote> <p>Note: In the absence of effectful hygiene, the side effect <code>IOs(println(42))</code> would be overlooked and never executed. With the hygiene in place, such code results in a compilation error.</p> </blockquote> <p>The syntac sugar supports a variety of constructs to handle effectful computations. These include pure expressions, value definitions, control flow statements like <code>if</code>-<code>else</code>, logical operations (<code>&amp;&amp;</code> and <code>||</code>), <code>while</code>, and pattern matching.</p> <pre><code class="language-scala">import kyo.direct._ defer { // Pure expression val a: Int = 5 // Effectful value val b: Int = await(IOs(10)) // Control flow val c: String = if (await(IOs(true))) "True branch" else "False branch" // Logical operations val d: Boolean = await(IOs(true)) &amp;&amp; await(IOs(false)) val e: Boolean = await(IOs(true)) || await(IOs(true)) // Loop (for demonstration; this loop // won't execute its body) while (await(IOs(false))) { "Looping" } // Pattern matching val matchResult: String = await(IOs(1)) match { case 1 =&gt; "One" case _ =&gt; "Other" } } </code></pre> <p>In Scala 2, <code>kyo-direct</code> draws its macro implementation inspiration from <a href="https://github.com/monadless/monadless">Monadless</a>. For Scala 3, <code>kyo-direct</code> is constructed as a wrapper around <a href="https://github.com/rssh/dotty-cps-async">dotty-cps-async</a>.</p> <blockquote> <p>Note: <code>defer</code> is currently the only macro in Kyo. All other features use regular language constructs.</p> </blockquote> <h2>Core Effects</h2> <p>Kyo's core effects act as the essential building blocks that power your application's various functionalities. Unlike other libraries that might require heavy boilerplate or specialized knowledge, Kyo's core effects are designed to be straightforward and flexible. These core effects not only simplify the management of side-effects, dependencies, and several other aspects but also allow for a modular approach to building maintainable systems.</p> <h3>Aborts: Short Circuiting</h3> <p>The <code>Aborts</code> effect is a generic implementation for short-circuiting effects. It's equivalent to ZIO's failure channel.</p> <pre><code class="language-scala">import kyo.aborts._ // The 'get' method "extracts" the value // from an 'Either' (right projection) val a: Int &gt; Aborts[String] = Aborts[String].get(Right(1)) // short-circuiting via 'Left' val b: Int &gt; Aborts[String] = Aborts[String].get(Left("failed!")) // short-circuiting via 'Fail' val c: Int &gt; Aborts[String] = Aborts[String].fail("failed!") // 'catching' automatically catches exceptions val d: Int &gt; Aborts[Exception] = Aborts[Exception].catching(throw new Exception) </code></pre> <blockquote> <p>Note that the <code>Aborts</code> effect has a type parameter and its methods can only be accessed if the type parameter is provided.</p> </blockquote> <h3>IOs: Side Effects</h3> <p>Kyo is unlike traditional effect systems since its base type <code>&gt;</code> does not assume that the computation can perform side effects. The <code>IOs</code> effect is introduced whenever a side effect needs to be performed.</p> <pre><code class="language-scala">import kyo.ios._ // 'apply' is used to suspend side effects val a: Int &gt; IOs = IOs(Random.nextInt) // 'value' is a shorthand to widen // a pure value to IOs val b: Int &gt; IOs = IOs.value(42) // 'fail' returns a computation that // will fail once IOs is handled val c: Int &gt; IOs = IOs.fail(new Exception) </code></pre> <blockquote> <p>Note: Kyo's effects and public APIs are designed so any side effect is properly suspended via <code>IOs</code>, providing safe building blocks for pure computations.</p> </blockquote> <p>Users shouldn't typically handle the <code>IOs</code> effect directly since it triggers the execution of side effects, which breaks referential transparency. Prefer <code>kyo.App</code> instead.</p> <p>In some specific cases where Kyo isn't used as the main effect system of an application, it might make sense for the user to handle the <code>IOs</code> effect directly. The <code>run</code> method can only be used if <code>IOs</code> is the only pending effect.</p> <pre><code class="language-scala">val a: Int &gt; IOs = IOs(42) // ** Avoid 'IOs.run', use 'kyo.App' instead) ** val b: Int = IOs.run(a).pure // ** Avoid 'IOs.run', use 'kyo.App' instead) ** </code></pre> <p>The <code>runLazy</code> method accepts computations with other effects but it doesn't guarantee that all side effects are performed before the method returns. If other effects still have to be handled, the side effects can be executed later once the other effects are handled. This a low-level API that must be used with caution.</p> <pre><code class="language-scala">// Computation with 'Options' and then // 'IOs' suspensions val a: Int &gt; (Options with IOs) = Options.get(Some(42)).map { v =&gt; IOs { println(v) v } } // ** Avoid 'IOs.runLazy', use 'kyo.App' instead) ** // Handle the 'IOs' effect lazily val b: Int &gt; Options = IOs.runLazy(a) // ** Avoid 'IOs.runLazy', use 'kyo.App' instead) ** // Since the computation is suspended with the // 'Options' effect first, the lazy 'IOs' execution // will be triggered once 'Options' is handled val c: Option[Int] = Options.run(b).pure </code></pre> <blockquote> <p>IMPORTANT: Avoid handling the <code>IOs</code> effect directly since it breaks referential transparency. Use <code>kyo.App</code> instead.</p> </blockquote> <h3>Envs: Dependency Injection</h3> <p><code>Envs</code> is similar to ZIO's environment feature but offers more granular control. Unlike ZIO, which has built-in layering for dependencies, <code>Envs</code> allows you to inject individual services directly. However, it lacks ZIO's structured dependency management; you manage and initialize your services yourself.</p> <pre><code class="language-scala">import kyo.envs._ // Given an interface trait Database { def count: Int &gt; IOs } // The 'Envs' effect can be used to summon an instance. // Note how the computation produces a 'Database' but at the // same time requires a 'Database' from its environment val a: Database &gt; Envs[Database] = Envs[Database].get // Use the 'Database' to obtain the count val b: Int &gt; (Envs[Database] with IOs) = a.map(_.count) // A 'Database' mock implementation val db = new Database { def count = 1 } // Handle the 'Envs' effect with the mock database val c: Int &gt; IOs = Envs[Database].run(db)(b) </code></pre> <p>Additionally, a computation can require multiple values from its environment.</p> <pre><code class="language-scala">// A second interface to be injected trait Cache { def clear: Unit &gt; IOs } // A computation that requires two values val a: Unit &gt; (Envs[Database] with Envs[Cache] with IOs) = Envs[Database].get.map { db =&gt; db.count.map { case 0 =&gt; Envs[Cache].get.map(_.clear) case _ =&gt; () } } </code></pre> <h3>Locals: Scoped Values</h3> <p>The <code>Locals</code> effect operates on top of <code>IOs</code> and enables the definition of scoped values. This mechanism is typically used to store contextual information of a computation. For example, in request processing, locals can be used to store information about the user who initiated the request. In a library for database access, locals can be used to propagate transactions.</p> <pre><code class="language-scala">import kyo.locals._ // Locals need to be initialized with a default value val myLocal: Local[Int] = Locals.init(42) // The 'get' method returns the current value of the local val a: Int &gt; IOs = myLocal.get // The 'let' method assigns a value to a local within the // scope of a computation. This code produces 43 (42 + 1) val b: Int &gt; IOs = myLocal.let(42)(a.map(_ + 1)) </code></pre> <blockquote> <p>Note: Kyo's effects are designed so locals are properly propagated. For example, they're automatically inherited by forked computations in <code>Fibers</code>.</p> </blockquote> <h3>Resources: Resource Safety</h3> <p>The <code>Resources</code> effect handles the safe use of external resources like network connections, files, and any other resource that needs to be freed once the computation finalizes. It serves as a mechanism similar to ZIO's <code>Scope</code>.</p> <pre><code class="language-scala">import kyo.resources._ import java.io.Closeable class Database extends Closeable { def count: Int &gt; IOs = 42 def close() = {} } // The `acquire` method accepts any object that // implements Java's `Closeable` interface val db: Database &gt; (Resources with IOs) = Resources.acquire(new Database) // Use `run` to handle the effect, while also // closing the resources utilized by the // computationation val b: Int &gt; IOs = Resources.run(db.map(_.count)) </code></pre> <p>The <code>ensure</code> method provides a low-level API to handle the finalization of resources directly. The <code>acquire</code> method is implemented in terms of <code>ensure</code>.</p> <pre><code class="language-scala">// Example method to execute a function on a database def withDb[T](f: Database =&gt; T &gt; IOs): T &gt; (IOs with Resources) = // Initializes the database ('new Database' is a placeholder) IOs(new Database).map { db =&gt; // Registers `db.close` to be finalized Resources.ensure(db.close).map { _ =&gt; // Invokes the function f(db) } } // Execute a function val a: Int &gt; (IOs with Resources) = withDb(_.count) // Close resources val b: Int &gt; IOs = Resources.run(a) </code></pre> <h3>Choices: Exploratory Branching</h3> <p>The <code>Choices</code> effect is designed to aid in handling and exploring multiple options, pathways, or outcomes in a computation. This effect is particularly useful in scenarios where you're dealing with decision trees, backtracking algorithms, or any situation that involves dynamically exploring multiple options.</p> <pre><code class="language-scala">import kyo.choices._ // Evaluate each of the provided choices. // Note how 'foreach' takes a 'List[T]' // and returns a 'T &gt; Choices' val a: Int &gt; Choices = Choices.foreach(List(1, 2, 3, 4)) // 'dropIf' discards the current choice if // a condition is not met. Produces a 'List(1, 2)' // since values greater than 2 are dropped val b: Int &gt; Choices = a.map(v =&gt; Choices.dropIf(v &gt; 2).map(_ =&gt; v)) // 'drop' unconditionally discards the // current choice. Produces a 'List(42)' // since only the value 1 is transformed // to 42 and all other values are dropped val c: Int &gt; Choices = b.map { case 1 =&gt; 42 case _ =&gt; Choices.drop } // Handle the effect to evaluate all choices // and return a 'List' with the results val d: List[Int] &gt; Any = Choices.run(c) </code></pre> <p>The Choices effect becomes exceptionally powerful when combined with other effects. This allows you not just to make decisions or explore options in isolation but also to do so in contexts that may involve factors such as asynchronicity, resource management, or even user interaction.</p> <h3>Aspects: Aspect-Oriented Programming</h3> <p>The <code>Aspects</code> effect in Kyo allows for high-level customization of behavior across your application. This is similar to how some frameworks use aspects for centralized control over diverse functionalities like database timeouts, authentication, authorization, and transaction management. You can modify these core operations without altering their individual codebases, streamlining how centralized logic is applied across different parts of an application. This makes <code>Aspects</code> ideal for implementing cross-cutting concerns in a clean and efficient manner.</p> <p>To instantiate an aspect, use the <code>Aspects.init</code> method. It takes three type parameters:</p> <ol> <li><code>T</code>: The input type of the aspect</li> <li><code>U</code>: The output type of the aspect</li> <li><code>S</code>: The effects the aspect may perform</li> </ol> <pre><code class="language-scala">import kyo.aspects._ // Initialize an aspect that takes a 'Database' and returns // an 'Int', potentially performing 'IOs' effects val countAspect: Aspect[Database, Int, IOs] = Aspects.init[Database, Int, IOs] // The method 'apply' activates the aspect for a computation def count(db: Database): Int &gt; (Aspects with IOs) = countAspect(db)(_.count) // To bind an aspect to an implementation, first create a new 'Cut' val countPlusOne = new Cut[Database, Int, IOs] { // The first param is the input of the computation and the second is // the computation being handled def apply[S](v: Database &gt; S)(f: Database =&gt; Int &gt; (Aspects with IOs)) = v.map(db =&gt; f(db).map(_ + 1)) } // Bind the 'Cut' to a computation with the 'let' method. // The first param is the 'Cut' and the second is the computation // that will run with the custom binding of the aspect def example(db: Database): Int &gt; (Aspects with IOs) = countAspect.let(countPlusOne) { count(db) } </code></pre> <p>If an aspect is bound to multiple <code>Cut</code> implementations, the order of their execution is determined by the sequence in which they are scoped within the computation.</p> <pre><code class="language-scala">// Another 'Cut' implementation val countTimesTen = new Cut[Database, Int, IOs] { def apply[S](v: Database &gt; S)(f: Database =&gt; Int &gt; (Aspects with IOs)) = v.map(db =&gt; f(db).map(_ * 10)) } // First bind 'countPlusOne' then 'countTimesTen' // the result will be (db.count + 1) * 10 def example1(db: Database) = countAspect.let(countPlusOne) { countAspect.let(countTimesTen) { count(db) } } // First bind 'countTimesTen' then 'countPlusOne' // the result will be (db.count * 10) + 1 def example2(db: Database) = countAspect.let(countTimesTen) { countAspect.let(countPlusOne) { count(db) } } // Cuts can also be composed via `andThen` def example3(db: Database) = countAspect.let(countTimesTen.andThen(countPlusOne)) { count(db) } </code></pre> <h3>Options: Optional Values</h3> <pre><code class="language-scala">import kyo.options._ // 'get' is used to 'extract' the value of an 'Option' val a: Int &gt; Options = Options.get(Some(1)) // 'apply' is the effectful version of 'Option.apply' val b: Int &gt; Options = Options(1) // If 'apply' receives a 'null', it becomes equivalent to 'Options.get(None)' assert(Options.run(Options(null)) == Options.run(Options.get(None))) // Effectful version of `Option.getOrElse` val c: Int &gt; Options = Options.getOrElse(None, 42) // Effectful version of 'Option.orElse val d: Int &gt; Options = Options.getOrElse(Some(1), c) </code></pre> <h3>Tries: Exception Handling</h3> <pre><code class="language-scala">import kyo.tries._ // 'get' is used to 'extract' the value of a 'Try' val a: Int &gt; Tries = Tries.get(Try(1)) // 'fail' to short-circuit the computation val b: Int &gt; Tries = Tries.fail(new Exception) // 'fail' has an overload that takes an error message val c: Int &gt; Tries = Tries.fail("failed") // 'apply' is the effectful version of 'Try.apply' val d: Int &gt; Tries = Tries(1) // The 'apply' method automatically catches exceptions val e: Int &gt; Tries = Tries(throw new Exception) </code></pre> <h3>Consoles: Console Interaction</h3> <pre><code class="language-scala">import kyo.consoles._ // Read a line from the console val a: String &gt; Consoles = Consoles.readln // Print to stdout val b: Unit &gt; Consoles = Consoles.print("ok") // Print to stdout with a new line val c: Unit &gt; Consoles = Consoles.println("ok") // Print to stderr val d: Unit &gt; Consoles = Consoles.printErr("fail") // Print to stderr with a new line val e: Unit &gt; Consoles = Consoles.printlnErr("fail") // Run with the default implicit 'Console' implementation val f: Unit &gt; IOs = Consoles.run(e) // Explicitly specifying the 'Console' implementation val g: Unit &gt; IOs = Consoles.run(Console.default)(e) </code></pre> <blockquote> <p>Note how <code>Consoles.run</code> returns a computation with the <code>IOs</code> effect pending, which ensures the implementation of <code>Consoles</code> is pure.</p> </blockquote> <h3>Clocks: Time Management</h3> <pre><code class="language-scala">import kyo.clocks._ import java.time.Instant // Obtain the current time val a: Instant &gt; Clocks = Clocks.now // Run with default 'Clock' val b: Instant &gt; IOs = Clocks.run(a) // Run with an explicit 'Clock' val c: Instant &gt; IOs = Clocks.run(Clock.default)(a) </code></pre> <h3>Randoms: Random Values</h3> <pre><code class="language-scala">import kyo.randoms._ // Generate a random 'Int' val a: Int &gt; Randoms = Randoms.nextInt // Generate a random 'Int' within a bound val b: Int &gt; Randoms = Randoms.nextInt(42) // A few method variants val c: Long &gt; Randoms = Randoms.nextLong val d: Double &gt; Randoms = Randoms.nextDouble val e: Boolean &gt; Randoms = Randoms.nextBoolean val f: Float &gt; Randoms = Randoms.nextFloat val g: Double &gt; Randoms = Randoms.nextGaussian // Obtain a random value from a sequence val h: Int &gt; Randoms = Randoms.nextValue(List(1, 2, 3)) // Handle the 'Randoms' effect with the // default implicit `Random` implementation val j: Int &gt; IOs = Randoms.run(h) // Explicitly specify the `Random` implementation val k: Int &gt; IOs = Randoms.run(Random.default)(h) </code></pre> <h3>Loggers: Logging</h3> <pre><code class="language-scala">import kyo.loggers._ // Initialize a 'Logger' instance val a: Logger = Loggers.init("exampleLog") // It's also possible to specify a class val b: Logger = Loggers.init(this.getClass) // A 'Logger' provides trace, debug, info, // warn, and error method variants. Example: val c: Unit &gt; IOs = b.error("example") // Each variant also has a method overload // that takes a 'Throwable' as a second param val d: Unit &gt; IOs = b.error("example", new Exception) </code></pre> <blockquote> <p>Important: The <code>Loggers</code> effect chooses to consider the initialization of a Logger instance as pure, even though it may perform side effects. For optimal performance, <code>Logger</code> instances should be stored in constant fields, a goal that would be challenging to achieve if <code>Loggers.init</code> required an <code>IOs</code> suspension.</p> </blockquote> <h2>Concurrent Effects</h2> <p>The <code>kyo.concurrent</code> package provides utilities for dealing with concurrency in Scala applications. It's a powerful set of effects designed for easier asynchronous programming, built on top of other core functionalities provided by the <code>kyo</code> package.</p> <h3>Fibers: Green Threads</h3> <p>The <code>Fibers</code> effect allows for the asynchronous execution of computations via a managed thread pool. The core function, <code>forkFiber</code>, spawns a new "green thread," also known as a fiber, to handle the given computation. This provides a powerful mechanism for parallel execution and efficient use of system resources. Moreover, fibers maintain proper propagation of <code>Locals</code>, ensuring that context information is carried along during the forking process.</p> <pre><code class="language-scala">import kyo.concurrent.fibers._ // Fork a computation. The parameter is // taken by reference and automatically // suspended with 'IOs' val a: Fiber[Int] &gt; (Fibers with IOs) = Fibers.forkFiber(Math.cos(42).toInt) // It's possible to "extract" the value of a // 'Fiber' via the 'get' method. This is also // referred as "joining the fiber" val b: Int &gt; (Fibers with IOs) = Fibers.get(a) // Alternatively, the 'fork' method is a shorthand // to fork the computation and join the fiber. The // parameter is also taken by reference like in 'fork' val c: Int &gt; (Fibers with IOs) = Fibers.fork(Math.cos(42).toInt) // The 'value' method provides a 'Fiber' instance // fulfilled with the provided pure value val d: Fiber[Int] = Fibers.value(42) // Use 'fail' to create a fiber that will fail // with the provided exception val e: Fiber[Int] = Fibers.fail(new Exception) </code></pre> <p>The <code>parallel</code> methods fork multiple computations in parallel, join the fibers, and return their results.</p> <pre><code class="language-scala">// An example computation val a: Int &gt; IOs = IOs(Math.cos(42).toInt) // There are method overloadings for up to four // parallel computations. Paramters taken by // reference val b: (Int, String) &gt; (Fibers with IOs) = Fibers.parallel(a, "example") // Alternatively, it's possible to provide // a 'Seq' of computations and produce a 'Seq' // with the results val c: Seq[Int] &gt; (Fibers with IOs) = Fibers.parallel(Seq(a, a.map(_ + 1))) // The 'parallelFiber' method is similar but // it doesn't automatically join the fibers and // produces a 'Fiber[Seq[T]]' val d: Fiber[Seq[Int]] &gt; IOs = Fibers.parallelFiber(Seq(a, a.map(_ + 1))) </code></pre> <p>The <code>race</code> methods are similar to <code>parallel</code> but they return the first computation to complete with either a successful result or a failure. Once the first result is produced, the other computations are automatically interrupted.</p> <pre><code class="language-scala">// An example computation val a: Int &gt; IOs = IOs(Math.cos(42).toInt) // There are method overloadings for up to four // computations. Pameters taken by reference val b: Int &gt; (Fibers with IOs) = Fibers.race(a, a.map(_ + 1)) // It's also possible to to provide a 'Seq' // of computations val c: Int &gt; (Fibers with IOs) = Fibers.race(Seq(a, a.map(_ + 1))) // 'raceFiber' produces a 'Fiber' without // joining it val d: Fiber[Int] &gt; IOs = Fibers.raceFiber(Seq(a, a.map(_ + 1))) </code></pre> <p><code>Fibers</code> also provides <code>await</code> to wait for the completion of all computations and discard their results.</p> <pre><code class="language-scala">val a: Int &gt; IOs = IOs(Math.cos(42).toInt) // Also up to four parallel computations. // Parameters taken by reference val a: Unit &gt; (Fibers with IOs) = Fibers.await(a, "srt") // Unit a 'Seq' val b: Unit &gt; (Fibers with IOs) = Fibers.await(Seq(a, a.map(_ + 1))) // Awaiting without joining val c: Fiber[Unit] &gt; IOs = Fibers.awaitFiber(Seq(a, a.map(_ + 1))) </code></pre> <p>The <code>sleep</code> and <code>timeout</code> methods combine the <code>Timers</code> effect to pause a computation or time it out after a duration.</p> <pre><code class="language-scala">import kyo.concurrent.timers._ import scala.concurrent.duration._ // A computation that sleeps for 1s val a: Unit &gt; (Fibers with IOs with Timers) = Fibers.sleep(1.second) // Times out and interrupts the provided // computation in case it doesn't produce // a result within 1s val b: Int &gt; (Fibers with IOs with Timers) = Fibers.timeout(1.second)(Math.cos(42).toInt) </code></pre> <p>The <code>join</code> methods provide interoperability with Scala's <code>Future</code>.</p> <pre><code class="language-scala">import scala.concurrent.Future // An example 'Future' instance val a: Future[Int] = Future.successful(42) // Join the result of a 'Future' val b: Int &gt; (Fibers with IOs) = Fibers.join(a) // Use 'joinFiber' to produce 'Fiber' // instead of joining the computation val c: Fiber[Int] &gt; IOs = Fibers.joinFiber(a) </code></pre> <blockquote> <p>Important: Keep in mind that Scala's Future lacks built-in support for interruption. As a result, any computations executed through Future will run to completion, even if they're involved in a race operation where another computation finishes first.</p> </blockquote> <p>A <code>Fiber</code> instance also provides a few relevant methods.</p> <pre><code class="language-scala">// An example fiber val a: Fiber[Int] = Fibers.value(42) // Check if the fiber is done val b: Boolean &gt; IOs = a.isDone // Instance-level version of 'Fibers.get' val c: Int &gt; Fibers = a.get // Avoid this low-level API to attach a // a callback to a fiber val d: Unit &gt; IOs = a.onComplete(println(_)) // A variant of `get` that returns a `Try` // with the failed or successful result val e: Try[Int] &gt; (Fibers with IOs) = a.getTry // Try to interrupt/cancel a fiber val f: Boolean &gt; IOs = a.interrupt // Try to interrupt a fiber and wait for // its finalization val g: Boolean &gt; (Fibers with IOs) = a.interruptAwait // Transforms a fiber into a Scala 'Future' val h: Future[Int] &gt; IOs = a.toFuture // The 'transform' method is similar to `flatMap` // in Scala's 'Future' val i: Fiber[Int] &gt; IOs = a.transform(v =&gt; Fibers.value(v + 1)) </code></pre> <p>Similarly to <code>IOs</code>, users should avoid handling the <code>Fibers</code> effect directly and rely on <code>kyo.App</code> instead. If strictly necessary, there are two methods to handle the <code>Fibers</code> effect:</p> <ol> <li><code>run</code> takes a computation that has only the <code>Fibers</code> effect pending and returns a <code>Fiber</code> instance without blocking threads.</li> <li><code>runBlocking</code> accepts computations with arbitrary pending effects but it handles asynchronous operations by blocking the current thread.</li> </ol> <pre><code class="language-scala">// An example computation with fibers val a: Int &gt; (Fibers with IOs) = Fibers.fork(Math.cos(42).toInt) // Avoid handling 'Fibers' directly // Note how the code has to handle the // 'IOs' effect and then handle 'Fibers' val b: Fiber[Int] &gt; IOs = Fibers.run(IOs.runLazy(a)) // The 'runBlocking' method accepts // arbitrary pending effects but relies // on thread blocking. val c: Int &gt; IOs = Fibers.runBlocking(a) </code></pre> <blockquote> <p>Note: Handling the <code>Fibers</code> effect doesn't break referential transparency as with <code>IOs</code> but its usage is not trivial due to the limitations of the pending effects, especially <code>IOs</code>. Prefer <code>kyo.App</code> instead.</p> </blockquote> <p>The <code>Fibers</code> effect also offers a low-level API to create <code>Promise</code>s as way to integrate external async operations with fibers. These APIs should be used only in low-level integration code.</p> <pre><code class="language-scala">// Initialize a promise val a: Promise[Int] &gt; IOs = Fibers.promise[Int] // Try to fulfill a promise val b: Boolean &gt; IOs = a.map(_.complete(42)) </code></pre> <blockquote> <p>A <code>Promise</code> is basically a <code>Fiber</code> with all the regular functionality plus the <code>complete</code> method to manually fulfill the promise.</p> </blockquote> <h3>Queues: Concurrent Queuing</h3> <p>The <code>Queues</code> effect operates atop of <code>IOs</code> and provides thread-safe queue data structures based on the high-performance <a href="https://github.com/JCTools/JCTools">JCTools</a> library on the JVM. For ScalaJS, a simple <code>ArrayQueue</code> is used.</p> <p><strong>Bounded queues</strong></p> <pre><code class="language-scala">import kyo.concurrent.queues._ // A 'bounded' channel rejects new // elements once full val a: Queue[Int] &gt; IOs = Queues.bounded(capacity = 42) // Obtain the number of items in the queue // via the method 'size' in 'Queue' val b: Int &gt; IOs = a.map(_.size) // Get the queue capacity val c: Int &gt; IOs = a.map(_.capacity) // Try to offer a new item val d: Boolean &gt; IOs = a.map(_.offer(42)) // Try to poll an item val e: Option[Int] &gt; IOs = a.map(_.poll) // Try to 'peek' an item without removing it val f: Option[Int] &gt; IOs = a.map(_.peek) // Check if the queue is empty val g: Boolean &gt; IOs = a.map(_.isEmpty) // Check if the queue is full val h: Boolean &gt; IOs = a.map(_.isFull) </code></pre> <p><strong>Unbounded queues</strong></p> <pre><code class="language-scala">// Avoid `Queues.unbounded` since if queues can // grow without limits, the GC overhead can make // the system fail val a: Queues.Unbounded[Int] &gt; IOs = Queues.unbounded() // A 'dropping' queue discards new entries // when full val b: Queues.Unbounded[Int] &gt; IOs = Queues.dropping(capacity = 42) // A 'sliding' queue discards the oldest // entries if necessary to make space for new // entries val c: Queues.Unbounded[Int] &gt; IOs = Queues.sliding(capacity = 42) // Note how 'dropping' and 'sliding' queues // return 'Queues.Unbounded`. It provides // an additional method to 'add' new items // unconditionally val d: Unit &gt; IOs = c.map(_.add(42)) </code></pre> <p><strong>Concurrent access policies</strong></p> <p>It's also possible to specify a concurrent <code>Access</code> policy as the second parameter of the <code>Queues.init</code> methods. This configuration has an effect only on the JVM and is ignored in ScalaJS.</p> <table> <thead> <tr> <th>Policy</th> <th>Full Form</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>Mpmc</td> <td>Multiple Producers, Multiple Consumers</td> <td>Supports multiple threads/fibers simultaneously enqueuing and dequeuing elements. This is the most flexible but may incur the most overhead due to the need to synchronize between multiple producers and consumers.</td> </tr> <tr> <td>Mpsc</td> <td>Multiple Producers, Single Consumer</td> <td>Allows multiple threads/fibers to enqueue elements but restricts dequeuing to a single consumer. This can be more efficient than <code>Mpmc</code> when only one consumer is needed.</td> </tr> <tr> <td>Spmc</td> <td>Single Producer, Multiple Consumers</td> <td>Allows only a single thread/fiber to enqueue elements, but multiple threads/fibers can dequeue elements. Useful when only one source is generating elements to be processed by multiple consumers.</td> </tr> <tr> <td>Spsc</td> <td>Single Producer, Single Consumer</td> <td>The most restrictive but potentially fastest policy. Only one thread/fiber can enqueue elements, and only one thread/fiber can dequeue elements.</td> </tr> </tbody> </table> <p>Each policy is suitable for different scenarios and comes with its own trade-offs. For example, <code>Mpmc</code> is highly flexible but can be slower due to the need for more complex synchronization. <code>Spsc</code>, being the most restrictive, allows for optimizations that could make it faster for specific single-producer, single-consumer scenarios.</p> <p>You can specify the access policy when initializing a queue, and it is important to choose the one that aligns with your application's needs for optimal performance.</p> <pre><code class="language-scala">import kyo.concurrent.Access // Initialize a bounded queue with a // Multiple Producers, Multiple // Consumers policy val a: Queue[Int] &gt; IOs = Queues.bounded( capacity = 42, access = Access.Mpmc ) </code></pre> <h3>Channels: Asynchronous Communication</h3> <p>The <code>Channels</code> effect serves as an advanced concurrency primitive, designed to facilitate seamless and backpressured data transfer between various parts of your application. Built upon the <code>Fibers</code> effect, <code>Channels</code> not only ensures thread-safe communication but also incorporates a backpressure mechanism. This mechanism temporarily suspends fibers under specific conditions—either when waiting for new items to arrive or when awaiting space to add new items.</p> <pre><code class="language-scala">import kyo.concurrent.channels._ // A 'Channel' is initialized // with a fixed capacity val a: Channel[Int] &gt; IOs = Channels.init(capacity = 42) // It's also possible to specify // an 'Access' policy val b: Channel[Int] &gt; IOs = Channels.init( capacity = 42, access = Access.Mpmc ) </code></pre> <p>While <code>Channels</code> share similarities with <code>Queues</code>—such as methods for querying size (<code>size</code>), adding an item (<code>offer</code>), or retrieving an item (<code>poll</code>)—they go a step further by offering backpressure-sensitive methods, namely <code>put</code> and <code>take</code>.</p> <pre><code class="language-scala">// An example channel val a: Channel[Int] &gt; IOs = Channels.init(capacity = 42) // Adds a new item to the channel. // If there's no capacity, the fiber // is automatically suspended until // space is made available val b: Unit &gt; (Fibers with IOs) = a.map(_.put(42)) // Takes an item from the channel. // If the channel is empty, the fiber // is suspended until a new item is // made available val c: Int &gt; (Fibers with IOs) = a.map(_.take) // 'putFiber' returns a `Fiber` that // will complete once the put completes val d: Fiber[Unit] &gt; IOs = a.map(_.putFiber(42)) // 'takeFiber' also returns a fiber val e: Fiber[Int] &gt; IOs = a.map(_.takeFiber) </code></pre> <p>The ability to suspend fibers during <code>put</code> and <code>take</code> operations allows <code>Channels</code> to provide a more controlled form of concurrency. This is particularly beneficial for rate-sensitive or resource-intensive tasks where maintaining system balance is crucial.</p> <blockquote> <p>Important: While a <code>Channel</code> comes with a predefined item capacity, it's crucial to understand that there is no upper limit on the number of fibers that can be suspended by it. In scenarios where your application spawns an unrestricted number of fibers—such as an HTTP service where each incoming request initiates a new fiber—this can lead to significant memory consumption. The channel's internal queue for suspended fibers could grow indefinitely, making it a potential source of unbounded queuing and memory issues. Exercise caution in such use-cases to prevent resource exhaustion.</p> </blockquote> <h3>Meters: Computational Limits</h3> <p>The <code>Meters</code> effect offers utilities to regulate computational execution, be it limiting concurrency or managing rate. It is equipped with a range of pre-set limitations, including mutexes, semaphores, and rate limiters, allowing you to apply fine-grained control over task execution.</p> <pre><code class="language-scala">import kyo.concurrent.meters._ // 'mutex': One computation at a time val a: Meter &gt; IOs = Meters.mutex // 'semaphore': Limit concurrent tasks val b: Meter &gt; IOs = Meters.semaphore(concurrency = 42) // 'rateLimiter': Tasks per time window val c: Meter &gt; (Timers with IOs) = Meters.rateLimiter( rate = 10, period = 1.second ) // 'pipeline': Combine multiple 'Meter's val d: Meter &gt; (Timers with IOs) = Meters.pipeline(a, b, c) </code></pre> <p>The <code>Meter</code> class comes with a handful of methods designed to provide insights into and control over computational execution.</p> <pre><code class="language-scala">// An example 'Meter' val a: Meter &gt; IOs = Meters.mutex // Get available permits val b: Int &gt; IOs = a.map(_.available) // Check for available permit val c: Boolean &gt; IOs = a.map(_.isAvailable) // Use 'run' to execute tasks // respecting meter limits val d: Int &gt; (Fibers with IOs) = a.map(_.run(Math.cos(42).toInt)) // 'tryRun' executes if a permit is // available; returns 'None' otherwise val e: Option[Int] &gt; IOs = a.map(_.tryRun(Math.cos(42).toInt)) </code></pre> <h3>Timers: Scheduled Execution</h3> <p>The <code>Timers</code> effect is designed for control over the timing of task execution.</p> <pre><code class="language-scala">import kyo.concurrent.timers._ // An example computation to // be scheduled val a: Unit &gt; IOs = IOs(()) // Schedule a delayed task val b: TimerTask &gt; Timers = Timers.schedule(delay = 1.second)(a) // Recurring task with // intial delay val c: TimerTask &gt; Timers = Timers.scheduleAtFixedRate( initialDelay = 1.minute, period = 1.minute )(a) // Recurring task without // initial delay val d: TimerTask &gt; Timers = Timers.scheduleAtFixedRate( period = 1.minute )(a) // Schedule with fixed delay between tasks val e: TimerTask &gt; Timers = Timers.scheduleWithFixedDelay( initialDelay = 1.minute, period = 1.minute )(a) // without initial delay val f: TimerTask &gt; Timers = Timers.scheduleWithFixedDelay( period = 1.minute )(a) // Shutdown the current timer val g: Unit &gt; Timers = Timers.shutdown // Use 'run' to handle the Timers // effect with the default 'Timer' val h: Unit &gt; IOs = Timers.run(g) // Specify the 'Timer' explictly val i: Unit &gt; IOs = Timers.run(Timer.default)(g) </code></pre> <p><code>TimerTask</code> offers methods for more granular control over the scheduled tasks.</p> <pre><code class="language-scala">// Example TimerTask val a: TimerTask &gt; Timers = Timers.schedule(1.second)(()) // Try to cancel the task val b: Boolean &gt; Timers = a.map(_.cancel) // Check if the task is cancelled val c: Boolean &gt; Timers = a.map(_.isCancelled) // Check if the task is done val d: Boolean &gt; Timers = a.map(_.isDone) </code></pre> <h3>Latches: Fiber Coordination</h3> <p>The <code>Latches</code> effect serves as a coordination mechanism for fibers in a concurrent environment, primarily used for task synchronization. It provides a low-level API for controlling the flow of execution and ensuring certain tasks are completed before others, all while maintaining thread safety.</p> <pre><code class="language-scala">import kyo.concurrent.latches._ // Initialize a latch with 'n' permits val a: Latch &gt; IOs = Latches.init(3) // Await until the latch releases val b: Unit &gt; (Fibers with IOs) = a.map(_.await) // Release a permit from the latch val c: Unit &gt; IOs = a.map(_.release) // Get the number of pending permits val d: Int &gt; IOs = a.map(_.pending) </code></pre> <h3>Atomics: Concurrent State</h3> <p>The <code>Atomics</code> effect provides a set of thread-safe atomic variables to manage mutable state in a concurrent setting. Available atomic types include Int, Long, Boolean, and generic references.</p> <pre><code class="language-scala">import kyo.concurrent.atomics._ // Initialize atomic variables val aInt: AtomicInt &gt; IOs = Atomics.initInt(0) val aLong: AtomicLong &gt; IOs = Atomics.initLong(0L) val aBool: AtomicBoolean &gt; IOs = Atomics.initBoolean(false) val aRef: AtomicRef[String] &gt; IOs = Atomics.initRef("initial") // Fetch values val b: Int &gt; IOs = aInt.map(_.get) val c: Long &gt; IOs = aLong.map(_.get) val d: Boolean &gt; IOs = aBool.map(_.get) val e: String &gt; IOs = aRef.map(_.get) // Update values val f: Unit &gt; IOs = aInt.map(_.set(1)) val g: Unit &gt; IOs = aLong.map(_.lazySet(1L)) val h: Boolean &gt; IOs = aBool.map(_.cas(false, true)) val i: String &gt; IOs = aRef.map(_.getAndSet("new")) </code></pre> <h3>Adders: Concurrent Accumulation</h3> <p>The <code>Adders</code> effect offers thread-safe variables for efficiently accumulating numeric values. The two primary classes, <code>LongAdder</code> and <code>DoubleAdder</code>, are optimized for high-throughput scenarios where multiple threads update the same counter.</p> <pre><code class="language-scala">import kyo.concurrent.adders._ // Initialize Adders val longAdder: LongAdder &gt; IOs = Adders.initLong val doubleAdder: DoubleAdder &gt; IOs = Adders.initDouble // Adding values val a: Unit &gt; IOs = longAdder.map(_.add(10L)) val b: Unit &gt; IOs = doubleAdder.map(_.add(10.5)) // Increment and Decrement LongAdder val c: Unit &gt; IOs = longAdder.map(_.increment) val d: Unit &gt; IOs = longAdder.map(_.decrement) // Fetch summed values val e: Long &gt; IOs = longAdder.map(_.get) val f: Double &gt; IOs = doubleAdder.map(_.get) // Resetting the adders val g: Unit &gt; IOs = longAdder.map(_.reset) val h: Unit &gt; IOs = doubleAdder.map(_.reset) </code></pre> <h2>License</h2> <p>See the <a href="https://github.com/getkyo/kyo/raw/master/LICENSE.txt">LICENSE</a> file for details.</p> + + + nise-nabe/timecount + 2023-09-24T01:41:08Z + tag:github.com,2023-09-24:/nise-nabe/timecount + + <p></p><hr><h1>This is your new Play 2.1 application</h1> <p>This file will be packaged with your application, when using <code>play dist</code>.</p> <p><a href="https://lit-ocean-9730.herokuapp.com/">https://lit-ocean-9730.herokuapp.com/</a></p> + + + hiradimir/SimpleEchoServer_finagle + 2023-09-24T01:41:08Z + tag:github.com,2023-09-24:/hiradimir/SimpleEchoServer_finagle + + <p></p><hr><h1>SimpleEchoServer_finagle</h1> + \ No newline at end of file diff --git a/scala/weekly/index.xml b/scala/weekly/index.xml new file mode 100644 index 00000000000..b000df937f5 --- /dev/null +++ b/scala/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Scala Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:43Z + Weekly Trending of Scala in GitHub + + + hyperledger-labs/open-enterprise-agent + 2023-09-24T02:00:43Z + tag:github.com,2023-09-24:/hyperledger-labs/open-enterprise-agent + + <p>Open Enterprise Cloud Agent</p><hr><p align="center"> <a href="https://atalaprism.io"> <img src="https://raw.githubusercontent.com/hyperledger-labs/open-enterprise-agent/main/docs/images/logos/atala-prism-logo.png" alt="atala-prism-logo" width="513px" height="99px"> </a> <br> <i> <font size="18"> Open Enterprise Cloud Agent </font> </i> <br> <br> <a href="https://coveralls.io/github/input-output-hk/atala-prism-building-blocks?branch=main"><img src="https://coveralls.io/repos/github/input-output-hk/atala-prism-building-blocks/badge.svg?branch=main&amp;t=91BUzX&amp;kill_cache=1" alt="Coverage Status"></a> <a href="https://github.com/input-output-hk/atala-prism-building-blocks/actions/workflows/prism-unit-tests.yml"> <img src="https://github.com/input-output-hk/atala-prism-building-blocks/actions/workflows/prism-unit-tests.yml/badge.svg?sanitize=true" alt="Unit tests"> </a> <a href="https://github.com/input-output-hk/atala-prism-building-blocks/actions/workflows/e2e-tests.yml"> <img src="https://github.com/input-output-hk/atala-prism-building-blocks/actions/workflows/e2e-tests.yml/badge.svg?sanitize=true" alt="End-to-end tests"> </a> <a href="https://github.com/input-output-hk/atala-prism-building-blocks/actions/workflows/performance-tests.yml"> <img src="https://github.com/input-output-hk/atala-prism-building-blocks/actions/workflows/performance-tests.yml/badge.svg?sanitize=true" alt="Performance tests"> </a> </p> <hr> <h2>Overview</h2> <p>The Enterprise Cloud Agent is a W3C/Aries standards-based cloud agent written in Scala that provides self-sovereign identity services to build products and solutions based on it. The term "cloud" indicates that it operates on servers and is not intended for use on mobile devices.</p> <p>Enterprise Cloud Agent supports standard-based protocols built on top of DIDComm V2 for issuing, verifying, and holding verifiable credentials using both JWT and Hyperledger AnonCreds (coming soon) formats.</p> <p>In order to use the Cloud Agent, you establish a business logic controller responsible for communicating with the agent (initiating HTTP requests and processing webhook notifications). This controller can be created using any programming language capable of sending and receiving HTTP requests.</p> <p>As a result, you can concentrate on crafting self-sovereign identity solutions using well-known web development tools, without the need to delve into the intricacies of lower-level cryptography and identity protocol internals.</p> <h2>Features</h2> <ul> <li>Rest API</li> <li>DIDComm V2</li> <li>W3C-compliant <code>did:prism</code> and <code>did:peer</code> methods</li> <li>Credential types <ul> <li>JWT</li> <li>AnonCreds (coming soon)</li> </ul> </li> <li>HTTP events notification</li> <li>Cardano as a distributed ledger</li> <li>Secrets management with Hashicorp vault</li> <li>Multi-tenancy (coming soon)</li> </ul> <h2>Example use cases</h2> <ul> <li>A government issues verifiable credentials (VCs) to its citizens to prove their identity and access government services.</li> <li>An enterprise issues VCs to its employees to prove their employment and access enterprise services.</li> <li>A Web3 authentication service based on verifiable presentations (VPs).</li> </ul> <h2>Getting started</h2> <h3>Understanding SSI</h3> <p>Before starting to use the Cloud Agent, it is important to understand the basic concepts of self-sovereign identity (SSI). The following resources provide a good introduction to SSI:</p> <ul> <li><a href="https://docs.atalaprism.io/docs/category/concepts/">Atala PRISM SSI introduction</a></li> <li><a href="https://www.edx.org/learn/computer-programming/the-linux-foundation-getting-started-with-self-sovereign-identity">Linux Foundation Course: Getting Started with SSI</a></li> </ul> <h3>Architecture</h3> <p>The next diagram offers a concise architectural overview, depicting a Cloud Agent instance, a controller, the interconnections linking the controller and agent, as well as the external routes to other agents and public ledgers across the Internet.</p> <p><img src="https://raw.githubusercontent.com/hyperledger-labs/open-enterprise-agent/main/docs/images/cloud-agent-architecture-dark.png#gh-dark-mode-only" alt="Enterprise Cloud Agent architecture"> <img src="https://raw.githubusercontent.com/hyperledger-labs/open-enterprise-agent/main/docs/images/cloud-agent-architecture-light.png#gh-light-mode-only" alt="Enterprise Cloud Agent architecture"></p> <h3>Installation and usage</h3> <p>Enterprise Cloud Agent is distributed as a Docker image to be run in a containerized environment. All versions can be found <a href="https://github.com/input-output-hk/atala-prism-building-blocks/pkgs/container/prism-agent">here</a>.</p> <p>The following sections describe how to run the Enterprise Cloud Agent in different configurations.</p> <h4>Configuration</h4> <p>The Enterprise Cloud Agent can be configured to use different types of ledger, secret storage and DID persistence. Any combination of options is available, but the most common configurations are:</p> <table> <thead> <tr> <th>Configuration</th> <th>Secret Storage</th> <th>DIDs persistence</th> <th>VDR</th> </tr> </thead> <tbody> <tr> <td>Dev</td> <td>PostgreSQL</td> <td>No</td> <td>In-memory</td> </tr> <tr> <td>Pre-production</td> <td>PostgreSQL</td> <td>Yes</td> <td>Cardano testnet (preview or preprod)</td> </tr> <tr> <td>Production</td> <td>Hashicorp</td> <td>Yes</td> <td>Cardano mainnet</td> </tr> </tbody> </table> <p>To start playing with Cloud Agent, we recommend using the Dev configuration. Pre-production and production configurations are intended for real-world use cases and require additional more complex configurations of the Cardano stack setup.</p> <blockquote> <p>If you're interested in a hosted version of Enterprise Cloud Agent, please, contact us at <a href="https://atalaprism.io">atalaprism.io</a>.</p> </blockquote> <h4>System requirements</h4> <p>System requirements can vary depending on the use case. The following are the minimum requirements for running the Cloud Agent with the Dev configuration:</p> <ul> <li>Linux or MacOS operating system</li> <li>Docker (with docker-compose support)</li> <li>Modern x86 or ARM-based CPU</li> <li>&gt;=2GB RAM</li> </ul> <h4>Running locally in demo mode</h4> <p>Here is a general example of running a Cloud Agent locally:</p> <pre><code class="language-bash">PORT=${PORT} PRISM_AGENT_VERSION=${PRISM_AGENT_VERSION} PRISM_NODE_VERSION=${PRISM_NODE_VERSION} \ docker compose \ -p "${AGENT_ROLE}" \ -f ./infrastructure/shared/docker-compose-demo.yml \ up --wait </code></pre> <p>The <code>PORT</code> variable is used to specify the port number for the Cloud Agent to listen on. The <code>PRISM_AGENT_VERSION</code> and <code>PRISM_NODE_VERSION</code> variables are used to specify the versions of the Cloud Agent and PRISM Node to use. The <code>AGENT_ROLE</code> variable is used to specify the role of the Cloud Agent. The <code>AGENT_ROLE</code> variable can be set to <code>issuer</code>, <code>verifier</code> or <code>holder</code>.</p> <p>In real life, you will need to start at least two Cloud Agent instances with different roles. For example, you can start one instance with the <code>issuer</code> role and another one with the <code>holder</code> role. The <code>issuer</code> instance will be used to issue verifiable credentials (VCs) and the <code>holder</code> instance will be used to hold VCs. Here is an example of how you can do this:</p> <pre><code class="language-bash">PORT=8080 PRISM_AGENT_VERSION=1.12.0 PRISM_NODE_VERSION=2.2.1 \ docker compose \ -p "issuer" \ -f ./infrastructure/shared/docker-compose-demo.yml \ up --wait </code></pre> <pre><code class="language-bash">PORT=8090 PRISM_AGENT_VERSION=1.12.0 PRISM_NODE_VERSION=2.2.1 \ docker compose \ -p "holder" \ -f ./infrastructure/shared/docker-compose-demo.yml \ up --wait </code></pre> <p>If the Cloud Agent is started successfully, all the running containers should achieve <code>Healthy</code> state, and Cloud Agent Rest API should be available at the specified port, for example:</p> <ul> <li><code>http://localhost:8080/prism-agent</code> for the <code>issuer</code> instance</li> <li><code>http://localhost:8090/prism-agent</code> for the <code>holder</code> instance</li> </ul> <p>You can check the status of the running containers using the <a href="https://docs.atalaprism.io/agent-api/#tag/System/operation/systemHealth">health endpoint</a>:</p> <pre><code class="language-bash">$ curl http://localhost:8080/prism-agent/_system/health {"version":"1.12.0"} </code></pre> <blockquote> <p>For more information about all available configuration parameters, please, check <a href="https://docs.atalaprism.io/docs/atala-prism/prism-cloud-agent/environment-variables">Cloud Agent configuration</a> section at the documentation portal and edit the <code>docker-compose-demo.yml</code> file accordingly.</p> </blockquote> <h4>Compatibility between Cloud Agent and PRISM Node</h4> <p>There could be some incompatibilities between the most latest versions of Enterprise Cloud Agent and PRISM Node. Please, use the following table to check the compatibility between the versions:</p> <table> <thead> <tr> <th>Cloud Agent</th> <th>PRISM Node</th> </tr> </thead> <tbody> <tr> <td>&gt;=1.9.2</td> <td>2.2.1</td> </tr> <tr> <td>&lt;1.9.2</td> <td>2.1.1</td> </tr> </tbody> </table> <blockquote> <p>Please note: it is not guaranteed that the latest version of Enterprise Cloud Agent will work with the latest version of PRISM Node. We recommend using the versions from the table above.</p> </blockquote> <h3>Following the Enterprise Cloud Agent tutorials</h3> <p>The following tutorials will help you get started with the Cloud Agent and issue your first credentials:</p> <ul> <li><a href="https://docs.atalaprism.io/tutorials/category/dids/">Creating, updating and deactivating Decentralized Identifiers (DIDs)</a></li> <li><a href="https://docs.atalaprism.io/tutorials/connections/connection">Setting up connections between agents using out-of-band (OOB) protocol</a></li> <li><a href="https://docs.atalaprism.io/tutorials/credentials/issue">Issuing verifiable credentials (VCs)</a></li> <li><a href="https://docs.atalaprism.io/tutorials/credentials/present-proof">Presenting VC proofs</a></li> </ul> <h2>User documentation</h2> <p>All extended documentation, tutorials and API references for the PRISM ecosystem can be found at <a href="https://docs.atalaprism.io/">https://docs.atalaprism.io/</a></p> <h2>Contributing</h2> <p>Please read our <a href="https://raw.githubusercontent.com/hyperledger-labs/open-enterprise-agent/main/CONTRIBUTING.md">contributions guidelines</a> and submit your PRs. We enforce <a href="https://raw.githubusercontent.com/hyperledger-labs/open-enterprise-agent/main/DCO.md">developer certificate of origin (DCO) commit signing</a>.</p> <p>We also welcome issues submitted about problems you encounter in using Enterprise Cloud Agent.</p> <h2>License</h2> <p><a href="https://raw.githubusercontent.com/hyperledger-labs/open-enterprise-agent/main/LICENSE">Apache License Version 2.0</a></p> <hr> <p><strong>Love the repo? Give our repo a star <span>⭐</span> <span>⬆</span>.</strong></p> + + \ No newline at end of file diff --git a/scaml/daily/index.xml b/scaml/daily/index.xml index 38b346e9eca..b5bcab07555 100644 --- a/scaml/daily/index.xml +++ b/scaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scaml Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:13Z + 2023-09-24T01:41:03Z Daily Trending of Scaml in GitHub \ No newline at end of file diff --git a/scaml/weekly/index.xml b/scaml/weekly/index.xml new file mode 100644 index 00000000000..3cb4b52325f --- /dev/null +++ b/scaml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Scaml Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:38Z + Weekly Trending of Scaml in GitHub + + \ No newline at end of file diff --git a/scheme/daily/index.xml b/scheme/daily/index.xml index fd8a47704b8..84c6805fe8a 100644 --- a/scheme/daily/index.xml +++ b/scheme/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scheme Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:15Z + 2023-09-24T01:41:05Z Daily Trending of Scheme in GitHub \ No newline at end of file diff --git a/scheme/weekly/index.xml b/scheme/weekly/index.xml new file mode 100644 index 00000000000..637518c4493 --- /dev/null +++ b/scheme/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub Scheme Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:39Z + Weekly Trending of Scheme in GitHub + + + bintracker/bintracker + 2023-09-24T02:00:39Z + tag:github.com,2023-09-24:/bintracker/bintracker + + <p>A hackable Chiptune Audio Workstation. https://bintracker.org</p><hr> + + + meain/evil-textobj-tree-sitter + 2023-09-24T02:00:39Z + tag:github.com,2023-09-24:/meain/evil-textobj-tree-sitter + + <p>Tree-sitter powered textobjects for evil mode in Emacs</p><hr> + + \ No newline at end of file diff --git a/scilab/daily/index.xml b/scilab/daily/index.xml index 6959ca19ae8..b61e9faab92 100644 --- a/scilab/daily/index.xml +++ b/scilab/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scilab Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:28Z + 2023-09-24T01:41:19Z Daily Trending of Scilab in GitHub \ No newline at end of file diff --git a/scilab/weekly/index.xml b/scilab/weekly/index.xml new file mode 100644 index 00000000000..2c89e9cdea4 --- /dev/null +++ b/scilab/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Scilab Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:56Z + Weekly Trending of Scilab in GitHub + + \ No newline at end of file diff --git a/scss/daily/index.xml b/scss/daily/index.xml index e87cdcc7c11..258d4eba9f3 100644 --- a/scss/daily/index.xml +++ b/scss/daily/index.xml @@ -1,7 +1,14 @@ GitHub SCSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:31Z + 2023-09-24T01:41:24Z Daily Trending of SCSS in GitHub + + zivhub/monophase + 2023-09-24T01:41:24Z + tag:github.com,2023-09-24:/zivhub/monophase + + <p>A one-column minimal responsive Jekyll blog theme</p><hr> + \ No newline at end of file diff --git a/scss/weekly/index.xml b/scss/weekly/index.xml new file mode 100644 index 00000000000..de4332d6440 --- /dev/null +++ b/scss/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub SCSS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:58Z + Weekly Trending of SCSS in GitHub + + + syncfusion/ej2-javascript-ui-controls + 2023-09-24T02:00:58Z + tag:github.com,2023-09-24:/syncfusion/ej2-javascript-ui-controls + + <p>Syncfusion JavaScript UI controls library offer more than 50+ cross-browser, responsive, and lightweight HTML5 UI controls for building modern web applications.</p><hr> + + + creativetimofficial/blk-design-system-angular + 2023-09-24T02:00:58Z + tag:github.com,2023-09-24:/creativetimofficial/blk-design-system-angular + + <p></p><hr> + + + PrincessMaggy/hertechtrail_cohort7_project + 2023-09-24T02:00:58Z + tag:github.com,2023-09-24:/PrincessMaggy/hertechtrail_cohort7_project + + <p></p><hr> + + \ No newline at end of file diff --git a/sed/daily/index.xml b/sed/daily/index.xml index 9f2d215cbfa..c6d4b80beea 100644 --- a/sed/daily/index.xml +++ b/sed/daily/index.xml @@ -1,7 +1,7 @@ GitHub sed Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:27Z + 2023-09-24T01:41:21Z Daily Trending of sed in GitHub \ No newline at end of file diff --git a/sed/weekly/index.xml b/sed/weekly/index.xml new file mode 100644 index 00000000000..2c2da0f2ab5 --- /dev/null +++ b/sed/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub sed Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:54Z + Weekly Trending of sed in GitHub + + \ No newline at end of file diff --git a/self/daily/index.xml b/self/daily/index.xml index 76ff066016e..1c48cb1fd31 100644 --- a/self/daily/index.xml +++ b/self/daily/index.xml @@ -1,7 +1,7 @@ GitHub Self Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:26Z + 2023-09-24T01:41:20Z Daily Trending of Self in GitHub \ No newline at end of file diff --git a/self/weekly/index.xml b/self/weekly/index.xml new file mode 100644 index 00000000000..a573b93f28a --- /dev/null +++ b/self/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Self Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:55Z + Weekly Trending of Self in GitHub + + \ No newline at end of file diff --git a/selinux-policy/daily/index.xml b/selinux-policy/daily/index.xml index 97c9fe7f816..cf50d008772 100644 --- a/selinux-policy/daily/index.xml +++ b/selinux-policy/daily/index.xml @@ -1,7 +1,7 @@ GitHub SELinux Policy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:34Z + 2023-09-24T01:41:26Z Daily Trending of SELinux Policy in GitHub \ No newline at end of file diff --git a/selinux-policy/weekly/index.xml b/selinux-policy/weekly/index.xml new file mode 100644 index 00000000000..7f33b15494b --- /dev/null +++ b/selinux-policy/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SELinux Policy Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:00:59Z + Weekly Trending of SELinux Policy in GitHub + + \ No newline at end of file diff --git a/shaderlab/daily/index.xml b/shaderlab/daily/index.xml index bbbbae8d1db..570cb2a5c2c 100644 --- a/shaderlab/daily/index.xml +++ b/shaderlab/daily/index.xml @@ -1,7 +1,7 @@ GitHub ShaderLab Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:33Z + 2023-09-24T01:41:25Z Daily Trending of ShaderLab in GitHub \ No newline at end of file diff --git a/shaderlab/weekly/index.xml b/shaderlab/weekly/index.xml new file mode 100644 index 00000000000..17387dc3560 --- /dev/null +++ b/shaderlab/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ShaderLab Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:02Z + Weekly Trending of ShaderLab in GitHub + + \ No newline at end of file diff --git a/shell/daily/index.xml b/shell/daily/index.xml index ce02422a42a..c816d5ef5ef 100644 --- a/shell/daily/index.xml +++ b/shell/daily/index.xml @@ -1,7 +1,28 @@ GitHub Shell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:37Z + 2023-09-24T01:41:30Z Daily Trending of Shell in GitHub + + ashishb/android-security-awesome + 2023-09-24T01:41:30Z + tag:github.com,2023-09-24:/ashishb/android-security-awesome + + <p>A collection of android security related resources</p><hr><h1>android-security-awesome <img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg?sanitize=true" alt="Awesome"></h1> <p><a href="https://github.com/ashishb/android-security-awesome/actions/workflows/validate-links.yml"><img src="https://github.com/ashishb/android-security-awesome/actions/workflows/validate-links.yml/badge.svg?sanitize=true" alt="Link Liveness Checker"></a> <a href="https://github.com/ashishb/android-security-awesome/actions/workflows/lint-shell-script.yaml"><img src="https://github.com/ashishb/android-security-awesome/actions/workflows/lint-shell-script.yaml/badge.svg?sanitize=true" alt="Lint Shell scripts"></a> <a href="https://github.com/ashishb/android-security-awesome/actions/workflows/lint-markdown.yaml"><img src="https://github.com/ashishb/android-security-awesome/actions/workflows/lint-markdown.yaml/badge.svg?sanitize=true" alt="Lint Markdown"></a> <a href="https://github.com/ashishb/android-security-awesome/actions/workflows/lint-yaml.yaml"><img src="https://github.com/ashishb/android-security-awesome/actions/workflows/lint-yaml.yaml/badge.svg?sanitize=true" alt="Lint YAML"></a></p> <p>A collection of Android security-related resources.</p> <ol> <li><a href="https://raw.githubusercontent.com/ashishb/android-security-awesome/master/#tools">Tools</a></li> <li><a href="https://raw.githubusercontent.com/ashishb/android-security-awesome/master/#academic">Academic/Research/Publications/Books</a></li> <li><a href="https://raw.githubusercontent.com/ashishb/android-security-awesome/master/#exploits">Exploits/Vulnerabilities/Bugs</a></li> </ol> <h2>Tools</h2> <h3>Online Analyzers</h3> <ol> <li><a href="http://andrototal.org/">AndroTotal</a></li> <li><a href="https://www.appknox.com/">Appknox</a> - not free</li> <li><a href="https://www.virustotal.com/">Virustotal</a> - max 128MB</li> <li><a href="http://app-ray.co/">Fraunhofer App-ray</a> - not free</li> <li><a href="https://www.nowsecure.com/blog/2016/09/19/announcing-nowsecure-lab-automated/">NowSecure Lab Automated</a> - Enterprise tool for mobile app security testing both Android and iOS mobile apps. Lab Automated features dynamic and static analysis on real devices in the cloud to return results in minutes. Not free</li> <li><a href="https://appdetonator.run/">App Detonator</a> - Detonate APK binary to provide source code level details including app author, signature, build, and manifest information. 3 Analysis/day free quota.</li> <li><a href="https://beta.pithus.org/">Pithus</a> - Open-Source APK analyzer. Still in Beta for the moment and limited to static analysis for the moment. Possible to hunt malware with Yara rules. More <a href="https://beta.pithus.org/about/">here</a>.</li> <li><a href="https://approver.talos-sec.com/">Approver</a> - Approver is a fully automated security analysis and risk assessment platform for Android and iOS apps. Not free.</li> <li><a href="https://oversecured.com/">Oversecured</a> - Enterprise vulnerability scanner for Android and iOS apps, it offers app owners and developers the ability to secure each new version of a mobile app by integrating Oversecured into the development process. Not free.</li> <li><a href="https://appsweep.guardsquare.com/">AppSweep by Guardsquare</a> - Free, fast Android application security testing for developers</li> <li><a href="https://koodous.com">Koodous</a> - Performs static/dynamic malware analysis over a vast repository of Android samples and checks them against public and private Yara rules.</li> <li><del><a href="https://malab.bitbaan.com/">BitBaan</a></del></li> <li><del><a href="http://undroid.av-comparatives.info/">AVC UnDroid</a></del></li> <li><del><a href="https://amaaas.com">AMAaaS</a> - Free Android Malware Analysis Service. A bare-metal service features static and dynamic analysis for Android applications. A product of <a href="https://malwarepot.com/index.php/AMAaaS">MalwarePot</a></del>.</li> <li><del><a href="https://appcritique.boozallen.com">AppCritique</a> - Upload your Android APKs and receive comprehensive free security assessments</del></li> <li><del><a href="https://apkscan.nviso.be/">NVISO ApkScan</a> - sunsetting on Oct 31, 2019</del></li> <li><del><a href="http://www.mobilemalware.com.br/analysis/index_en.php">Mobile Malware Sandbox</a></del></li> <li><del><a href="https://appscan.bluemix.net/mobileAnalyzer">IBM Security AppScan Mobile Analyzer</a> - not free</del></li> <li><del><a href="https://www.visualthreat.com/">Visual Threat</a> - no longer an Android app analyzer</del></li> <li><del><a href="http://tracedroid.few.vu.nl/">Tracedroid</a></del></li> <li><del><a href="https://habo.qq.com/">habo</a> - 10/day</del></li> <li><del><a href="http://copperdroid.isg.rhul.ac.uk/copperdroid/">CopperDroid</a></del></li> <li><del><a href="http://sanddroid.xjtu.edu.cn/">SandDroid</a></del></li> <li><del><a href="http://www.android-permissions.org/">Stowaway</a></del></li> <li><del><a href="http://anubis.iseclab.org/">Anubis</a></del></li> <li><del><a href="http://www.mobile-app-insight.org">Mobile app insight</a></del></li> <li><del><a href="http://mobile-sandbox.com">Mobile-Sandbox</a></del></li> <li><del><a href="http://safe.ijiami.cn/">Ijiami</a></del></li> <li><del><a href="http://www.comdroid.org/">Comdroid</a></del></li> <li><del><a href="http://www.androidsandbox.net/">Android Sandbox</a></del></li> <li><del><a href="http://www.foresafe.com/scan">Foresafe</a></del></li> <li><del><a href="https://dexter.dexlabs.org/">Dexter</a></del></li> <li><del><a href="http://www.mobiseclab.org/eacus.jsp">MobiSec Eacus</a></del></li> <li><del><a href="https://fireeye.ijinshan.com/">Fireeye</a>- max 60MB 15/day</del></li> </ol> <h3>Static Analysis Tools</h3> <ol> <li><a href="https://github.com/maaaaz/androwarn/">Androwarn</a> - detect and warn the user about potential malicious behaviors developed by an Android application.</li> <li><a href="https://github.com/sonyxperiadev/ApkAnalyser">ApkAnalyser</a></li> <li><a href="https://github.com/honeynet/apkinspector/">APKInspector</a></li> <li><a href="https://www.cert.org/secure-coding/tools/didfail.cfm">Droid Intent Data Flow Analysis for Information Leakage</a></li> <li><a href="https://bitbucket.org/srl/droidlegacy">DroidLegacy</a></li> <li><del><a href="https://github.com/EugenioDelfa/Smali-CFGs">Smali CFG generator</a></del></li> <li><a href="https://blogs.uni-paderborn.de/sse/tools/flowdroid/">FlowDroid</a></li> <li><a href="https://www.pnfsoftware.com/">Android Decompiler</a> – not free</li> <li><a href="https://security.csl.toronto.edu/pscout/">PSCout</a> - A tool that extracts the permission specification from the Android OS source code using static analysis</li> <li><a href="http://amandroid.sireum.org/">Amandroid</a></li> <li><a href="https://github.com/dorneanu/smalisca">SmaliSCA</a> - Smali Static Code Analysis</li> <li><a href="https://github.com/douggard/CFGScanDroid">CFGScanDroid</a> - Scans and compares CFG against CFG of malicious applications</li> <li><a href="https://github.com/maldroid/maldrolyzer">Madrolyzer</a> - extracts actionable data like C&amp;C, phone number etc.</li> <li><a href="https://www.cs.washington.edu/sparta">SPARTA</a> - verifies (proves) that an app satisfies an information-flow security policy; built on the <a href="https://types.cs.washington.edu/checker-framework/">Checker Framework</a></li> <li><a href="https://github.com/JulianSchuette/ConDroid">ConDroid</a> - Performs a combination of symbolic + concrete execution of the app</li> <li><a href="https://github.com/serval-snt-uni-lu/DroidRA">DroidRA</a></li> <li><a href="https://github.com/ClaudiuGeorgiu/RiskInDroid">RiskInDroid</a> - A tool for calculating the risk of Android apps based on their permissions, with an online demo available.</li> <li><a href="https://github.com/SUPERAndroidAnalyzer/super">SUPER</a> - Secure, Unified, Powerful and Extensible Rust Android Analyzer</li> <li><a href="https://github.com/google/android-classyshark">ClassyShark</a> - Standalone binary inspection tool which can browse any Android executable and show important info.</li> <li><a href="https://github.com/vincentcox/StaCoAn">StaCoAn</a> - Cross-platform tool which aids developers, bug-bounty hunters, and ethical hackers in performing static code analysis on mobile applications. This tool was created with a big focus on usability and graphical guidance in the user interface.</li> <li><a href="https://github.com/flankerhqd/JAADAS">JAADAS</a> - Joint intraprocedural and interprocedural program analysis tool to find vulnerabilities in Android apps, built on Soot and Scala</li> <li><a href="https://github.com/quark-engine/quark-engine">Quark-Engine</a> - An Obfuscation-Neglect Android Malware Scoring System</li> <li><a href="https://github.com/b-mueller/apkx">One Step Decompiler</a> - Android APK Decompilation for the Lazy</li> <li><a href="https://github.com/dwisiswant0/apkleaks">APKLeaks</a> - Scanning APK file for URIs, endpoints &amp; secrets.</li> <li><a href="https://github.com/mpast/mobileAudit">Mobile Audit</a> - Web application for performing Static Analysis and detecting malware in Android APKs.</li> <li><del><a href="http://siis.cse.psu.edu/tools.html">Several tools from PSU</a></del></li> </ol> <h3>App Vulnerability Scanners</h3> <ol> <li><a href="https://github.com/linkedin/qark/">QARK</a> - QARK by LinkedIn is for app developers to scan apps for security issues</li> <li><a href="https://github.com/AndroBugs/AndroBugs_Framework">AndroBugs</a></li> <li><a href="https://github.com/google/nogotofail">Nogotofail</a></li> <li><del><a href="https://devknox.io/">Devknox</a> - IDE plugin to build secure Android apps. Not maintained anymore.</del></li> </ol> <h3>Dynamic Analysis Tools</h3> <ol> <li><a href="http://www.mulliner.org/blog/blosxom.cgi/security/androiddbiv02.html">Android DBI frameowork</a></li> <li><a href="https://github.com/sh4hin/Androl4b">Androl4b</a>- A Virtual Machine For Assessing Android applications, Reverse Engineering and Malware Analysis</li> <li><a href="https://github.com/nccgroup/house">House</a>- House: A runtime mobile application analysis toolkit with a Web GUI, powered by Frida, written in Python.</li> <li><a href="https://github.com/MobSF/Mobile-Security-Framework-MobSF">Mobile-Security-Framework MobSF</a> - Mobile Security Framework is an intelligent, all-in-one open-source mobile application (Android/iOS) automated pen-testing framework capable of performing static, dynamic analysis and web API testing.</li> <li><a href="https://appsec-labs.com/AppUse/">AppUse</a> – custom build for penetration testing</li> <li><a href="https://github.com/pjlantz/droidbox">Droidbox</a></li> <li><a href="https://github.com/mwrlabs/drozer">Drozer</a></li> <li><a href="https://forum.xda-developers.com/xposed/xposed-installer-versions-changelog-t2714053">Xposed</a> - equivalent of doing Stub-based code injection but without any modifications to the binary</li> <li><a href="https://github.com/ac-pm/Inspeckage">Inspeckage</a> - Android Package Inspector - dynamic analysis with API hooks, start unexported activities, and more. (Xposed Module)</li> <li><a href="https://github.com/AndroidHooker/hooker">Android Hooker</a> - Dynamic Java code instrumentation (requires the Substrate Framework)</li> <li><a href="https://github.com/ZSShen/ProbeDroid">ProbeDroid</a> - Dynamic Java code instrumentation</li> <li><del><a href="https://androidtamer.com/">Android Tamer</a> - Virtual / Live Platform for Android Security Professionals</del></li> <li><a href="https://github.com/sycurelab/DECAF">DECAF</a> - Dynamic Executable Code Analysis Framework based on QEMU (DroidScope is now an extension to DECAF)</li> <li><a href="https://github.com/idanr1986/cuckoo-droid">CuckooDroid</a> - Android extension for Cuckoo sandbox</li> <li><a href="https://github.com/MobileForensicsResearch/mem">Mem</a> - Memory analysis of Android (root required)</li> <li><a href="http://www.ida.liu.se/labs/rtslab/publications/2011/spsm11-burguera.pdf">Crowdroid</a> – unable to find the actual tool</li> <li><a href="https://github.com/nwhusted/AuditdAndroid">AuditdAndroid</a> – android port of auditd, not under active development anymore</li> <li><a href="https://code.google.com/p/asef/">Android Security Evaluation Framework</a> - not under active development anymore</li> <li><a href="https://github.com/xurubin/aurasium">Aurasium</a> – Practical security policy enforcement for Android apps via bytecode rewriting and in-place reference monitor.</li> <li><a href="https://github.com/strazzere/android-lkms">Android Linux Kernel modules</a></li> <li><a href="https://manifestsecurity.com/appie/">Appie</a> - Appie is a software package that has been pre-configured to function as an Android Pentesting Environment. It is completely portable and can be carried on a USB stick or smartphone. This is a one-stop answer for all the tools needed in Android Application Security Assessment and an awesome alternative to existing virtual machines.</li> <li><a href="https://github.com/zyrikby/StaDynA">StaDynA</a> - a system supporting security app analysis in the presence of dynamic code update features (dynamic class loading and reflection). This tool combines static and dynamic analysis of Android applications in order to reveal the hidden/updated behavior and extend static analysis results with this information.</li> <li><a href="https://github.com/zhengmin1989/DroidAnalytics">DroidAnalytics</a> - incomplete</li> <li><a href="https://github.com/oguzhantopgul/Vezir-Project">Vezir Project</a> - Virtual Machine for Mobile Application Pentesting and Mobile Malware Analysis</li> <li><a href="https://github.com/xtiankisutsa/MARA_Framework">MARA</a> - Mobile Application Reverse Engineering and Analysis Framework</li> <li><a href="http://appanalysis.org">Taintdroid</a> - requires AOSP compilation</li> <li><a href="https://artist.cispa.saarland">ARTist</a> - a flexible open-source instrumentation and hybrid analysis framework for Android apps and Android's Java middleware. It is based on the Android Runtime's (ART) compiler and modifies code during on-device compilation.</li> <li><a href="https://github.com/Areizen/Android-Malware-Sandbox">Android Malware Sandbox</a></li> <li><a href="https://github.com/alexMyG/AndroPyTool">AndroPyTool</a> - a tool for extracting static and dynamic features from Android APKs. It combines different well-known Android app analysis tools such as DroidBox, FlowDroid, Strace, AndroGuard, or VirusTotal analysis.</li> <li><a href="https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security">Runtime Mobile Security (RMS)</a> - is a powerful web interface that helps you to manipulate Android and iOS Apps at Runtime</li> <li><a href="https://github.com/Dado1513/PAPIMonitor">PAPIMonitor</a> – PAPIMonitor (Python API Monitor for Android apps) is a Python tool based on Frida for monitoring user-select APIs during the app execution.</li> <li><a href="https://github.com/NotSoSecure/android_application_analyzer">Android_application_analyzer</a> - The tool is used to analyze the content of the Android application in local storage.</li> <li><del><a href="http://www.mobilemalware.com.br/amat/download.html">Android Malware Analysis Toolkit</a> - (Linux distro) Earlier it use to be an <a href="http://dunkelheit.com.br/amat/analysis/index_en.php">online analyzer</a></del></li> <li><del><a href="https://redmine.honeynet.org/projects/are/wiki">Android Reverse Engineering</a> – ARE (android reverse engineering) not under active development anymore</del></li> <li><del><a href="https://www.nowsecure.com/blog/2014/09/09/introducing-vialab-community-edition/">ViaLab Community Edition</a></del></li> <li><del><a href="https://labs.mwrinfosecurity.com/tools/2012/03/16/mercury/">Mercury</a></del></li> <li><del><a href="https://thecobraden.com/projects/cobradroid/">Cobradroid</a> – custom image for malware analysis</del></li> </ol> <h3>Reverse Engineering</h3> <ol> <li><a href="https://github.com/JesusFreke/smali">Smali/Baksmali</a> – apk decompilation</li> <li><a href="https://github.com/strazzere/Emacs-Smali">emacs syntax coloring for smali files</a></li> <li><a href="http://codetastrophe.com/smali.vim">vim syntax coloring for smali files</a></li> <li><a href="https://github.com/swdunlop/AndBug">AndBug</a></li> <li><a href="https://github.com/androguard/androguard">Androguard</a> – powerful, integrates well with other tools</li> <li><a href="https://ibotpeaches.github.io/Apktool/">Apktool</a> – really useful for compilation/decompilation (uses smali)</li> <li><a href="https://github.com/appknox/AFE">Android Framework for Exploitation</a></li> <li><a href="https://github.com/iSECPartners/Android-KillPermAndSigChecks">Bypass signature and permission checks for IPCs</a></li> <li><a href="https://github.com/iSECPartners/Android-OpenDebug">Android OpenDebug</a> – make any application on the device debuggable (using cydia substrate).</li> <li><a href="https://github.com/pxb1988/dex2jar">Dex2Jar</a> - dex to jar converter</li> <li><a href="https://github.com/google/enjarify">Enjarify</a> - dex to jar converter from Google</li> <li><a href="https://sourceforge.net/projects/dedexer/">Dedexer</a></li> <li><a href="https://github.com/sysdream/fino">Fino</a></li> <li><a href="https://www.frida.re/">Frida</a> - inject javascript to explore applications and a <a href="https://github.com/antojoseph/diff-gui">GUI tool</a> for it</li> <li><a href="https://bitbucket.org/aseemjakhar/indroid">Indroid</a> – thread injection kit</li> <li><a href="https://www.nccgroup.com/us/our-research/intent-sniffer/">IntentSniffer</a></li> <li><a href="https://github.com/iSECPartners/Introspy-Android">Introspy</a></li> <li><a href="https://varaneckas.com/jad/">Jad</a> - Java decompiler</li> <li><a href="https://github.com/java-decompiler/jd-gui">JD-GUI</a> - Java decompiler</li> <li><a href="http://www.benf.org/other/cfr/">CFR</a> - Java decompiler</li> <li><a href="https://github.com/Storyyeller/Krakatau">Krakatau</a> - Java decompiler</li> <li><a href="https://github.com/fesh0r/fernflower">FernFlower</a> - Java decompiler</li> <li><a href="https://github.com/plum-umd/redexer">Redexer</a> – apk manipulation</li> <li><a href="https://github.com/CalebFenton/simplify">Simplify Android deobfuscator</a></li> <li><a href="https://github.com/Konloch/bytecode-viewer">Bytecode viewer</a></li> <li><a href="https://github.com/radare/radare2">Radare2</a></li> <li><a href="https://github.com/skylot/jadx">Jadx</a></li> <li><a href="https://github.com/iGio90/Dwarf">Dwarf</a> - GUI for reverse engineering</li> <li><a href="https://github.com/secrary/Andromeda">Andromeda</a> - Another basic command-line reverse engineering tool</li> <li><a href="https://github.com/shroudedcode/apk-mitm">apk-mitm</a> - A CLI application that prepares Android APK files for HTTPS inspection</li> <li><a href="https://github.com/0x742/noia">Noia</a> - Simple Android application sandbox file browser tool</li> <li><a href="https://github.com/ClaudiuGeorgiu/Obfuscapk">Obfuscapk</a> - Obfuscapk is a modular Python tool for obfuscating Android apps without needing their source code.</li> <li><a href="https://github.com/Mobile-IoT-Security-Lab/ARMANDroid">ARMANDroid</a> - ARMAND (Anti-Repackaging through Multi-patternAnti-tampering based on Native Detection) is a novel anti-tampering protection scheme that embeds logic bombs and AT detection nodes directly in the apk file without needing their source code.</li> <li><a href="https://github.com/mvt-project/mvt">MVT (Mobile Verification Toolkit)</a> - a collection of utilities to simplify and automate the process of gathering forensic traces helpful to identify a potential compromise of Android and iOS devices</li> <li><del><a href="https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler">Procyon</a> - Java decompiler</del></li> <li><del><a href="http://blog.avlyun.com/wp-content/uploads/2014/04/SmaliViewer.zip">Smali viewer</a></del></li> <li><del><a href="https://github.com/BaiduSecurityLabs/ZjDroid">ZjDroid</a></del>, <del><a href="https://github.com/yangbean9/ZjDroid">fork/mirror</a></del></li> <li><del><a href="http://siis.cse.psu.edu/dare/index.html">Dare</a> – .dex to .class converter</del></li> <li><a href="https://www.decompiler.com/">Decompiler.com</a> - Online APK and Java decompiler</li> </ol> <h3>Fuzz Testing</h3> <ol> <li><a href="https://github.com/anestisb/radamsa-android">Radamsa Fuzzer</a></li> <li><a href="https://github.com/google/honggfuzz">Honggfuzz</a></li> <li><a href="https://github.com/anestisb/melkor-android">An Android port of the Melkor ELF fuzzer</a></li> <li><a href="https://github.com/fuzzing/MFFA">Media Fuzzing Framework for Android</a></li> <li><a href="https://github.com/jonmetz/AndroFuzz">AndroFuzz</a></li> <li><a href="https://github.com/quarkslab/android-fuzzing">QuarksLab's Android Fuzzing</a></li> <li><del><a href="https://www.nccgroup.trust/us/about-us/resources/intent-fuzzer/">IntentFuzzer</a></del></li> </ol> <h3>App Repackaging Detectors</h3> <ol> <li><a href="https://github.com/zyrikby/FSquaDRA">FSquaDRA</a> - a tool for the detection of repackaged Android applications based on app resources hash comparison.</li> </ol> <h3>Market Crawlers</h3> <ol> <li><a href="https://github.com/Akdeniz/google-play-crawler">Google Play crawler (Java)</a></li> <li><a href="https://github.com/egirault/googleplay-api">Google Play crawler (Python)</a></li> <li><a href="https://github.com/dweinstein/node-google-play">Google Play crawler (Node)</a> - get app details and download apps from the official Google Play Store.</li> <li><a href="https://github.com/dweinstein/node-aptoide">Aptoide downloader (Node)</a> - download apps from Aptoide third-party Android market</li> <li><a href="https://github.com/dweinstein/node-appland">Appland downloader (Node)</a> - download apps from Appland third-party Android market</li> <li><a href="https://apkpure.com/">Apkpure</a> - Online apk downloader. Provides also its own app for downloading.</li> <li><a href="https://github.com/ClaudiuGeorgiu/PlaystoreDownloader">PlaystoreDownloader</a> - PlaystoreDownloader is a tool for downloading Android applications directly from the Google Play Store. After an initial (one-time) configuration, applications can be downloaded by specifying their package name.</li> <li><a href="https://apkcombo.com/apk-downloader/">APK Downloader</a> Online Service to download APK from Playstore for specific Android Device Configuration</li> </ol> <h3>Misc Tools</h3> <ol> <li><a href="http://androidcracking.blogspot.com/2011/03/original-smalihook-java-source.html">smalihook</a></li> <li><a href="http://code.google.com/p/android4me/downloads/detail?name=AXMLPrinter2.jar">AXMLPrinter2</a> - to convert binary XML files to human-readable XML files</li> <li><a href="https://github.com/mbrubeck/android-completion">adb autocomplete</a></li> <li><a href="https://github.com/mitmproxy/mitmproxy">mitmproxy</a></li> <li><a href="https://github.com/dweinstein/dockerfile-androguard">dockerfile/androguard</a></li> <li><a href="https://github.com/AndroidVTS/android-vts">Android Vulnerability Test Suite</a> - android-vts scans a device for set of vulnerabilities</li> <li><a href="https://github.com/dpnishant/appmon">AppMon</a>- AppMon is an automated framework for monitoring and tampering with system API calls of native macOS, iOS, and Android apps. It is based on Frida.</li> <li><a href="https://github.com/seemoo-lab/internalblue">Internal Blue</a> - Bluetooth experimentation framework based on Reverse Engineering of Broadcom Bluetooth Controllers</li> <li><a href="https://github.com/SecTheTech/AMDH">Android Mobile Device Hardening</a> - AMDH scans and hardens the device's settings and lists harmful installed Apps based on permissions.</li> <li><del><a href="https://www.android-device-security.org/client/datatable">Android Device Security Database</a> - Database of security features of Android devices</del></li> <li><del><a href="http://ww38.xchg.info/corkami/opcodes_tables.pdf">Opcodes table for quick reference</a></del></li> <li><del><a href="http://codekiem.com/2012/02/24/apk-downloader/">APK-Downloader</a></del> - seems dead now</li> <li><del><a href="http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html">Dalvik opcodes</a></del></li> </ol> <h3>Vulnerable Applications for practice</h3> <ol> <li><a href="https://github.com/payatu/diva-android">Damn Insecure Vulnerable Application (DIVA)</a></li> <li><a href="https://github.com/jaiswalakshansh/Vuldroid">Vuldroid</a></li> <li><a href="http://securitycompass.github.io/AndroidLabs/setup.html">ExploitMe Android Labs</a></li> <li><a href="https://github.com/jackMannino/OWASP-GoatDroid-Project">GoatDroid</a></li> <li><a href="https://github.com/dineshshetty/Android-InsecureBankv2">Android InsecureBank</a></li> <li><a href="https://github.com/optiv/insecureshop">Insecureshop</a></li> <li><a href="https://github.com/oversecured/ovaa">Oversecured Vulnerable Android App (OVAA)</a></li> </ol> <h2>Academic/Research/Publications/Books</h2> <h3>Research Papers</h3> <ol> <li><a href="https://www.exploit-db.com/papers/">Exploit Database</a></li> <li><a href="https://github.com/jacobsoo/AndroidSlides">Android security-related presentations</a></li> <li><a href="https://tthtlc.wordpress.com/2011/09/01/static-analysis-of-android-applications/">A good collection of static analysis papers</a></li> </ol> <h3>Books</h3> <ol> <li><a href="https://www.securecoding.cert.org/confluence/display/android/Android+Secure+Coding+Standard">SEI CERT Android Secure Coding Standard</a></li> </ol> <h3>Others</h3> <ol> <li><a href="https://github.com/OWASP/owasp-mstg">OWASP Mobile Security Testing Guide Manual</a></li> <li><a href="https://github.com/doridori/Android-Security-Reference">doridori/Android-Security-Reference</a></li> <li><a href="https://github.com/b-mueller/android_app_security_checklist">android app security checklist</a></li> <li><a href="https://github.com/tanprathan/MobileApp-Pentest-Cheatsheet">Mobile App Pentest Cheat Sheet</a></li> <li><a href="http://web.archive.org/web/20180721134044/http://www.fasteque.com:80/android-reverse-engineering-101-part-1/">Android Reverse Engineering 101 by Daniele Altomare (Web Archive link)</a></li> <li><del><a href="https://mobile-security.zeef.com">Mobile Security Reading Room</a> - A reading room that contains well-categorized technical reading material about mobile penetration testing, mobile malware, mobile forensics, and all kind of mobile security-related topics</del></li> </ol> <h2>Exploits/Vulnerabilities/Bugs</h2> <h3>List</h3> <ol> <li><a href="https://source.android.com/security/bulletin/">Android Security Bulletins</a></li> <li><a href="https://www.cvedetails.com/vulnerability-list/vendor_id-1224/product_id-19997/Google-Android.html">Android's reported security vulnerabilities</a></li> <li><a href="https://code.google.com/p/android/issues/list?can=2&amp;q=priority=Critical&amp;sort=-opened">AOSP - Issue tracker</a></li> <li><a href="https://www.owasp.org/index.php/Mobile_Top_10_2016-Top_10">OWASP Mobile Top 10 2016</a></li> <li><a href="https://www.exploit-db.com/search/?action=search&amp;q=android">Exploit Database</a> - click search</li> <li><a href="https://docs.google.com/spreadsheet/pub?key=0Am5hHW4ATym7dGhFU1A4X2lqbUJtRm1QSWNRc3E0UlE&amp;single=true&amp;gid=0&amp;output=html">Vulnerability Google Doc</a></li> <li><a href="https://source.android.com/security/reports/Google_Android_Security_PHA_classifications.pdf">Google Android Security Team’s Classifications for Potentially Harmful Applications (Malware)</a></li> <li><del><a href="https://kb.androidtamer.com/Device_Security_Patch_tracker/">Android Devices Security Patch Status</a></del></li> </ol> <h3>Malware</h3> <ol> <li><a href="https://code.google.com/p/androguard/wiki/DatabaseAndroidMalwares">androguard - Database Android Malware wiki</a></li> <li><a href="https://github.com/ashishb/android-malware">Android Malware Github repo</a></li> <li><a href="http://www.malgenomeproject.org/policy.html">Android Malware Genome Project</a> - contains 1260 malware samples categorized into 49 different malware families, free for research purposes.</li> <li><a href="http://contagiominidump.blogspot.com">Contagio Mobile Malware Mini Dump</a></li> <li><a href="https://www.sec.tu-bs.de/~danarp/drebin/">Drebin</a></li> <li><a href="http://kharon.gforge.inria.fr/dataset/">Kharon Malware Dataset</a> - 7 malware which have been reverse-engineered and documented</li> <li><a href="https://www.unb.ca/cic/datasets/android-adware.html">Android Adware and General Malware Dataset</a></li> <li><a href="https://androzoo.uni.lu/">AndroZoo</a> - AndroZoo is a growing collection of Android Applications collected from several sources, including the official Google Play app market.</li> <li><del><a href="http://pralab.diee.unica.it/en/AndroidPRAGuardDataset">Android PRAGuard Dataset</a> - The dataset contains 10479 samples, obtained by obfuscating the MalGenome and the Contagio Minidump datasets with seven different obfuscation techniques.</del></li> <li><del><a href="http://admire.necst.it/">Admire</a></del></li> </ol> <h3>Bounty Programs</h3> <ol> <li><a href="https://www.google.com/about/appsecurity/android-rewards/">Android Security Reward Program</a></li> </ol> <h3>How to report Security issues</h3> <ol> <li><a href="https://source.android.com/security/overview/updates-resources.html#report-issues">Android - reporting security issues</a></li> <li><a href="https://github.com/B3nac/Android-Reports-and-Resources">Android Reports and Resources</a> - List of Android Hackerone disclosed reports and other resources</li> </ol> <h2>Contributing</h2> <p>Your contributions are always welcome!</p> + + + notofonts/noto-cjk + 2023-09-24T01:41:30Z + tag:github.com,2023-09-24:/notofonts/noto-cjk + + <p>Noto CJK fonts</p><hr><h1>Noto CJK fonts</h1> <p>Download individual fonts from the download guides for <a href="https://github.com/googlefonts/noto-cjk/tree/main/Sans#downloading-noto-sans-cjk">Noto Sans CJK</a> or <a href="https://github.com/googlefonts/noto-cjk/tree/main/Serif#downloading-noto-serif-cjk">Noto Serif CJK</a> or look in <a href="https://github.com/googlefonts/noto-cjk/releases">Releases</a></p> <p>Release notes and version history are documented separately for <a href="https://github.com/googlefonts/noto-cjk/raw/main/Sans/NEWS.md#noto-sans-cjk-release-notes">Sans</a> and <a href="https://github.com/googlefonts/noto-cjk/raw/main/Serif/NEWS.md#noto-serif-cjk-release-notes">Serif</a></p> <p>Noto CJK fonts are also available on <a href="https://fonts.google.com/noto/fonts">Google Fonts</a> but under different names than in this repository. The two letter code here is replaced at Google Fonts as follows:</p> <ul> <li><em>JP</em> -&gt; <em>Japanese</em></li> <li><em>KR</em> -&gt; <em>Korean</em></li> <li><em>SC</em> -&gt; <em>Simplified Chinese</em></li> <li><em>TC</em> -&gt; <em>Traditional Chinese</em></li> <li><em>HK</em> -&gt; <em>Hong Kong</em></li> </ul> + + + Raha-Project/Raha + 2023-09-24T01:41:30Z + tag:github.com,2023-09-24:/Raha-Project/Raha + + <p></p><hr><h1>Raha Project</h1> <p><a href="https://raw.githubusercontent.com/Raha-Project/Raha/main/README-FA.md">فارسی</a></p> <p>Reaha project provide you micro-service based applications to use must powerfull anti-internet-sensorship platforms.</p> <p>It contains serveral parts:</p> <ol> <li><a href="https://github.com/Raha-Project/raha-xray">Raha-Xray</a> : A backend api server for run and control <a href="https://github.com/XTLS/Xray-core">xray-core</a></li> <li><code>Raha-*</code> : Reserved for other backend api apps</li> <li><code>Raha-Panel</code> (coming soon...) : A unified multi server web panel to control all servers' api backends</li> <li><a href="https://github.com/Raha-Project/raha-docs">Raha-Docs</a> (TEMPORARY) : A simple documentation for using all parts of <code>Raha-Project</code></li> <li><a href="https://raha-project.github.io">Raha-Project.github.io</a> (coming soon...) : Documentation website</li> </ol> <h2>Raha-Xray</h2> <ul> <li>This app will control and configure all you need from <code>xray-core</code> and provide you an api.</li> <li>You can install it several servers and control it by a web pannel or application server.</li> <li>It support <code>SQLite</code> simple database and optional <code>MySQL</code> database for advanced ussage.</li> </ul> <h3>Installation methods</h3> <p>You can use these links for installation and update to lates version.</p> <h4>1. Install <code>raha-xray</code> using <code>SQLite</code> database</h4> <pre><code class="language-sh">bash &lt;(curl -Ls https://raw.githubusercontent.com/Raha-Project/Raha/master/install.sh) </code></pre> <h4>2. Install <code>raha-xray</code> with <code>MySQL</code> database</h4> <pre><code class="language-sh">bash &lt;(curl -Ls https://raw.githubusercontent.com/Raha-Project/Raha/master/linuxMySQL/install.sh) </code></pre> <h4>3. Install <code>raha-xray</code> + <code>MySQL</code> using <code>docker</code> and <code>docker-compose</code> (Recommended for Test)</h4> <pre><code class="language-sh">bash &lt;(curl -Ls https://raw.githubusercontent.com/Raha-Project/Raha/master/dockerMySQL/install.sh) </code></pre> + \ No newline at end of file diff --git a/shell/weekly/index.xml b/shell/weekly/index.xml new file mode 100644 index 00000000000..2f91c611e95 --- /dev/null +++ b/shell/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Shell Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:04Z + Weekly Trending of Shell in GitHub + + + sakarie9/DOL-CHS-MODS + 2023-09-24T02:01:04Z + tag:github.com,2023-09-24:/sakarie9/DOL-CHS-MODS + + <p>Degrees of Lewdity 整合</p><hr><h1>Degrees of Lewdity 整合包发布仓库</h1> <h2>简介</h2> <h3>放在前面...</h3> <ul> <li><img decoding="async" src="https://gitgud.io/uploads/-/system/user/avatar/9096/avatar.png" width="24"> <b>游戏作者</b> $\color{purple} {Vrelnir}$ <ul> <li><a href="https://vrelnir.blogspot.com">Vrelnir 的博客</a></li> <li><a href="https://degreesoflewdity.miraheze.org/wiki">英文游戏维基</a></li> <li><a href="https://degreesoflewditycn.miraheze.org/wiki">中文游戏维基</a></li> <li><a href="https://discord.gg/VznUtEh">官方 Discord</a></li> <li><a href="https://gitgud.io/Vrelnir/degrees-of-lewdity/-/tree/master">游戏源码仓库</a></li> </ul> </li> <li><a href="https://github.com/Eltirosto/Degrees-of-Lewdity-Chinese-Localization">原版汉化仓库</a></li> <li>美化 <ul> <li><a href="https://gitgud.io/BEEESSS/degrees-of-lewdity-graphics-mod">Degrees of Lewdity Graphics Mod</a></li> <li><a href="https://gitgud.io/Kaervek/kaervek-beeesss-community-sprite-compilation">BEEESSS Community Sprite Compilation</a></li> </ul> </li> <li>特写 <ul> <li><a href="https://arca.live/b/textgame/83875947">韩站特写</a></li> <li><a href="https://gitgud.io/GTXMEGADUDE/papa-paril-burger-joint">Papa Paril BEEESSS Burger Joint</a></li> </ul> </li> </ul> <h3>关于本仓库</h3> <p>本仓库是基于 <a href="https://github.com/Eltirosto/Degrees-of-Lewdity-Chinese-Localization">汉化仓库</a> 制作的自动化打包仓库,使用 Github Actions 提供多种 Mod 组合可供选择,跟随汉化仓库更新</p> <h3>下载</h3> <p><a href="https://github.com/sakarie9/DOL-CHS-MODS/releases/latest">Latest Release</a></p> <h3>在线</h3> <ul> <li> <p><a href="https://dol-chs-mods.vercel.app/">Vercel</a></p> </li> <li> <p><a href="https://dol-chs-mods.netlify.app">Netlify</a> 大陆访问更快</p> </li> </ul> <blockquote> <p>在线版仅使用 <code>美化+作弊+HP+BJ特写</code> 构建,需要其他版本请前往 <a href="https://github.com/sakarie9/DOL-CHS-MODS/releases">Release</a> 下载本地版</p> </blockquote> <h3>各版本说明</h3> <ul> <li> <p>美化 | <a href="https://gitgud.io/BEEESSS/degrees-of-lewdity-graphics-mod">Degrees of Lewdity Graphics Mod</a> &amp; <a href="https://gitgud.io/Kaervek/kaervek-beeesss-community-sprite-compilation">BEEESSS Community Sprite Compilation</a></p> <p><img src="https://raw.githubusercontent.com/sakarie9/DOL-CHS-MODS/main/assets/beautify.webp" alt="预览"></p> <p>经典美化</p> </li> <li> <p>作弊</p> <p>不需要在设置启动作弊即可使用作弊功能,可以解锁成就</p> </li> <li> <p>HP | @洛汐</p> <p>显示敌人当前 HP</p> </li> <li> <p>BJ特写 | <a href="https://gitgud.io/GTXMEGADUDE/papa-paril-burger-joint">Papa Paril BEEESSS Burger Joint</a></p> <p><img src="https://raw.githubusercontent.com/sakarie9/DOL-CHS-MODS/main/assets/beautify-avatarbj.webp" alt="预览"></p> <p>在立绘旁显示特写头像,推荐使用</p> <p>⚠️仍在早期开发阶段,未支持的头发会显示为光头⚠️</p> </li> <li> <p>KR特写 | <a href="https://arca.live/b/textgame/83875947">原帖</a></p> <p><img src="https://raw.githubusercontent.com/sakarie9/DOL-CHS-MODS/main/assets/beautify-avatarkr.webp" alt="预览"></p> <p>另一个特写版本</p> <p>⚠️仍在早期开发阶段,未支持的头发会显示为光头⚠️</p> </li> </ul> <h3>更新日志</h3> <details> <summary>点击展开</summary> <ul> <li> <p>0914</p> <p>移除世界扩展</p> <p>使用新格式HP显示</p> </li> <li> <p>0911</p> <p>修改特写命名</p> <blockquote> <p>特写1 -&gt; KR特写</p> </blockquote> <blockquote> <p>特写2 -&gt; BJ特写</p> </blockquote> </li> <li> <p>0908</p> <p>新增世界扩展作为底包</p> </li> <li> <p>v1.3.0-0904</p> <p>修正特写2未被应用的问题</p> </li> <li> <p>v1.3.0-0903</p> <p>添加特写1和特写2及HP显示</p> </li> <li> <p>v1.3.0-0902</p> <p>首次更新</p> </li> </ul> </details> <h3>整合包使用须知</h3> <ul> <li> <p>版本格式</p> <ul> <li>文件名格式 <ul> <li><code>dol-chs-{汉化版本号}-{MOD}-{日期}.{zip,apk}</code></li> </ul> </li> <li>tag 格式 <ul> <li><code>{原版版本号}-{汉化版本号}-{日期}</code></li> </ul> </li> </ul> </li> <li> <p>本整合包中 Android 端应用名称修改为 <code>DOL CHS MODS</code> 且与原版及汉化版共存,请使用导出存档功能转移存档</p> </li> <li> <p>根据汉化仓库中的 <a href="https://github.com/Eltirosto/Degrees-of-Lewdity-Chinese-Localization/raw/main/README.md#%E5%85%8D%E8%B4%A3%E5%A3%B0%E6%98%8E">免责声明</a></p> <blockquote> <p>汉化组不对任何修改后的汉化版本负责,包括但不限于修改游戏本体 html 文件,使用可能改变游戏内容的模组,使用他人发布的整合包等;汉化组也不会为任何第三方发布的模组版/修改版/魔改版/整合包等背书或担保。请在反馈问题前检查游戏是否已被修改,若被修改请勿提交,我们可能不会接受使用修改版本的内容反馈。</p> </blockquote> <p>在使用本整合包出现问题时在未判断问题是否由本整合包引入之前请勿向汉化仓库反馈</p> </li> </ul> + + + pi-hole/docker-pi-hole + 2023-09-24T02:01:04Z + tag:github.com,2023-09-24:/pi-hole/docker-pi-hole + + <p>Pi-hole in a docker container</p><hr><h1>Docker Pi-hole</h1> <p align="center"> <a href="https://pi-hole.net"><img src="https://pi-hole.github.io/graphics/Vortex/Vortex_with_text.png" width="150" height="255" alt="Pi-hole"></a><br> </p> <!-- Delete above HTML and insert markdown for dockerhub : ![Pi-hole](https://pi-hole.github.io/graphics/Vortex/Vortex_with_text.png) --> <h2>Upgrade Notes</h2> <ul> <li> <p><strong>Using Watchtower? See the <a href="https://raw.githubusercontent.com/pi-hole/docker-pi-hole/master/#note-on-watchtower">Note on Watchtower</a> at the bottom of this readme</strong></p> </li> <li> <p>As of <code>2023.01</code>, if you have any modifications for lighttpd via an <code>external.conf</code> file, this file now needs to be mapped into <code>/etc/lighttpd/conf-enabled/whateverfile.conf</code> instead</p> </li> <li> <p>Due to <a href="https://github.com/moby/moby/issues/40734">a known issue with Docker and libseccomp &lt;2.5</a>, you may run into issues running <code>2022.04</code> and later on host systems with an older version of <code>libseccomp2</code> (<a href="https://pkgs.org/download/libseccomp2">Such as Debian/Raspbian buster or Ubuntu 20.04</a>, and maybe <a href="https://pkgs.org/download/libseccomp">CentOS 7</a>).</p> <p>The first recommendation is to upgrade your host OS, which will include a more up to date (and fixed) version of <code>libseccomp</code>.</p> <p><em>If you absolutely cannot do this, some users <a href="https://github.com/pi-hole/docker-pi-hole/issues/1042#issuecomment-1086728157">have reported</a> success in updating <code>libseccomp2</code> via backports on debian, or similar via updates on Ubuntu. You can try this workaround at your own risk</em> (Note, you may also find that you need the latest <code>docker.io</code> (more details <a href="https://blog.samcater.com/fix-workaround-rpi4-docker-libseccomp2-docker-20/">here</a>)</p> </li> <li> <p>Some users <a href="https://github.com/pi-hole/docker-pi-hole/issues/963#issuecomment-1095602502">have reported issues</a> with using the <code>--privileged</code> flag on <code>2022.04</code> and above. TL;DR, don't use that mode, and be <a href="https://github.com/pi-hole/docker-pi-hole#note-on-capabilities">explicit with the permitted caps</a> (if needed) instead</p> </li> </ul> <h2>Quick Start</h2> <ol> <li>Copy docker-compose.yml.example to docker-compose.yml and update as needed. See example below: <a href="https://docs.docker.com/compose/install/">Docker-compose</a> example:</li> </ol> <pre><code class="language-yaml">version: "3" # More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/ services: pihole: container_name: pihole image: pihole/pihole:latest # For DHCP it is recommended to remove these ports and instead add: network_mode: "host" ports: - "53:53/tcp" - "53:53/udp" - "67:67/udp" # Only required if you are using Pi-hole as your DHCP server - "80:80/tcp" environment: TZ: 'America/Chicago' # WEBPASSWORD: 'set a secure password here or it will be random' # Volumes store your data between container upgrades volumes: - './etc-pihole:/etc/pihole' - './etc-dnsmasq.d:/etc/dnsmasq.d' # https://github.com/pi-hole/docker-pi-hole#note-on-capabilities cap_add: - NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed restart: unless-stopped </code></pre> <ol start="2"> <li>Run <code>docker compose up -d</code> to build and start pi-hole (Syntax may be <code>docker-compose</code> on older systems)</li> <li>Use the Pi-hole web UI to change the DNS settings <em>Interface listening behavior</em> to "Listen on all interfaces, permit all origins", if using Docker's default <code>bridge</code> network setting. (This can also be achieved by setting the environment variable <code>DNSMASQ_LISTENING</code> to <code>all</code>)</li> </ol> <p><a href="https://github.com/pi-hole/docker-pi-hole/raw/master/examples/docker_run.sh">Here is an equivalent docker run script</a>.</p> <h2>Overview</h2> <p>A <a href="https://www.docker.com/what-docker">Docker</a> project to make a lightweight x86 and ARM container with <a href="https://pi-hole.net">Pi-hole</a> functionality.</p> <ol> <li>Install docker for your <a href="https://www.docker.com/community-edition">x86-64 system</a> or <a href="https://www.raspberrypi.org/blog/docker-comes-to-raspberry-pi/">ARMv7 system</a> using those links. <a href="https://docs.docker.com/compose/install/">Docker-compose</a> is also recommended.</li> <li>Use the above quick start example, customize if desired.</li> <li>Enjoy!</li> </ol> <p><a href="https://github.com/pi-hole/docker-pi-hole/actions?query=workflow%3A%22Test+%26+Build%22"><img src="https://github.com/pi-hole/docker-pi-hole/workflows/Test%20&amp;%20Build/badge.svg?sanitize=true" alt="Build Status"></a> <a href="https://store.docker.com/community/images/pihole/pihole"><img src="https://img.shields.io/docker/stars/pihole/pihole.svg?maxAge=604800" alt="Docker Stars"></a> <a href="https://store.docker.com/community/images/pihole/pihole"><img src="https://img.shields.io/docker/pulls/pihole/pihole.svg?maxAge=604800" alt="Docker Pulls"></a></p> <h2>Running Pi-hole Docker</h2> <p>This container uses 2 popular ports, port 53 and port 80, so <strong>may conflict with existing applications ports</strong>. If you have no other services or docker containers using port 53/80 (if you do, keep reading below for a reverse proxy example), the minimum arguments required to run this container are in the script <a href="https://github.com/pi-hole/docker-pi-hole/raw/master/examples/docker_run.sh">docker_run.sh</a></p> <p>If you're using a Red Hat based distribution with an SELinux Enforcing policy add <code>:z</code> to line with volumes like so:</p> <pre><code> -v "$(pwd)/etc-pihole:/etc/pihole:z" \ -v "$(pwd)/etc-dnsmasq.d:/etc/dnsmasq.d:z" \ </code></pre> <p>Volumes are recommended for persisting data across container re-creations for updating images. The IP lookup variables may not work for everyone, please review their values and hard code IP and IPv6 if necessary.</p> <p>You can customize where to store persistent data by setting the <code>PIHOLE_BASE</code> environment variable when invoking <code>docker_run.sh</code> (e.g. <code>PIHOLE_BASE=/opt/pihole-storage ./docker_run.sh</code>). If <code>PIHOLE_BASE</code> is not set, files are stored in your current directory when you invoke the script.</p> <p><strong>Automatic Ad List Updates</strong> - since the 3.0+ release, <code>cron</code> is baked into the container and will grab the newest versions of your lists and flush your logs. <strong>Set your TZ</strong> environment variable to make sure the midnight log rotation syncs up with your timezone's midnight.</p> <h2>Running DHCP from Docker Pi-Hole</h2> <p>There are multiple different ways to run DHCP from within your Docker Pi-hole container but it is slightly more advanced and one size does not fit all. DHCP and Docker's multiple network modes are covered in detail on our docs site: <a href="https://docs.pi-hole.net/docker/DHCP/">Docker DHCP and Network Modes</a></p> <h2>Environment Variables</h2> <p>There are other environment variables if you want to customize various things inside the docker container:</p> <h3>Recommended Variables</h3> <table> <thead> <tr> <th>Variable</th> <th>Default</th> <th>Value</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>TZ</code></td> <td>UTC</td> <td><code>&lt;Timezone&gt;</code></td> <td>Set your <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">timezone</a> to make sure logs rotate at local midnight instead of at UTC midnight.</td> </tr> <tr> <td><code>WEBPASSWORD</code></td> <td>random</td> <td><code>&lt;Admin password&gt;</code></td> <td><a href="http://pi.hole/admin">http://pi.hole/admin</a> password. Run <code>docker logs pihole | grep random</code> to find your random pass.</td> </tr> <tr> <td><code>FTLCONF_LOCAL_IPV4</code></td> <td>unset</td> <td><code>&lt;Host's IP&gt;</code></td> <td>Set to your server's LAN IP, used by web block modes.</td> </tr> </tbody> </table> <h3>Optional Variables</h3> <table> <thead> <tr> <th>Variable</th> <th>Default</th> <th>Value</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>PIHOLE_DNS_</code></td> <td><code>8.8.8.8;8.8.4.4</code></td> <td>IPs delimited by <code>;</code></td> <td>Upstream DNS server(s) for Pi-hole to forward queries to, separated by a semicolon <br> (supports non-standard ports with <code>#[port number]</code>) e.g <code>127.0.0.1#5053;8.8.8.8;8.8.4.4</code> <br> (supports <a href="https://docs.docker.com/compose/networking/">Docker service names and links</a> instead of IPs) e.g <code>upstream0;upstream1</code> where <code>upstream0</code> and <code>upstream1</code> are the service names of or links to docker services <br> Note: The existence of this environment variable assumes this as the <em>sole</em> management of upstream DNS. Upstream DNS added via the web interface will be overwritten on container restart/recreation</td> </tr> <tr> <td><code>DNSSEC</code></td> <td><code>false</code></td> <td><code>&lt;"true"|"false"&gt;</code></td> <td>Enable DNSSEC support</td> </tr> <tr> <td><code>DNS_BOGUS_PRIV</code></td> <td><code>true</code></td> <td><code>&lt;"true"|"false"&gt;</code></td> <td>Never forward reverse lookups for private ranges</td> </tr> <tr> <td><code>DNS_FQDN_REQUIRED</code></td> <td><code>true</code></td> <td><code>&lt;"true"|"false"&gt;</code></td> <td>Never forward non-FQDNs</td> </tr> <tr> <td><code>REV_SERVER</code></td> <td><code>false</code></td> <td><code>&lt;"true"|"false"&gt;</code></td> <td>Enable DNS conditional forwarding for device name resolution</td> </tr> <tr> <td><code>REV_SERVER_DOMAIN</code></td> <td>unset</td> <td>Network Domain</td> <td>If conditional forwarding is enabled, set the domain of the local network router</td> </tr> <tr> <td><code>REV_SERVER_TARGET</code></td> <td>unset</td> <td>Router's IP</td> <td>If conditional forwarding is enabled, set the IP of the local network router</td> </tr> <tr> <td><code>REV_SERVER_CIDR</code></td> <td>unset</td> <td>Reverse DNS</td> <td>If conditional forwarding is enabled, set the reverse DNS zone (e.g. <code>192.168.0.0/24</code>)</td> </tr> <tr> <td><code>DHCP_ACTIVE</code></td> <td><code>false</code></td> <td><code>&lt;"true"|"false"&gt;</code></td> <td>Enable DHCP server. Static DHCP leases can be configured with a custom <code>/etc/dnsmasq.d/04-pihole-static-dhcp.conf</code></td> </tr> <tr> <td><code>DHCP_START</code></td> <td>unset</td> <td><code>&lt;Start IP&gt;</code></td> <td>Start of the range of IP addresses to hand out by the DHCP server (mandatory if DHCP server is enabled).</td> </tr> <tr> <td><code>DHCP_END</code></td> <td>unset</td> <td><code>&lt;End IP&gt;</code></td> <td>End of the range of IP addresses to hand out by the DHCP server (mandatory if DHCP server is enabled).</td> </tr> <tr> <td><code>DHCP_ROUTER</code></td> <td>unset</td> <td><code>&lt;Router's IP&gt;</code></td> <td>Router (gateway) IP address sent by the DHCP server (mandatory if DHCP server is enabled).</td> </tr> <tr> <td><code>DHCP_LEASETIME</code></td> <td>24</td> <td><code>&lt;hours&gt;</code></td> <td>DHCP lease time in hours.</td> </tr> <tr> <td><code>PIHOLE_DOMAIN</code></td> <td><code>lan</code></td> <td><code>&lt;domain&gt;</code></td> <td>Domain name sent by the DHCP server.</td> </tr> <tr> <td><code>DHCP_IPv6</code></td> <td><code>false</code></td> <td><code>&lt;"true"|"false"&gt;</code></td> <td>Enable DHCP server IPv6 support (SLAAC + RA).</td> </tr> <tr> <td><code>DHCP_rapid_commit</code></td> <td><code>false</code></td> <td><code>&lt;"true"|"false"&gt;</code></td> <td>Enable DHCPv4 rapid commit (fast address assignment).</td> </tr> <tr> <td><code>VIRTUAL_HOST</code></td> <td><code>${HOSTNAME}</code></td> <td><code>&lt;Custom Hostname&gt;</code></td> <td>What your web server 'virtual host' is, accessing admin through this Hostname/IP allows you to make changes to the whitelist / blacklists in addition to the default '<a href="http://pi.hole/admin/">http://pi.hole/admin/</a>' address</td> </tr> <tr> <td><code>IPv6</code></td> <td><code>true</code></td> <td><code>&lt;"true"|"false"&gt;</code></td> <td>For unraid compatibility, strips out all the IPv6 configuration from DNS/Web services when false.</td> </tr> <tr> <td><code>TEMPERATUREUNIT</code></td> <td><code>c</code></td> <td><code>&lt;c|k|f&gt;</code></td> <td>Set preferred temperature unit to <code>c</code>: Celsius, <code>k</code>: Kelvin, or <code>f</code> Fahrenheit units.</td> </tr> <tr> <td><code>WEBUIBOXEDLAYOUT</code></td> <td><code>boxed</code></td> <td><code>&lt;boxed|traditional&gt;</code></td> <td>Use boxed layout (helpful when working on large screens)</td> </tr> <tr> <td><code>QUERY_LOGGING</code></td> <td><code>true</code></td> <td><code>&lt;"true"|"false"&gt;</code></td> <td>Enable query logging or not.</td> </tr> <tr> <td><code>WEBTHEME</code></td> <td><code>default-light</code></td> <td><code>&lt;"default-dark"|"default-darker"|"default-light"|"default-auto"|"high-contrast"|"high-contrast-dark"|"lcars"&gt;</code></td> <td>User interface theme to use.</td> </tr> <tr> <td><code>WEBPASSWORD_FILE</code></td> <td>unset</td> <td><code>&lt;Docker secret path&gt;</code></td> <td>Set an Admin password using <a href="https://docs.docker.com/engine/swarm/secrets/">Docker secrets</a>. If <code>WEBPASSWORD</code> is set, <code>WEBPASSWORD_FILE</code> is ignored. If <code>WEBPASSWORD</code> is empty, and <code>WEBPASSWORD_FILE</code> is set to a valid readable file path, then <code>WEBPASSWORD</code> will be set to the contents of <code>WEBPASSWORD_FILE</code>.</td> </tr> </tbody> </table> <h3>Advanced Variables</h3> <table> <thead> <tr> <th>Variable</th> <th>Default</th> <th>Value</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>INTERFACE</code></td> <td>unset</td> <td><code>&lt;NIC&gt;</code></td> <td>The default works fine with our basic example docker run commands. If you're trying to use DHCP with <code>--net host</code> mode then you may have to customize this or DNSMASQ_LISTENING.</td> </tr> <tr> <td><code>DNSMASQ_LISTENING</code></td> <td>unset</td> <td><code>&lt;local|all|single&gt;</code></td> <td><code>local</code> listens on all local subnets, <code>all</code> permits listening on internet origin subnets in addition to local, <code>single</code> listens only on the interface specified.</td> </tr> <tr> <td><code>WEB_PORT</code></td> <td>unset</td> <td><code>&lt;PORT&gt;</code></td> <td><strong>This will break the 'webpage blocked' functionality of Pi-hole</strong> however it may help advanced setups like those running synology or <code>--net=host</code> docker argument. This guide explains how to restore webpage blocked functionality using a linux router DNAT rule: <a href="https://discourse.pi-hole.net/t/alternative-synology-installation-method/5454?u=diginc">Alternative Synology installation method</a></td> </tr> <tr> <td><code>WEB_BIND_ADDR</code></td> <td>unset</td> <td><code>&lt;IP&gt;</code></td> <td>Lighttpd's bind address. If left unset lighttpd will bind to every interface, except when running in host networking mode where it will use <code>FTLCONF_LOCAL_IPV4</code> instead.</td> </tr> <tr> <td><code>SKIPGRAVITYONBOOT</code></td> <td>unset</td> <td><code>&lt;unset|1&gt;</code></td> <td>Use this option to skip updating the Gravity Database when booting up the container. By default this environment variable is not set so the Gravity Database will be updated when the container starts up. Setting this environment variable to 1 (or anything) will cause the Gravity Database to not be updated when container starts up.</td> </tr> <tr> <td><code>CORS_HOSTS</code></td> <td>unset</td> <td><code>&lt;FQDNs delimited by ,&gt;</code></td> <td>List of domains/subdomains on which CORS is allowed. Wildcards are not supported. Eg: <code>CORS_HOSTS: domain.com,home.domain.com,www.domain.com</code>.</td> </tr> <tr> <td><code>CUSTOM_CACHE_SIZE</code></td> <td><code>10000</code></td> <td>Number</td> <td>Set the cache size for dnsmasq. Useful for increasing the default cache size or to set it to 0. Note that when <code>DNSSEC</code> is "true", then this setting is ignored.</td> </tr> <tr> <td><code>FTL_CMD</code></td> <td><code>no-daemon</code></td> <td><code>no-daemon -- &lt;dnsmasq option&gt;</code></td> <td>Customize the options with which dnsmasq gets started. e.g. <code>no-daemon -- --dns-forward-max 300</code> to increase max. number of concurrent dns queries on high load setups.</td> </tr> <tr> <td><code>FTLCONF_[SETTING]</code></td> <td>unset</td> <td>As per documentation</td> <td>Customize pihole-FTL.conf with settings described in the <a href="https://docs.pi-hole.net/ftldns/configfile/">FTLDNS Configuration page</a>. For example, to customize LOCAL_IPV4, ensure you have the <code>FTLCONF_LOCAL_IPV4</code> environment variable set.</td> </tr> </tbody> </table> <h3>Experimental Variables</h3> <table> <thead> <tr> <th>Variable</th> <th>Default</th> <th>Value</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>DNSMASQ_USER</code></td> <td>unset</td> <td><code>&lt;pihole|root&gt;</code></td> <td>Allows changing the user that FTLDNS runs as. Default: <code>pihole</code>, some systems such as Synology NAS may require you to change this to <code>root</code> (See <a href="https://github.com/pi-hole/docker-pi-hole/issues/963">#963</a>)</td> </tr> <tr> <td><code>PIHOLE_UID</code></td> <td><code>999</code></td> <td>Number</td> <td>Overrides image's default pihole user id to match a host user id<br><strong>IMPORTANT</strong>: id must not already be in use inside the container!</td> </tr> <tr> <td><code>PIHOLE_GID</code></td> <td><code>999</code></td> <td>Number</td> <td>Overrides image's default pihole group id to match a host group id<br><strong>IMPORTANT</strong>: id must not already be in use inside the container!</td> </tr> <tr> <td><code>WEB_UID</code></td> <td><code>33</code></td> <td>Number</td> <td>Overrides image's default www-data user id to match a host user id<br><strong>IMPORTANT</strong>: id must not already be in use inside the container! (Make sure it is different to <code>PIHOLE_UID</code> if you are using that, also)</td> </tr> <tr> <td><code>WEB_GID</code></td> <td><code>33</code></td> <td>Number</td> <td>Overrides image's default www-data group id to match a host group id<br><strong>IMPORTANT</strong>: id must not already be in use inside the container! (Make sure it is different to <code>PIHOLE_GID</code> if you are using that, also)</td> </tr> <tr> <td><code>WEBLOGS_STDOUT</code></td> <td>0</td> <td>0|1</td> <td>0 logs to defined files, 1 redirect access and error logs to stdout</td> </tr> </tbody> </table> <h2>Deprecated environment variables:</h2> <p>While these may still work, they are likely to be removed in a future version. Where applicable, alternative variable names are indicated. Please review the table above for usage of the alternative variables</p> <table> <thead> <tr> <th>Docker Environment Var.</th> <th>Description</th> <th>Replaced By</th> </tr> </thead> <tbody> <tr> <td><code>CONDITIONAL_FORWARDING</code></td> <td>Enable DNS conditional forwarding for device name resolution</td> <td><code>REV_SERVER</code></td> </tr> <tr> <td><code>CONDITIONAL_FORWARDING_IP</code></td> <td>If conditional forwarding is enabled, set the IP of the local network router</td> <td><code>REV_SERVER_TARGET</code></td> </tr> <tr> <td><code>CONDITIONAL_FORWARDING_DOMAIN</code></td> <td>If conditional forwarding is enabled, set the domain of the local network router</td> <td><code>REV_SERVER_DOMAIN</code></td> </tr> <tr> <td><code>CONDITIONAL_FORWARDING_REVERSE</code></td> <td>If conditional forwarding is enabled, set the reverse DNS of the local network router (e.g. <code>0.168.192.in-addr.arpa</code>)</td> <td><code>REV_SERVER_CIDR</code></td> </tr> <tr> <td><code>DNS1</code></td> <td>Primary upstream DNS provider, default is google DNS</td> <td><code>PIHOLE_DNS_</code></td> </tr> <tr> <td><code>DNS2</code></td> <td>Secondary upstream DNS provider, default is google DNS, <code>no</code> if only one DNS should used</td> <td><code>PIHOLE_DNS_</code></td> </tr> <tr> <td><code>ServerIP</code></td> <td>Set to your server's LAN IP, used by web block modes and lighttpd bind address</td> <td><code>FTLCONF_LOCAL_IPV4</code></td> </tr> <tr> <td><code>ServerIPv6</code></td> <td><strong>If you have a v6 network</strong> set to your server's LAN IPv6 to block IPv6 ads fully</td> <td><code>FTLCONF_LOCAL_IPV6</code></td> </tr> <tr> <td><code>FTLCONF_REPLY_ADDR4</code></td> <td>Set to your server's LAN IP, used by web block modes and lighttpd bind address</td> <td><code>FTLCONF_LOCAL_IPV4</code></td> </tr> <tr> <td><code>FTLCONF_REPLY_ADDR6</code></td> <td><strong>If you have a v6 network</strong> set to your server's LAN IPv6 to block IPv6 ads fully</td> <td><code>FTLCONF_LOCAL_IPV6</code></td> </tr> </tbody> </table> <p>To use these env vars in docker run format style them like: <code>-e DNS1=1.1.1.1</code></p> <p>Here is a rundown of other arguments for your docker-compose / docker run.</p> <table> <thead> <tr> <th>Docker Arguments</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>-p &lt;port&gt;:&lt;port&gt;</code> <strong>Recommended</strong></td> <td>Ports to expose (53, 80, 67), the bare minimum ports required for Pi-holes HTTP and DNS services</td> </tr> <tr> <td><code>--restart=unless-stopped</code><br> <strong>Recommended</strong></td> <td>Automatically (re)start your Pi-hole on boot or in the event of a crash</td> </tr> <tr> <td><code>-v $(pwd)/etc-pihole:/etc/pihole</code><br> <strong>Recommended</strong></td> <td>Volumes for your Pi-hole configs help persist changes across docker image updates</td> </tr> <tr> <td><code>-v $(pwd)/etc-dnsmasq.d:/etc/dnsmasq.d</code><br> <strong>Recommended</strong></td> <td>Volumes for your dnsmasq configs help persist changes across docker image updates</td> </tr> <tr> <td><code>--net=host</code><br> <em>Optional</em></td> <td>Alternative to <code>-p &lt;port&gt;:&lt;port&gt;</code> arguments (Cannot be used at same time as -p) if you don't run any other web application. DHCP runs best with --net=host, otherwise your router must support dhcp-relay settings.</td> </tr> <tr> <td><code>--cap-add=NET_ADMIN</code><br> <em>Recommended</em></td> <td>Commonly added capability for DHCP, see <a href="https://raw.githubusercontent.com/pi-hole/docker-pi-hole/master/#note-on-capabilities">Note on Capabilities</a> below for other capabilities.</td> </tr> <tr> <td><code>--dns=127.0.0.1</code><br> <em>Optional</em></td> <td>Sets your container's resolve settings to localhost so it can resolve DHCP hostnames from Pi-hole's DNSMasq, may fix resolution errors on container restart.</td> </tr> <tr> <td><code>--dns=1.1.1.1</code><br> <em>Optional</em></td> <td>Sets a backup server of your choosing in case DNSMasq has problems starting</td> </tr> <tr> <td><code>--env-file .env</code> <br> <em>Optional</em></td> <td>File to store environment variables for docker replacing <code>-e key=value</code> settings. Here for convenience</td> </tr> </tbody> </table> <h2>Tips and Tricks</h2> <ul> <li>A good way to test things are working right is by loading this page: <a href="http://pi.hole/admin/">http://pi.hole/admin/</a></li> <li><a href="https://discourse.pi-hole.net/t/how-do-i-set-or-reset-the-web-interface-password/1328">How do I set or reset the Web interface Password?</a> <ul> <li><code>docker exec -it pihole_container_name pihole -a -p</code> - then enter your password into the prompt</li> </ul> </li> <li>Port conflicts? Stop your server's existing DNS / Web services. <ul> <li>Don't forget to stop your services from auto-starting again after you reboot</li> <li>Ubuntu users see below for more detailed information</li> </ul> </li> <li>You can map other ports to Pi-hole port 80 using docker's port forwarding like this <code>-p 8080:80</code> if you are using the default blocking mode. If you are using the legacy IP blocking mode, you should not remap this port. <ul> <li><a href="https://github.com/pi-hole/docker-pi-hole/raw/master/examples/docker-compose-nginx-proxy.yml">Here is an example of running with nginxproxy/nginx-proxy</a> (an nginx auto-configuring docker reverse proxy for docker) on my port 80 with Pi-hole on another port. Pi-hole needs to be <code>DEFAULT_HOST</code> env in nginxproxy/nginx-proxy and you need to set the matching <code>VIRTUAL_HOST</code> for the Pi-hole's container. Please read nginxproxy/nginx-proxy readme for more info if you have trouble.</li> </ul> </li> <li>Docker's default network mode <code>bridge</code> isolates the container from the host's network. This is a more secure setting, but requires setting the Pi-hole DNS option for <em>Interface listening behavior</em> to "Listen on all interfaces, permit all origins".</li> </ul> <h3>Installing on Ubuntu or Fedora</h3> <p>Modern releases of Ubuntu (17.10+) and Fedora (33+) include <a href="http://manpages.ubuntu.com/manpages/bionic/man8/systemd-resolved.service.8.html"><code>systemd-resolved</code></a> which is configured by default to implement a caching DNS stub resolver. This will prevent pi-hole from listening on port 53. The stub resolver should be disabled with: <code>sudo sed -r -i.orig 's/#?DNSStubListener=yes/DNSStubListener=no/g' /etc/systemd/resolved.conf</code></p> <p>This will not change the nameserver settings, which point to the stub resolver thus preventing DNS resolution. Change the <code>/etc/resolv.conf</code> symlink to point to <code>/run/systemd/resolve/resolv.conf</code>, which is automatically updated to follow the system's <a href="https://netplan.io/"><code>netplan</code></a>: <code>sudo sh -c 'rm /etc/resolv.conf &amp;&amp; ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf'</code> After making these changes, you should restart systemd-resolved using <code>systemctl restart systemd-resolved</code></p> <p>Once pi-hole is installed, you'll want to configure your clients to use it (<a href="https://discourse.pi-hole.net/t/how-do-i-configure-my-devices-to-use-pi-hole-as-their-dns-server/245">see here</a>). If you used the symlink above, your docker host will either use whatever is served by DHCP, or whatever static setting you've configured. If you want to explicitly set your docker host's nameservers you can edit the netplan(s) found at <code>/etc/netplan</code>, then run <code>sudo netplan apply</code>. Example netplan:</p> <pre><code class="language-yaml">network: ethernets: ens160: dhcp4: true dhcp4-overrides: use-dns: false nameservers: addresses: [127.0.0.1] version: 2 </code></pre> <p>Note that it is also possible to disable <code>systemd-resolved</code> entirely. However, this can cause problems with name resolution in vpns (<a href="https://bugs.launchpad.net/network-manager/+bug/1624317">see bug report</a>). It also disables the functionality of netplan since systemd-resolved is used as the default renderer (<a href="http://manpages.ubuntu.com/manpages/bionic/man5/netplan.5.html#description">see <code>man netplan</code></a>). If you choose to disable the service, you will need to manually set the nameservers, for example by creating a new <code>/etc/resolv.conf</code>.</p> <p>Users of older Ubuntu releases (circa 17.04) will need to disable dnsmasq.</p> <h2>Installing on Dokku</h2> <p>@Rikj000 has produced a guide to assist users <a href="https://github.com/Rikj000/Pihole-Dokku-Installation">installing Pi-hole on Dokku</a></p> <h2>Docker tags and versioning</h2> <p>The primary docker tags are explained in the following table. <a href="https://store.docker.com/community/images/pihole/pihole/tags">Click here to see the full list of tags</a>. See <a href="https://github.com/pi-hole/docker-pi-hole/releases">GitHub Release notes</a> to see the specific version of Pi-hole Core, Web, and FTL included in the release.</p> <p>The Date-based (including incremented "Patch" versions) do not relate to any kind of semantic version number, rather a date is used to differentiate between the new version and the old version, nothing more. Release notes will always contain full details of changes in the container, including changes to core Pi-hole components</p> <table> <thead> <tr> <th>tag</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>latest</code></td> <td>Always latest release</td> </tr> <tr> <td><code>2022.04.0</code></td> <td>Date-based release</td> </tr> <tr> <td><code>2022.04.1</code></td> <td>Second release in a given month</td> </tr> <tr> <td><code>dev</code></td> <td>Similar to <code>latest</code>, but for the development branch (pushed occasionally)</td> </tr> <tr> <td><code>*beta</code></td> <td>Early beta releases of upcoming versions - here be dragons</td> </tr> <tr> <td><code>nightly</code></td> <td>Like <code>dev</code> but pushed every night and pulls from the latest <code>development</code> branches of the core Pi-hole components (Pi-hole, AdminLTE, FTL)</td> </tr> </tbody> </table> <h2>Upgrading, Persistence, and Customizations</h2> <p>The standard Pi-hole customization abilities apply to this docker, but with docker twists such as using docker volume mounts to map host stored file configurations over the container defaults. However, mounting these configuration files as read-only should be avoided. Volumes are also important to persist the configuration in case you have removed the Pi-hole container which is a typical docker upgrade pattern.</p> <h3>Upgrading / Reconfiguring</h3> <p>Do not attempt to upgrade (<code>pihole -up</code>) or reconfigure (<code>pihole -r</code>). New images will be released for upgrades, upgrading by replacing your old container with a fresh upgraded image is the 'docker way'. Long-living docker containers are not the docker way since they aim to be portable and reproducible, why not re-create them often! Just to prove you can.</p> <ol start="0"> <li>Read the release notes for both this Docker release and the Pi-hole release <ul> <li>This will help you avoid common problems due to any known issues with upgrading or newly required arguments or variables</li> <li>We will try to put common break/fixes at the top of this readme too</li> </ul> </li> <li>Download the latest version of the image: <code>docker pull pihole/pihole</code></li> <li>Throw away your container: <code>docker rm -f pihole</code> <ul> <li><strong>Warning</strong> When removing your pihole container you may be stuck without DNS until step 3; <strong>docker pull</strong> before <strong>docker rm -f</strong> to avoid DNS interruption <strong>OR</strong> always have a fallback DNS server configured in DHCP to avoid this problem altogether.</li> <li>If you care about your data (logs/customizations), make sure you have it volume-mapped or it will be deleted in this step.</li> </ul> </li> <li>Start your container with the newer base image: <code>docker run &lt;args&gt; pihole/pihole</code> (<code>&lt;args&gt;</code> being your preferred run volumes and env vars)</li> </ol> <p>Why is this style of upgrading good? A couple reasons: Everyone is starting from the same base image which has been tested to known it works. No worrying about upgrading from A to B, B to C, or A to C is required when rolling out updates, it reduces complexity, and simply allows a 'fresh start' every time while preserving customizations with volumes. Basically I'm encouraging <a href="https://martinfowler.com/bliki/PhoenixServer.html">phoenix server</a> principles for your containers.</p> <p>To reconfigure Pi-hole you'll either need to use an existing container environment variables or if there is no a variable for what you need, use the web UI or CLI commands.</p> <h3>Pi-hole features</h3> <p>Here are some relevant wiki pages from <a href="https://github.com/pi-hole/pi-hole/raw/master/README.md#get-help-or-connect-with-us-on-the-web">Pi-hole's documentation</a>. The web interface or command line tools can be used to implement changes to pihole.</p> <p>We install all pihole utilities so the the built in <a href="https://discourse.pi-hole.net/t/the-pihole-command-with-examples/738">pihole commands</a> will work via <code>docker exec &lt;container&gt; &lt;command&gt;</code> like so:</p> <ul> <li><code>docker exec pihole_container_name pihole updateGravity</code></li> <li><code>docker exec pihole_container_name pihole -w spclient.wg.spotify.com</code></li> <li><code>docker exec pihole_container_name pihole -wild example.com</code></li> </ul> <h3>Customizations</h3> <p>The webserver and DNS service inside the container can be customized if necessary. Any configuration files you volume mount into <code>/etc/dnsmasq.d/</code> will be loaded by dnsmasq when the container starts or restarts or if you need to modify the Pi-hole config it is located at <code>/etc/dnsmasq.d/01-pihole.conf</code>. The docker start scripts runs a config test prior to starting so it will tell you about any errors in the docker log.</p> <p>Similarly for the webserver you can customize configs in /etc/lighttpd</p> <h3>Systemd init script</h3> <p>As long as your docker system service auto starts on boot and you run your container with <code>--restart=unless-stopped</code> your container should always start on boot and restart on crashes. If you prefer to have your docker container run as a systemd service instead, add the file <a href="https://raw.githubusercontent.com/pi-hole/docker-pi-hole/master/examples/pihole.service">pihole.service</a> to "/etc/systemd/system"; customize whatever your container name is and remove <code>--restart=unless-stopped</code> from your docker run. Then after you have initially created the docker container using the docker run command above, you can control it with "systemctl start pihole" or "systemctl stop pihole" (instead of <code>docker start</code>/<code>docker stop</code>). You can also enable it to auto-start on boot with "systemctl enable pihole" (as opposed to <code>--restart=unless-stopped</code> and making sure docker service auto-starts on boot).</p> <p>NOTE: After initial run you may need to manually stop the docker container with "docker stop pihole" before the systemctl can start controlling the container.</p> <h2>Note on Capabilities</h2> <p>DNSMasq / <a href="https://docs.pi-hole.net/ftldns/in-depth/#linux-capabilities">FTLDNS</a> expects to have the following capabilities available:</p> <ul> <li><code>CAP_NET_BIND_SERVICE</code>: Allows FTLDNS binding to TCP/UDP sockets below 1024 (specifically DNS service on port 53)</li> <li><code>CAP_NET_RAW</code>: use raw and packet sockets (needed for handling DHCPv6 requests, and verifying that an IP is not in use before leasing it)</li> <li><code>CAP_NET_ADMIN</code>: modify routing tables and other network-related operations (in particular inserting an entry in the neighbor table to answer DHCP requests using unicast packets)</li> <li><code>CAP_SYS_NICE</code>: FTL sets itself as an important process to get some more processing time if the latter is running low</li> <li><code>CAP_CHOWN</code>: we need to be able to change ownership of log files and databases in case FTL is started as a different user than <code>pihole</code></li> </ul> <p>This image automatically grants those capabilities, if available, to the FTLDNS process, even when run as non-root.<br> By default, docker does not include the <code>NET_ADMIN</code> capability for non-privileged containers, and it is recommended to explicitly add it to the container using <code>--cap-add=NET_ADMIN</code>.<br> However, if DHCP and IPv6 Router Advertisements are not in use, it should be safe to skip it. For the most paranoid, it should even be possible to explicitly drop the <code>NET_RAW</code> capability to prevent FTLDNS from automatically gaining it.</p> <h2>Note on Watchtower</h2> <p>We have noticed that a lot of people use Watchtower to keep their Pi-hole containers up to date. For the same reason we don't provide an auto-update feature on a bare metal install, you <em>should not</em> have a system automatically update your Pi-hole container. Especially unattended. As much as we try to ensure nothing will go wrong, sometimes things do go wrong - and you need to set aside time to <em>manually</em> pull and update to the version of the container you wish to run. The upgrade process should be along the lines of:</p> <ul> <li><strong>Important</strong>: Read the release notes. Sometimes you will need to make changes other than just updating the image</li> <li>Pull the new image</li> <li>Stop and <em>remove</em> the running Pi-hole container <ul> <li>If you care about your data (logs/customizations), make sure you have it volume-mapped or it will be deleted in this step.</li> </ul> </li> <li>Recreate the container using the new image</li> </ul> <p>Pi-hole is an integral part of your network, don't let it fall over because of an unattended update in the middle of the night.</p> <h1>User Feedback</h1> <p>Please report issues on the <a href="https://github.com/pi-hole/docker-pi-hole">GitHub project</a> when you suspect something docker related. Pi-hole or general docker questions are best answered on our <a href="https://discourse.pi-hole.net/c/bugs-problems-issues/docker/30">user forums</a>.</p> + + + ramitsurana/awesome-kubernetes + 2023-09-24T02:01:04Z + tag:github.com,2023-09-24:/ramitsurana/awesome-kubernetes + + <p>A curated list for awesome kubernetes sources 🚢🎉</p><hr><h1>Awesome-Kubernetes</h1> <p><a href="https://github.com/sindresorhus/awesome"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg?sanitize=true" alt="Awesome"></a> <a href="https://github.com/ramitsurana/awesome-kubernetes/actions/workflows/links.yaml"><img src="https://github.com/ramitsurana/awesome-kubernetes/actions/workflows/links.yaml/badge.svg?sanitize=true" alt="Links validator"></a> <a href="https://github.com/ramitsurana/awesome-kubernetes/actions/workflows/main.yml"><img src="https://github.com/ramitsurana/awesome-kubernetes/actions/workflows/main.yml/badge.svg?sanitize=true" alt="Python application"></a> <a href="https://kubernetes.slack.com/messages/awesome-kubernetes"><img src="https://img.shields.io/badge/Slack-Channel-blue.svg?style=flat-square" alt="Slack Widget"></a> <a href="https://awesome-kubernetes-by-ramitsurana.readthedocs.io/en/latest/?badge=latest"><img src="https://readthedocs.org/projects/awesome-kubernetes-by-ramitsurana/badge/?version=latest" alt="Documentation Status"></a> <a href="https://mybinder.org/v2/gh/ramitsurana/awesome-kubernetes/master"><img src="https://mybinder.org/badge_logo.svg?sanitize=true" alt="Binder"></a></p> <p>A curated list for awesome kubernetes sources inspired by <a href="https://github.com/sindresorhus/awesome">@sindresorhus' awesome</a></p> <p><img src="https://cloud.githubusercontent.com/assets/8342133/26794201/62c1a006-4a3e-11e7-8bf9-4449814648f2.png" alt="final-k8s"></p> <blockquote> <p>"Talent wins games, but teamwork and intelligence wins championships."</p> <p>-- Michael Jordan</p> </blockquote> <p>Without the help from these <a href="https://github.com/ramitsurana/awesome-kubernetes/graphs/contributors">amazing contributors</a>, building this awesome-repo would never have been possible. Thank You very much everyone !!</p> <p><strong>Thanks to Gitbook.This awesome list can now be downloaded and read in the form of a book. Check it out --&gt; <a href="https://ramitsurana.gitbook.io/awesome-kubernetes/docs">https://ramitsurana.gitbook.io/awesome-kubernetes/docs</a> .Keep Learning Keep Sharing !!</strong></p> <p><strong>If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!</strong></p> <h2>What is Kubernetes?</h2> <blockquote> <p>Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery.</p> </blockquote> <p><em>Source:</em> <a href="http://kubernetes.io/">What is Kubernetes</a></p> <h2>History</h2> <p><strong>Kubernetes is known to be a descendant of Google's system BORG</strong></p> <blockquote> <p>The first unified container-management system developed at Google was the system we internally call Borg. It was built to manage both long-running services and batch jobs, which had previously been handled by two separate systems: Babysitter and the Global Work Queue. The latter’s architecture strongly influenced Borg, but was focused on batch jobs; both predated Linux control groups.</p> </blockquote> <p><em>Source:</em> <a href="http://research.google.com/pubs/archive/44843.pdf">Kubernetes Past</a></p> <h2>Date of Birth</h2> <p>Kubernetes celebrates its birthday every year on 21st July. Kubernetes 1.0 was released on July 21 2015, after being first announced to the public at Dockercon in June 2014.</p> <h2>Roadmap</h2> <p>The awesome-kubernetes will now soon be available in the form of different releases and package bundles, It means that you can download the awesome kubernetes release up to a certain period of time, The release for awesome kubernetes 2015 bundle is released. Checkout the releases column for more info.</p> <h2>Featured On</h2> <ul> <li><a href="https://cloud.google.com/community/">Google Cloud</a></li> <li><a href="https://www.freecodecamp.org/news/a-friendly-introduction-to-kubernetes-670c50ce4542/">freeCodeCamp</a></li> </ul> <hr> <h1>Starting Point</h1> <p><em>A place that marks the beginning of a journey</em></p> <ul> <li><a href="https://docs.google.com/presentation/d/1JqcALpsg07eH665ZXQrIvOcin6SzzsIUjMRRVivrZMg/edit?usp=sharing">Kubernetes Community Overview and Contributions Guide</a> by <a href="https://twitter.com/idvoretskyi/">Ihor Dvoretskyi</a></li> <li><a href="http://blog.jetstack.io/blog/k8s-getting-started-part1/">Are you Ready to Manage your Infrastructure like Google?</a></li> <li><a href="http://www.businessinsider.in/Google-is-years-ahead-when-it-comes-to-the-cloud-but-its-happy-the-world-is-catching-up/articleshow/47793327.cms">Google is years ahead when it comes to the cloud, but it's happy the world is catching up</a></li> <li><a href="http://www.ctl.io/developers/blog/post/what-is-kubernetes-and-how-to-use-it/">An Intro to Google’s Kubernetes and How to Use It</a> by <a href="https://twitter.com/rhein_wein">Laura Frank</a></li> <li><a href="https://github.com/meteorhacks/meteorhacks.github.io/raw/master/_posts/2015-04-22-learn-kubernetes-the-future-of-the-cloud.md">Kubernetes: The Future of Cloud Hosting</a> by <a href="https://twitter.com/meteorhacks">Meteorhacks</a></li> <li><a href="http://thevirtualizationguy.wordpress.com/tag/kubernetes/">Kubernetes by Google</a> by <a href="https://twitter.com/GastonPantana">Gaston Pantana</a></li> <li><a href="http://blog.arungupta.me/key-concepts-kubernetes/">Key Concepts</a> by <a href="https://twitter.com/arungupta">Arun Gupta</a></li> <li><a href="https://keithtenzer.com/containers/application-containers-kubernetes-and-docker-from-scratch/">Application Containers: Kubernetes and Docker from Scratch</a> by <a href="https://twitter.com/keithtenzer">Keith Tenzer</a></li> <li><a href="http://omerio.com/2015/12/18/learn-the-kubernetes-key-concepts-in-10-minutes/">Learn the Kubernetes Key Concepts in 10 Minutes</a> by <a href="https://twitter.com/omerio">Omer Dawelbeit</a></li> <li><a href="https://kubernetes.io/blog/2016/06/illustrated-childrens-guide-to-kubernetes/">The Children's Illustrated Guide to Kubernetes</a> by <a href="https://github.com/deis">Deis</a></li> <li><a href="http://medium.com/@mhausenblas/the-kubectl-run-command-27c68de5cb76#.mlwi5an7o">The ‘kubectl run’ command</a> by <a href="https://twitter.com/mhausenblas">Michael Hausenblas</a></li> <li><a href="https://github.com/xiaopeng163/docker-k8s-lab">Docker Kubernetes Lab Handbook</a> by <a href="https://twitter.com/xiaopeng163">Peng Xiao</a></li> <li><a href="https://hackr.io/tutorials/learn-kubernetes">Curated Resources for Kubernetes</a></li> <li><a href="https://cloud.google.com/kubernetes-engine/kubernetes-comic/">Kubernetes Comic</a> by <a href="https://cloud.google.com/">Google Cloud Platform</a></li> <li><a href="https://medium.com/google-cloud/kubernetes-101-pods-nodes-containers-and-clusters-c1509e409e16">Kubernetes 101: Pods, Nodes, Containers, and Clusters</a> by <a href="https://medium.com/@sanche">Dan Sanche</a></li> <li><a href="http://www.digitalocean.com/community/tutorials/an-introduction-to-kubernetes">An Introduction to Kubernetes</a> by <a href="https://twitter.com/jmellingwood">Justin Ellingwood</a></li> <li><a href="https://rinormaloku.com/introduction-application-architecture/">Kubernetes and everything else - Introduction to Kubernetes and it's context</a> by <a href="https://twitter.com/rinormaloku">Rinor Maloku</a></li> <li><a href="http://severalnines.com/blog/installing-kubernetes-cluster-minions-centos7-manage-pods-services">Installation on Centos 7</a></li> <li><a href="https://mherman.org/blog/2018/08/20/setting-up-a-kubernetes-cluster-on-ubuntu/">Setting Up a Kubernetes Cluster on Ubuntu 18.04</a></li> <li><a href="https://landscape.cncf.io/">Cloud Native Landscape</a></li> <li><a href="https://www.freecodecamp.org/news/the-kubernetes-handbook/">The Kubernetes Handbook</a> by <a href="https://twitter.com/frhnhsin">Farhan Hasin Chowdhury</a></li> <li><a href="https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform">Bootstrapping Microservices</a> by <a href="https://twitter.com/ashleydavis75">Ashley Davis</a></li> <li><a href="https://www.manning.com/books/kubernetes-native-microservices-with-quarkus-and-microprofile">Kubernetes Native Microservices with Quarkus, and MicroProfile</a> by <a href="https://twitter.com/jclingan">John Clingan</a> and <a href="https://twitter.com/kenfinnigan">Ken Finnigan</a></li> <li><a href="https://www.loginradius.com/blog/async/rest-api-kubernetes/">How to Deploy a REST API in Kubernetes</a></li> <li><a href="https://www.manning.com/books/securing-kubernetes-secrets">Securing Kubernetes Secrets</a> by <a href="https://github.com/lordofthejars">Alex Soto Bueno</a> and <a href="https://github.com/sabre1041">Andrew Block</a></li> <li><a href="https://www.manning.com/books/kubernetes-on-windows">Kubernetes on Windows</a> by <a href="https://twitter.com/jayunit100">Jay Vyas</a> and James Sturtevant</li> <li><a href="https://blog.brainboard.co/kubernetes-explained-dde470707cb2">Kubernetes explained</a></li> <li><a href="https://spacelift.io/blog/kubernetes-secrets">How to Manage Secrets in Kubernetes – A Complete Guide</a></li> <li><a href="https://dev.to/idanref/kubernetes-concepts-deep-dive-50en">Kubernetes Concepts: Deep Dive</a> by <a href="https://www.linkedin.com/in/idan-refaeli-65082a175/">Idan Refaeli</a></li> </ul> <h1>Contributing</h1> <p>Contributions are most welcome!</p> <p>This list is just getting started, please contribute to make it super awesome.</p> <p>Check out the <a href="https://github.com/ramitsurana/awesome-kubernetes/raw/master/docs/guidelines/CONTRIBUTING.md">Contributing Guidelines</a>.</p> <h1>License</h1> <p><a rel="license" href="http://creativecommons.org/licenses/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc/4.0/88x31.png"></a><br><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/InteractiveResource" property="dct:title" rel="dct:type">awesome-kubernetes</span> by <a xmlns:cc="http://creativecommons.org" href="http://www.linkedin.com/in/ramitsurana" property="cc:attributionName" rel="cc:attributionURL">Ramit Surana</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/">Creative Commons Attribution-NonCommercial 4.0 International License</a>.</p> + + \ No newline at end of file diff --git a/shellcheck-config/daily/index.xml b/shellcheck-config/daily/index.xml index 8d1a95bcdbb..da17bc14cf4 100644 --- a/shellcheck-config/daily/index.xml +++ b/shellcheck-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub ShellCheck Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:32Z + 2023-09-24T01:41:27Z Daily Trending of ShellCheck Config in GitHub \ No newline at end of file diff --git a/shellcheck-config/weekly/index.xml b/shellcheck-config/weekly/index.xml new file mode 100644 index 00000000000..e1faf59f958 --- /dev/null +++ b/shellcheck-config/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ShellCheck Config Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:00Z + Weekly Trending of ShellCheck Config in GitHub + + \ No newline at end of file diff --git a/shellsession/daily/index.xml b/shellsession/daily/index.xml index a3c9b8db597..1291617d62c 100644 --- a/shellsession/daily/index.xml +++ b/shellsession/daily/index.xml @@ -1,7 +1,7 @@ GitHub ShellSession Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:54Z + 2023-09-24T01:41:45Z Daily Trending of ShellSession in GitHub \ No newline at end of file diff --git a/shellsession/weekly/index.xml b/shellsession/weekly/index.xml new file mode 100644 index 00000000000..dffe5d8f289 --- /dev/null +++ b/shellsession/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ShellSession Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:33Z + Weekly Trending of ShellSession in GitHub + + \ No newline at end of file diff --git a/shen/daily/index.xml b/shen/daily/index.xml index 97e5b26a79e..07f3bfeed67 100644 --- a/shen/daily/index.xml +++ b/shen/daily/index.xml @@ -1,7 +1,7 @@ GitHub Shen Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:52Z + 2023-09-24T01:41:48Z Daily Trending of Shen in GitHub \ No newline at end of file diff --git a/shen/weekly/index.xml b/shen/weekly/index.xml new file mode 100644 index 00000000000..6b551541115 --- /dev/null +++ b/shen/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Shen Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:35Z + Weekly Trending of Shen in GitHub + + \ No newline at end of file diff --git a/sieve/daily/index.xml b/sieve/daily/index.xml index 076b95bc124..b72bd9aba7a 100644 --- a/sieve/daily/index.xml +++ b/sieve/daily/index.xml @@ -1,7 +1,7 @@ GitHub Sieve Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:55Z + 2023-09-24T01:41:46Z Daily Trending of Sieve in GitHub \ No newline at end of file diff --git a/sieve/weekly/index.xml b/sieve/weekly/index.xml new file mode 100644 index 00000000000..7ffb020edc2 --- /dev/null +++ b/sieve/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Sieve Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:33Z + Weekly Trending of Sieve in GitHub + + \ No newline at end of file diff --git a/singularity/daily/index.xml b/singularity/daily/index.xml index 3129e3914b5..0b4ac4d2989 100644 --- a/singularity/daily/index.xml +++ b/singularity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Singularity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:58Z + 2023-09-24T01:41:50Z Daily Trending of Singularity in GitHub \ No newline at end of file diff --git a/singularity/weekly/index.xml b/singularity/weekly/index.xml new file mode 100644 index 00000000000..4454dc5c1b5 --- /dev/null +++ b/singularity/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Singularity Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:37Z + Weekly Trending of Singularity in GitHub + + \ No newline at end of file diff --git a/slash/daily/index.xml b/slash/daily/index.xml index b7dd3282866..0be28cc17e1 100644 --- a/slash/daily/index.xml +++ b/slash/daily/index.xml @@ -1,7 +1,7 @@ GitHub Slash Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:57Z + 2023-09-24T01:41:49Z Daily Trending of Slash in GitHub \ No newline at end of file diff --git a/slash/weekly/index.xml b/slash/weekly/index.xml new file mode 100644 index 00000000000..af007977165 --- /dev/null +++ b/slash/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Slash Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:38Z + Weekly Trending of Slash in GitHub + + \ No newline at end of file diff --git a/slice/daily/index.xml b/slice/daily/index.xml index 2beb03908fb..a07badecf66 100644 --- a/slice/daily/index.xml +++ b/slice/daily/index.xml @@ -1,7 +1,7 @@ GitHub Slice Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:56Z + 2023-09-24T01:41:51Z Daily Trending of Slice in GitHub \ No newline at end of file diff --git a/slice/weekly/index.xml b/slice/weekly/index.xml new file mode 100644 index 00000000000..a250ed105b3 --- /dev/null +++ b/slice/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Slice Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:36Z + Weekly Trending of Slice in GitHub + + \ No newline at end of file diff --git a/slim/daily/index.xml b/slim/daily/index.xml index bfd81240bac..fff69a01cca 100644 --- a/slim/daily/index.xml +++ b/slim/daily/index.xml @@ -1,7 +1,7 @@ GitHub Slim Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:37:58Z + 2023-09-24T01:41:52Z Daily Trending of Slim in GitHub \ No newline at end of file diff --git a/slim/weekly/index.xml b/slim/weekly/index.xml new file mode 100644 index 00000000000..a27a5b7a666 --- /dev/null +++ b/slim/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Slim Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:39Z + Weekly Trending of Slim in GitHub + + \ No newline at end of file diff --git a/smali/daily/index.xml b/smali/daily/index.xml index bc6afa2f13b..32aa40e7429 100644 --- a/smali/daily/index.xml +++ b/smali/daily/index.xml @@ -1,7 +1,7 @@ GitHub Smali Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:00Z + 2023-09-24T01:41:53Z Daily Trending of Smali in GitHub \ No newline at end of file diff --git a/smali/weekly/index.xml b/smali/weekly/index.xml new file mode 100644 index 00000000000..44d9c339f32 --- /dev/null +++ b/smali/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Smali Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:41Z + Weekly Trending of Smali in GitHub + + \ No newline at end of file diff --git a/smalltalk/daily/index.xml b/smalltalk/daily/index.xml index f801c480b15..f8393f7e45c 100644 --- a/smalltalk/daily/index.xml +++ b/smalltalk/daily/index.xml @@ -1,7 +1,7 @@ GitHub Smalltalk Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:05Z + 2023-09-24T01:41:57Z Daily Trending of Smalltalk in GitHub \ No newline at end of file diff --git a/smalltalk/weekly/index.xml b/smalltalk/weekly/index.xml new file mode 100644 index 00000000000..78d71a8867d --- /dev/null +++ b/smalltalk/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Smalltalk Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:45Z + Weekly Trending of Smalltalk in GitHub + + \ No newline at end of file diff --git a/smarty/daily/index.xml b/smarty/daily/index.xml index 0d0f2600d3b..aff16c07f6a 100644 --- a/smarty/daily/index.xml +++ b/smarty/daily/index.xml @@ -1,7 +1,21 @@ GitHub Smarty Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:03Z + 2023-09-24T01:41:59Z Daily Trending of Smarty in GitHub + + aws-samples/eks-blueprints-add-ons + 2023-09-24T01:41:59Z + tag:github.com,2023-09-24:/aws-samples/eks-blueprints-add-ons + + <p></p><hr> + + + Acerta-Connect-Evolution/ce-helm-charts + 2023-09-24T01:41:59Z + tag:github.com,2023-09-24:/Acerta-Connect-Evolution/ce-helm-charts + + <p></p><hr> + \ No newline at end of file diff --git a/smarty/weekly/index.xml b/smarty/weekly/index.xml new file mode 100644 index 00000000000..d26d42b5b1e --- /dev/null +++ b/smarty/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub Smarty Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:43Z + Weekly Trending of Smarty in GitHub + + + telekom-mms/chainlink-helm-charts + 2023-09-24T02:01:43Z + tag:github.com,2023-09-24:/telekom-mms/chainlink-helm-charts + + <p></p><hr> + + + seanfisk/python-project-template + 2023-09-24T02:01:43Z + tag:github.com,2023-09-24:/seanfisk/python-project-template + + <p>A template Python project with a focus on best practices.</p><hr> + + \ No newline at end of file diff --git a/smpl/daily/index.xml b/smpl/daily/index.xml index aa012a5abb5..2a5a6d284cd 100644 --- a/smpl/daily/index.xml +++ b/smpl/daily/index.xml @@ -1,7 +1,7 @@ GitHub SmPL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:07Z + 2023-09-24T01:42:01Z Daily Trending of SmPL in GitHub \ No newline at end of file diff --git a/smpl/weekly/index.xml b/smpl/weekly/index.xml new file mode 100644 index 00000000000..d9bc9476390 --- /dev/null +++ b/smpl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SmPL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:47Z + Weekly Trending of SmPL in GitHub + + \ No newline at end of file diff --git a/smt/daily/index.xml b/smt/daily/index.xml index 70f7343a823..048b60c5fed 100644 --- a/smt/daily/index.xml +++ b/smt/daily/index.xml @@ -1,7 +1,7 @@ GitHub SMT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:06Z + 2023-09-24T01:42:02Z Daily Trending of SMT in GitHub \ No newline at end of file diff --git a/smt/weekly/index.xml b/smt/weekly/index.xml new file mode 100644 index 00000000000..bae66275c05 --- /dev/null +++ b/smt/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SMT Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:48Z + Weekly Trending of SMT in GitHub + + \ No newline at end of file diff --git a/solidity/daily/index.xml b/solidity/daily/index.xml index c2adcc157e0..97ee52de561 100644 --- a/solidity/daily/index.xml +++ b/solidity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Solidity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:11Z + 2023-09-24T01:42:05Z Daily Trending of Solidity in GitHub \ No newline at end of file diff --git a/solidity/weekly/index.xml b/solidity/weekly/index.xml new file mode 100644 index 00000000000..a83977eae24 --- /dev/null +++ b/solidity/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Solidity Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:51Z + Weekly Trending of Solidity in GitHub + + + Mirror-Tang/Account-abstraction-coding-security-library + 2023-09-24T02:01:51Z + tag:github.com,2023-09-24:/Mirror-Tang/Account-abstraction-coding-security-library + + <p>We would like to produce a secure development guide with test cases, which will be presented as a test case code repository with help files. At the same time, we hope to collect as many examples of errors that have occurred or are likely to occur during the use of the Account Abstraction protocol as possible for developers' reference.</p><hr> + + + chiru-labs/ERC721A-Upgradeable + 2023-09-24T02:01:51Z + tag:github.com,2023-09-24:/chiru-labs/ERC721A-Upgradeable + + <p></p><hr> + + + Cyfrin/2023-09-ditto + 2023-09-24T02:01:51Z + tag:github.com,2023-09-24:/Cyfrin/2023-09-ditto + + <p></p><hr> + + \ No newline at end of file diff --git a/soong/daily/index.xml b/soong/daily/index.xml index 95b1d098f44..db65e69d08e 100644 --- a/soong/daily/index.xml +++ b/soong/daily/index.xml @@ -1,7 +1,7 @@ GitHub Soong Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:15Z + 2023-09-24T01:42:08Z Daily Trending of Soong in GitHub \ No newline at end of file diff --git a/soong/weekly/index.xml b/soong/weekly/index.xml new file mode 100644 index 00000000000..d3d557ab284 --- /dev/null +++ b/soong/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Soong Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:54Z + Weekly Trending of Soong in GitHub + + \ No newline at end of file diff --git a/sourcepawn/daily/index.xml b/sourcepawn/daily/index.xml index 8f2b190daf2..959e6c2faa1 100644 --- a/sourcepawn/daily/index.xml +++ b/sourcepawn/daily/index.xml @@ -1,7 +1,7 @@ GitHub SourcePawn Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:14Z + 2023-09-24T01:42:09Z Daily Trending of SourcePawn in GitHub \ No newline at end of file diff --git a/sourcepawn/weekly/index.xml b/sourcepawn/weekly/index.xml new file mode 100644 index 00000000000..dc8dced4337 --- /dev/null +++ b/sourcepawn/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SourcePawn Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:55Z + Weekly Trending of SourcePawn in GitHub + + \ No newline at end of file diff --git a/sparql/daily/index.xml b/sparql/daily/index.xml index a93e44362ba..f883b342d90 100644 --- a/sparql/daily/index.xml +++ b/sparql/daily/index.xml @@ -1,7 +1,7 @@ GitHub SPARQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:13Z + 2023-09-24T01:42:07Z Daily Trending of SPARQL in GitHub \ No newline at end of file diff --git a/sparql/weekly/index.xml b/sparql/weekly/index.xml new file mode 100644 index 00000000000..a9584dee767 --- /dev/null +++ b/sparql/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SPARQL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:52Z + Weekly Trending of SPARQL in GitHub + + \ No newline at end of file diff --git a/spline-font-database/daily/index.xml b/spline-font-database/daily/index.xml index 4c8692318f5..c96c6721a4a 100644 --- a/spline-font-database/daily/index.xml +++ b/spline-font-database/daily/index.xml @@ -1,7 +1,7 @@ GitHub Spline Font Database Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:12Z + 2023-09-24T01:42:06Z Daily Trending of Spline Font Database in GitHub \ No newline at end of file diff --git a/spline-font-database/weekly/index.xml b/spline-font-database/weekly/index.xml new file mode 100644 index 00000000000..1c8ab4b798e --- /dev/null +++ b/spline-font-database/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Spline Font Database Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:53Z + Weekly Trending of Spline Font Database in GitHub + + \ No newline at end of file diff --git a/sqf/daily/index.xml b/sqf/daily/index.xml index c109459865d..9501e7900c3 100644 --- a/sqf/daily/index.xml +++ b/sqf/daily/index.xml @@ -1,7 +1,7 @@ GitHub SQF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:16Z + 2023-09-24T01:42:13Z Daily Trending of SQF in GitHub \ No newline at end of file diff --git a/sqf/weekly/index.xml b/sqf/weekly/index.xml new file mode 100644 index 00000000000..114783da271 --- /dev/null +++ b/sqf/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SQF Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:58Z + Weekly Trending of SQF in GitHub + + \ No newline at end of file diff --git a/sql/daily/index.xml b/sql/daily/index.xml index 08ca4507e57..83b7a308fc3 100644 --- a/sql/daily/index.xml +++ b/sql/daily/index.xml @@ -1,7 +1,7 @@ GitHub SQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:18Z + 2023-09-24T01:42:12Z Daily Trending of SQL in GitHub \ No newline at end of file diff --git a/sql/weekly/index.xml b/sql/weekly/index.xml new file mode 100644 index 00000000000..50072d4555b --- /dev/null +++ b/sql/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SQL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:57Z + Weekly Trending of SQL in GitHub + + \ No newline at end of file diff --git a/sqlpl/daily/index.xml b/sqlpl/daily/index.xml index 599eeadea6a..66fc4fe9105 100644 --- a/sqlpl/daily/index.xml +++ b/sqlpl/daily/index.xml @@ -1,7 +1,7 @@ GitHub SQLPL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:19Z + 2023-09-24T01:42:10Z Daily Trending of SQLPL in GitHub \ No newline at end of file diff --git a/sqlpl/weekly/index.xml b/sqlpl/weekly/index.xml new file mode 100644 index 00000000000..fe93d336539 --- /dev/null +++ b/sqlpl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SQLPL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:56Z + Weekly Trending of SQLPL in GitHub + + \ No newline at end of file diff --git a/squirrel/daily/index.xml b/squirrel/daily/index.xml index e22a33ea8c9..692aec5e4e7 100644 --- a/squirrel/daily/index.xml +++ b/squirrel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Squirrel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:17Z + 2023-09-24T01:42:11Z Daily Trending of Squirrel in GitHub \ No newline at end of file diff --git a/squirrel/weekly/index.xml b/squirrel/weekly/index.xml new file mode 100644 index 00000000000..de15529803e --- /dev/null +++ b/squirrel/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Squirrel Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:01:58Z + Weekly Trending of Squirrel in GitHub + + \ No newline at end of file diff --git a/srecode-template/daily/index.xml b/srecode-template/daily/index.xml index 627c0339809..cd615310ab7 100644 --- a/srecode-template/daily/index.xml +++ b/srecode-template/daily/index.xml @@ -1,7 +1,7 @@ GitHub SRecode Template Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:23Z + 2023-09-24T01:42:17Z Daily Trending of SRecode Template in GitHub \ No newline at end of file diff --git a/srecode-template/weekly/index.xml b/srecode-template/weekly/index.xml new file mode 100644 index 00000000000..436ad8f9173 --- /dev/null +++ b/srecode-template/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SRecode Template Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:00Z + Weekly Trending of SRecode Template in GitHub + + \ No newline at end of file diff --git a/ssh-config/daily/index.xml b/ssh-config/daily/index.xml index f3f242b53c8..4785a78ace6 100644 --- a/ssh-config/daily/index.xml +++ b/ssh-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub SSH Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:22Z + 2023-09-24T01:42:14Z Daily Trending of SSH Config in GitHub \ No newline at end of file diff --git a/ssh-config/weekly/index.xml b/ssh-config/weekly/index.xml new file mode 100644 index 00000000000..87b7df05a49 --- /dev/null +++ b/ssh-config/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SSH Config Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:02Z + Weekly Trending of SSH Config in GitHub + + \ No newline at end of file diff --git a/stan/daily/index.xml b/stan/daily/index.xml index 2c33508bbb7..6915efa0b18 100644 --- a/stan/daily/index.xml +++ b/stan/daily/index.xml @@ -1,7 +1,7 @@ GitHub Stan Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:21Z + 2023-09-24T01:42:15Z Daily Trending of Stan in GitHub \ No newline at end of file diff --git a/stan/weekly/index.xml b/stan/weekly/index.xml new file mode 100644 index 00000000000..535e44f1523 --- /dev/null +++ b/stan/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Stan Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:00Z + Weekly Trending of Stan in GitHub + + \ No newline at end of file diff --git a/standard-ml/daily/index.xml b/standard-ml/daily/index.xml index 1bbde2f79ea..c07532a26ff 100644 --- a/standard-ml/daily/index.xml +++ b/standard-ml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Standard ML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:20Z + 2023-09-24T01:42:16Z Daily Trending of Standard ML in GitHub \ No newline at end of file diff --git a/standard-ml/weekly/index.xml b/standard-ml/weekly/index.xml new file mode 100644 index 00000000000..b635f1802de --- /dev/null +++ b/standard-ml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Standard ML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:01Z + Weekly Trending of Standard ML in GitHub + + \ No newline at end of file diff --git a/starlark/daily/index.xml b/starlark/daily/index.xml index 32f95a9a7d5..a5275bcd8c8 100644 --- a/starlark/daily/index.xml +++ b/starlark/daily/index.xml @@ -1,7 +1,7 @@ GitHub Starlark Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:28Z + 2023-09-24T01:42:23Z Daily Trending of Starlark in GitHub \ No newline at end of file diff --git a/starlark/weekly/index.xml b/starlark/weekly/index.xml new file mode 100644 index 00000000000..03213a76a28 --- /dev/null +++ b/starlark/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Starlark Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:08Z + Weekly Trending of Starlark in GitHub + + \ No newline at end of file diff --git a/stata/daily/index.xml b/stata/daily/index.xml index c9b7de303b5..5aea4756619 100644 --- a/stata/daily/index.xml +++ b/stata/daily/index.xml @@ -1,7 +1,7 @@ GitHub Stata Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:26Z + 2023-09-24T01:42:20Z Daily Trending of Stata in GitHub \ No newline at end of file diff --git a/stata/weekly/index.xml b/stata/weekly/index.xml new file mode 100644 index 00000000000..c68d2faa156 --- /dev/null +++ b/stata/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Stata Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:04Z + Weekly Trending of Stata in GitHub + + \ No newline at end of file diff --git a/ston/daily/index.xml b/ston/daily/index.xml index 6aee488759b..bdad3c26fec 100644 --- a/ston/daily/index.xml +++ b/ston/daily/index.xml @@ -1,7 +1,7 @@ GitHub STON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:33Z + 2023-09-24T01:42:26Z Daily Trending of STON in GitHub \ No newline at end of file diff --git a/ston/weekly/index.xml b/ston/weekly/index.xml new file mode 100644 index 00000000000..74c3e47b56a --- /dev/null +++ b/ston/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub STON Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:12Z + Weekly Trending of STON in GitHub + + \ No newline at end of file diff --git a/stringtemplate/daily/index.xml b/stringtemplate/daily/index.xml index 545f0af6c2d..da6b6bce2d9 100644 --- a/stringtemplate/daily/index.xml +++ b/stringtemplate/daily/index.xml @@ -1,7 +1,7 @@ GitHub StringTemplate Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:32Z + 2023-09-24T01:42:25Z Daily Trending of StringTemplate in GitHub \ No newline at end of file diff --git a/stringtemplate/weekly/index.xml b/stringtemplate/weekly/index.xml new file mode 100644 index 00000000000..bac78c8c894 --- /dev/null +++ b/stringtemplate/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub StringTemplate Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:10Z + Weekly Trending of StringTemplate in GitHub + + \ No newline at end of file diff --git a/stylus/daily/index.xml b/stylus/daily/index.xml index 80da33fe9f0..a89882d3660 100644 --- a/stylus/daily/index.xml +++ b/stylus/daily/index.xml @@ -1,7 +1,7 @@ GitHub Stylus Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:31Z + 2023-09-24T01:42:28Z Daily Trending of Stylus in GitHub \ No newline at end of file diff --git a/stylus/weekly/index.xml b/stylus/weekly/index.xml new file mode 100644 index 00000000000..4255b1d4b65 --- /dev/null +++ b/stylus/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Stylus Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:11Z + Weekly Trending of Stylus in GitHub + + + saicaca/hexo-theme-vivia + 2023-09-24T02:02:11Z + tag:github.com,2023-09-24:/saicaca/hexo-theme-vivia + + <p>A clean and minimalist theme for Hexo.</p><hr> + + \ No newline at end of file diff --git a/subrip-text/daily/index.xml b/subrip-text/daily/index.xml index 851bfd1315c..7591a8ad34b 100644 --- a/subrip-text/daily/index.xml +++ b/subrip-text/daily/index.xml @@ -1,7 +1,7 @@ GitHub SubRip Text Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:30Z + 2023-09-24T01:42:27Z Daily Trending of SubRip Text in GitHub \ No newline at end of file diff --git a/subrip-text/weekly/index.xml b/subrip-text/weekly/index.xml new file mode 100644 index 00000000000..d1bef627b74 --- /dev/null +++ b/subrip-text/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SubRip Text Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:09Z + Weekly Trending of SubRip Text in GitHub + + \ No newline at end of file diff --git a/sugarss/daily/index.xml b/sugarss/daily/index.xml index 836f174a96b..1eaefb0d473 100644 --- a/sugarss/daily/index.xml +++ b/sugarss/daily/index.xml @@ -1,7 +1,7 @@ GitHub SugarSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:36Z + 2023-09-24T01:42:29Z Daily Trending of SugarSS in GitHub \ No newline at end of file diff --git a/sugarss/weekly/index.xml b/sugarss/weekly/index.xml new file mode 100644 index 00000000000..63952596ffa --- /dev/null +++ b/sugarss/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SugarSS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:13Z + Weekly Trending of SugarSS in GitHub + + \ No newline at end of file diff --git a/supercollider/daily/index.xml b/supercollider/daily/index.xml index f4a0801c418..17a9907a562 100644 --- a/supercollider/daily/index.xml +++ b/supercollider/daily/index.xml @@ -1,7 +1,7 @@ GitHub SuperCollider Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:34Z + 2023-09-24T01:42:30Z Daily Trending of SuperCollider in GitHub \ No newline at end of file diff --git a/supercollider/weekly/index.xml b/supercollider/weekly/index.xml new file mode 100644 index 00000000000..f26037d4abe --- /dev/null +++ b/supercollider/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SuperCollider Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:13Z + Weekly Trending of SuperCollider in GitHub + + \ No newline at end of file diff --git a/svelte/daily/index.xml b/svelte/daily/index.xml index be3c9fb0533..17170479851 100644 --- a/svelte/daily/index.xml +++ b/svelte/daily/index.xml @@ -1,7 +1,14 @@ GitHub Svelte Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:39Z + 2023-09-24T01:42:34Z Daily Trending of Svelte in GitHub + + penpenpng/markostr + 2023-09-24T01:42:34Z + tag:github.com,2023-09-24:/penpenpng/markostr + + <p></p><hr> + \ No newline at end of file diff --git a/svelte/weekly/index.xml b/svelte/weekly/index.xml new file mode 100644 index 00000000000..da328a79196 --- /dev/null +++ b/svelte/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Svelte Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:17Z + Weekly Trending of Svelte in GitHub + + + huntabyte/formsnap + 2023-09-24T02:02:17Z + tag:github.com,2023-09-24:/huntabyte/formsnap + + <p>Functional, accessible, and powerful form components for Svelte. 🫰</p><hr> + + \ No newline at end of file diff --git a/svg/daily/index.xml b/svg/daily/index.xml index 274a53a0eb2..a820b031241 100644 --- a/svg/daily/index.xml +++ b/svg/daily/index.xml @@ -1,7 +1,7 @@ GitHub SVG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:39Z + 2023-09-24T01:42:34Z Daily Trending of SVG in GitHub \ No newline at end of file diff --git a/svg/weekly/index.xml b/svg/weekly/index.xml new file mode 100644 index 00000000000..9c96a4712a8 --- /dev/null +++ b/svg/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SVG Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:17Z + Weekly Trending of SVG in GitHub + + \ No newline at end of file diff --git a/swift/daily/index.xml b/swift/daily/index.xml index b84d7d7c03d..4d10a8cede0 100644 --- a/swift/daily/index.xml +++ b/swift/daily/index.xml @@ -1,7 +1,14 @@ GitHub Swift Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:47Z + 2023-09-24T01:42:42Z Daily Trending of Swift in GitHub + + apple/swift-testing + 2023-09-24T01:42:42Z + tag:github.com,2023-09-24:/apple/swift-testing + + <p></p><hr><h1><code>swift-testing</code></h1> <!-- This source file is part of the Swift.org open source project Copyright (c) 2023 Apple Inc. and the Swift project authors Licensed under Apache License v2.0 with Runtime Library Exception See https://swift.org/LICENSE.txt for license information See https://swift.org/CONTRIBUTORS.txt for Swift project authors --> <p><code>swift-testing</code> is a modern, open-source testing library for Swift with powerful and expressive capabilities. It gives developers more confidence with less code.</p> <blockquote> <p>[!IMPORTANT] This package is under active, ongoing development. Its contents, including all interfaces and implementation details, are experimental and are subject to change or removal without notice.</p> <p>We welcome feedback and ideas from the Swift community. Please join us in the <a href="https://forums.swift.org/c/related-projects/swift-testing">Swift forums</a> and let us know what you think!</p> </blockquote> <h2>Feature overview</h2> <h3>Flexible test organization</h3> <p>Define test functions almost anywhere with a single attribute and group related tests into hierarchies using Swift's type system.</p> <h3>Customizable metadata</h3> <p>Dynamically enable or disable tests depending on runtime conditions, categorize tests using tags, and associate bugs directly with the tests that verify their fixes or reproduce their problems.</p> <h3>Scalable execution</h3> <p>Automatically parallelize tests in-process, integrate seamlessly with Swift concurrency, and parameterize test functions across wide ranges of inputs.</p> <h2>Supported platforms</h2> <p>The table below describes the current level of support that <code>swift-testing</code> has for various platforms:</p> <table> <thead> <tr> <th><strong>Platform</strong></th> <th><strong>Status</strong></th> </tr> </thead> <tbody> <tr> <td><strong>macOS</strong></td> <td>Supported</td> </tr> <tr> <td><strong>iOS</strong></td> <td>Supported</td> </tr> <tr> <td><strong>watchOS</strong></td> <td>Supported</td> </tr> <tr> <td><strong>tvOS</strong></td> <td>Supported</td> </tr> <tr> <td><strong>Ubuntu 22.04</strong></td> <td>Supported</td> </tr> <tr> <td><strong>Windows</strong></td> <td>Pending support for macros</td> </tr> </tbody> </table> <h2>Getting started</h2> <p><code>swift-testing</code> is under active development. We are working to integrate it with the rest of the Swift ecosystem, but you can try it out today by following the steps in our <a href="https://raw.githubusercontent.com/apple/swift-testing/main/Sources/Testing/Testing.docc/TemporaryGettingStarted.md">Getting Started</a> article.</p> + \ No newline at end of file diff --git a/swift/weekly/index.xml b/swift/weekly/index.xml new file mode 100644 index 00000000000..3709e9e55c0 --- /dev/null +++ b/swift/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Swift Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:25Z + Weekly Trending of Swift in GitHub + + + hotwired/turbo-ios + 2023-09-24T02:02:25Z + tag:github.com,2023-09-24:/hotwired/turbo-ios + + <p>iOS framework for making Turbo native apps</p><hr><h1>Turbo Native for iOS</h1> <p><strong>Build high-fidelity hybrid apps with native navigation and a single shared web view.</strong> Turbo Native for iOS provides the tooling to wrap your <a href="https://github.com/hotwired/turbo">Turbo 7</a>-enabled web app in a native iOS shell. It manages a single WKWebView instance across multiple view controllers, giving you native navigation UI with all the client-side performance benefits of Turbo.</p> <h2>Features</h2> <ul> <li><strong>Deliver fast, efficient hybrid apps.</strong> Avoid reloading JavaScript and CSS. Save memory by sharing one WKWebView.</li> <li><strong>Reuse mobile web views across platforms.</strong> Create your views once, on the server, in HTML. Deploy them to iOS, <a href="https://github.com/hotwired/turbo-android">Android</a>, and mobile browsers simultaneously. Ship new features without waiting on App Store approval.</li> <li><strong>Enhance web views with native UI.</strong> Navigate web views using native patterns. Augment web UI with native controls.</li> <li><strong>Produce large apps with small teams.</strong> Achieve baseline HTML coverage for free. Upgrade to native views as needed.</li> </ul> <h2>Requirements</h2> <p>Turbo iOS is written in Swift 5.3 and requires iOS 14 or higher. It supports web apps using either Turbo 7 or Turbolinks 5. The Turbo iOS framework has no dependencies.</p> <p><strong>Note:</strong> You should understand how Turbo works with web applications in the browser before attempting to use Turbo iOS. See the <a href="https://github.com/hotwired/turbo">Turbo 7 documentation</a> for details. Ensure that your web app sets the <code>window.Turbo</code> global variable as it's required by the native apps:</p> <pre><code class="language-javascript">import { Turbo } from "@hotwired/turbo-rails" window.Turbo = Turbo </code></pre> <h2>Getting Started</h2> <p>The best way to get started with Turbo iOS to try out the demo app first to get familiar with the framework. The demo app walks you through all the basic Turbo flows as well as some advanced features. To run the demo, clone this repo and open <code>Demo/Demo.xcodeproj</code> in Xcode and run the Demo target. See <a href="https://raw.githubusercontent.com/hotwired/turbo-ios/main/Demo/README.md">Demo/README.md</a> for more details about the demo. When you’re ready to start your own application, read through the rest of the documentation.</p> <h2>Installation</h2> <p>Add Turbo as a dependency through Xcode or directly to a Package.swift:</p> <pre><code>.package(url: "https://github.com/hotwired/turbo-ios", from: "&lt;latest-version&gt;") </code></pre> <p>You can also integrate the framework manually if your prefer, such as by adding the repo as a submodule, and linking <code>Turbo.framework</code> to your project.</p> <h2>Documentation</h2> <ul> <li><a href="https://raw.githubusercontent.com/hotwired/turbo-ios/main/Docs/QuickStartGuide.md">Quick Start</a></li> <li><a href="https://raw.githubusercontent.com/hotwired/turbo-ios/main/Docs/Overview.md">Overview</a></li> <li><a href="https://raw.githubusercontent.com/hotwired/turbo-ios/main/Docs/Authentication.md">Authentication</a></li> <li><a href="https://raw.githubusercontent.com/hotwired/turbo-ios/main/Docs/PathConfiguration.md">Path Configuration</a></li> <li><a href="https://raw.githubusercontent.com/hotwired/turbo-ios/main/Docs/Migration.md">Migration</a></li> <li><a href="https://raw.githubusercontent.com/hotwired/turbo-ios/main/Docs/Advanced.md">Advanced</a></li> </ul> <h2>Contributing</h2> <p>Turbo iOS is open-source software, freely distributable under the terms of an <a href="https://raw.githubusercontent.com/hotwired/turbo-ios/main/LICENSE">MIT-style license</a>. The <a href="https://github.com/hotwired/turbo-ios">source code is hosted on GitHub</a>. Development is sponsored by <a href="https://37signals.com/">37signals</a>.</p> <p>We welcome contributions in the form of bug reports, pull requests, or thoughtful discussions in the <a href="https://github.com/hotwired/turbo-ios/issues">GitHub issue tracker</a>.</p> <p>Please note that this project is released with a <a href="https://raw.githubusercontent.com/hotwired/turbo-ios/main/CONDUCT.md">Contributor Code of Conduct</a>. By participating in this project you agree to abide by its terms.</p> <hr> <p>© 2023 37signals LLC</p> + + + securing/IOSSecuritySuite + 2023-09-24T02:02:25Z + tag:github.com,2023-09-24:/securing/IOSSecuritySuite + + <p>iOS platform security & anti-tampering Swift library</p><hr><h2>⭐️ Do you want to become a certified iOS Application Security Engineer? ⭐️</h2> <p>Check out our practical &amp; fully online course at: <a href="https://courses.securing.pl/courses/iase?utm_source=githubiosss&amp;utm_medium=githubiosss&amp;utm_campaign=githubiosss&amp;utm_id=githubiosss">https://courses.securing.pl/courses/iase</a></p> <p><img src="https://raw.githubusercontent.com/securing/IOSSecuritySuite/master/iase_bg.png" alt="iASE logo"></p> <h2>ISS Description</h2> <p><img src="https://raw.githubusercontent.com/securing/IOSSecuritySuite/master/logo.png" alt="ISS logo"></p> <h3>by <a href="https://twitter.com/_r3ggi">@_r3ggi</a></h3> <p>🌏 iOS Security Suite is an advanced and easy-to-use platform security &amp; anti-tampering library written in pure Swift! If you are developing for iOS and you want to protect your app according to the OWASP <a href="https://github.com/OWASP/owasp-masvs">MASVS</a> standard, chapter v8, then this library could save you a lot of time. 🚀</p> <p>What ISS detects:</p> <ul> <li>Jailbreak (even the iOS 11+ with brand new indicators! 🔥)</li> <li>Attached debugger 👨🏻‍🚀</li> <li>If an app was run in an emulator 👽</li> <li>Common reverse engineering tools running on the device 🔭</li> </ul> <h2>Setup</h2> <p>There are 4 ways you can start using IOSSecuritySuite</p> <h3>1. Add source</h3> <p>Add <code>IOSSecuritySuite/*.swift</code> files to your project</p> <h3>2. Setup with CocoaPods</h3> <p><code>pod 'IOSSecuritySuite'</code></p> <h3>3. Setup with Carthage</h3> <p><code>github "securing/IOSSecuritySuite"</code></p> <h3>4. Setup with Swift Package Manager</h3> <pre><code class="language-swift">.package(url: "https://github.com/securing/IOSSecuritySuite.git", from: "1.5.0") </code></pre> <h3>Update Info.plist</h3> <p>After adding ISS to your project, you will also need to update your main Info.plist. There is a check in jailbreak detection module that uses <code>canOpenURL(_:)</code> method and <a href="https://developer.apple.com/documentation/uikit/uiapplication/1622952-canopenurl">requires</a> specifying URLs that will be queried.</p> <pre><code class="language-xml">&lt;key&gt;LSApplicationQueriesSchemes&lt;/key&gt; &lt;array&gt; &lt;string&gt;undecimus&lt;/string&gt; &lt;string&gt;sileo&lt;/string&gt; &lt;string&gt;zbra&lt;/string&gt; &lt;string&gt;filza&lt;/string&gt; &lt;string&gt;activator&lt;/string&gt; &lt;/array&gt; </code></pre> <h3>Notice</h3> <p>iOS Security Suite is meant to be used on iOS/iPadOS. It should not be used on Macs with Apple Silicon.</p> <h2>How to use</h2> <h3>Jailbreak detector module</h3> <ul> <li><strong>The simplest method</strong> returns True/False if you just want to know if the device is jailbroken or jailed</li> </ul> <pre><code class="language-Swift">if IOSSecuritySuite.amIJailbroken() { print("This device is jailbroken") } else { print("This device is not jailbroken") } </code></pre> <ul> <li><strong>Verbose</strong>, if you also want to know what indicators were identified</li> </ul> <pre><code class="language-Swift">let jailbreakStatus = IOSSecuritySuite.amIJailbrokenWithFailMessage() if jailbreakStatus.jailbroken { print("This device is jailbroken") print("Because: \(jailbreakStatus.failMessage)") } else { print("This device is not jailbroken") } </code></pre> <p>The failMessage is a String containing comma-separated indicators as shown on the example below: <code>sileo:// URL scheme detected, Suspicious file exists: /Library/MobileSubstrate/MobileSubstrate.dylib, Fork was able to create a new process</code></p> <ul> <li><strong>Verbose &amp; filterable</strong>, if you also want to for example identify devices that were jailbroken in the past, but now are jailed</li> </ul> <pre><code class="language-Swift">let jailbreakStatus = IOSSecuritySuite.amIJailbrokenWithFailedChecks() if jailbreakStatus.jailbroken { if (jailbreakStatus.failedChecks.contains { $0.check == .existenceOfSuspiciousFiles }) &amp;&amp; (jailbreakStatus.failedChecks.contains { $0.check == .suspiciousFilesCanBeOpened }) { print("This is real jailbroken device") } } </code></pre> <h3>Debugger detector module</h3> <pre><code class="language-Swift">let amIDebugged: Bool = IOSSecuritySuite.amIDebugged() </code></pre> <h3>Deny debugger at all</h3> <pre><code class="language-Swift">IOSSecuritySuite.denyDebugger() </code></pre> <h3>Emulator detector module</h3> <pre><code class="language-Swift">let runInEmulator: Bool = IOSSecuritySuite.amIRunInEmulator() </code></pre> <h3>Reverse engineering tools detector module</h3> <ul> <li><strong>The simplest method</strong> returns True/False if you just want to know if the device has evidence of reverse engineering</li> </ul> <pre><code class="language-Swift">if IOSSecuritySuite.amIReverseEngineered() { print("This device has evidence of reverse engineering") } else { print("This device hasn't evidence of reverse engineering") } </code></pre> <ul> <li><strong>Verbose &amp; filterable</strong>, if you also want the list of checks done</li> </ul> <pre><code class="language-Swift">let reverseStatus = IOSSecuritySuite.amIReverseEngineeredWithFailedChecks() if reverseStatus.reverseEngineered { // check for reverseStatus.failedChecks for more details } </code></pre> <h3>System proxy detector module</h3> <pre><code class="language-Swift">let amIProxied: Bool = IOSSecuritySuite.amIProxied() </code></pre> <h2>Experimental features</h2> <h3>Runtime hook detector module</h3> <pre><code class="language-Swift">let amIRuntimeHooked: Bool = amIRuntimeHook(dyldWhiteList: dylds, detectionClass: SomeClass.self, selector: #selector(SomeClass.someFunction), isClassMethod: false) </code></pre> <h3>Symbol hook deny module</h3> <pre><code class="language-Swift">// If we want to deny symbol hook of Swift function, we have to pass mangled name of that function denySymbolHook("$s10Foundation5NSLogyySS_s7CVarArg_pdtF") // denying hooking for the NSLog function NSLog("Hello Symbol Hook") denySymbolHook("abort") abort() </code></pre> <h3>MSHook detector module</h3> <pre><code class="language-Swift">// Function declaration func someFunction(takes: Int) -&gt; Bool { return false } // Defining FunctionType : @convention(thin) indicates a “thin” function reference, which uses the Swift calling convention with no special “self” or “context” parameters. typealias FunctionType = @convention(thin) (Int) -&gt; (Bool) // Getting pointer address of function we want to verify func getSwiftFunctionAddr(_ function: @escaping FunctionType) -&gt; UnsafeMutableRawPointer { return unsafeBitCast(function, to: UnsafeMutableRawPointer.self) } let funcAddr = getSwiftFunctionAddr(someFunction) let amIMSHooked = IOSSecuritySuite.amIMSHooked(funcAddr) </code></pre> <h3>MSHook deny module</h3> <pre><code class="language-Swift">// Function declaration func denyDebugger(value: Int) { } // Defining FunctionType : @convention(thin) indicates a “thin” function reference, which uses the Swift calling convention with no special “self” or “context” parameters. typealias FunctionType = @convention(thin) (Int)-&gt;() // Getting original function address let funcDenyDebugger: FunctionType = denyDebugger let funcAddr = unsafeBitCast(funcDenyDebugger, to: UnsafeMutableRawPointer.self) if let originalDenyDebugger = denyMSHook(funcAddr) { // Call the original function with 1337 as Int argument unsafeBitCast(originalDenyDebugger, to: FunctionType.self)(1337) } else { denyDebugger() } </code></pre> <h3>File integrity verifier module</h3> <pre><code class="language-Swift">// Determine if application has been tampered with if IOSSecuritySuite.amITampered([.bundleID("biz.securing.FrameworkClientApp"), .mobileProvision("2976c70b56e9ae1e2c8e8b231bf6b0cff12bbbd0a593f21846d9a004dd181be3"), .machO("IOSSecuritySuite", "6d8d460b9a4ee6c0f378e30f137cebaf2ce12bf31a2eef3729c36889158aa7fc")]).result { print("I have been Tampered.") } else { print("I have not been Tampered.") } // Manually verify SHA256 hash value of a loaded dylib if let hashValue = IOSSecuritySuite.getMachOFileHashValue(.custom("IOSSecuritySuite")), hashValue == "6d8d460b9a4ee6c0f378e30f137cebaf2ce12bf31a2eef3729c36889158aa7fc" { print("I have not been Tampered.") } else { print("I have been Tampered.") } // Check SHA256 hash value of the main executable // Tip: Your application may retrieve this value from the server if let hashValue = IOSSecuritySuite.getMachOFileHashValue(.default), hashValue == "your-application-executable-hash-value" { print("I have not been Tampered.") } else { print("I have been Tampered.") } </code></pre> <h3>Breakpoint detection module</h3> <pre><code class="language-Swift">func denyDebugger() { // Set breakpoint here } typealias FunctionType = @convention(thin) ()-&gt;() let func_denyDebugger: FunctionType = denyDebugger // `: FunctionType` is a must let func_addr = unsafeBitCast(func_denyDebugger, to: UnsafeMutableRawPointer.self) let hasBreakpoint = IOSSecuritySuite.hasBreakpointAt(func_addr, functionSize: nil) if hasBreakpoint { print("Breakpoint found in the specified function") } else { print("Breakpoint not found in the specified function") } </code></pre> <h3>Watchpoint detection module</h3> <pre><code class="language-Swift">// Set a breakpoint at the testWatchpoint function func testWatchpoint() -&gt; Bool{ // lldb: watchpoint set expression ptr var ptr = malloc(9) // lldb: watchpoint set variable count var count = 3 return IOSSecuritySuite.hasWatchpoint() } </code></pre> <h2>Security considerations</h2> <p>Before using this and other platform security checkers, you have to understand that:</p> <ul> <li>Including this tool in your project is not the only thing you should do in order to improve your app security! You can read a general mobile security whitepaper <a href="https://www.securing.biz/en/mobile-application-security-best-practices/index.html">here</a>.</li> <li>Detecting if a device is jailbroken is done locally on the device. It means that every jailbreak detector may be bypassed (even this)!</li> <li>Swift code is considered to be harder to manipulate dynamically than Objective-C. Since this library was written in pure Swift, the IOSSecuritySuite methods shouldn't be exposed to Objective-C runtime (which makes it more difficult to bypass ✅). You have to know that attacker is still able to MSHookFunction/MSFindSymbol Swift symbols and dynamically change Swift code execution flow.</li> </ul> <h2>Contribution ❤️</h2> <p>Yes, please! If you have a better idea or you just want to improve this project, please text me on <a href="https://twitter.com/_r3ggi">Twitter</a> or <a href="https://www.linkedin.com/in/wojciech-regula/">Linkedin</a>. Pull requests are more than welcome!</p> <h3>Special thanks: 👏🏻</h3> <ul> <li><a href="https://github.com/kubajakowski">kubajakowski</a> for pointing out the problem with <code>canOpenURL(_:)</code> method</li> <li><a href="https://github.com/olbartek">olbartek</a> for code review and pull request</li> <li><a href="https://github.com/benbahrenburg">benbahrenburg</a> for various ISS improvements</li> <li><a href="https://github.com/fotiDim">fotiDim</a> for adding new file paths to check</li> <li><a href="https://github.com/gcharita">gcharita</a> for adding the Swift Package Manager support</li> <li><a href="https://github.com/rynaardb">rynaardb</a> for creating the <code>amIJailbrokenWithFailedChecks()</code> method</li> <li><a href="https://github.com/undeaDD">undeaDD</a> for various ISS improvements</li> <li><a href="https://github.com/fnxpt">fnxpt</a> for adding multiple JB detections</li> <li><a href="https://github.com/TannerJin">TannerJin</a> for MSHook, RuntimeHook, SymbolHook and Watchpoint Detection modules</li> <li><a href="https://github.com/NikoXu">NikoXu</a> for adding file integrity module</li> <li><a href="https://github.com/hellpf">hellpf</a> for fixing a dangling socket problem</li> <li><a href="https://github.com/Ant-tree">Ant-tree</a> for improving hooking resistence</li> <li><a href="https://github.com/izmcm">izmcm</a> for implementing the <code>amIReverseEngineeredWithFailedChecks()</code> method</li> <li><a href="https://github.com/sanu">sanu</a> for new providing new file checks</li> <li><a href="https://github.com/marsepu">marsepu</a> for a well-done PR with new improvements</li> </ul> <h2>TODO</h2> <ul> <li><input type="checkbox" disabled> Research Installer5 and Zebra Package Manager detection ( Cydia Alternatives )</li> </ul> <h2>License</h2> <p>See the LICENSE file.</p> <h2>References</h2> <p>While creating this tool I used:</p> <ul> <li>🔗 <a href="https://github.com/TheSwiftyCoder/JailBreak-Detection">https://github.com/TheSwiftyCoder/JailBreak-Detection</a></li> <li>🔗 <a href="https://github.com/abhinashjain/jailbreakdetection">https://github.com/abhinashjain/jailbreakdetection</a></li> <li>🔗 <a href="https://gist.github.com/ddrccw/8412847">https://gist.github.com/ddrccw/8412847</a></li> <li>🔗 <a href="https://gist.github.com/bugaevc/4307eaf045e4b4264d8e395b5878a63b">https://gist.github.com/bugaevc/4307eaf045e4b4264d8e395b5878a63b</a></li> <li>📚 "iOS Application Security" by David Thiel</li> </ul> + + + siteline/swiftui-introspect + 2023-09-24T02:02:25Z + tag:github.com,2023-09-24:/siteline/swiftui-introspect + + <p>Introspect underlying UIKit/AppKit components from SwiftUI</p><hr><h1>SwiftUI Introspect</h1> <p><a href="https://github.com/siteline/swiftui-introspect/actions/workflows/ci.yml"><img src="https://github.com/siteline/swiftui-introspect/actions/workflows/ci.yml/badge.svg?sanitize=true" alt="CI Status Badge"></a> <a href="https://swiftpackageindex.com/siteline/swiftui-introspect"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fsiteline%2Fswiftui-introspect%2Fbadge%3Ftype%3Dswift-versions" alt="Swift Version Compatibility Badge"></a> <a href="https://swiftpackageindex.com/siteline/swiftui-introspect"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fsiteline%2Fswiftui-introspect%2Fbadge%3Ftype%3Dplatforms" alt="Platform Compatibility Badge"></a></p> <p>SwiftUI Introspect allows you to get the underlying UIKit or AppKit element of a SwiftUI view.</p> <p>For instance, with SwiftUI Introspect you can access <code>UITableView</code> to modify separators, or <code>UINavigationController</code> to customize the tab bar.</p> <h2>How it works</h2> <p>SwiftUI Introspect works by adding an invisible <code>IntrospectionView</code> on top of the selected view, and an invisible "anchor" view underneath it, then looking through the UIKit/AppKit view hierarchy between the two to find the relevant view.</p> <p>For instance, when introspecting a <code>ScrollView</code>...</p> <pre><code class="language-swift">ScrollView { Text("Item 1") } .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { scrollView in // do something with UIScrollView } </code></pre> <p>... it will:</p> <ol> <li>Add marker views in front and behind <code>ScrollView</code>.</li> <li>Traverse through all subviews between both marker views until a <code>UIScrollView</code> instance (if any) is found.</li> </ol> <blockquote> <p><strong>Warning</strong></p> <p>Although this introspection method is very solid and unlikely to break in itself, future OS releases require explicit opt-in for introspection (<code>.iOS(.vXYZ)</code>), given potential differences in underlying UIKit/AppKit view types between major OS versions.</p> </blockquote> <p>By default, the <code>.introspect</code> modifier acts directly on its <em>receiver</em>. This means calling <code>.introspect</code> from inside the view you're trying to introspect won't have any effect. However, there are times when this is not possible or simply too inflexible, in which case you <strong>can</strong> introspect an <em>ancestor</em>, but you must opt into this explicitly by overriding the introspection <code>scope</code>:</p> <pre><code class="language-swift">ScrollView { Text("Item 1") .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17), scope: .ancestor) { scrollView in // do something with UIScrollView } } </code></pre> <h3>Usage in production</h3> <p>SwiftUI Introspect is meant to be used in production. It does not use any private API. It only inspects the view hierarchy using publicly available methods. The library takes a defensive approach to inspecting the view hierarchy: there is no hard assumption that elements are laid out a certain way, there is no force-cast to UIKit/AppKit classes, and the <code>.introspect</code> modifier is simply ignored if UIKit/AppKit views cannot be found.</p> <h2>Install</h2> <h3>Swift Package Manager</h3> <pre><code class="language-swift">let package = Package( dependencies: [ .package(url: "https://github.com/siteline/swiftui-introspect", from: "1.0.0"), ], targets: [ .target(name: &lt;#Target Name#&gt;, dependencies: [ .product(name: "SwiftUIIntrospect", package: "swiftui-introspect"), ]), ] ) </code></pre> <h3>CocoaPods</h3> <pre><code class="language-ruby">pod 'SwiftUIIntrospect', '~&gt; 1.0' </code></pre> <h2>Introspection</h2> <h3>Implemented</h3> <ul> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/buttontype"><code>Button</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/colorpickertype"><code>ColorPicker</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/datepickertype"><code>DatePicker</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/datepickerwithcompactstyletype"><code>DatePicker</code> with <code>.compact</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/datepickerwithfieldstyletype"><code>DatePicker</code> with <code>.field</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/datepickerwithgraphicalstyletype"><code>DatePicker</code> with <code>.graphical</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/datepickerwithstepperfieldstyletype"><code>DatePicker</code> with <code>.stepperField</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/datepickerwithwheelstyletype"><code>DatePicker</code> with <code>.wheel</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/formtype"><code>Form</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/formwithgroupedstyletype"><code>Form</code> with <code>.grouped</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/fullScreenCovertype"><code>.fullScreenCover</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/listtype"><code>List</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/listwithborderedstyletype"><code>List</code> with <code>.bordered</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/listwithgroupedstyletype"><code>List</code> with <code>.grouped</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/listwithinsetgroupedstyletype"><code>List</code> with <code>.insetGrouped</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/listwithinsetstyletype"><code>List</code> with <code>.inset</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/listwithsidebarstyletype"><code>List</code> with <code>.sidebar</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/listcelltype"><code>ListCell</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/maptype"><code>Map</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/navigationsplitviewtype"><code>NavigationSplitView</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/navigationstacktype"><code>NavigationStack</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/NavigationViewWithColumnsStyleType"><code>NavigationView</code> with <code>.columns</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/NavigationViewWithStackStyleType"><code>NavigationView</code> with <code>.stack</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/pagecontroltype"><code>PageControl</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/pickerwithmenustyletype"><code>Picker</code> with <code>.menu</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/pickerwithsegmentedstyletype"><code>Picker</code> with <code>.segmented</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/pickerwithwheelstyletype"><code>Picker</code> with <code>.wheel</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/popovertype"><code>.popover</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/progressviewwithcircularstyletype"><code>ProgressView</code> with <code>.circular</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/progressviewwithlinearstyletype"><code>ProgressView</code> with <code>.linear</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/scrollviewtype"><code>ScrollView</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/searchfieldtype"><code>.searchable</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/securefieldtype"><code>SecureField</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/sheettype"><code>.sheet</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/SignInWithAppleButtonType"><code>SignInWithAppleButton</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/slidertype"><code>Slider</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/steppertype"><code>Stepper</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/tabletype"><code>Table</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/tabviewtype"><code>TabView</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/TabViewWithPageStyleType"><code>TabView</code> with <code>.page</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/texteditortype"><code>TextEditor</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/textfieldtype"><code>TextField</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/TextFieldWithVerticalAxisType"><code>TextField</code> with <code>.vertical</code> axis</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/toggletype"><code>Toggle</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/togglewithbuttonstyletype"><code>Toggle</code> with <code>button</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/togglewithcheckboxstyletype"><code>Toggle</code> with <code>checkbox</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/togglewithswitchstyletype"><code>Toggle</code> with <code>switch</code> style</a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/videoplayertype"><code>VideoPlayer</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/viewtype"><code>View</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/viewcontrollertype"><code>ViewController</code></a></li> <li><a href="https://swiftpackageindex.com/siteline/swiftui-introspect/main/documentation/swiftuiintrospect/windowtype"><code>Window</code></a></li> </ul> <p><strong>Missing an element?</strong> Please <a href="https://github.com/siteline/swiftui-introspect/discussions/new?category=ideas">start a discussion</a>. As a temporary solution, you can <a href="https://raw.githubusercontent.com/siteline/swiftui-introspect/main/#implement-your-own-introspectable-type">implement your own introspectable view type</a>.</p> <h3>Cannot implement</h3> <table> <thead> <tr> <th>SwiftUI</th> <th>Affected Frameworks</th> <th>Why</th> </tr> </thead> <tbody> <tr> <td>Text</td> <td>UIKit, AppKit</td> <td>Not a UILabel / NSLabel</td> </tr> <tr> <td>Image</td> <td>UIKit, AppKit</td> <td>Not a UIImageView / NSImageView</td> </tr> <tr> <td>Button</td> <td>UIKit</td> <td>Not a UIButton</td> </tr> </tbody> </table> <h2>Examples</h2> <h3>List</h3> <pre><code class="language-swift">List { Text("Item") } .introspect(.list, on: .iOS(.v13, .v14, .v15)) { tableView in tableView.backgroundView = UIView() tableView.backgroundColor = .cyan } .introspect(.list, on: .iOS(.v16, .v17)) { collectionView in collectionView.backgroundView = UIView() collectionView.subviews.dropFirst(1).first?.backgroundColor = .cyan } </code></pre> <h3>ScrollView</h3> <pre><code class="language-swift">ScrollView { Text("Item") } .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { scrollView in scrollView.backgroundColor = .red } </code></pre> <h3>NavigationView</h3> <pre><code class="language-swift">NavigationView { Text("Item") } .navigationViewStyle(.stack) .introspect(.navigationView(style: .stack), on: .iOS(.v13, .v14, .v15, .v16, .v17)) { navigationController in navigationController.navigationBar.backgroundColor = .cyan } </code></pre> <h3>TextField</h3> <pre><code class="language-swift">TextField("Text Field", text: &lt;#Binding&lt;String&gt;#&gt;) .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { textField in textField.backgroundColor = .red } </code></pre> <h2>Advanced usage</h2> <h3>Implement your own introspectable type</h3> <p><strong>Missing an element?</strong> Please <a href="https://github.com/siteline/swiftui-introspect/discussions/new?category=ideas">start a discussion</a>.</p> <p>In case SwiftUI Introspect (unlikely) doesn't support the SwiftUI element that you're looking for, you can implement your own introspectable type.</p> <p>For example, here's how the library implements the introspectable <code>TextField</code> type:</p> <pre><code class="language-swift">import SwiftUI @_spi(Advanced) import SwiftUIIntrospect public struct TextFieldType: IntrospectableViewType {} extension IntrospectableViewType where Self == TextFieldType { public static var textField: Self { .init() } } #if canImport(UIKit) extension iOSViewVersion&lt;TextFieldType, UITextField&gt; { public static let v13 = Self(for: .v13) public static let v14 = Self(for: .v14) public static let v15 = Self(for: .v15) public static let v16 = Self(for: .v16) public static let v17 = Self(for: .v17) } extension tvOSViewVersion&lt;TextFieldType, UITextField&gt; { public static let v13 = Self(for: .v13) public static let v14 = Self(for: .v14) public static let v15 = Self(for: .v15) public static let v16 = Self(for: .v16) public static let v17 = Self(for: .v17) } extension visionOSViewVersion&lt;TextFieldType, UITextField&gt; { public static let v1 = Self(for: .v1) } #elseif canImport(AppKit) extension macOSViewVersion&lt;TextFieldType, NSTextField&gt; { public static let v10_15 = Self(for: .v10_15) public static let v11 = Self(for: .v11) public static let v12 = Self(for: .v12) public static let v13 = Self(for: .v13) public static let v14 = Self(for: .v14) } #endif </code></pre> <h3>Introspect on future platform versions</h3> <p>By default, introspection applies per specific platform version. This is a sensible default for maximum predictability in regularly maintained codebases, but it's not always a good fit for e.g. library developers who may want to cover as many future platform versions as possible in order to provide the best chance for long-term future functionality of their library without regular maintenance.</p> <p>For such cases, SwiftUI Introspect offers range-based platform version predicates behind the Advanced SPI:</p> <pre><code class="language-swift">import SwiftUI @_spi(Advanced) import SwiftUIIntrospect struct ContentView: View { var body: some View { ScrollView { // ... } .introspect(.scrollView, on: .iOS(.v13...)) { scrollView in // ... } } } </code></pre> <p>Bear in mind this should be used cautiosly, and with full knowledge that any future OS version might break the expected introspection types unless explicitly available. For instance, if in the example above hypothetically iOS 18 stops using UIScrollView under the hood, the customization closure will never be called on said platform.</p> <h3>Keep instances outside the customize closure</h3> <p>Sometimes, you might need to keep your introspected instance around for longer than the customization closure lifetime. In such cases, <code>@State</code> is not a good option because it produces retain cycles. Instead, SwiftUI Introspect offers a <code>@Weak</code> property wrapper behind the Advanced SPI:</p> <pre><code class="language-swift">import SwiftUI @_spi(Advanced) import SwiftUIIntrospect struct ContentView: View { @Weak var scrollView: UIScrollView? var body: some View { ScrollView { // ... } .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { scrollView in self.scrollView = scrollView } } } </code></pre> <h2>Community projects</h2> <p>Here's a list of open source libraries powered by the SwiftUI Introspect library:</p> <a href="https://github.com/paescebu/CustomKeyboardKit"> <img src="https://github-readme-stats.vercel.app/api/pin/?username=paescebu&amp;repo=CustomKeyboardKit"> </a> <a href="https://github.com/davdroman/swiftui-navigation-transitions"> <img src="https://github-readme-stats.vercel.app/api/pin/?username=davdroman&amp;repo=swiftui-navigation-transitions"> </a> <p>If you're working on a library built on SwiftUI Introspect or know of one, feel free to submit a PR adding it to the list.</p> + + \ No newline at end of file diff --git a/swig/daily/index.xml b/swig/daily/index.xml index b03f51d4617..51a4118fd8e 100644 --- a/swig/daily/index.xml +++ b/swig/daily/index.xml @@ -1,7 +1,7 @@ GitHub SWIG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:43Z + 2023-09-24T01:42:39Z Daily Trending of SWIG in GitHub \ No newline at end of file diff --git a/swig/weekly/index.xml b/swig/weekly/index.xml new file mode 100644 index 00000000000..2489b24dc87 --- /dev/null +++ b/swig/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SWIG Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:21Z + Weekly Trending of SWIG in GitHub + + \ No newline at end of file diff --git a/systemverilog/daily/index.xml b/systemverilog/daily/index.xml index dc3f4a6ea8d..c0d0accbd10 100644 --- a/systemverilog/daily/index.xml +++ b/systemverilog/daily/index.xml @@ -1,7 +1,7 @@ GitHub SystemVerilog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:00Z + 2023-09-24T01:43:05Z Daily Trending of SystemVerilog in GitHub \ No newline at end of file diff --git a/systemverilog/weekly/index.xml b/systemverilog/weekly/index.xml new file mode 100644 index 00000000000..a2c7e470255 --- /dev/null +++ b/systemverilog/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub SystemVerilog Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:40Z + Weekly Trending of SystemVerilog in GitHub + + \ No newline at end of file diff --git a/talon/daily/index.xml b/talon/daily/index.xml index c34503bec27..b5842d48e36 100644 --- a/talon/daily/index.xml +++ b/talon/daily/index.xml @@ -1,7 +1,7 @@ GitHub Talon Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:01Z + 2023-09-24T01:43:02Z Daily Trending of Talon in GitHub \ No newline at end of file diff --git a/talon/weekly/index.xml b/talon/weekly/index.xml new file mode 100644 index 00000000000..3e67b26b776 --- /dev/null +++ b/talon/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Talon Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:35Z + Weekly Trending of Talon in GitHub + + \ No newline at end of file diff --git a/tcl/daily/index.xml b/tcl/daily/index.xml index 9ac237fb734..cd0aceeae93 100644 --- a/tcl/daily/index.xml +++ b/tcl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Tcl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:59Z + 2023-09-24T01:43:04Z Daily Trending of Tcl in GitHub \ No newline at end of file diff --git a/tcl/weekly/index.xml b/tcl/weekly/index.xml new file mode 100644 index 00000000000..343126ac965 --- /dev/null +++ b/tcl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Tcl Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:38Z + Weekly Trending of Tcl in GitHub + + \ No newline at end of file diff --git a/tcsh/daily/index.xml b/tcsh/daily/index.xml index 56e3cae9af3..1617e16928e 100644 --- a/tcsh/daily/index.xml +++ b/tcsh/daily/index.xml @@ -1,7 +1,7 @@ GitHub Tcsh Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:38:57Z + 2023-09-24T01:43:02Z Daily Trending of Tcsh in GitHub \ No newline at end of file diff --git a/tcsh/weekly/index.xml b/tcsh/weekly/index.xml new file mode 100644 index 00000000000..70d1a206dac --- /dev/null +++ b/tcsh/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Tcsh Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:36Z + Weekly Trending of Tcsh in GitHub + + \ No newline at end of file diff --git a/tea/daily/index.xml b/tea/daily/index.xml index 9c8b6176c1b..b3357e0a5ed 100644 --- a/tea/daily/index.xml +++ b/tea/daily/index.xml @@ -1,7 +1,7 @@ GitHub Tea Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:02Z + 2023-09-24T01:43:07Z Daily Trending of Tea in GitHub \ No newline at end of file diff --git a/tea/weekly/index.xml b/tea/weekly/index.xml new file mode 100644 index 00000000000..e5e3ea857ed --- /dev/null +++ b/tea/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Tea Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:42Z + Weekly Trending of Tea in GitHub + + \ No newline at end of file diff --git a/terra/daily/index.xml b/terra/daily/index.xml index 7abbcdf374a..6af53423fba 100644 --- a/terra/daily/index.xml +++ b/terra/daily/index.xml @@ -1,7 +1,7 @@ GitHub Terra Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:04Z + 2023-09-24T01:43:07Z Daily Trending of Terra in GitHub \ No newline at end of file diff --git a/terra/weekly/index.xml b/terra/weekly/index.xml new file mode 100644 index 00000000000..a808369f58c --- /dev/null +++ b/terra/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Terra Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:41Z + Weekly Trending of Terra in GitHub + + \ No newline at end of file diff --git a/tex/daily/index.xml b/tex/daily/index.xml index eddbbf7463b..fbee2a8cba9 100644 --- a/tex/daily/index.xml +++ b/tex/daily/index.xml @@ -1,7 +1,21 @@ GitHub TeX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:07Z + 2023-09-24T01:43:12Z Daily Trending of TeX in GitHub + + latexstudio/GMCMthesis + 2023-09-24T01:43:12Z + tag:github.com,2023-09-24:/latexstudio/GMCMthesis + + <p>2020 年研究生数学建模 LaTeX 模板</p><hr><h2>全国研究生数学建模竞赛 LaTeX 论文模板</h2> <p>GMCMthesis 是为全国研究生数学建模竞赛编写的 LaTeX 模板, 旨在让大家专注于 论文的内容写作, 而不用花费过多精力在格式的定制和调整上. 本手册是相应的参考, 其 中提供了一些环境和命令可以让模板的使用更为方便. 同时需要注意, 使用者需要有一 定的 LaTeX 的使用经验, 至少要会使用 ctex 宏包的一些功能, 比如调节字距或修改字体 大小等等.</p> <p>2019 年大学生建模模板的免费视频教程发布了,两个模板比较一脉相承,有兴趣用户可以观瞻观瞻:</p> <p>第一部分: <a href="https://www.bilibili.com/video/av64191560">https://www.bilibili.com/video/av64191560</a></p> <p>第二部分: <a href="https://www.bilibili.com/video/av64221508">https://www.bilibili.com/video/av64221508</a></p> <p>另外, 欢迎大家购买我们的视频教程, 参看<a href="https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-3473795048.2.ZlPoPL&amp;id=43823508044">这里</a>.</p> <p>视频教程试看的话,请点击:<a href="http://v.xue.taobao.com/learn.htm?spm=2013.1.0.0.kx3j3X&amp;courseId=26740">试看地址</a>.</p> <p><img src="https://github.com/latexstudio/GMCMthesis/raw/master/example_1.png" alt=""></p> <p><img src="https://github.com/latexstudio/GMCMthesis/raw/master/example_2.png" alt=""></p> <h2>更新记录</h2> <p>2023 年 9 月 19 日 更新:</p> <p>1,更新封面格式.</p> <p>2020 年 9 月 9 日 更新:</p> <p>1,更新封面格式;</p> <p>2,更新了内容的部分小细节和字体选择异常。</p> <p>2019 年 9 月 14 日更新:</p> <p>1,修改封面格式,由于阴影效果进行截图插图。</p> <p>2,调整了第一页第二页的版式。</p> <p>3,重新设置了全文边距,与 word 模板保持一致。</p> <p>2018年9月11日更新:</p> <p>1,修改封面格式,由于阴影效果进行截图插图。</p> <p>2,修改了参考文献的bibtex支持。</p> <p>3,其他冗余代码的删除和清理。</p> <p>2017年9月13日更新说明:</p> <ol> <li>去掉正文的页眉信息。</li> </ol> <p>2017年9月12日更新说明:</p> <ol> <li> <p>更新了封面的logo和页眉的版式;</p> </li> <li> <p>请大家使用TeXLive 2017 进行编译,下载地址:<a href="http://www.latexstudio.net">http://www.latexstudio.net</a> 首页焦点图;</p> </li> <li> <p>遇到问题可以到91940767群进行交流。</p> </li> </ol> + + + harvard-edge/cs249r_book + 2023-09-24T01:43:12Z + tag:github.com,2023-09-24:/harvard-edge/cs249r_book + + <p>Collaborative book for CS249r: Tiny Machine Learning</p><hr><h1>CS249r: Tiny Machine Learning - Collaborative Book</h1> <p><a href="https://raw.githubusercontent.com/harvard-edge/cs249r_book/main/#contributors"><img src="https://img.shields.io/github/all-contributors/harvard-edge/cs249r_book?color=ee8449&amp;style=flat-square" alt="All Contributors"></a></p> <p>Welcome to the collaborative book repository for students of CS249r: Tiny Machine Learning at Harvard! This repository contains the source files of chapters and sections written by your peers. We're excited to see your contributions!</p> <hr> <h2>Contributing</h2> <p>To get started with your contributions, follow these steps:</p> <ol> <li><strong>Clone the Repository</strong>: <pre><code class="language-bash">git clone https://github.com/harvard-edge/cs249r_book.git </code></pre> </li> <li><strong>Navigate to the Repository</strong>: <pre><code class="language-bash">cd cs249r_book </code></pre> </li> <li><strong>Create a New Branch</strong> for your chapter/section: <pre><code class="language-bash">git checkout -b name-of-your-new-branch </code></pre> </li> <li>Write your chapter/section in Markdown.</li> <li><strong>Commit Changes to Your Branch</strong>: <pre><code class="language-bash">git add . git commit -m "Description of your changes" </code></pre> </li> <li><strong>Push Your Branch to the Repository</strong>: <pre><code class="language-bash">git push origin name-of-your-new-branch </code></pre> </li> <li>Open a pull request to the <code>main</code> branch of the original repository.</li> </ol> <p>The instructors will review your pull request and provide feedback. Once accepted, your changes will be merged into the <code>main</code> branch, and the website will automatically update.</p> <p>More detailed instructions on the CS249r scribing effort and peer review process can be found <a href="https://docs.google.com/document/d/1izDoWwFLnV8XK2FYCl23_9KYL_7EQ5OWLo-PCNUGle0">here</a>.</p> <hr> <h2>Website</h2> <p>The book website is automatically built from the <code>gh-pages</code> branch. Changes to <code>main</code> will be merged into <code>gh-pages</code> once reviewed.</p> <p>View the book website at: <a href="https://harvard-edge.github.io/cs249r_book/">https://harvard-edge.github.io/cs249r_book/</a></p> <hr> <h2>Local Rendering</h2> <p>To render the book locally, you'll need to install <code>quarto</code>. Once <code>quarto</code> is installed, you can run the following command to generate the HTML pages:</p> <pre><code class="language-bash">cd cs249r_book quarto render </code></pre> <h2>Contributors</h2> <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/uchendui"><img src="https://avatars.githubusercontent.com/uchendui?s=100" width="100px;" alt="Ikechukwu Uchendu"><br><sub><b>Ikechukwu Uchendu</b></sub></a><br><a href="https://raw.githubusercontent.com/harvard-edge/cs249r_book/main/https=//github.com/harvard-edge/cs249r_book/commits?author=uchendui" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jveejay"><img src="https://avatars.githubusercontent.com/jveejay?s=100" width="100px;" alt="Vijay Janapa Reddi"><br><sub><b>Vijay Janapa Reddi</b></sub></a><br><a href="https://raw.githubusercontent.com/harvard-edge/cs249r_book/main/https=//github.com/harvard-edge/cs249r_book/commits?author=jveejay" title="Documentation">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/mpstewart1"><img src="https://avatars.githubusercontent.com/mpstewart1?s=100" width="100px;" alt="Matthew Stewart"><br><sub><b>Matthew Stewart</b></sub></a><br><a href="https://raw.githubusercontent.com/harvard-edge/cs249r_book/main/https=//github.com/harvard-edge/cs249r_book/commits?author=mpstewart1" title="Documentation">📖</a></td> </tr> </tbody> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END --> <p>This project follows the <a href="https://allcontributors.org">all-contributors</a> specification. Contributions of any kind are welcome!</p> + \ No newline at end of file diff --git a/tex/weekly/index.xml b/tex/weekly/index.xml new file mode 100644 index 00000000000..0c458e5d51d --- /dev/null +++ b/tex/weekly/index.xml @@ -0,0 +1,21 @@ + + GitHub TeX Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:46Z + Weekly Trending of TeX in GitHub + + + cvpr-org/author-kit + 2023-09-24T02:02:46Z + tag:github.com,2023-09-24:/cvpr-org/author-kit + + <p></p><hr><h1>CVPR/ICCV/3DV Official LaTeX template</h1> <p>History (in reverse chronological order)</p> <ul> <li>References in <code>cvprblue</code> for CVPR 2024 by <a href="https://github.com/Qwlouse">Klaus Greff</a></li> <li>added natbib for CVPR 2024 by <a href="https://richardt.name/">Christian Richardt</a></li> <li>replaced buggy (review-mode) line numbering for 3DV 2024 by <a href="https://openreview.net/profile?id=~Ad%C3%ADn_Ram%C3%ADrez_Rivera1">Adin Ramirez Rivera</a></li> <li>logic for inline supplementary for 3DV 2024 by <a href="https://taiya.github.io">Andrea Tagliasacchi</a></li> <li>modernized for CVPR 2022 by <a href="https://raw.githubusercontent.com/cvpr-org/author-kit/main/stefan.roth@NOSPAMtu-darmstadt.de">Stefan Roth</a></li> <li>created cvpr.sty file to unify review/rebuttal/final versions by <a href="https://github.com/MCG-NKU/CVPR_Template">Ming-Ming Cheng</a></li> <li>developed CVPR 2005 template by <a href="https://raw.githubusercontent.com/cvpr-org/author-kit/main/Paolo.Ienne@di.epfl.ch">Paolo Ienne</a> and <a href="https://raw.githubusercontent.com/cvpr-org/author-kit/main/awf@acm.org">Andrew Fitzgibbon</a></li> </ul> + + + Macin20/why-we-write + 2023-09-24T02:02:46Z + tag:github.com,2023-09-24:/Macin20/why-we-write + + <p>为什么写作?</p><hr><h1>写作只能塑造真实的自己</h1> <h3>起因</h3> <p>编辑《写作只能塑造真实的自己》这本小册子是纯属偶然兴起,看到网友“平安哥”在腾讯文档整理了各位作家关于写作的心得体会,质量非常高。故在此基础上新增了内容,也添加了脚注和排版,使其更加正式,也便于打印。</p> <p>我也是一名90后,当意识到大数据每天都在给我推送公文写作的时候,我感觉到了文字即将消散。当我坚持每周写作,坚持了4年,我好像什么也没收获,但好像也收获了笔耕不辍。我明白我并非像机器一般只能产出公文,一事无成,而是要追求知识与德行。</p> <p>我有一个自己的<a href="https://www.macin.org/">博客站点</a>,如果有一天腾讯公众号死掉了,我的文字还不至于流散。当然也欢迎各位添加微信,多多交流。</p> <p><img src="https://github.com/Macin20/why-we-write/raw/main/wechat.jpg" alt="图片"></p> <h3>内容大纲</h3> <ol> <li>王小波:我为什么要写作</li> <li>乔治·奥威尔:我为什么写作</li> <li>余华:写作是去完成一个过去的愿望</li> <li>史铁生:写作只能塑造真实的自己</li> <li>史铁生:写作就是要解决自己的问题</li> <li>莫言:我为什么写作</li> <li>梁鸿:写作与世界的关系</li> <li>老舍:给初学写作者的建议</li> <li>茅盾:向生活学习</li> <li>莫言:如何寻找写作灵感</li> <li>叶圣陶:最要紧的是锻炼语言习惯</li> <li>莫言:写作源自模仿</li> <li>王安忆:写作与个人经历的距离</li> <li>余华:我叙述中的障碍物</li> <li>贾樟柯:写作是一个爬坡的过程</li> <li>迟子建:关于写作的十二则体会</li> <li>刘震云:写作是有近路可抄的</li> <li>汪曾祺:认识到的和没有认识的自己</li> <li>莫言:讲故事的人</li> <li>后记</li> </ol> <p>总共190页内容。版面设置的A5(也就是常见A4纸对折的大小),方便在平板上看。 如果你想打印出来,可以用A4纸横版打印,每个版面两页内容,装订一下就是一本小书了。</p> <h2>内容更新</h2> <p>如果您有更多内容,欢迎提交 issue 。</p> <h2>编译方式</h2> <p>请使用<code>XeLaTeX</code>编译,目录需要执行两次编译才会正常显示。当然,你也可以直接下载PDF文件。</p> + + \ No newline at end of file diff --git a/texinfo/daily/index.xml b/texinfo/daily/index.xml index b8d9f569092..bce155a1c40 100644 --- a/texinfo/daily/index.xml +++ b/texinfo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Texinfo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:03Z + 2023-09-24T01:43:08Z Daily Trending of Texinfo in GitHub \ No newline at end of file diff --git a/texinfo/weekly/index.xml b/texinfo/weekly/index.xml new file mode 100644 index 00000000000..388970bafaa --- /dev/null +++ b/texinfo/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Texinfo Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:43Z + Weekly Trending of Texinfo in GitHub + + \ No newline at end of file diff --git a/text/daily/index.xml b/text/daily/index.xml index 3d9abd0873f..4731c297c3a 100644 --- a/text/daily/index.xml +++ b/text/daily/index.xml @@ -1,7 +1,7 @@ GitHub Text Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:15Z + 2023-09-24T01:43:21Z Daily Trending of Text in GitHub \ No newline at end of file diff --git a/text/weekly/index.xml b/text/weekly/index.xml new file mode 100644 index 00000000000..fbcc29a6f59 --- /dev/null +++ b/text/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Text Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:55Z + Weekly Trending of Text in GitHub + + \ No newline at end of file diff --git a/textile/daily/index.xml b/textile/daily/index.xml index d1cfab76f7c..7338e85e2a7 100644 --- a/textile/daily/index.xml +++ b/textile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Textile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:14Z + 2023-09-24T01:43:22Z Daily Trending of Textile in GitHub \ No newline at end of file diff --git a/textile/weekly/index.xml b/textile/weekly/index.xml new file mode 100644 index 00000000000..df71437645b --- /dev/null +++ b/textile/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Textile Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:54Z + Weekly Trending of Textile in GitHub + + \ No newline at end of file diff --git a/textmate-properties/daily/index.xml b/textmate-properties/daily/index.xml index f124fe56fd5..5b6a9c49774 100644 --- a/textmate-properties/daily/index.xml +++ b/textmate-properties/daily/index.xml @@ -1,7 +1,7 @@ GitHub TextMate Properties Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:16Z + 2023-09-24T01:43:20Z Daily Trending of TextMate Properties in GitHub \ No newline at end of file diff --git a/textmate-properties/weekly/index.xml b/textmate-properties/weekly/index.xml new file mode 100644 index 00000000000..3676c68be82 --- /dev/null +++ b/textmate-properties/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub TextMate Properties Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:52Z + Weekly Trending of TextMate Properties in GitHub + + \ No newline at end of file diff --git a/thrift/daily/index.xml b/thrift/daily/index.xml index 30b0446b039..49883012eee 100644 --- a/thrift/daily/index.xml +++ b/thrift/daily/index.xml @@ -1,7 +1,7 @@ GitHub Thrift Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:13Z + 2023-09-24T01:43:23Z Daily Trending of Thrift in GitHub \ No newline at end of file diff --git a/thrift/weekly/index.xml b/thrift/weekly/index.xml new file mode 100644 index 00000000000..c2c63cb84c0 --- /dev/null +++ b/thrift/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Thrift Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:53Z + Weekly Trending of Thrift in GitHub + + \ No newline at end of file diff --git a/ti-program/daily/index.xml b/ti-program/daily/index.xml index 764023c09c0..81dc8d9f249 100644 --- a/ti-program/daily/index.xml +++ b/ti-program/daily/index.xml @@ -1,7 +1,7 @@ GitHub TI Program Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:17Z + 2023-09-24T01:43:25Z Daily Trending of TI Program in GitHub \ No newline at end of file diff --git a/ti-program/weekly/index.xml b/ti-program/weekly/index.xml new file mode 100644 index 00000000000..866ccd45b16 --- /dev/null +++ b/ti-program/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub TI Program Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:57Z + Weekly Trending of TI Program in GitHub + + \ No newline at end of file diff --git a/tla/daily/index.xml b/tla/daily/index.xml index 3e3f0502941..2f78a9b662b 100644 --- a/tla/daily/index.xml +++ b/tla/daily/index.xml @@ -1,7 +1,7 @@ GitHub TLA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:19Z + 2023-09-24T01:43:27Z Daily Trending of TLA in GitHub \ No newline at end of file diff --git a/tla/weekly/index.xml b/tla/weekly/index.xml new file mode 100644 index 00000000000..7dff193b0ea --- /dev/null +++ b/tla/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub TLA Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:58Z + Weekly Trending of TLA in GitHub + + \ No newline at end of file diff --git a/toml/daily/index.xml b/toml/daily/index.xml index 36786cdcf31..5ff92f4748f 100644 --- a/toml/daily/index.xml +++ b/toml/daily/index.xml @@ -1,7 +1,7 @@ GitHub TOML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:20Z + 2023-09-24T01:43:26Z Daily Trending of TOML in GitHub \ No newline at end of file diff --git a/toml/weekly/index.xml b/toml/weekly/index.xml new file mode 100644 index 00000000000..99c28fcdd1d --- /dev/null +++ b/toml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub TOML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:58Z + Weekly Trending of TOML in GitHub + + \ No newline at end of file diff --git a/tsql/daily/index.xml b/tsql/daily/index.xml index 7dd14f0b29c..d795f225ed8 100644 --- a/tsql/daily/index.xml +++ b/tsql/daily/index.xml @@ -1,7 +1,7 @@ GitHub TSQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:24Z + 2023-09-24T01:43:31Z Daily Trending of TSQL in GitHub \ No newline at end of file diff --git a/tsql/weekly/index.xml b/tsql/weekly/index.xml new file mode 100644 index 00000000000..62c8cddd307 --- /dev/null +++ b/tsql/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub TSQL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:01Z + Weekly Trending of TSQL in GitHub + + \ No newline at end of file diff --git a/tsv/daily/index.xml b/tsv/daily/index.xml index ad1347d5376..68d58742510 100644 --- a/tsv/daily/index.xml +++ b/tsv/daily/index.xml @@ -1,7 +1,7 @@ GitHub TSV Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:21Z + 2023-09-24T01:43:30Z Daily Trending of TSV in GitHub \ No newline at end of file diff --git a/tsv/weekly/index.xml b/tsv/weekly/index.xml new file mode 100644 index 00000000000..fc92bc2fc7b --- /dev/null +++ b/tsv/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub TSV Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:02:59Z + Weekly Trending of TSV in GitHub + + \ No newline at end of file diff --git a/tsx/daily/index.xml b/tsx/daily/index.xml index aa7a6b4f088..c0014359fd9 100644 --- a/tsx/daily/index.xml +++ b/tsx/daily/index.xml @@ -1,7 +1,7 @@ GitHub TSX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:23Z + 2023-09-24T01:43:32Z Daily Trending of TSX in GitHub \ No newline at end of file diff --git a/tsx/weekly/index.xml b/tsx/weekly/index.xml new file mode 100644 index 00000000000..d151fd314b0 --- /dev/null +++ b/tsx/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub TSX Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:02Z + Weekly Trending of TSX in GitHub + + \ No newline at end of file diff --git a/turing/daily/index.xml b/turing/daily/index.xml index 4d468f38e36..802cb4b3fcc 100644 --- a/turing/daily/index.xml +++ b/turing/daily/index.xml @@ -1,7 +1,7 @@ GitHub Turing Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:22Z + 2023-09-24T01:43:29Z Daily Trending of Turing in GitHub \ No newline at end of file diff --git a/turing/weekly/index.xml b/turing/weekly/index.xml new file mode 100644 index 00000000000..9a386e0fb11 --- /dev/null +++ b/turing/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Turing Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:02Z + Weekly Trending of Turing in GitHub + + \ No newline at end of file diff --git a/turtle/daily/index.xml b/turtle/daily/index.xml index 6a6b40668b6..6d84daedb29 100644 --- a/turtle/daily/index.xml +++ b/turtle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Turtle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:26Z + 2023-09-24T01:43:36Z Daily Trending of Turtle in GitHub \ No newline at end of file diff --git a/turtle/weekly/index.xml b/turtle/weekly/index.xml new file mode 100644 index 00000000000..f3d0bef89e1 --- /dev/null +++ b/turtle/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Turtle Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:04Z + Weekly Trending of Turtle in GitHub + + \ No newline at end of file diff --git a/twig/daily/index.xml b/twig/daily/index.xml index 9679233d401..ab9bd9b1b79 100644 --- a/twig/daily/index.xml +++ b/twig/daily/index.xml @@ -1,7 +1,7 @@ GitHub Twig Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:28Z + 2023-09-24T01:43:34Z Daily Trending of Twig in GitHub \ No newline at end of file diff --git a/twig/weekly/index.xml b/twig/weekly/index.xml new file mode 100644 index 00000000000..28fd8e1a731 --- /dev/null +++ b/twig/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Twig Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:04Z + Weekly Trending of Twig in GitHub + + \ No newline at end of file diff --git a/txl/daily/index.xml b/txl/daily/index.xml index c4472a1197d..563060e911c 100644 --- a/txl/daily/index.xml +++ b/txl/daily/index.xml @@ -1,7 +1,7 @@ GitHub TXL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:25Z + 2023-09-24T01:43:35Z Daily Trending of TXL in GitHub \ No newline at end of file diff --git a/txl/weekly/index.xml b/txl/weekly/index.xml new file mode 100644 index 00000000000..d84af998e61 --- /dev/null +++ b/txl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub TXL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:06Z + Weekly Trending of TXL in GitHub + + \ No newline at end of file diff --git a/type-language/daily/index.xml b/type-language/daily/index.xml index d63ca3b8284..79d27127abf 100644 --- a/type-language/daily/index.xml +++ b/type-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Type Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:27Z + 2023-09-24T01:43:33Z Daily Trending of Type Language in GitHub \ No newline at end of file diff --git a/type-language/weekly/index.xml b/type-language/weekly/index.xml new file mode 100644 index 00000000000..655f7735cb1 --- /dev/null +++ b/type-language/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Type Language Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:05Z + Weekly Trending of Type Language in GitHub + + \ No newline at end of file diff --git a/typescript/daily/index.xml b/typescript/daily/index.xml index b5f4e76522f..2aff4437b05 100644 --- a/typescript/daily/index.xml +++ b/typescript/daily/index.xml @@ -1,7 +1,28 @@ GitHub TypeScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:34Z + 2023-09-24T01:43:43Z Daily Trending of TypeScript in GitHub + + croissanteth/chatgpt-token + 2023-09-24T01:43:43Z + tag:github.com,2023-09-24:/croissanteth/chatgpt-token + + <p>Fully automated token deployment on ETH, with the help of autonomous code and ChatGPT</p><hr><h3>Prerequisites</h3> <p>-Node.js</p> <p>-Hardhat development environment</p> <p>-OpenAI API key</p> <h3>Setup</h3> <p>Clone the repository.</p> <p>run <code>npm install</code></p> <p>Create empty "contracts" folder, and .env file containing OPENAI_API_KEY, GOERLI_PRIVATE_KEY, and GOERLI_URL (RPC) values</p> <h3>Modifying GPT Interactions</h3> <p>To modify the interactions with GPT, refer to the deploygpt4.ts script inside the scripts directory:</p> <p>API Key: Ensure your OpenAI API key is set in the .env file. The key is retrieved in the script at Line 11. API Calls: The OpenAI API is called at Line 17 and Line 96. Modify the request body or headers as required to customize the GPT response. DALL·E Interactions: If you wish to modify interactions with OpenAI's DALL·E model, refer to Line 277.</p> <h3>Running locally</h3> <p><code>npx hardhat run scripts/deploygpt4.ts</code></p> <h3>Deploy to blockchain</h3> <p><code>npx hardhat run scripts/deploygpt4.ts --network GOERLI</code></p> + + + atomicals/atomicals-js + 2023-09-24T01:43:43Z + tag:github.com,2023-09-24:/atomicals/atomicals-js + + <p>Atomicals CLI and Javascript Library</p><hr><h1>Atomicals Javascript Library</h1> <blockquote> <p>atomicals.xyz Documentation: <a href="https://docs.atomicals.xyz">https://docs.atomicals.xyz</a></p> </blockquote> <p><img src="https://raw.githubusercontent.com/atomicals/atomicals-js/master/banner.png" alt="Atomicals"></p> <h3>Install, Build and Run Tests</h3> <h2>Install</h2> <pre><code>Download the github repo and then run: npm install npm build See all commands at: npm run cli --help </code></pre> <h3>Quick Start - Command Line (CLI)</h3> <p>First install packages and build, then follow the steps here to create your first Atomical and query the status. Use <code>yarn cli</code>to get a list of all commands available.</p> <h4>0. Environment File (.env)</h4> <p>The environment file comes with defaults (<code>.env.example</code>), but it is highly recommend to install and operate your own ElectrumX server. Web browser communication is possible through the <code>wss</code> (secure websockets) interface of ElectrumX.</p> <pre><code>ELECTRUMX_WSS=wss://electrumx.atomicals.xyz:50012 </code></pre> <p><em>ELECTRUMX_WSS</em>: URL of the ElectrumX with Atomicals support. Note that only <code>wss</code> endpoints are accessible from web browsers.</p> <h4>1. Wallet Setup</h4> <p>The purpose of the wallet is to create p2tr (pay-to-taproot) spend scripts and to receive change from the transactions made for the various operations. <em>Do not put more funds than you can afford to lose, as this is still beta!</em></p> <p>To initialize a new <code>wallet.json</code> file that will store your address for receiving change use the <code>wallet-init</code> command. Alternatively, you may populate the <code>wallet.json</code> manually, ensuring that the address at <code>m/44'/0'/0'/0/0</code> is equal to the address and the derivePath is set correctly.</p> <pre><code>yarn cli wallet-init &gt;&gt;&gt; Wallet created at wallet.json phrase: maple maple maple maple maple maple maple maple maple maple maple maple Legacy address (for change): 1FXL2CJ9nAC...u3e9Evdsa2pKrPhkag Derive Path: m/44'/0'/0'/0/0 WIF: L5Sa65gNR6QsBjqK.....r6o4YzcqNRnJ1p4a6GPxqQQ ------------------------------------------------------ </code></pre> <h4>2. Explore the CLI</h4> <pre><code>yarn cli --help </code></pre> <h4>3. Quick Commands</h4> <p>Get all of the commands available:</p> <pre><code>npm run cli --help </code></pre> <p>Read the documentation at <a href="https://docs.atomicals.xyz">https://docs.atomicals.xyz</a></p> <h2>ElectrumX Server RPC Interface</h2> <p>See updated ElectrumX (<a href="https://github.com/atomicals/electrumx-atomicals">https://github.com/atomicals/electrumx-atomicals</a>)</p> <h2>Any questions or ideas?</h2> <p><a href="https://atomicals.xyz">https://atomicals.xyz</a></p> <p><a href="https://x.com/atomicalsxyz">https://x.com/atomicalsxyz</a> (X - Formerly Twitter)</p> + + + ccrsxx/twitter-clone + 2023-09-24T01:43:43Z + tag:github.com,2023-09-24:/ccrsxx/twitter-clone + + <p>Twitter clone built in Next.js + TypeScript + Tailwind CSS using Cloud Firestore and Storage</p><hr><br> <p><img src="https://raw.githubusercontent.com/ccrsxx/twitter-clone/main/.github/assets/presentation.png" alt=""></p> <p align="center"> Twitter clone built in Next.js + TypeScript + Tailwind CSS using Cloud Firestore and Storage </p> <h2>Preview 🎬</h2> <p><a href="https://user-images.githubusercontent.com/55032197/201472767-9db0177a-79b5-4913-8666-1744102b0ad7.mp4">https://user-images.githubusercontent.com/55032197/201472767-9db0177a-79b5-4913-8666-1744102b0ad7.mp4</a></p> <h2>Features ✨</h2> <ul> <li>Authentication with Firebase Authentication</li> <li>Strongly typed React components with TypeScript</li> <li>Users can add tweets, like, retweet, and reply</li> <li>Users can delete tweets, add a tweet to bookmarks, and pin their tweet</li> <li>Users can add images and GIFs to tweet</li> <li>Users can follow and unfollow other users</li> <li>Users can see their and other followers and the following list</li> <li>Users can see all users and the trending list</li> <li>Realtime update likes, retweets, and user profile</li> <li>Realtime trending data from Twitter API</li> <li>User can edit their profile</li> <li>Responsive design for mobile, tablet, and desktop</li> <li>Users can customize the site color scheme and color background</li> <li>All images uploads are stored on Firebase Cloud Storage</li> </ul> <h2>Tech 🛠</h2> <ul> <li><a href="https://nextjs.org">Next.js</a></li> <li><a href="https://www.typescriptlang.org">TypeScript</a></li> <li><a href="https://tailwindcss.com">Tailwind CSS</a></li> <li><a href="https://firebase.google.com">Firebase</a></li> <li><a href="https://swr.vercel.app">SWR</a></li> <li><a href="https://headlessui.com">Headless UI</a></li> <li><a href="https://react-hot-toast.com">React Hot Toast</a></li> <li><a href="https://framer.com">Framer Motion</a></li> </ul> <h2>Development 💻</h2> <p>Here are the steps to run the project locally.</p> <ol> <li> <p>Clone the repository</p> <pre><code class="language-bash">git clone https://github.com/ccrsxx/twitter-clone.git </code></pre> </li> <li> <p>Install dependencies</p> <pre><code class="language-bash">npm i </code></pre> </li> <li> <p>Create a Firebase project and select the web app</p> </li> <li> <p>Add your Firebase config to <code>.env.development</code>. Note that <code>NEXT_PUBLIC_MEASUREMENT_ID</code> is optional</p> </li> <li> <p>Make sure you have enabled the following Firebase services:</p> <ul> <li>Authentication. Enable the Google sign-in method.</li> <li>Cloud Firestore. Create a database and set its location to your nearest region.</li> <li>Cloud Storage. Create a storage bucket.</li> </ul> </li> <li> <p>Install Firebase CLI globally</p> <pre><code class="language-bash">npm i -g firebase-tools </code></pre> </li> <li> <p>Log in to Firebase</p> <pre><code class="language-bash">firebase login </code></pre> </li> <li> <p>Get your project ID</p> <pre><code class="language-bash">firebase projects:list </code></pre> </li> <li> <p>Select your project ID</p> <pre><code class="language-bash">firebase use your-project-id </code></pre> </li> <li> <p>At this point, you have two choices. Either run this project using the Firebase on the cloud or locally using emulator.</p> <ol> <li> <p>Using the Firebase Cloud Backend:</p> <ol> <li> <p>Deploy Firestore rules, Firestore indexes, and Cloud Storage rules</p> <pre><code class="language-bash">firebase deploy --except functions </code></pre> </li> <li> <p>Run the project</p> <pre><code class="language-bash">npm run dev </code></pre> </li> </ol> </li> <li> <p>Using Firebase Local Emulator:</p> <ol> <li> <p>Install <a href="https://jdk.java.net/">Java JDK version 11 or higher</a> before proceeding. This is required to run the emulators.</p> </li> <li> <p>Set the environment variable <code>NEXT_PUBLIC_USE_EMULATOR</code> to <code>true</code> in <code>.env.development</code>. This will make the app use the emulators instead of the cloud backend.</p> </li> <li> <p>At this point, you can run the following command to have a fully functional Twitter clone running locally:</p> <pre><code class="language-bash">npm run dev:emulators </code></pre> </li> </ol> </li> </ol> </li> </ol> <blockquote> <p><strong><em>Note</em></strong>: When you deploy Firestore indexes rules, it might take a few minutes to complete. So before the indexes are enabled, you will get an error when you fetch the data from Firestore.<br><br>You can check the status of your Firestore indexes with the link below, replace <code>your-project-id</code> with your project ID: <a href="https://console.firebase.google.com/u/0/project/your-project-id/firestore/indexes">https://console.firebase.google.com/u/0/project/your-project-id/firestore/indexes</a></p> </blockquote> <p>Optional:</p> <ul> <li>If you want to get trending data from Twitter API, you need to create a Twitter developer account and get your API keys. Then add your API keys to <code>.env.development</code>. I hope Elon Musk doesn't make this API paid 😅.</li> <li>If you want to make the user stats synced with the deleted tweets, you need to enable the Cloud Functions for Firebase. Then deploy the Cloud Functions.</li> </ul> + \ No newline at end of file diff --git a/typescript/weekly/index.xml b/typescript/weekly/index.xml new file mode 100644 index 00000000000..e456f78dc76 --- /dev/null +++ b/typescript/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub TypeScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:12Z + Weekly Trending of TypeScript in GitHub + + + dataelement/bisheng + 2023-09-24T02:03:12Z + tag:github.com,2023-09-24:/dataelement/bisheng + + <p>Bisheng is an open LLM devops platform for next generation AI applications.</p><hr><img src="https://www.dataelem.com/nstatic/bisheng.png" alt="Bisheng banner"> <div class="column" align="middle"> <!-- <a href="https://bisheng.slack.com/join/shared_invite/"> --> <!-- <img src="https://img.shields.io/badge/Join-Slack-orange" alt="join-slack"/> --> <!-- <img src="https://img.shields.io/github/license/bisheng-io/bisheng" alt="license"/> --> <!-- <img src="https://img.shields.io/docker/pulls/bisheng-io/bisheng" alt="docker-pull-count" /> --> </div> <h1>欢迎来到 Bisheng</h1> <h2>Bisheng 是什么</h2> <p>Bisheng是一款领先的开源<b>大模型应用开发平台</b>,赋能和加速大模型应用开发落地,帮助用户以最佳体验进入下一代应用开发模式。</p> <p>“毕昇”是活字印刷术的发明人,活字印刷术为人类知识的传递起到了巨大的推动作用。我们希望“毕昇”同样能够为智能应用的广泛落地提供有力的支撑。欢迎大家一道参与。</p> <p>Bisheng 基于 <a href="https://github.com/dataelement/bisheng/raw/main/LICENSE">Apache 2.0 License</a> 协议发布,于 2023 年 8 月底正式开源。</p> <h2>产品亮点</h2> <ul> <li>便捷:即使是业务人员,基于我们预置的应用模板,通过简单直观的表单填写方式快速搭建以大模型为核心的智能应用。</li> <li>灵活:对大模型技术有了解的人员,我们紧跟最前沿大模型技术生态提供数百种开发组件,基于可视化且自由的流程编排能力,可开发出任意类型的大模型应用,而不仅是简单的提示词工程。</li> <li>可靠与企业级:当前许多同类的开源项目仅适用于实验测试场景,缺少真正生产使用的企业级特性,包括:高并发下的高可用、应用运营及效果持续迭代优化、贴合真实业务场景的实用功能等,这些都是毕昇平台的差异化能力;另外,更直观的是,企业内的数据质量参差不齐,想要真正把所有数据利用起来,首先需要有完备的非结构化数据治理能力,而这是过去几年我们团队所积累的核心能力,在毕昇的demo环境中您可以通过相关组件直接接入这些能力,并且这些能力免费不限量使用。</li> </ul> <h2>产品应用</h2> <p>使用毕昇平台,我们可以搭建各类丰富的大模型应用:</p> <p>分析报告生成</p> <ul> <li>📃 合同审核报告生成</li> <li>🏦 信贷调查报告生成</li> <li>📈 招股书分析报告生成</li> <li>💼 智能投顾报告生成</li> <li>👀 文档摘要生成</li> </ul> <p>知识库问答</p> <ul> <li>👩‍💻 用户手册问答</li> <li>👩🏻‍🔬 研报知识库问答</li> <li>🗄 规章制度问答</li> <li>💊 《中华药典》知识问答</li> <li>📊 股价数据库问答</li> </ul> <p>对话</p> <ul> <li>🎭 扮演面试官对话</li> <li>📍 小红书文案助手</li> <li>👩‍🎤 扮演外教对话</li> <li>👨‍🏫 简历优化助手</li> </ul> <p>要素提取</p> <ul> <li>📄 合同关键要素提取</li> <li>🏗️ 工程报告要素提取</li> <li>🗂️ 通用元数据提取</li> <li>🎫 卡证票据要素提取</li> </ul> <p>各类应用构建方法详见:<a href="https://m7a7tqsztt.feishu.cn/wiki/ZfkmwLPfeiAhQSkK2WvcX87unxc">应用案例</a></p> <p>我们认为在企业真实场景中,“对话”仅是众多交互形式中的一种,未来我们还将新增流程自动化、搜索等更多应用形态的支持。</p> <h2>快速开始</h2> <h3>启动 Bisheng</h3> <ul> <li><a href="https://m7a7tqsztt.feishu.cn/wiki/BSCcwKd4Yiot3IkOEC8cxGW7nPc">安装 Bisheng</a></li> </ul> <h3>源码编译 Bisheng</h3> <p>Todo: 待补充</p> <p>获取更多内容,请阅读 <a href="https://m7a7tqsztt.feishu.cn/wiki/ITmJwMXVliBnzpkW3nkcqPVrnse">开发者文档</a>。</p> <h2>贡献代码</h2> <p>欢迎向 Bisheng 社区贡献你的代码。代码贡献流程或提交补丁等相关信息详见 <a href="https://github.com/dataelement/bisheng/raw/main/CONTRIBUTING.md">代码贡献准则</a>。 参考 <a href="https://github.com/dataelement/community">社区仓库</a> 了解社区管理准则并获取更多社区资源。</p> <!-- ### All contributors --> <!-- Do not remove end of hero-bot --> <br> <h2>Bisheng 文档</h2> <p>获取更多有关安装、开发、部署和管理的指南,请查看 <a href="https://m7a7tqsztt.feishu.cn/wiki/ZxW6wZyAJicX4WkG0NqcWsbynde">Bisheng 文档</a>.</p> <h2>社区</h2> <ul> <li>欢迎加入 <a href="https://www.dataelem.com/">Slack</a> 频道分享你的建议与问题。</li> <li>你也可以通过 <a href="https://m7a7tqsztt.feishu.cn/wiki/XdGCwkDJviC0Z8klbdbcF790n9b">FAQ</a> 页面,查看常见问题及解答。</li> <li>你也可以加入 <a href="https://github.com/dataelement/bisheng/discussions">讨论组</a> 发起问题和讨论。</li> </ul> <!-- 订阅 Bisheng 邮件: - [Technical Steering Committee](https://www.dataelem.com/) - [Technical Discussions](https://www.dataelem.com/) - [Announcement](https://www.dataelem.com/) --> <p>关注 Bisheng 社交媒体:</p> <!-- - [知乎](https://www.zhihu.com/org/bisheng-io) - [CSDN](http://bishengio.blog.csdn.net/) - [Bilibili](http://space.bilibili.com/xxxxx) --> <ul> <li>Bisheng 技术交流微信群</li> </ul> <img src="https://www.dataelem.com/nstatic/qrcode.png" alt="Wechat QR Code"> <h2>加入我们</h2> <p>DataElem Inc. 是 Bisheng 项目的幕后公司。我们正在 <a href="https://www.dataelem.com/contact/team">招聘</a> 算法、开发和全栈工程师。欢迎加入我们,让我们携手构建下一代的智能应用开发平台。</p> <h2>特别感谢</h2> <p>Bisheng 采用了以下依赖库:</p> <ul> <li>感谢开源模型预估框架 <a href="https://github.com/triton-inference-server">Triton</a> 。</li> <li>感谢开源LLM应用开发库 <a href="https://github.com/langchain-ai/langchain">langchain</a>。</li> <li>感谢开源非结构化数据解析引擎 <a href="https://github.com/Unstructured-IO/unstructured">unstructured</a>。</li> <li>感谢开源langchain可视化工具 <a href="https://github.com/logspace-ai/langflow">langflow</a>。</li> </ul> + + + microsoft/azurechat + 2023-09-24T02:03:12Z + tag:github.com,2023-09-24:/microsoft/azurechat + + <p>🤖 💼 Azure Chat Solution Accelerator powered by Azure Open AI Service</p><hr><h1>Unleash the Power of Azure Open AI</h1> <ol> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/#introduction">Introduction</a></li> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/docs/1-introduction.md">Solution Overview</a></li> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/#deploy-to-azure">Deploy to Azure</a></li> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/docs/3-run-locally.md">Run from your local machine</a></li> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/docs/4-deploy-to-azure.md">Deploy to Azure with GitHub Actions</a></li> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/docs/5-add-identity.md">Add identity provider</a></li> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/docs/6-chat-over-file.md">Chatting with your file</a></li> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/docs/7-environment-variables.md">Environment variables</a></li> </ol> <h1>Introduction</h1> <p><em>Azure Chat Solution Accelerator powered by Azure Open AI Service</em></p> <p><img src="https://raw.githubusercontent.com/microsoft/azurechat/main/images/intro.png" alt=""></p> <p><em>Azure Chat Solution Accelerator powered by Azure Open AI Service</em> is a solution accelerator that allows organisations to deploy a private chat tenant in their Azure Subscription, with a familiar user experience and the added capabilities of chatting over your data and files.</p> <p>Benefits are:</p> <ol> <li> <p>Private: Deployed in your Azure tenancy, allowing you to isolate it to your Azure tenant.</p> </li> <li> <p>Controlled: Network traffic can be fully isolated to your network and other enterprise grade authentication security features are built in.</p> </li> <li> <p>Value: Deliver added business value with your own internal data sources (plug and play) or integrate with your internal services (e.g., ServiceNow, etc).</p> </li> </ol> <h1>Deploy to Azure</h1> <p>You can provision Azure resources for the solution accelerator using either the Azure Developer CLI or the Deploy to Azure button below. Regardless of the method you chose you will still need set up an <a href="https://raw.githubusercontent.com/microsoft/azurechat/main/5-add-identity.md">identity provider and specify an admin user</a></p> <h2>Deployment Options</h2> <p>You can deploy the application using one of the following options:</p> <ul> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/#azure-developer-cli">1. Azure Developer CLI</a></li> <li><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/#azure-portal-deployment">2. Azure Portal Deployment</a></li> </ul> <h3>1. Azure Developer CLI</h3> <blockquote> <p><strong>Important</strong> This section will create Azure resources and deploy the solution from your local environment using the Azure Developer CLI. Note that you do not need to clone this repo to complete these steps.</p> </blockquote> <ol> <li>Download the <a href="https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/overview">Azure Developer CLI</a></li> <li>Run <code>azd init -t microsoft/azurechat</code></li> <li>Run <code>azd up</code> to provision and deploy the application</li> </ol> <h3>2. Azure Portal Deployment</h3> <blockquote> <p><strong>Warning</strong> This button will only create Azure resources. You will still need to deploy the application by following the <a href="https://raw.githubusercontent.com/microsoft/azurechat/main/4-deploy-to-azure.md">deploy to Azure section</a> to build and deploy the application using GitHub actions.</p> </blockquote> <p>Click on the Deploy to Azure button to deploy the Azure resources for the application.</p> <p><a href="https://aka.ms/anzappazurechatgpt"><img src="https://aka.ms/deploytoazurebutton" alt="Deploy to Azure"></a></p> <h2>Setup Authentication</h2> <blockquote> <p><strong>Important</strong> The application is protected by an identity provider and follow the steps in <a href="https://raw.githubusercontent.com/microsoft/azurechat/main/5-add-identity.md">Add an identity provider</a> section for adding authentication to your app.</p> </blockquote> <p><a href="https://raw.githubusercontent.com/microsoft/azurechat/main/docs/1-introduction.md">Next</a></p> <h1>Contributing</h1> <p>This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit <a href="https://cla.opensource.microsoft.com">https://cla.opensource.microsoft.com</a>.</p> <p>When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.</p> <p>This project has adopted the <a href="https://opensource.microsoft.com/codeofconduct/">Microsoft Open Source Code of Conduct</a>. For more information see the <a href="https://opensource.microsoft.com/codeofconduct/faq/">Code of Conduct FAQ</a> or contact <a href="mailto:opencode@microsoft.com">opencode@microsoft.com</a> with any additional questions or comments.</p> <h1>Trademarks</h1> <p>This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow <a href="https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general">Microsoft's Trademark &amp; Brand Guidelines</a>. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.</p> + + + nestjs/nest + 2023-09-24T02:03:12Z + tag:github.com,2023-09-24:/nestjs/nest + + <p>A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀</p><hr><p align="center"> <a href="https://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg?sanitize=true" width="120" alt="Nest Logo"></a> </p> <p align="center">A progressive <a href="https://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p> <p align="center"> <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg?sanitize=true" alt="NPM Version"></a> <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg?sanitize=true" alt="Package License"></a> <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg?sanitize=true" alt="NPM Downloads"></a> <a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI"></a> <a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg?sanitize=true" alt="Discord"></a> <a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg?sanitize=true" alt="Backers on Open Collective"></a> <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg?sanitize=true" alt="Sponsors on Open Collective"></a> <a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg?sanitize=true"></a> <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg?sanitize=true" alt="Support us"></a> <a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&amp;label=Follow"></a> </p> <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer) [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)--> <h2>Description</h2> <p>Nest is a framework for building efficient, scalable <a href="https://nodejs.org" target="_blank">Node.js</a> server-side applications. It uses modern JavaScript, is built with <a href="https://www.typescriptlang.org" target="_blank">TypeScript</a> (preserves compatibility with pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).</p> <p>Under the hood, Nest makes use of <a href="https://expressjs.com/" target="_blank">Express</a>, but also, provides compatibility with a wide range of other libraries, like e.g. <a href="https://github.com/fastify/fastify" target="_blank">Fastify</a>, allowing for easy use of the myriad third-party plugins which are available.</p> <h2>Philosophy</h2> <p>In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front and backend applications, giving rise to awesome projects like <a href="https://angular.io/" target="_blank">Angular</a>, <a href="https://github.com/facebook/react" target="_blank">React</a> and <a href="https://github.com/vuejs/vue" target="_blank">Vue</a> which improve developer productivity and enable the construction of fast, testable, extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers and tools for Node, none of them effectively solve the main problem - the architecture.</p> <p>Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.</p> <h2>Getting started</h2> <ul> <li>To check out the <a href="https://docs.nestjs.com">guide</a>, visit <a href="https://docs.nestjs.com">docs.nestjs.com</a>. <span>📚</span></li> <li>要查看中文 <a href="https://raw.githubusercontent.com/nestjs/nest/master/readme_zh.md">指南</a>, 请访问 <a href="https://docs.nestjs.cn">docs.nestjs.cn</a>. <span>📚</span></li> <li><a href="https://raw.githubusercontent.com/nestjs/nest/master/readme_kr.md">가이드</a> 문서는 <a href="https://docs.nestjs.com">docs.nestjs.com</a>에서 확인하실 수 있습니다. <span>📚</span></li> <li><a href="https://raw.githubusercontent.com/nestjs/nest/master/readme_jp.md">ガイド</a>は <a href="https://docs.nestjs.com">docs.nestjs.com</a>でご確認ください。 <span>📚</span></li> </ul> <h2>Questions</h2> <p>For questions and support please use the official <a href="https://discord.gg/G7Qnnhy">Discord channel</a>. The issue list of this repo is <strong>exclusively</strong> for bug reports and feature requests.</p> <h2>Issues</h2> <p>Please make sure to read the <a href="https://github.com/nestjs/nest/raw/master/CONTRIBUTING.md#-submitting-an-issue">Issue Reporting Checklist</a> before opening an issue. Issues not conforming to the guidelines may be closed immediately.</p> <h2>Consulting</h2> <p>With official support, you can get expert help straight from Nest core team. We provide dedicated technical support, migration strategies, advice on best practices (and design decisions), PR reviews, and team augmentation. Read more about <a href="https://enterprise.nestjs.com">support here</a>.</p> <h2>Support</h2> <p>Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support from the amazing backers. If you'd like to join them, please <a href="https://docs.nestjs.com/support">read more here</a>.</p> <h4>Principal Sponsors</h4> <table style="text-align:center;"> <tbody> <tr> <td><a href="https://trilon.io" target="_blank"><img src="https://nestjs.com/img/trilon.svg?sanitize=true" width="200" valign="middle"></a></td> <td> <a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="170" valign="middle"></a></td> <td> <a href="https://amplication.com/" target="_blank"><img src="https://nestjs.com/img/amplication-logo.svg?sanitize=true" width="190" valign="middle"></a></td> </tr> </tbody> </table> <h4>Gold Sponsors</h4> <table style="text-align:center;"> <tbody> <tr> <td><a href="https://www.redhat.com" target="_blank"><img src="https://nestjs.com/img/red-hat-logo.svg?sanitize=true" width="200" valign="middle"></a></td> <td> <a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle"></a></td> <td> <a href="https://nx.dev" target="_blank"><img src="https://nestjs.com/img/nx-logo.png" height="45" valign="middle"></a></td> <td> <a href="https://weld.app/" target="_blank"><img src="https://nestjs.com/img/weld-logo.svg?sanitize=true" width="140" valign="middle"></a></td> <td> <a href="https://intrinsic.ventures/" target="_blank"><img src="https://nestjs.com/img/intrinisic-logo.png" width="210" valign="middle"></a></td> </tr> <tr> <td> <a href="https://jetbrains.com/" target="_blank"><img src="https://nestjs.com/img/jetbrains-logo.svg?sanitize=true" width="90" valign="middle"></a></td> <td> <a href="https://snyk.co/nestjs" target="_blank"><img src="https://nestjs.com/img/snyk-logo-black.png" width="185" valign="middle"></a></td> <td> <a href="https://fuseautotech.com/" target="_blank"><img src="https://nestjs.com/img/fuse-logo.svg?sanitize=true" width="105" valign="middle"></a></td> <td> <a href="https://ridicorp.com/career/" target="_blank"><img src="https://nestjs.com/img/ridi-logo.svg?sanitize=true" width="105" valign="middle"></a></td> <td> <a href="https://www.movavi.com/imovie-for-windows.html" target="_blank"><img src="https://nestjs.com/img/movavi-logo.svg?sanitize=true" width="105" valign="middle"></a></td> <!--</tr--> </tr> </tbody> </table> <h4>Silver Sponsors</h4> <table style="text-align:center;"> <tbody> <tr> <td><a href="https://n.inc" target="_blank"><img src="https://nestjs.com/img/n-inc-logo.svg?sanitize=true" width="120" valign="middle"></a></td> <td><a href="https://twistag.com/" target="_blank"><img src="https://nestjs.com/img/twistag-logo.png" width="120" valign="middle"></a></td> <td><a href="https://immediateedgeapp.org/" target="_blank"><img src="https://nestjs.com/img/immediate-edge-logo.png" width="120" valign="middle"></a></td> </tr> </tbody> </table> <h4>Sponsors</h4> <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://www.swingdev.io" target="_blank"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="110" valign="middle"> </a></td> <td align="center" valign="middle"> <a href="https://www.novologic.com/" target="_blank"><img src="https://nestjs.com/img/novologic.png" width="110" valign="middle"></a> </td> <td align="center" valign="middle"> <a href="https://mantro.net/" target="_blank"><img src="https://nestjs.com/img/mantro-logo.svg?sanitize=true" width="95" valign="middle"></a> </td> <td align="center" valign="middle"> <a href="https://triplebyte.com/" target="_blank"><img src="https://nestjs.com/img/triplebyte.png" width="107" valign="middle"></a> </td> <td align="center" valign="middle"> <a href="https://nearpod.com/" target="_blank"><img src="https://nestjs.com/img/nearpod-logo.svg?sanitize=true" width="100" valign="middle"></a> </td> <td align="center" valign="middle"> <a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg?sanitize=true" width="97" valign="middle"></a> </td> </tr> <tr> <td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://lambda-it.ch/" target="_blank"><img src="https://nestjs.com/img/lambda-it-logo.svg?sanitize=true" width="115" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://www.najlepszeplatformyforex.pl/blog/broker-xtb/" target="_blank"><img src="https://nestjs.com/img/npf-logo.jpg" width="200" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://rocketech.it/cases/?utm_source=google&amp;utm_medium=badge&amp;utm_campaign=nestjs" target="_blank"><img src="https://nestjs.com/img/rocketech-logo.svg?sanitize=true" width="110" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://www.anonymistic.com/" target="_blank"><img src="https://nestjs.com/img/anonymistic-logo.png" width="125" valign="middle"></a></td> </tr> <tr> <td align="center" valign="middle"><a href="https://www.naologic.com/" target="_blank"><img src="https://nestjs.com/img/naologic-logo.svg?sanitize=true" width="125" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://triplecore.io" target="_blank"><img src="https://nestjs.com/img/triplecore-logo.svg?sanitize=true" width="50" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://thecasinowizard.com/bonuses/no-deposit-bonuses/" target="_blank"><img src="https://nestjs.com/img/casinowizard-logo.png" width="120" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://polygon-software.ch/" target="_blank"><img src="https://nestjs.com/img/polygon-logo.svg?sanitize=true" width="120" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://boringowl.io/" target="_blank"><img src="https://nestjs.com/img/boringowl-logo.svg?sanitize=true" width="120" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://nordbot.app/" target="_blank"><img src="https://nestjs.com/img/nordbot-logo.png" width="120" valign="middle"></a></td> </tr> <tr> <td align="center" valign="middle"><a href="https://doppio.sh/" target="_blank"><img src="https://nestjs.com/img/dopiosh-logo.png" width="50" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://www.hingehealth.com/" target="_blank"><img src="https://nestjs.com/img/hinge-health-logo.svg?sanitize=true" width="100" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://julienferand.dev/" target="_blank"><img src="https://nestjs.com/img/julienferand-logo.jpeg" width="65" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://www.tripoffice.com/" target="_blank"><img src="https://nestjs.com/img/tripoffice-logo.png" width="140" valign="middle"></a></td> <td align="center" valign="middle"><a href="https://solcellsforetag.se/" target="_blank"><img src="https://nestjs.com/img/solcellsforetag-logo.svg?sanitize=true" width="140" valign="middle"></a></td> </tr> </tbody> </table> <h2>Backers</h2> <p><a href="https://opencollective.com/nest" target="_blank"><img src="https://opencollective.com/nest/backers.svg?width=1000"></a></p> <h2>Stay in touch</h2> <ul> <li>Author - <a href="https://x.com/kammysliwiec">Kamil Myśliwiec</a></li> <li>Website - <a href="https://nestjs.com/">https://nestjs.com</a></li> <li>X - <a href="https://x.com/nestframework">@nestframework</a></li> </ul> <h2>License</h2> <p>Nest is <a href="https://raw.githubusercontent.com/nestjs/nest/master/LICENSE">MIT licensed</a>.</p> + + \ No newline at end of file diff --git a/unified-parallel-c/daily/index.xml b/unified-parallel-c/daily/index.xml index 51ca516b8a6..9f031625c2e 100644 --- a/unified-parallel-c/daily/index.xml +++ b/unified-parallel-c/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unified Parallel C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:30Z + 2023-09-24T01:43:39Z Daily Trending of Unified Parallel C in GitHub \ No newline at end of file diff --git a/unified-parallel-c/weekly/index.xml b/unified-parallel-c/weekly/index.xml new file mode 100644 index 00000000000..fc1adf5398f --- /dev/null +++ b/unified-parallel-c/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Unified Parallel C Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:07Z + Weekly Trending of Unified Parallel C in GitHub + + \ No newline at end of file diff --git a/unity3d-asset/daily/index.xml b/unity3d-asset/daily/index.xml index 419d0ae811d..80122f99a3d 100644 --- a/unity3d-asset/daily/index.xml +++ b/unity3d-asset/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unity3D Asset Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:31Z + 2023-09-24T01:43:38Z Daily Trending of Unity3D Asset in GitHub \ No newline at end of file diff --git a/unity3d-asset/weekly/index.xml b/unity3d-asset/weekly/index.xml new file mode 100644 index 00000000000..ff6ed404c78 --- /dev/null +++ b/unity3d-asset/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Unity3D Asset Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:09Z + Weekly Trending of Unity3D Asset in GitHub + + \ No newline at end of file diff --git a/unix-assembly/daily/index.xml b/unix-assembly/daily/index.xml index c2777f7288a..8929610f6ea 100644 --- a/unix-assembly/daily/index.xml +++ b/unix-assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unix Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:45Z + 2023-09-24T01:43:57Z Daily Trending of Unix Assembly in GitHub \ No newline at end of file diff --git a/unix-assembly/weekly/index.xml b/unix-assembly/weekly/index.xml new file mode 100644 index 00000000000..6c116bc266f --- /dev/null +++ b/unix-assembly/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Unix Assembly Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:18Z + Weekly Trending of Unix Assembly in GitHub + + \ No newline at end of file diff --git a/unknown/daily/index.xml b/unknown/daily/index.xml index 9e52f3d89d7..9fbf4ef4649 100644 --- a/unknown/daily/index.xml +++ b/unknown/daily/index.xml @@ -1,14 +1,28 @@ - GitHub Unknown languages Daily Trending + GitHub Unknown Languages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:21:50Z - Daily Trending of Unknown languages in GitHub + 2023-09-24T01:25:56Z + Daily Trending of Unknown Languages in GitHub - paypal/paypal-rest-api-specifications - 2023-09-23T01:21:50Z - tag:github.com,2023-09-23:/paypal/paypal-rest-api-specifications - - <p>This repository contains the specification files for PayPal REST APIs.</p><hr> + Xwin-LM/Xwin-LM + 2023-09-24T01:25:56Z + tag:github.com,2023-09-24:/Xwin-LM/Xwin-LM + + <p>Xwin-LM: Powerful, Stable, and Reproducible LLM Alignment</p><hr> + + + ChenyangSi/FreeU + 2023-09-24T01:25:56Z + tag:github.com,2023-09-24:/ChenyangSi/FreeU + + <p>FreeU: Free Lunch in Diffusion U-Net</p><hr> + + + dark-kingA/cloudTools + 2023-09-24T01:25:56Z + tag:github.com,2023-09-24:/dark-kingA/cloudTools + + <p>云资产管理工具 目前工具定位是云安全相关工具,目前是两个模块 云存储工具、云服务器工具, 云存储工具主要是针对oss存储、查看、删除、上传、下载、预览等等 云服务器工具主要是针对ecs服务器的管理,查看、执行命令等等</p><hr> \ No newline at end of file diff --git a/unknown/weekly/index.xml b/unknown/weekly/index.xml new file mode 100644 index 00000000000..de880c1f8d2 --- /dev/null +++ b/unknown/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Unknown Languages Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T01:45:31Z + Weekly Trending of Unknown Languages in GitHub + + + farhanashrafdev/90DaysOfCyberSecurity + 2023-09-24T01:45:31Z + tag:github.com,2023-09-24:/farhanashrafdev/90DaysOfCyberSecurity + + <p>This repository contains a 90-day cybersecurity study plan, along with resources and materials for learning various cybersecurity concepts and technologies. The plan is organized into daily tasks, covering topics such as Network+, Security+, Linux, Python, Traffic Analysis, Git, ELK, AWS, Azure, and Hacking. The repository also includes a `LEARN.md</p><hr> + + + ahmetbersoz/chatgpt-prompts-for-academic-writing + 2023-09-24T01:45:31Z + tag:github.com,2023-09-24:/ahmetbersoz/chatgpt-prompts-for-academic-writing + + <p>This list of writing prompts covers a range of topics and tasks, including brainstorming research ideas, improving language and style, conducting literature reviews, and developing research plans.</p><hr> + + + skills/introduction-to-github + 2023-09-24T01:45:31Z + tag:github.com,2023-09-24:/skills/introduction-to-github + + <p>Get started using GitHub in less than an hour.</p><hr> + + \ No newline at end of file diff --git a/uno/daily/index.xml b/uno/daily/index.xml index cdc1496d6b0..932d8afb150 100644 --- a/uno/daily/index.xml +++ b/uno/daily/index.xml @@ -1,7 +1,7 @@ GitHub Uno Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:46Z + 2023-09-24T01:43:59Z Daily Trending of Uno in GitHub \ No newline at end of file diff --git a/uno/weekly/index.xml b/uno/weekly/index.xml new file mode 100644 index 00000000000..198b25e408c --- /dev/null +++ b/uno/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Uno Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:21Z + Weekly Trending of Uno in GitHub + + \ No newline at end of file diff --git a/unrealscript/daily/index.xml b/unrealscript/daily/index.xml index fb403c24103..f18ce598c5b 100644 --- a/unrealscript/daily/index.xml +++ b/unrealscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub UnrealScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:47Z + 2023-09-24T01:43:58Z Daily Trending of UnrealScript in GitHub \ No newline at end of file diff --git a/unrealscript/weekly/index.xml b/unrealscript/weekly/index.xml new file mode 100644 index 00000000000..285e2fd685b --- /dev/null +++ b/unrealscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub UnrealScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:20Z + Weekly Trending of UnrealScript in GitHub + + \ No newline at end of file diff --git a/urweb/daily/index.xml b/urweb/daily/index.xml index ebabcbd049f..cd04110ae9d 100644 --- a/urweb/daily/index.xml +++ b/urweb/daily/index.xml @@ -1,7 +1,7 @@ GitHub UrWeb Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:47Z + 2023-09-24T01:44:00Z Daily Trending of UrWeb in GitHub \ No newline at end of file diff --git a/urweb/weekly/index.xml b/urweb/weekly/index.xml new file mode 100644 index 00000000000..7067a5312ba --- /dev/null +++ b/urweb/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub UrWeb Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:19Z + Weekly Trending of UrWeb in GitHub + + \ No newline at end of file diff --git a/v/daily/index.xml b/v/daily/index.xml index d3c742eeaec..457449017d9 100644 --- a/v/daily/index.xml +++ b/v/daily/index.xml @@ -1,7 +1,7 @@ GitHub V Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:49Z + 2023-09-24T01:44:04Z Daily Trending of V in GitHub \ No newline at end of file diff --git a/v/weekly/index.xml b/v/weekly/index.xml new file mode 100644 index 00000000000..55cc59ed165 --- /dev/null +++ b/v/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub V Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:24Z + Weekly Trending of V in GitHub + + \ No newline at end of file diff --git a/vala/daily/index.xml b/vala/daily/index.xml index 4a1419bcc64..fff1a0c6053 100644 --- a/vala/daily/index.xml +++ b/vala/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vala Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:50Z + 2023-09-24T01:44:01Z Daily Trending of Vala in GitHub \ No newline at end of file diff --git a/vala/weekly/index.xml b/vala/weekly/index.xml new file mode 100644 index 00000000000..5d2b83d23b8 --- /dev/null +++ b/vala/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Vala Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:25Z + Weekly Trending of Vala in GitHub + + \ No newline at end of file diff --git a/valve-data-format/daily/index.xml b/valve-data-format/daily/index.xml index f4c22066b8f..c4fe4911172 100644 --- a/valve-data-format/daily/index.xml +++ b/valve-data-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Valve Data Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:49Z + 2023-09-24T01:44:02Z Daily Trending of Valve Data Format in GitHub \ No newline at end of file diff --git a/valve-data-format/weekly/index.xml b/valve-data-format/weekly/index.xml new file mode 100644 index 00000000000..21173674ddd --- /dev/null +++ b/valve-data-format/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Valve Data Format Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:23Z + Weekly Trending of Valve Data Format in GitHub + + \ No newline at end of file diff --git a/vba/daily/index.xml b/vba/daily/index.xml index a9c8380aac2..57240b30040 100644 --- a/vba/daily/index.xml +++ b/vba/daily/index.xml @@ -1,7 +1,7 @@ GitHub VBA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:51Z + 2023-09-24T01:44:03Z Daily Trending of VBA in GitHub \ No newline at end of file diff --git a/vba/weekly/index.xml b/vba/weekly/index.xml new file mode 100644 index 00000000000..36606a24afa --- /dev/null +++ b/vba/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub VBA Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:22Z + Weekly Trending of VBA in GitHub + + \ No newline at end of file diff --git a/vbscript/daily/index.xml b/vbscript/daily/index.xml index e54afc58e7d..c6cda525c47 100644 --- a/vbscript/daily/index.xml +++ b/vbscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub VBScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:54Z + 2023-09-24T01:44:08Z Daily Trending of VBScript in GitHub \ No newline at end of file diff --git a/vbscript/weekly/index.xml b/vbscript/weekly/index.xml new file mode 100644 index 00000000000..d0d48f7ec10 --- /dev/null +++ b/vbscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub VBScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:26Z + Weekly Trending of VBScript in GitHub + + \ No newline at end of file diff --git a/vcl/daily/index.xml b/vcl/daily/index.xml index 91d08d1dc4d..56664291a96 100644 --- a/vcl/daily/index.xml +++ b/vcl/daily/index.xml @@ -1,7 +1,7 @@ GitHub VCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:52Z + 2023-09-24T01:44:07Z Daily Trending of VCL in GitHub \ No newline at end of file diff --git a/vcl/weekly/index.xml b/vcl/weekly/index.xml new file mode 100644 index 00000000000..e185ee894ab --- /dev/null +++ b/vcl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub VCL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:28Z + Weekly Trending of VCL in GitHub + + \ No newline at end of file diff --git a/verilog/daily/index.xml b/verilog/daily/index.xml index 939df85aab9..6bcfd2191d0 100644 --- a/verilog/daily/index.xml +++ b/verilog/daily/index.xml @@ -1,7 +1,7 @@ GitHub Verilog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:56Z + 2023-09-24T01:44:10Z Daily Trending of Verilog in GitHub \ No newline at end of file diff --git a/verilog/weekly/index.xml b/verilog/weekly/index.xml new file mode 100644 index 00000000000..8952af7d6e7 --- /dev/null +++ b/verilog/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Verilog Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:30Z + Weekly Trending of Verilog in GitHub + + \ No newline at end of file diff --git a/vhdl/daily/index.xml b/vhdl/daily/index.xml index 8db1d5d12c4..5849d4aa338 100644 --- a/vhdl/daily/index.xml +++ b/vhdl/daily/index.xml @@ -1,7 +1,7 @@ GitHub VHDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:00Z + 2023-09-24T01:44:14Z Daily Trending of VHDL in GitHub \ No newline at end of file diff --git a/vhdl/weekly/index.xml b/vhdl/weekly/index.xml new file mode 100644 index 00000000000..3e5efdb79b8 --- /dev/null +++ b/vhdl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub VHDL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:32Z + Weekly Trending of VHDL in GitHub + + \ No newline at end of file diff --git a/vim-help-file/daily/index.xml b/vim-help-file/daily/index.xml index b18fa7ec211..f40bf2bc279 100644 --- a/vim-help-file/daily/index.xml +++ b/vim-help-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vim Help File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:57Z + 2023-09-24T01:44:12Z Daily Trending of Vim Help File in GitHub \ No newline at end of file diff --git a/vim-help-file/weekly/index.xml b/vim-help-file/weekly/index.xml new file mode 100644 index 00000000000..a8cf37920ba --- /dev/null +++ b/vim-help-file/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Vim Help File Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:31Z + Weekly Trending of Vim Help File in GitHub + + \ No newline at end of file diff --git a/vim-script/daily/index.xml b/vim-script/daily/index.xml index 353f371edba..6b220a5be79 100644 --- a/vim-script/daily/index.xml +++ b/vim-script/daily/index.xml @@ -1,7 +1,21 @@ GitHub Vim Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:02Z + 2023-09-24T01:44:18Z Daily Trending of Vim Script in GitHub + + paubins/dotfiles + 2023-09-24T01:44:18Z + tag:github.com,2023-09-24:/paubins/dotfiles + + <p>dotfiles</p><hr> + + + digitalicarus/dotvim + 2023-09-24T01:44:18Z + tag:github.com,2023-09-24:/digitalicarus/dotvim + + <p></p><hr> + \ No newline at end of file diff --git a/vim-script/weekly/index.xml b/vim-script/weekly/index.xml new file mode 100644 index 00000000000..fdc4e42283e --- /dev/null +++ b/vim-script/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Vim Script Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:36Z + Weekly Trending of Vim Script in GitHub + + + fladson/vim-kitty + 2023-09-24T02:03:36Z + tag:github.com,2023-09-24:/fladson/vim-kitty + + <p>Vim syntax highlighting for Kitty terminal config files</p><hr> + + + luochen1990/rainbow + 2023-09-24T02:03:36Z + tag:github.com,2023-09-24:/luochen1990/rainbow + + <p>Rainbow Parentheses Improved, shorter code, no level limit, smooth and fast, powerful configuration.</p><hr> + + + airblade/vim-rooter + 2023-09-24T02:03:36Z + tag:github.com,2023-09-24:/airblade/vim-rooter + + <p>Changes Vim working directory to project root.</p><hr> + + \ No newline at end of file diff --git a/vim-snippet/daily/index.xml b/vim-snippet/daily/index.xml index 45f20b95a38..dd409df2be2 100644 --- a/vim-snippet/daily/index.xml +++ b/vim-snippet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vim Snippet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:39:58Z + 2023-09-24T01:44:13Z Daily Trending of Vim Snippet in GitHub \ No newline at end of file diff --git a/vim-snippet/weekly/index.xml b/vim-snippet/weekly/index.xml new file mode 100644 index 00000000000..1a56fc08e1e --- /dev/null +++ b/vim-snippet/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Vim Snippet Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:33Z + Weekly Trending of Vim Snippet in GitHub + + \ No newline at end of file diff --git a/visual-basic-.net/daily/index.xml b/visual-basic-.net/daily/index.xml index be554b8f772..5d9550c7a95 100644 --- a/visual-basic-.net/daily/index.xml +++ b/visual-basic-.net/daily/index.xml @@ -1,7 +1,7 @@ GitHub Visual Basic .NET Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:07Z + 2023-09-24T01:44:24Z Daily Trending of Visual Basic .NET in GitHub \ No newline at end of file diff --git a/visual-basic-.net/weekly/index.xml b/visual-basic-.net/weekly/index.xml new file mode 100644 index 00000000000..16d22b443f9 --- /dev/null +++ b/visual-basic-.net/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Visual Basic .NET Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:39Z + Weekly Trending of Visual Basic .NET in GitHub + + + MegaMik/BSRunnerXL + 2023-09-24T02:03:39Z + tag:github.com,2023-09-24:/MegaMik/BSRunnerXL + + <p></p><hr> + + \ No newline at end of file diff --git a/volt/daily/index.xml b/volt/daily/index.xml index 00fb01aa922..fac83154904 100644 --- a/volt/daily/index.xml +++ b/volt/daily/index.xml @@ -1,7 +1,7 @@ GitHub Volt Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:06Z + 2023-09-24T01:44:23Z Daily Trending of Volt in GitHub \ No newline at end of file diff --git a/volt/weekly/index.xml b/volt/weekly/index.xml new file mode 100644 index 00000000000..6b467e0ab28 --- /dev/null +++ b/volt/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Volt Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:40Z + Weekly Trending of Volt in GitHub + + \ No newline at end of file diff --git a/vue/daily/index.xml b/vue/daily/index.xml index c7d32516237..867cbda27e9 100644 --- a/vue/daily/index.xml +++ b/vue/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vue Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:14Z + 2023-09-24T01:44:31Z Daily Trending of Vue in GitHub \ No newline at end of file diff --git a/vue/weekly/index.xml b/vue/weekly/index.xml new file mode 100644 index 00000000000..d074dba327b --- /dev/null +++ b/vue/weekly/index.xml @@ -0,0 +1,28 @@ + + GitHub Vue Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:46Z + Weekly Trending of Vue in GitHub + + + codeacme17/examor + 2023-09-24T02:03:46Z + tag:github.com,2023-09-24:/codeacme17/examor + + <p>For students, scholars, interviewees and lifelong learners. Let LLMs assist you in learning 🎓</p><hr> + + + zclzone/vue-naive-admin + 2023-09-24T02:03:46Z + tag:github.com,2023-09-24:/zclzone/vue-naive-admin + + <p>⚡️基于 Vue3 + Vite + Pinia + Unocss + Naive UI 的轻量级后台管理模板。</p><hr> + + + menthorlabs/menthor + 2023-09-24T02:03:46Z + tag:github.com,2023-09-24:/menthorlabs/menthor + + <p>Plataforma gratuita e open-source de ensino de programação</p><hr> + + \ No newline at end of file diff --git a/vyper/daily/index.xml b/vyper/daily/index.xml index e5ea668101b..94a51defdbe 100644 --- a/vyper/daily/index.xml +++ b/vyper/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vyper Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:08Z + 2023-09-24T01:44:27Z Daily Trending of Vyper in GitHub \ No newline at end of file diff --git a/vyper/weekly/index.xml b/vyper/weekly/index.xml new file mode 100644 index 00000000000..ded86e1cad8 --- /dev/null +++ b/vyper/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Vyper Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:42Z + Weekly Trending of Vyper in GitHub + + \ No newline at end of file diff --git a/wavefront-material/daily/index.xml b/wavefront-material/daily/index.xml index fd856422870..b3087589845 100644 --- a/wavefront-material/daily/index.xml +++ b/wavefront-material/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wavefront Material Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:09Z + 2023-09-24T01:44:26Z Daily Trending of Wavefront Material in GitHub \ No newline at end of file diff --git a/wavefront-material/weekly/index.xml b/wavefront-material/weekly/index.xml new file mode 100644 index 00000000000..614e663d69f --- /dev/null +++ b/wavefront-material/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Wavefront Material Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:41Z + Weekly Trending of Wavefront Material in GitHub + + \ No newline at end of file diff --git a/wavefront-object/daily/index.xml b/wavefront-object/daily/index.xml index 58f70f00c9a..e548f6230e8 100644 --- a/wavefront-object/daily/index.xml +++ b/wavefront-object/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wavefront Object Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:10Z + 2023-09-24T01:44:25Z Daily Trending of Wavefront Object in GitHub \ No newline at end of file diff --git a/wavefront-object/weekly/index.xml b/wavefront-object/weekly/index.xml new file mode 100644 index 00000000000..6b392709921 --- /dev/null +++ b/wavefront-object/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Wavefront Object Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:43Z + Weekly Trending of Wavefront Object in GitHub + + \ No newline at end of file diff --git a/wdl/daily/index.xml b/wdl/daily/index.xml index 873fdbaee00..e802fde64d5 100644 --- a/wdl/daily/index.xml +++ b/wdl/daily/index.xml @@ -1,7 +1,7 @@ GitHub WDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:16Z + 2023-09-24T01:44:32Z Daily Trending of WDL in GitHub \ No newline at end of file diff --git a/wdl/weekly/index.xml b/wdl/weekly/index.xml new file mode 100644 index 00000000000..7920b5a9733 --- /dev/null +++ b/wdl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub WDL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:47Z + Weekly Trending of WDL in GitHub + + \ No newline at end of file diff --git a/web-ontology-language/daily/index.xml b/web-ontology-language/daily/index.xml index ad52c52ebc3..2b370a893a9 100644 --- a/web-ontology-language/daily/index.xml +++ b/web-ontology-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Web Ontology Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:15Z + 2023-09-24T01:44:34Z Daily Trending of Web Ontology Language in GitHub \ No newline at end of file diff --git a/web-ontology-language/weekly/index.xml b/web-ontology-language/weekly/index.xml new file mode 100644 index 00000000000..a2eccdaa9ec --- /dev/null +++ b/web-ontology-language/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Web Ontology Language Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:49Z + Weekly Trending of Web Ontology Language in GitHub + + \ No newline at end of file diff --git a/webassembly/daily/index.xml b/webassembly/daily/index.xml index 816f3390283..6dba2918c0d 100644 --- a/webassembly/daily/index.xml +++ b/webassembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub WebAssembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:17Z + 2023-09-24T01:44:35Z Daily Trending of WebAssembly in GitHub \ No newline at end of file diff --git a/webassembly/weekly/index.xml b/webassembly/weekly/index.xml new file mode 100644 index 00000000000..28560c12889 --- /dev/null +++ b/webassembly/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub WebAssembly Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:50Z + Weekly Trending of WebAssembly in GitHub + + \ No newline at end of file diff --git a/webidl/daily/index.xml b/webidl/daily/index.xml index 584748c5a23..ba7ae4904f5 100644 --- a/webidl/daily/index.xml +++ b/webidl/daily/index.xml @@ -1,7 +1,7 @@ GitHub WebIDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:22Z + 2023-09-24T01:44:39Z Daily Trending of WebIDL in GitHub \ No newline at end of file diff --git a/webidl/weekly/index.xml b/webidl/weekly/index.xml new file mode 100644 index 00000000000..148c47fbf8d --- /dev/null +++ b/webidl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub WebIDL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:53Z + Weekly Trending of WebIDL in GitHub + + \ No newline at end of file diff --git a/webvtt/daily/index.xml b/webvtt/daily/index.xml index b02c013c9a1..a8d7bbbcd6f 100644 --- a/webvtt/daily/index.xml +++ b/webvtt/daily/index.xml @@ -1,7 +1,7 @@ GitHub WebVTT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:20Z + 2023-09-24T01:44:37Z Daily Trending of WebVTT in GitHub \ No newline at end of file diff --git a/webvtt/weekly/index.xml b/webvtt/weekly/index.xml new file mode 100644 index 00000000000..bf31c2fdb05 --- /dev/null +++ b/webvtt/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub WebVTT Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:51Z + Weekly Trending of WebVTT in GitHub + + \ No newline at end of file diff --git a/wget-config/daily/index.xml b/wget-config/daily/index.xml index 36d2f78d63d..c9c772622f3 100644 --- a/wget-config/daily/index.xml +++ b/wget-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wget Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:19Z + 2023-09-24T01:44:36Z Daily Trending of Wget Config in GitHub \ No newline at end of file diff --git a/wget-config/weekly/index.xml b/wget-config/weekly/index.xml new file mode 100644 index 00000000000..89ef52ae92d --- /dev/null +++ b/wget-config/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Wget Config Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:52Z + Weekly Trending of Wget Config in GitHub + + \ No newline at end of file diff --git a/wikitext/daily/index.xml b/wikitext/daily/index.xml index e95b757d298..726e9dab7f9 100644 --- a/wikitext/daily/index.xml +++ b/wikitext/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wikitext Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:25Z + 2023-09-24T01:44:42Z Daily Trending of Wikitext in GitHub \ No newline at end of file diff --git a/wikitext/weekly/index.xml b/wikitext/weekly/index.xml new file mode 100644 index 00000000000..5049c5628ba --- /dev/null +++ b/wikitext/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Wikitext Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:55Z + Weekly Trending of Wikitext in GitHub + + \ No newline at end of file diff --git a/windows-registry-entries/daily/index.xml b/windows-registry-entries/daily/index.xml index 888b5676e29..bbebd378790 100644 --- a/windows-registry-entries/daily/index.xml +++ b/windows-registry-entries/daily/index.xml @@ -1,7 +1,7 @@ GitHub Windows Registry Entries Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:26Z + 2023-09-24T01:44:43Z Daily Trending of Windows Registry Entries in GitHub \ No newline at end of file diff --git a/windows-registry-entries/weekly/index.xml b/windows-registry-entries/weekly/index.xml new file mode 100644 index 00000000000..f0ccdf6146c --- /dev/null +++ b/windows-registry-entries/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Windows Registry Entries Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:56Z + Weekly Trending of Windows Registry Entries in GitHub + + \ No newline at end of file diff --git a/wisp/daily/index.xml b/wisp/daily/index.xml index 9287768eed4..d4ef81092e7 100644 --- a/wisp/daily/index.xml +++ b/wisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub wisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:29Z + 2023-09-24T01:44:47Z Daily Trending of wisp in GitHub \ No newline at end of file diff --git a/wisp/weekly/index.xml b/wisp/weekly/index.xml new file mode 100644 index 00000000000..87bf0a14706 --- /dev/null +++ b/wisp/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub wisp Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:59Z + Weekly Trending of wisp in GitHub + + \ No newline at end of file diff --git a/witcher-script/daily/index.xml b/witcher-script/daily/index.xml index b64284a2f84..ba7c70810e0 100644 --- a/witcher-script/daily/index.xml +++ b/witcher-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Witcher Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:27Z + 2023-09-24T01:44:46Z Daily Trending of Witcher Script in GitHub \ No newline at end of file diff --git a/witcher-script/weekly/index.xml b/witcher-script/weekly/index.xml new file mode 100644 index 00000000000..6e019caa5ae --- /dev/null +++ b/witcher-script/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Witcher Script Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:01Z + Weekly Trending of Witcher Script in GitHub + + \ No newline at end of file diff --git a/wollok/daily/index.xml b/wollok/daily/index.xml index 83ac54f180d..1534b37484d 100644 --- a/wollok/daily/index.xml +++ b/wollok/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wollok Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:28Z + 2023-09-24T01:44:44Z Daily Trending of Wollok in GitHub \ No newline at end of file diff --git a/wollok/weekly/index.xml b/wollok/weekly/index.xml new file mode 100644 index 00000000000..8893b36917b --- /dev/null +++ b/wollok/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Wollok Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:03:58Z + Weekly Trending of Wollok in GitHub + + \ No newline at end of file diff --git a/world-of-warcraft-addon-data/daily/index.xml b/world-of-warcraft-addon-data/daily/index.xml index efcccb4c610..791703a5651 100644 --- a/world-of-warcraft-addon-data/daily/index.xml +++ b/world-of-warcraft-addon-data/daily/index.xml @@ -1,7 +1,7 @@ GitHub World of Warcraft Addon Data Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:30Z + 2023-09-24T01:44:45Z Daily Trending of World of Warcraft Addon Data in GitHub \ No newline at end of file diff --git a/world-of-warcraft-addon-data/weekly/index.xml b/world-of-warcraft-addon-data/weekly/index.xml new file mode 100644 index 00000000000..c94950dc21c --- /dev/null +++ b/world-of-warcraft-addon-data/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub World of Warcraft Addon Data Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:00Z + Weekly Trending of World of Warcraft Addon Data in GitHub + + \ No newline at end of file diff --git a/x-bitmap/daily/index.xml b/x-bitmap/daily/index.xml index 3b683189f5b..820767a8775 100644 --- a/x-bitmap/daily/index.xml +++ b/x-bitmap/daily/index.xml @@ -1,7 +1,7 @@ GitHub X BitMap Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:34Z + 2023-09-24T01:44:49Z Daily Trending of X BitMap in GitHub \ No newline at end of file diff --git a/x-bitmap/weekly/index.xml b/x-bitmap/weekly/index.xml new file mode 100644 index 00000000000..e580feb08ff --- /dev/null +++ b/x-bitmap/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub X BitMap Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:04Z + Weekly Trending of X BitMap in GitHub + + \ No newline at end of file diff --git a/x-font-directory-index/daily/index.xml b/x-font-directory-index/daily/index.xml index 963a218a0d5..5787fd9b77a 100644 --- a/x-font-directory-index/daily/index.xml +++ b/x-font-directory-index/daily/index.xml @@ -1,7 +1,7 @@ GitHub X Font Directory Index Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:31Z + 2023-09-24T01:44:48Z Daily Trending of X Font Directory Index in GitHub \ No newline at end of file diff --git a/x-font-directory-index/weekly/index.xml b/x-font-directory-index/weekly/index.xml new file mode 100644 index 00000000000..20cee7c81d2 --- /dev/null +++ b/x-font-directory-index/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub X Font Directory Index Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:02Z + Weekly Trending of X Font Directory Index in GitHub + + \ No newline at end of file diff --git a/x-pixmap/daily/index.xml b/x-pixmap/daily/index.xml index e3da30d9d5e..95e438a7585 100644 --- a/x-pixmap/daily/index.xml +++ b/x-pixmap/daily/index.xml @@ -1,7 +1,7 @@ GitHub X PixMap Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:33Z + 2023-09-24T01:44:50Z Daily Trending of X PixMap in GitHub \ No newline at end of file diff --git a/x-pixmap/weekly/index.xml b/x-pixmap/weekly/index.xml new file mode 100644 index 00000000000..381db4ce6d2 --- /dev/null +++ b/x-pixmap/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub X PixMap Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:04Z + Weekly Trending of X PixMap in GitHub + + \ No newline at end of file diff --git a/x10/daily/index.xml b/x10/daily/index.xml index a2a1a4ca88a..825c23ec4d1 100644 --- a/x10/daily/index.xml +++ b/x10/daily/index.xml @@ -1,7 +1,7 @@ GitHub X10 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:37Z + 2023-09-24T01:44:54Z Daily Trending of X10 in GitHub \ No newline at end of file diff --git a/x10/weekly/index.xml b/x10/weekly/index.xml new file mode 100644 index 00000000000..5f9fe3130ff --- /dev/null +++ b/x10/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub X10 Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:06Z + Weekly Trending of X10 in GitHub + + \ No newline at end of file diff --git a/xbase/daily/index.xml b/xbase/daily/index.xml index 1606aa3832e..fd5810d9e08 100644 --- a/xbase/daily/index.xml +++ b/xbase/daily/index.xml @@ -1,7 +1,7 @@ GitHub xBase Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:36Z + 2023-09-24T01:44:52Z Daily Trending of xBase in GitHub \ No newline at end of file diff --git a/xbase/weekly/index.xml b/xbase/weekly/index.xml new file mode 100644 index 00000000000..87f95bfc4b9 --- /dev/null +++ b/xbase/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub xBase Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:08Z + Weekly Trending of xBase in GitHub + + \ No newline at end of file diff --git a/xc/daily/index.xml b/xc/daily/index.xml index dbc4f51ce12..ddb413499e8 100644 --- a/xc/daily/index.xml +++ b/xc/daily/index.xml @@ -1,7 +1,7 @@ GitHub XC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:38Z + 2023-09-24T01:44:54Z Daily Trending of XC in GitHub \ No newline at end of file diff --git a/xc/weekly/index.xml b/xc/weekly/index.xml new file mode 100644 index 00000000000..d14848a570a --- /dev/null +++ b/xc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub XC Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:06Z + Weekly Trending of XC in GitHub + + \ No newline at end of file diff --git a/xcompose/daily/index.xml b/xcompose/daily/index.xml index 835a1858d4e..2167d652f00 100644 --- a/xcompose/daily/index.xml +++ b/xcompose/daily/index.xml @@ -1,7 +1,7 @@ GitHub XCompose Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:35Z + 2023-09-24T01:44:53Z Daily Trending of XCompose in GitHub \ No newline at end of file diff --git a/xcompose/weekly/index.xml b/xcompose/weekly/index.xml new file mode 100644 index 00000000000..ea3ed1cfbae --- /dev/null +++ b/xcompose/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub XCompose Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:07Z + Weekly Trending of XCompose in GitHub + + \ No newline at end of file diff --git a/xml-property-list/daily/index.xml b/xml-property-list/daily/index.xml index a62bdc75033..cc67f5361f6 100644 --- a/xml-property-list/daily/index.xml +++ b/xml-property-list/daily/index.xml @@ -1,7 +1,7 @@ GitHub XML Property List Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:39Z + 2023-09-24T01:44:56Z Daily Trending of XML Property List in GitHub \ No newline at end of file diff --git a/xml-property-list/weekly/index.xml b/xml-property-list/weekly/index.xml new file mode 100644 index 00000000000..93685be82ee --- /dev/null +++ b/xml-property-list/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub XML Property List Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:09Z + Weekly Trending of XML Property List in GitHub + + \ No newline at end of file diff --git a/xml/daily/index.xml b/xml/daily/index.xml index 6fdcc8f310d..d16fd25bec3 100644 --- a/xml/daily/index.xml +++ b/xml/daily/index.xml @@ -1,7 +1,7 @@ GitHub XML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:42Z + 2023-09-24T01:44:58Z Daily Trending of XML in GitHub \ No newline at end of file diff --git a/xml/weekly/index.xml b/xml/weekly/index.xml new file mode 100644 index 00000000000..1409aa62a10 --- /dev/null +++ b/xml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub XML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:10Z + Weekly Trending of XML in GitHub + + \ No newline at end of file diff --git a/xojo/daily/index.xml b/xojo/daily/index.xml index b0cf3d59273..bf005c90833 100644 --- a/xojo/daily/index.xml +++ b/xojo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Xojo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:42Z + 2023-09-24T01:44:56Z Daily Trending of Xojo in GitHub \ No newline at end of file diff --git a/xojo/weekly/index.xml b/xojo/weekly/index.xml new file mode 100644 index 00000000000..e144dc7066e --- /dev/null +++ b/xojo/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Xojo Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:12Z + Weekly Trending of Xojo in GitHub + + \ No newline at end of file diff --git a/xonsh/daily/index.xml b/xonsh/daily/index.xml index 63805fd323a..416210946ec 100644 --- a/xonsh/daily/index.xml +++ b/xonsh/daily/index.xml @@ -1,7 +1,7 @@ GitHub Xonsh Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:40Z + 2023-09-24T01:44:57Z Daily Trending of Xonsh in GitHub \ No newline at end of file diff --git a/xonsh/weekly/index.xml b/xonsh/weekly/index.xml new file mode 100644 index 00000000000..a1a113a3f35 --- /dev/null +++ b/xonsh/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Xonsh Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:11Z + Weekly Trending of Xonsh in GitHub + + \ No newline at end of file diff --git a/xpages/daily/index.xml b/xpages/daily/index.xml index d6131c213f4..feae702f206 100644 --- a/xpages/daily/index.xml +++ b/xpages/daily/index.xml @@ -1,7 +1,7 @@ GitHub XPages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:44Z + 2023-09-24T01:45:01Z Daily Trending of XPages in GitHub \ No newline at end of file diff --git a/xpages/weekly/index.xml b/xpages/weekly/index.xml new file mode 100644 index 00000000000..4ae976fbddd --- /dev/null +++ b/xpages/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub XPages Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:15Z + Weekly Trending of XPages in GitHub + + \ No newline at end of file diff --git a/xproc/daily/index.xml b/xproc/daily/index.xml index 86736914a97..689300cf105 100644 --- a/xproc/daily/index.xml +++ b/xproc/daily/index.xml @@ -1,7 +1,7 @@ GitHub XProc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:43Z + 2023-09-24T01:45:02Z Daily Trending of XProc in GitHub \ No newline at end of file diff --git a/xproc/weekly/index.xml b/xproc/weekly/index.xml new file mode 100644 index 00000000000..e38e4af8560 --- /dev/null +++ b/xproc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub XProc Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:14Z + Weekly Trending of XProc in GitHub + + \ No newline at end of file diff --git a/xquery/daily/index.xml b/xquery/daily/index.xml index 417c6a8bcf7..e190bd36152 100644 --- a/xquery/daily/index.xml +++ b/xquery/daily/index.xml @@ -1,7 +1,7 @@ GitHub XQuery Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:46Z + 2023-09-24T01:45:00Z Daily Trending of XQuery in GitHub \ No newline at end of file diff --git a/xquery/weekly/index.xml b/xquery/weekly/index.xml new file mode 100644 index 00000000000..505fbe20a0d --- /dev/null +++ b/xquery/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub XQuery Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:13Z + Weekly Trending of XQuery in GitHub + + \ No newline at end of file diff --git a/xs/daily/index.xml b/xs/daily/index.xml index 2db3d9336eb..94c26bdcd9d 100644 --- a/xs/daily/index.xml +++ b/xs/daily/index.xml @@ -1,7 +1,7 @@ GitHub XS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:45Z + 2023-09-24T01:45:00Z Daily Trending of XS in GitHub \ No newline at end of file diff --git a/xs/weekly/index.xml b/xs/weekly/index.xml new file mode 100644 index 00000000000..d2f7812763d --- /dev/null +++ b/xs/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub XS Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:15Z + Weekly Trending of XS in GitHub + + \ No newline at end of file diff --git a/xslt/daily/index.xml b/xslt/daily/index.xml index e67314efe8c..cae6fdd702c 100644 --- a/xslt/daily/index.xml +++ b/xslt/daily/index.xml @@ -1,7 +1,7 @@ GitHub XSLT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:51Z + 2023-09-24T01:45:07Z Daily Trending of XSLT in GitHub \ No newline at end of file diff --git a/xslt/weekly/index.xml b/xslt/weekly/index.xml new file mode 100644 index 00000000000..d10b8a42a62 --- /dev/null +++ b/xslt/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub XSLT Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:20Z + Weekly Trending of XSLT in GitHub + + \ No newline at end of file diff --git a/xtend/daily/index.xml b/xtend/daily/index.xml index c571cd8c6c2..08e26cd6804 100644 --- a/xtend/daily/index.xml +++ b/xtend/daily/index.xml @@ -1,7 +1,7 @@ GitHub Xtend Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:48Z + 2023-09-24T01:45:03Z Daily Trending of Xtend in GitHub \ No newline at end of file diff --git a/xtend/weekly/index.xml b/xtend/weekly/index.xml new file mode 100644 index 00000000000..99ceecda635 --- /dev/null +++ b/xtend/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Xtend Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:17Z + Weekly Trending of Xtend in GitHub + + \ No newline at end of file diff --git a/yacc/daily/index.xml b/yacc/daily/index.xml index 1792c966829..18540ed662d 100644 --- a/yacc/daily/index.xml +++ b/yacc/daily/index.xml @@ -1,7 +1,7 @@ GitHub Yacc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:49Z + 2023-09-24T01:45:07Z Daily Trending of Yacc in GitHub \ No newline at end of file diff --git a/yacc/weekly/index.xml b/yacc/weekly/index.xml new file mode 100644 index 00000000000..5b68458c955 --- /dev/null +++ b/yacc/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Yacc Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:18Z + Weekly Trending of Yacc in GitHub + + \ No newline at end of file diff --git a/yaml/daily/index.xml b/yaml/daily/index.xml index aba26f22768..c12b3ce784a 100644 --- a/yaml/daily/index.xml +++ b/yaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub YAML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:47Z + 2023-09-24T01:45:06Z Daily Trending of YAML in GitHub \ No newline at end of file diff --git a/yaml/weekly/index.xml b/yaml/weekly/index.xml new file mode 100644 index 00000000000..5e406fa2ffc --- /dev/null +++ b/yaml/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub YAML Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:17Z + Weekly Trending of YAML in GitHub + + \ No newline at end of file diff --git a/yang/daily/index.xml b/yang/daily/index.xml index e2f81cff147..15c2a7af2c1 100644 --- a/yang/daily/index.xml +++ b/yang/daily/index.xml @@ -1,7 +1,7 @@ GitHub YANG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:53Z + 2023-09-24T01:45:11Z Daily Trending of YANG in GitHub \ No newline at end of file diff --git a/yang/weekly/index.xml b/yang/weekly/index.xml new file mode 100644 index 00000000000..76b37d533ae --- /dev/null +++ b/yang/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub YANG Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:24Z + Weekly Trending of YANG in GitHub + + \ No newline at end of file diff --git a/yara/daily/index.xml b/yara/daily/index.xml index 0cb58b3bd84..89358182356 100644 --- a/yara/daily/index.xml +++ b/yara/daily/index.xml @@ -1,7 +1,7 @@ GitHub YARA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:54Z + 2023-09-24T01:45:12Z Daily Trending of YARA in GitHub \ No newline at end of file diff --git a/yara/weekly/index.xml b/yara/weekly/index.xml new file mode 100644 index 00000000000..790eba62e65 --- /dev/null +++ b/yara/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub YARA Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:26Z + Weekly Trending of YARA in GitHub + + \ No newline at end of file diff --git a/yasnippet/daily/index.xml b/yasnippet/daily/index.xml index dce5a8ab974..1a0f27e5af3 100644 --- a/yasnippet/daily/index.xml +++ b/yasnippet/daily/index.xml @@ -1,7 +1,7 @@ GitHub YASnippet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:55Z + 2023-09-24T01:45:09Z Daily Trending of YASnippet in GitHub \ No newline at end of file diff --git a/yasnippet/weekly/index.xml b/yasnippet/weekly/index.xml new file mode 100644 index 00000000000..33c76c553b8 --- /dev/null +++ b/yasnippet/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub YASnippet Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:25Z + Weekly Trending of YASnippet in GitHub + + \ No newline at end of file diff --git a/zap/daily/index.xml b/zap/daily/index.xml index d9e2d06fba6..9f729ae5af5 100644 --- a/zap/daily/index.xml +++ b/zap/daily/index.xml @@ -1,7 +1,7 @@ GitHub ZAP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:59Z + 2023-09-24T01:45:15Z Daily Trending of ZAP in GitHub \ No newline at end of file diff --git a/zap/weekly/index.xml b/zap/weekly/index.xml new file mode 100644 index 00000000000..f838f5aeccf --- /dev/null +++ b/zap/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ZAP Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:28Z + Weekly Trending of ZAP in GitHub + + \ No newline at end of file diff --git a/zeek/daily/index.xml b/zeek/daily/index.xml index 92fab1f6773..04528b311ea 100644 --- a/zeek/daily/index.xml +++ b/zeek/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zeek Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:58Z + 2023-09-24T01:45:13Z Daily Trending of Zeek in GitHub \ No newline at end of file diff --git a/zeek/weekly/index.xml b/zeek/weekly/index.xml new file mode 100644 index 00000000000..81915238406 --- /dev/null +++ b/zeek/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Zeek Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:29Z + Weekly Trending of Zeek in GitHub + + \ No newline at end of file diff --git a/zenscript/daily/index.xml b/zenscript/daily/index.xml index da41757c116..8913d5d9b85 100644 --- a/zenscript/daily/index.xml +++ b/zenscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ZenScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:57Z + 2023-09-24T01:45:14Z Daily Trending of ZenScript in GitHub \ No newline at end of file diff --git a/zenscript/weekly/index.xml b/zenscript/weekly/index.xml new file mode 100644 index 00000000000..40504b51845 --- /dev/null +++ b/zenscript/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ZenScript Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:30Z + Weekly Trending of ZenScript in GitHub + + \ No newline at end of file diff --git a/zephir/daily/index.xml b/zephir/daily/index.xml index 6e6afc15462..1f0229c285b 100644 --- a/zephir/daily/index.xml +++ b/zephir/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zephir Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:40:57Z + 2023-09-24T01:45:16Z Daily Trending of Zephir in GitHub \ No newline at end of file diff --git a/zephir/weekly/index.xml b/zephir/weekly/index.xml new file mode 100644 index 00000000000..77d7d3c320c --- /dev/null +++ b/zephir/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Zephir Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:27Z + Weekly Trending of Zephir in GitHub + + \ No newline at end of file diff --git a/zig/daily/index.xml b/zig/daily/index.xml index b6422bdba4e..e7d8ff9b26c 100644 --- a/zig/daily/index.xml +++ b/zig/daily/index.xml @@ -1,7 +1,14 @@ GitHub Zig Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:41:02Z + 2023-09-24T01:45:19Z Daily Trending of Zig in GitHub + + thimenesup/GodotZigBindings + 2023-09-24T01:45:19Z + tag:github.com,2023-09-24:/thimenesup/GodotZigBindings + + <p>Zig lang bindings for Godot Engine GDNative</p><hr> + \ No newline at end of file diff --git a/zig/weekly/index.xml b/zig/weekly/index.xml new file mode 100644 index 00000000000..16844d3d2b0 --- /dev/null +++ b/zig/weekly/index.xml @@ -0,0 +1,14 @@ + + GitHub Zig Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:34Z + Weekly Trending of Zig in GitHub + + + fulcrum-so/ziggy-pydust + 2023-09-24T02:04:34Z + tag:github.com,2023-09-24:/fulcrum-so/ziggy-pydust + + <p>A toolkit for building Python extensions in Zig.</p><hr> + + \ No newline at end of file diff --git a/zil/daily/index.xml b/zil/daily/index.xml index c6ae98b944c..be9aeae8c40 100644 --- a/zil/daily/index.xml +++ b/zil/daily/index.xml @@ -1,7 +1,7 @@ GitHub ZIL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:41:01Z + 2023-09-24T01:45:17Z Daily Trending of ZIL in GitHub \ No newline at end of file diff --git a/zil/weekly/index.xml b/zil/weekly/index.xml new file mode 100644 index 00000000000..1742adf3c17 --- /dev/null +++ b/zil/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub ZIL Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:31Z + Weekly Trending of ZIL in GitHub + + \ No newline at end of file diff --git a/zimpl/daily/index.xml b/zimpl/daily/index.xml index 09eb775a845..0e1af9732e8 100644 --- a/zimpl/daily/index.xml +++ b/zimpl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zimpl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2023-09-23T01:41:00Z + 2023-09-24T01:45:20Z Daily Trending of Zimpl in GitHub \ No newline at end of file diff --git a/zimpl/weekly/index.xml b/zimpl/weekly/index.xml new file mode 100644 index 00000000000..e351c7ee436 --- /dev/null +++ b/zimpl/weekly/index.xml @@ -0,0 +1,7 @@ + + GitHub Zimpl Weekly Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2023-09-24T02:04:32Z + Weekly Trending of Zimpl in GitHub + + \ No newline at end of file