Gabriel  Olvera

Gabriel Olvera




#next #javascript

What is GEEK

Buddha Community


NBB: Ad-hoc CLJS Scripting on Node.js


Not babashka. Node.js babashka!?

Ad-hoc CLJS scripting on Node.js.


Experimental. Please report issues here.

Goals and features

Nbb's main goal is to make it easy to get started with ad hoc CLJS scripting on Node.js.

Additional goals and features are:

  • Fast startup without relying on a custom version of Node.js.
  • Small artifact (current size is around 1.2MB).
  • First class macros.
  • Support building small TUI apps using Reagent.
  • Complement babashka with libraries from the Node.js ecosystem.


Nbb requires Node.js v12 or newer.

How does this tool work?

CLJS code is evaluated through SCI, the same interpreter that powers babashka. Because SCI works with advanced compilation, the bundle size, especially when combined with other dependencies, is smaller than what you get with self-hosted CLJS. That makes startup faster. The trade-off is that execution is less performant and that only a subset of CLJS is available (e.g. no deftype, yet).


Install nbb from NPM:

$ npm install nbb -g

Omit -g for a local install.

Try out an expression:

$ nbb -e '(+ 1 2 3)'

And then install some other NPM libraries to use in the script. E.g.:

$ npm install csv-parse shelljs zx

Create a script which uses the NPM libraries:

(ns script
  (:require ["csv-parse/lib/sync$default" :as csv-parse]
            ["fs" :as fs]
            ["path" :as path]
            ["shelljs$default" :as sh]
            ["term-size$default" :as term-size]
            ["zx$default" :as zx]
            ["zx$fs" :as zxfs]
            [nbb.core :refer [*file*]]))

(prn (path/resolve "."))

(prn (term-size))

(println (count (str (fs/readFileSync *file*))))

(prn (sh/ls "."))

(prn (csv-parse "foo,bar"))

(prn (zxfs/existsSync *file*))

(zx/$ #js ["ls"])

Call the script:

$ nbb script.cljs
#js {:columns 216, :rows 47}
#js ["node_modules" "package-lock.json" "package.json" "script.cljs"]
#js [#js ["foo" "bar"]]
$ ls


Nbb has first class support for macros: you can define them right inside your .cljs file, like you are used to from JVM Clojure. Consider the plet macro to make working with promises more palatable:

(defmacro plet
  [bindings & body]
  (let [binding-pairs (reverse (partition 2 bindings))
        body (cons 'do body)]
    (reduce (fn [body [sym expr]]
              (let [expr (list '.resolve 'js/Promise expr)]
                (list '.then expr (list 'clojure.core/fn (vector sym)

Using this macro we can look async code more like sync code. Consider this puppeteer example:

(-> (.launch puppeteer)
      (.then (fn [browser]
               (-> (.newPage browser)
                   (.then (fn [page]
                            (-> (.goto page "")
                                (.then #(.screenshot page #js{:path "screenshot.png"}))
                                (.catch #(js/console.log %))
                                (.then #(.close browser)))))))))

Using plet this becomes:

(plet [browser (.launch puppeteer)
       page (.newPage browser)
       _ (.goto page "")
       _ (-> (.screenshot page #js{:path "screenshot.png"})
             (.catch #(js/console.log %)))]
      (.close browser))

See the puppeteer example for the full code.

Since v0.0.36, nbb includes promesa which is a library to deal with promises. The above plet macro is similar to promesa.core/let.

Startup time

$ time nbb -e '(+ 1 2 3)'
nbb -e '(+ 1 2 3)'   0.17s  user 0.02s system 109% cpu 0.168 total

The baseline startup time for a script is about 170ms seconds on my laptop. When invoked via npx this adds another 300ms or so, so for faster startup, either use a globally installed nbb or use $(npm bin)/nbb script.cljs to bypass npx.


NPM dependencies

Nbb does not depend on any NPM dependencies. All NPM libraries loaded by a script are resolved relative to that script. When using the Reagent module, React is resolved in the same way as any other NPM library.


To load .cljs files from local paths or dependencies, you can use the --classpath argument. The current dir is added to the classpath automatically. So if there is a file foo/bar.cljs relative to your current dir, then you can load it via (:require [ :as fb]). Note that nbb uses the same naming conventions for namespaces and directories as other Clojure tools: foo-bar in the namespace name becomes foo_bar in the directory name.

To load dependencies from the Clojure ecosystem, you can use the Clojure CLI or babashka to download them and produce a classpath:

$ classpath="$(clojure -A:nbb -Spath -Sdeps '{:aliases {:nbb {:replace-deps {com.github.seancorfield/honeysql {:git/tag "v2.0.0-rc5" :git/sha "01c3a55"}}}}}')"

and then feed it to the --classpath argument:

$ nbb --classpath "$classpath" -e "(require '[honey.sql :as sql]) (sql/format {:select :foo :from :bar :where [:= :baz 2]})"
["SELECT foo FROM bar WHERE baz = ?" 2]

Currently nbb only reads from directories, not jar files, so you are encouraged to use git libs. Support for .jar files will be added later.

Current file

The name of the file that is currently being executed is available via nbb.core/*file* or on the metadata of vars:

(ns foo
  (:require [nbb.core :refer [*file*]]))

(prn *file*) ;; "/private/tmp/foo.cljs"

(defn f [])
(prn (:file (meta #'f))) ;; "/private/tmp/foo.cljs"


Nbb includes reagent.core which will be lazily loaded when required. You can use this together with ink to create a TUI application:

$ npm install ink


(ns ink-demo
  (:require ["ink" :refer [render Text]]
            [reagent.core :as r]))

(defonce state (r/atom 0))

(doseq [n (range 1 11)]
  (js/setTimeout #(swap! state inc) (* n 500)))

(defn hello []
  [:> Text {:color "green"} "Hello, world! " @state])

(render (r/as-element [hello]))


Working with callbacks and promises can become tedious. Since nbb v0.0.36 the promesa.core namespace is included with the let and do! macros. An example:

(ns prom
  (:require [promesa.core :as p]))

(defn sleep [ms]
   (fn [resolve _]
     (js/setTimeout resolve ms))))

(defn do-stuff
   (println "Doing stuff which takes a while")
   (sleep 1000)

(p/let [a (do-stuff)
        b (inc a)
        c (do-stuff)
        d (+ b c)]
  (prn d))
$ nbb prom.cljs
Doing stuff which takes a while
Doing stuff which takes a while

Also see API docs.


Since nbb v0.0.75 applied-science/js-interop is available:

(ns example
  (:require [applied-science.js-interop :as j]))

(def o (j/lit {:a 1 :b 2 :c {:d 1}}))

(prn (j/select-keys o [:a :b])) ;; #js {:a 1, :b 2}
(prn (j/get-in o [:c :d])) ;; 1

Most of this library is supported in nbb, except the following:

  • destructuring using :syms
  • property access using .-x notation. In nbb, you must use keywords.

See the example of what is currently supported.


See the examples directory for small examples.

Also check out these projects built with nbb:


See API documentation.

Migrating to shadow-cljs

See this gist on how to convert an nbb script or project to shadow-cljs.



  • babashka >= 0.4.0
  • Clojure CLI >=
  • Node.js 16.5.0 (lower version may work, but this is the one I used to build)

To build:

  • Clone and cd into this repo
  • bb release

Run bb tasks for more project-related tasks.

Download Details:
Author: borkdude
Download Link: Download The Source Code
Official Website: 
License: EPL-1.0

#node #javascript

Gabriel  Olvera

Gabriel Olvera




#next #javascript

joe biden


Converta e-mails EML para Adobe PDF com o conversor de EML para PDF

Para converter arquivos EML em formato PDF, o Datavare é o aplicativo mais adequado. O aplicativo oferece muitas vantagens para que os usuários possam converter os arquivos facilmente. Isso ajuda a fazer uma conversão direta. O aplicativo é mais adequado para cada usuário e, portanto, converte os arquivos EML de uma forma precisa e sem erros. Qualquer usuário pode fazer a conversão de arquivos EML para o formato PDF, pois o aplicativo é muito fácil de operar. Usuários sem formação técnica também podem usar este aplicativo incrível sem qualquer problema.

Embora o aplicativo seja muito avançado, ainda assim, com sua interface gráfica amigável, é fácil converter arquivos EML para o formato PDF. Para tal não é necessária qualquer tipo de assistência técnica. A tarefa de conversão é fácil e simples de fazer com este aplicativo de terceiros. É um aplicativo altamente compatível que funciona perfeitamente em qualquer versão do Windows. Para usar o aplicativo, não é necessário que a versão do Windows seja a mais recente ou a mais antiga.

Além disso, há muitas vantagens em usar esse aplicativo notável. Vamos falar sobre algumas dessas vantagens que ela confere:

  • Concede conversão direta
  • Transfere arquivos em alta velocidade
  • Sem restrição de tamanho
  • Aplicação independente
  • Conversão sem erros

Essas vantagens tornam o aplicativo mais adequado para uso. Vale a pena usar este aplicativo para converter arquivos EML em formato PDF. Baixe sua versão de teste agora.

Passos para conversão

Para continuar a tarefa de conversão, é necessário seguir alguns passos. O processo de conversão ocorre em um processo passo a passo. Essas etapas são muito fáceis de executar por qualquer usuário. Não há necessidade de nenhuma orientação técnica para auxiliar essas etapas.

Agora, vamos apenas dar uma olhada nessas etapas simples, depois de baixar e iniciar o aplicativo;
Passo 1- Abra o aplicativo e escolha os arquivos EML que você deseja apenas converter.
Etapa 2 - Escolha o local onde deseja salvar os arquivos convertidos.
Etapa 3- Clique no botão converter agora.

Com essas 3 etapas fáceis, você pode converter seus arquivos EML em formato PDF.

Essas etapas são muito fáceis, e o aplicativo também fornece instantâneos adequados das etapas fornecidas para a assistência adequada do usuário. Além disso, uma interface de usuário fácil é fornecida pelo aplicativo para oferecer suporte a seus usuários. Em primeiro lugar, use a versão demo do aplicativo.

Características principais

Com muitas vantagens, o aplicativo também disponibiliza alguns recursos fundamentais aos seus usuários para a melhor conversão dos arquivos EML. Vejamos alguns desses recursos:

Conversão perfeita
Com uma velocidade rápida, é imprescindível que seus arquivos sejam convertidos na perfeição, sem nenhuma alteração dos dados. Este aplicativo é adequado para converter seus dados na perfeição.

Conversão seletiva
É necessário que os arquivos que você escolher sejam os que somente devem ser convertidos. Portanto, este aplicativo inteligente converte apenas os arquivos que você seleciona para a conversão. Não, outros arquivos EML são convertidos para o formato PSF.

Conversão em lote
Os dados que você escolher são convertidos em lotes. Isso significa que você pode escolher os arquivos que deseja converter ou pode escolher a pasta. Somando-se a isso, a filtragem de arquivos é fornecida no modo de arquivo

Salve os dados de acordo
Você pode escolher os arquivos a serem convertidos, bem como o local. O aplicativo oferece suporte ao salvamento personalizado de dados. Isso significa que, sem qualquer obrigação, você pode salvar seus dados de forma fácil e adequada. Esses recursos fornecem um resultado proveitoso para os usuários.

Declaração final

Os usuários podem baixar o EML para PDF Converter para converter seus arquivos EML para o formato PD. O aplicativo é fácil de usar em qualquer versão do Windows. O usuário pode converter quantos arquivos quiser sem qualquer obrigação, uma vez que adquira a versão licenciada do aplicativo.

Recursos como conversão em alta velocidade, excelente precisão e grande compatibilidade tornam o uso do aplicativo mais útil. Este aplicativo independente executa a tarefa de conversão diretamente sem qualquer problema. Portanto, experimente a versão demo gratuita do aplicativo agora e examine-o convertendo seus poucos arquivos EML em formato PDF.
Se você enfrentar algum tipo de problema também pode entrar em contato com o número de atendimento ao cliente fornecido pelo aplicativo ao seu usuário. Este serviço de ajuda ao cliente está disponível 24 horas por dia, 7 dias por semana.

Mais informações:-

#conversor de eml para pdf #migração de eml para pdf #exportador de eml para pdf #converter eml para pdf #importar eml para pdf

Eva  Murphy

Eva Murphy


Google analytics Setup with Next JS, React JS using Router Events - 14

In this video, we are going to implement Google Analytics to our Next JS application. Tracking page views of an application is very important.

Google analytics will allow us to track analytics information.

App link:

You can find me on:

#next js #js #react js #react #next #google analytics

joe biden


Como converter arquivos OST para o formato PST?

Os usuários têm duas maneiras de converter os arquivos OST para o formato PST do Outlook manualmente ou usando o aplicativo. A conversão manual dos arquivos OST leva muito tempo, assim como os esforços dos usuários. Portanto, os usuários devem usar uma ferramenta de conversão de OST para PST. O Datavare conversor OST para PST é a melhor solução para converter os arquivos OST para o formato PST do Outlook.

Para fazer a conversão dos arquivos OST, os usuários devem baixar este incrível aplicativo. Este aplicativo realiza a tarefa de maneira eficiente e sem esforço. Os usuários podem converter arquivos OST inteiros com a ajuda desta ferramenta incrível e em alta velocidade. Dados inteiros, incluindo notas, mensagens, contatos e calendários são convertidos para o formato PST com a ajuda desta ferramenta incrível. Além disso, os usuários são livres para salvar o arquivo convertido em qualquer lugar do sistema local. Com este aplicativo altamente compatível, os usuários podem usar facilmente este conversor OST para PST em qualquer um dos sistemas operacionais Windows. É um aplicativo altamente interativo que até mesmo um usuário novato pode usar. O aplicativo é uma plataforma segura e protegida para todos os usuários. As etapas necessárias para converter o arquivo OST para o formato PST são simples de implementar.

Os usuários são livres para salvar o arquivo em qualquer lugar em seu sistema local sem enfrentar qualquer dificuldade.

Passos para converter os arquivos

Siga as etapas fornecidas abaixo para converter os arquivos OST para o formato PST:

Etapa 1- Baixe a ferramenta Conversor de OST para PST em seu sistema operacional Windows
Etapa 2 - Inicie o aplicativo
Etapa 3- Adicionar os arquivos OST
Etapa 4 - Visualize os arquivos OST selecionados
Etapa 5 - Escolha o local para salvar os arquivos convertidos
Etapa 6 - Por fim, clique no botão “Converter agora”. Portanto, essas são algumas etapas simples com as quais um usuário pode converter facilmente seus arquivos OST para o formato PST do Outlook.

Recursos do aplicativo

Deixe-nos saber agora sobre alguns recursos inteligentes do aplicativo que um usuário deve ver:

Converta os arquivos OST
O aplicativo converte gratuitamente os arquivos OST para o formato PST do Outlook de forma fácil e confiável, sem enfrentar qualquer obrigação. A conversão direta dos arquivos OST é feita por esta ferramenta incrível. Além disso, os usuários podem usar o aplicativo em qualquer uma das versões do Windows, desde a versão mais recente até a mais antiga do aplicativo. O aplicativo converte todos os dados após visualizá-los e digitalizá-los. O tamanho dos arquivos OST não importa em todo o processo de conversão.

Com total precisão, todo um processo de conversão é feito pelo aplicativo. Não importa o número de arquivos que o usuário insere, os usuários têm permissão para converter os arquivos de maneira perfeita. Todos os arquivos OST são facilmente exportados de maneira segura e protegida, sem qualquer tipo de perda ou corrupção de dados.

Localização especificada pelo usuário
Os arquivos OST convertidos podem ser salvos em qualquer lugar de acordo com o desejo do local específico do usuário. Flexibilidade total dos arquivos é fornecida pelo aplicativo para que o usuário não enfrente nenhum tipo de problema ao salvar o arquivo.

Aplicativo altamente compatível
É um aplicativo altamente compatível que pode ser usado em qualquer versão do Windows. Da versão mais antiga à mais nova do Windows, o aplicativo pode ser operado facilmente sem enfrentar qualquer dificuldade. A compatibilidade do aplicativo é incomparável de qualquer outro aplicativo. O resultado desejado é fornecido pelo aplicativo.

Declaração final

Baixe este incrível conversor de OST para PST para converter seus arquivos OST para o formato PST do Outlook. A integridade dos arquivos é mantida pelo aplicativo e a qualidade dos arquivos é mantida pelo aplicativo. Com este aplicativo altamente compatível, os usuários obtêm o resultado desejado pelos usuários. Além disso, você deve experimentar a versão demo do aplicativo para saber mais sobre o aplicativo. A versão demo do aplicativo é gratuita para todos os usuários. Esta versão demo do aplicativo dá aos usuários a autoridade para converter alguns arquivos OST. Para converter os arquivos ilimitados, o usuário deve comprar a versão licenciada do aplicativo agora.

Mais informações:-

#conversor de ost para pst #conversão ost para pst #import para pst #ost para pst exportador #exportar ost para pst #converter o arquivo ost para o formato de arquivo pst