profile
viewpoint
Luke Childs lukechilds @getumbrel Chiang Mai, Thailand https://lukechilds.co Building @getumbrel

jstrace/chart 226

Ansi charts for nodejs

atomiclabs/hyperdex 145

Grandma-Friendly Atomic Swaps

lukechilds/base64-async 98

Non-blocking chunked Base64 encoding

lukechilds/autoscale-do-block-storage 14

Autoscale Digital Ocean block storage volumes

Kukks/payjoin-client-js 11

Please see https://github.com/bitcoinjs/payjoin-client instead.

getumbrel/umbrel-dev 9

Automatically initialize and manage an Umbrel development environment

atomiclabs/hyperdex-nightlies 4

Nightly builds of HyperDEX

atomiclabs/ledger-kmd-reward-claim 4

Claim your KMD rewards on your Ledger device

lukechilds/AtHash 1

Social text parser

lukechilds/awesome-github-extensions 1

A curated list of awesome browser extensions for GitHub. Inspired by awesome-python, which is inspired by awesome-php.

Pull request review commentgetumbrel/umbrel-manager

Add the change-name route

 function getCachedPassword() {     return devicePassword; } +// Change the device name+async function changeName(name) {+    resetChangeNameStatus();++    changeNameStatus.percent = 1; // eslint-disable-line no-magic-numbers++    changeNameStatus.percent = 40; // eslint-disable-line no-magic-numbers++    try {+        // get user data+        const user = await diskLogic.readUserFile();++        // update user name+        user.name = name;

Maybe 1-30-60-100 🧐

It's not really important haha

bguillaumat

comment created time in 6 hours

startedlukechilds/dockerpi

started time in 7 hours

startedlambdaconcept/minerva

started time in 7 hours

startedmafintosh/autoname

started time in 8 hours

created repositorymafintosh/autoname

Auto naming of objects for easier debugging

created time in 8 hours

Pull request review commentgetumbrel/umbrel-dashboard

Add the possibility to rename

 export default {     getReadableTime(timestamp) {       return moment(timestamp).format("MMM D, h:mm:ss a");     },+    async changeName() {+      if (this.newName.length === 0) {+        return this.$bvToast.toast("You're name must not be empty!", {

Fuck I need to sleep -'

bguillaumat

comment created time in 8 hours

Pull request review commentgetumbrel/umbrel-manager

Add the change-name route

 function getCachedPassword() {     return devicePassword; } +// Change the device name+async function changeName(name) {+    resetChangeNameStatus();++    changeNameStatus.percent = 1; // eslint-disable-line no-magic-numbers++    changeNameStatus.percent = 40; // eslint-disable-line no-magic-numbers++    try {+        // get user data+        const user = await diskLogic.readUserFile();++        // update user name+        user.name = name;

Yeah I guess it's near to instant. In fact just before the try it set 40% even if the try succeed, with your change if it fails we do 1 to 100. What do you think?

bguillaumat

comment created time in 8 hours

Pull request review commentgetumbrel/umbrel-dashboard

Add the possibility to rename

 export default {     getReadableTime(timestamp) {       return moment(timestamp).format("MMM D, h:mm:ss a");     },+    async changeName() {+      if (this.newName.length === 0) {+        return this.$bvToast.toast("You're name must not be empty!", {
        return this.$bvToast.toast("Your name must not be empty!", {

Typo

bguillaumat

comment created time in 8 hours

Pull request review commentgetumbrel/umbrel-manager

Add the change-name route

 function getCachedPassword() {     return devicePassword; } +// Change the device name+async function changeName(name) {+    resetChangeNameStatus();++    changeNameStatus.percent = 1; // eslint-disable-line no-magic-numbers++    changeNameStatus.percent = 40; // eslint-disable-line no-magic-numbers++    try {+        // get user data+        const user = await diskLogic.readUserFile();++        // update user name+        user.name = name;

It won't change a lot of things as it's almost instant, but it seems more logical to me to have the second step (40%) after the file read instead of just after the first step (1%).

    changeNameStatus.percent = 1; // eslint-disable-line no-magic-numbers

    try {
        // get user data
        const user = await diskLogic.readUserFile();
        
        changeNameStatus.percent = 40; // eslint-disable-line no-magic-numbers
        
        // update user name
        user.name = name;
bguillaumat

comment created time in 8 hours

startedlukechilds/merge-images

started time in 11 hours

fork AaronDewes/react-grid-layout

A draggable and resizable grid layout with responsive breakpoints, for React.

https://strml.github.io/react-grid-layout/examples/0-showcase.html

fork in 12 hours

Pull request review commentgetumbrel/umbrel-manager

Add the change-name route

 const validator = require('utils/validator.js');  const COMPLETE = 100; +router.post('/change-name', auth.jwt, safeHandler(async (req, res, next) => {+    const newName = req.body.newName;++    try {+        validator.isString(newName);

Okok noted I will update that

bguillaumat

comment created time in 12 hours

startedmmb/weechat-otr

started time in 14 hours

startedfontforge/fontforge

started time in 14 hours

issue closedlukechilds/keyv-mongo

How to connect to cloud mongo?

const db = "mongo-test"
const uri = `mongodb+srv://${pass}@free-tqvaj.mongodb.net/test?retryWrites=true&w=majority/${db}`
const keyv = new Keyv(uri);
async function main(){
    keyv.on('error', err => console.log('Connection Error', err));
    await keyv.set("BOI",1)

}
main()

Gives error => `assert.js:42 throw new errors.AssertionError({ ^

AssertionError [ERR_ASSERTION]: missing path `

closed time in 15 hours

Jytesh

issue commentlukechilds/keyv-mongo

How to connect to cloud mongo?

Oh nice thanks

Jytesh

comment created time in 15 hours

fork MrHash/clightningjs

C-lightning plugins in Javascript

fork in 16 hours

startedlukechilds/dockerpi

started time in 18 hours

issue commentlukechilds/keyv-mongo

How to connect to cloud mongo?

I was having this issue also - without finding a lot of help. Found a solution:

In Atlas choose "Connect Cluster" --> Connect your application using native --> Choose Node JS and version 2.2.12 or later - that way you will get a mongodb:// instead of mongodb+srv://

Jytesh

comment created time in 18 hours

Pull request review commentgetumbrel/umbrel-manager

Add the change-name route

 const validator = require('utils/validator.js');  const COMPLETE = 100; +router.post('/change-name', auth.jwt, safeHandler(async (req, res, next) => {+    const newName = req.body.newName;++    try {+        validator.isString(newName);

Then this should also be added later in the file, otherwise a name that works for signup won't work if changed to it

bguillaumat

comment created time in 19 hours

Pull request review commentgetumbrel/umbrel-dashboard

Add the possibility to rename

 export default {     getReadableTime(timestamp) {       return moment(timestamp).format("MMM D, h:mm:ss a");     },+    async changeName() {+      if (this.newName.length === 0) {+        return this.$bvToast.toast("Trying to set an empty name...", {

I would replace this message with "You name must not be empty" or something like that

bguillaumat

comment created time in 20 hours

Pull request review commentgetumbrel/umbrel-dashboard

Add the possibility to rename

               </b-modal>             </div>           </div>+          <div class="pt-0">+            <div class="d-flex w-100 justify-content-between px-3 px-lg-4 mb-4">+              <div>+                <span class="d-block">Name</span>+                <small class="d-block" style="opacity: 0.4">Change your name</small>+              </div>++              <b-button+                  variant="outline-primary"+                  size="sm"+                  v-b-modal.change-name-modal+                  :disabled="isChangingName"+              >Rename</b-button>++              <b-modal id="change-name-modal" centered hide-footer>+                <template v-slot:modal-header="{ close }">+                  <div class="px-2 px-sm-3 pt-2 d-flex justify-content-between w-100">+                    <h3>Change Name</h3>+                    <!-- Emulate built in modal header close button action -->+                    <a href="#" class="align-self-center" v-on:click.stop.prevent="close">+                      <svg+                          width="18"+                          height="18"+                          viewBox="0 0 18 18"+                          fill="none"+                          xmlns="http://www.w3.org/2000/svg"+                      >+                        <path+                            fill-rule="evenodd"+                            clip-rule="evenodd"+                            d="M13.6003 4.44197C13.3562 4.19789 12.9605 4.19789 12.7164 4.44197L9.02116 8.1372L5.32596 4.442C5.08188 4.19792 4.68615 4.19792 4.44207 4.442C4.198 4.68607 4.198 5.0818 4.44207 5.32588L8.13728 9.02109L4.44185 12.7165C4.19777 12.9606 4.19777 13.3563 4.44185 13.6004C4.68592 13.8445 5.08165 13.8445 5.32573 13.6004L9.02116 9.90497L12.7166 13.6004C12.9607 13.8445 13.3564 13.8445 13.6005 13.6004C13.8446 13.3563 13.8446 12.9606 13.6005 12.7165L9.90505 9.02109L13.6003 5.32585C13.8444 5.08178 13.8444 4.68605 13.6003 4.44197Z"+                            fill="#6c757d"+                        />+                      </svg>+                    </a>+                  </div>+                </template>+                <div class="px-4 pb-2">+                  <b-form-input+                      v-model="newName"+                      ref="name"+                      :placeholder="name"+                      class="card-input w-100"+                      autofocus/>+                  <div class="py-2"></div>+                  <b-button+                      class="w-100"+                      variant="success"+                      size="lg"+                      :disabled="isChangingName || newName.length === 0"+                      @click="changeName"+                  >{{ isChangingName ? 'Changing Name...' : 'Change name'}}</b-button>

(Same here)

bguillaumat

comment created time in 20 hours

Pull request review commentgetumbrel/umbrel-dashboard

Add the possibility to rename

 export default {     getReadableTime(timestamp) {       return moment(timestamp).format("MMM D, h:mm:ss a");     },+    async changeName() {+      if (this.newName.length === 0) {+        return this.$bvToast.toast("Trying to set an empty name...", {+          title: "Error",+          autoHideDelay: 3000,+          variant: "danger",+          solid: true,+          toaster: "b-toaster-bottom-right"+        });+      }+      const payload = {+        newName: this.newName+      };++      this.isChangingName = true;++      try {+        await API.post(+            `${process.env.VUE_APP_MANAGER_API_URL}/v1/account/change-name`,+            payload+        ).then(() => this.$store.dispatch("user/getInfo"));+      } catch (error) {+        if (error.response && error.response.data) {+          this.$bvToast.toast(error.response.data, {+            title: "Error",+            autoHideDelay: 3000,+            variant: "danger",+            solid: true,+            toaster: "b-toaster-bottom-right"+          });+        }+        this.isChangingName = false;+        return;+      }++      this.$bvToast.toast(+          `You've successfully changed your Name`,
          `You've successfully changed your name`,

Shouldn't this be lowercase?

bguillaumat

comment created time in 20 hours

issue openedgetumbrel/umbrel

Add custom Lightning Node Name

There is no way to assign a custom Lightning Node name. This will be e. g. displayed at 1ml.com

It would be nice if you could implement that option.

Best regards Lars

created time in 20 hours

fork cyberdroid1001/dockerpi

A Virtualised Raspberry Pi inside a Docker image

fork in 20 hours

fork atifali/dockerpi

A Virtualised Raspberry Pi inside a Docker image

fork in a day

Pull request review commentgetumbrel/umbrel-manager

Add the change-name route

 function getCachedPassword() {     return devicePassword; } +// Change the device name+async function changeName(name) {+    resetChangeNameStatus();++    changeNameStatus.percent = 1; // eslint-disable-line no-magic-numbers++    changeNameStatus.percent = 40; // eslint-disable-line no-magic-numbers++    let complete = false;+    try {+        // get user data+        const user = await diskLogic.readUserFile();++        // update user name+        user.name = name;++        // update user file+        await diskLogic.writeUserFile({ ...user });++        complete = true;++        changeNameStatus.percent = 100;+    } catch (error) {+        if (error.response.status === constants.STATUS_CODES.UNAUTHORIZED) {

Yeah you're right.

https://stackoverflow.com/a/6937030

I think we don't need an unauthorised here, because the only error we can get is an fs error (read or write), contrary to the other function which need auth.

Maybe just return Internal server error if something goes wrong?

bguillaumat

comment created time in a day

startedlukechilds/merge-images

started time in a day

issue commentgetumbrel/umbrel

Web GUI stuck Loading LND...

Same issue here, but probably a different error. From the logs:

ENOENT: no such file or directory, open '/lnd/tls.cert'

Is Umbrel supposed to create the needed certificates on startup automatically?

st4cks4ts

comment created time in a day

more