/daily-log

Description of work done each day.

Primary LanguageJavaScriptMIT LicenseMIT

daily-log

npm version

daily-log is a collection of descriptions of work done each day.

terminal

Table Of Contents

Saturday the 8th

So the week has been productive and I published 3 new articles on Medium:

The more articles to write are:

  • Compiling the script that has foreign dependencies in Closure Compiler.

The 2 keys on the keyboard broke, the left ctrl and option. The day I lost control. I think this is because I slept on them, and now they refuse to be back. But I swear I pressed cmd-option-save on the left by the habit once (i've to use the right option now) and it worked (saved all files)! maybe it's not the lost case and the glitch of the macintosh. The new os is 10.14 because one can't always stay on 10.10 or something. It was not possible before and the OS would not run on macbooks older than 2012 but smart kind people updated the drives and made it possible. I even didn't have to burn any CDs -- because I have 2 hard drives, I mounted the image on one of them, and booted from it.

today 3 Dec

today is an interesting day because i had a day off and according to the studies, men and women perform better on the first day of the week. It means that I am anticipating the result of 2 of the latest bug reports in the google closure compiler repository: one when the dead code was not totally eliminated, but i predict that the outcome of that would be to pass a special flag indicating the entry module. The second issue with the google closure compiler is that the import from an ES6 module a common Js module (ie. import { test } from 'test' FROM module.exports.test = function testIO(){}) does not produce the correct result such as the required method being imported.

This is the question of interoperability of the module systems in the compiler and is described in its wiki which says

It is recommended that a module is imported using the method native to its type. CommonJS modules should be imported using require calls, goog.module should be imported with goog.require calls. However since ES6 import statements can only be used in ES6 modules, scripts and other module types can't use the import keyword.

It is possible to mix import statements, however this method is not generally recommended except for the case where importing an ES6 module into another script or module type.

"please don't do it" therefore I think Google should seriously reconsider their terms because to be the modern start up like Art Deco, one has to write import statements, however the modules get transpiled before publishing, because Node.js does not understand the import syntax.

I don't know what they will say. I know that it is sure nice to sit in from of my computer again after a week+ of not attending any gadgets mostly. Needs must.

UPD

Apparently, it is not possible by design

closure reply

God Bless ÀlaMode that I can transpile into common.js first and make stuff work, i.e., use the build directory that normally would have been published. On the other hand, I can check whether the compiler will even respect the standard where built-in modules can have named exports.

  • Check whether closure accepts named built-in exports.

November

In november, there is a competition entry to do.

12 Monday

Today I have updated the Windows virtual machine to have 2 GB of memory on a paid plan (£15/month) to be able to run ElasticSearch smoothly. The performance of the machine shown by its responsiveness has improved. I also downloaded Kibana as a snapshot build locally. I tried to get its source code however it occupies a lot of disk space and cannot be sparsely downloaded (i.e., just the source folder that I wanted to compile with ÀLaMode instead of Babel). The sparse.page lambda function will allow to select git folders to download from GitHub. Moreover, Kibana's source contains TypeScript code that also needs to be transpiled. I feel more confident now knowing how Kibana is developed and built.

elastic search

In addition, I fixed a bug in the @rqt/aqt package where a dependency was missing, but did not show as such because it was installed as a dev dependency.

October

The plan for this month is:

  1. In the first week, complete the missing features for NodeTools, pull up the missing bits in functionality and documentation and some minor bugs (e.g., finish updating expensive, section breaks changing); work on the mnpjs.org to analyse packages; create a website nodetools.co with bare content, outline the roadmap to version two;
  2. Then without timing, promote NodeTools by getting in contact with multiple blogs / websites to ask them to write articles about it; write tutorials, content for the website.
  3. Focus on research, prototyping, a video and pitch for Demimonde.

30 Tuesday

Today, I have updated the MacOS to version 10.14 because otherwise the func binaries from Microsoft needed to debug, test and deploy extensions to the Azure don't work. I didn't update for a long time but it is great to see that the laptop which is almost 10 years old works just fine, and it is really the only thing I need for work, without any new expensive gadgets. The new dark theme UI looks good although the non-dark theme is not supported as much.

dark theme

Programmaticaly, I refactored splendid so that it is easier to understand and configure (pages configuration is now separate from the app configuration and can be written with export keywords).

Finally, I was able to set-up an ElasticSearch instance running on a Windows machine on Azure and install the metricbeats to send data from another VM to the first one. The data contains metrics data such as server load, and it achieve the long-standing want to run 2 VMs with Dokku apps on one and the ES on another.

kibana stat

TODO

  • Write a tutorial explaining the benefits of 1-year free Azure subscription, Dokku and ElasticSearch, and how to make such a setup.
  • Migrate the Windows server to the Dokku net so that it is private.
  • Set up an Nginx proxy for Kibana.
  • Send the log data from Nginx to ElasticSearch also.

26 - VS CODE CONFUSION

The JSDoc has to be commented out as well as the function to which it belongs otherwise the Vs Code will get confused.


Issue Type: Bug

so i dev like

/**
 * Create a promise for a test function.
 * @param {function} fn function to execute
 * @return {Promise} A promise to execute function.
 */
// async function createTestPromise(fn) {
//   const res = await fn()
//   return res
// }

and then i dev more like

/**
 * Asynchronously runs the test.
 * @returns {string}
 */
const run = (options) => {
  return 'ok'
}

but what i see is that the function returns Promise.<any> in the doc

screen shot 2018-10-26 at 05 54 05

and this is because the source code was commented out but before it there was jsdoc. Is this my fault?

VS Code version: Code - Insiders 1.28.0-insider (431ef9da3cf88a7e164f9d33bf62695e07c6c2a9, 2018-10-03T12:36:03.286Z) OS version: Darwin x64 15.6.0

System Info
Item Value
CPUs Intel(R) Core(TM)2 Duo CPU P7350 @ 2.00GHz (2 x 2000)
GPU Status 2d_canvas: unavailable_software
checker_imaging: disabled_off
flash_3d: unavailable_software
flash_stage3d: unavailable_software
flash_stage3d_baseline: unavailable_software
gpu_compositing: unavailable_software
multiple_raster_threads: disabled_off
native_gpu_memory_buffers: unavailable_software
rasterization: unavailable_software
video_decode: unavailable_software
video_encode: unavailable_software
webgl: unavailable_off
webgl2: unavailable_off
Load (avg) 19, 13, 9
Memory (System) 8.00GB (0.32GB free)
Process Argv
Screen Reader no
VM 0%
Extensions (3)
Extension Author (truncated) Version
vscode-eslint dba 1.6.1
code-spell-checker str 1.6.10
vscode-wakatime Wak 1.2.3

8-12 Planning

Last week, I didn't write much of the blog, as it was quite relaxed week. Despite that, by working on the weekend, I did manage to achieve 38 hours which is a full employment week. I focused on Namecheap API implementation and documentation, and adding features to Expensive.

38 hours

namecheap-expensive

I also started to write a blog post on Medium about the NodeTools. There is an introduction, structure and the beginning of the section about why TypeScript is not needed. I don't think I will keep it on Medium, but rather move it all to the content of the website.

Show a rant

I was quite frustrated when I commented on a topic by a person whom I dislike suggesting they use ÀLaMode, and it was then marked as spam:

alamode

So he commented

@zavr-1 This is not the place to advertise your project. Try submitting to JavaScript Weekly newsletter and Reddit instead. For ES2015 module syntax, there's also esm.

Gosh how I hate these people who take everything so seriously. So this particular guy made like I don't know how many packages and thinks he's a star, because all the unintelligent mob just uses his packages and thinks he is a god. There is a cult around this person just like around Babel and TypeScript. Why be so hostile? Just say, "thanks dude", it's a community after all, where ideas are allowed to propagate. But ofc, because he's got this feeling of superiority due to all this fame, he needs to say that I am advertising. esm builds an AST tree just like any other transpiler. But that's fine I'm just upset that I let myself get involved there, I knew I disliked that person but I thought he might be different. Turned out to be exactly as I thought -- too much pathos and ego. It's just packages take a chill pill.

On the other hand, it helped me to understand once and for all that I'm not making my software for anyone else, I am making it for myself. If anyone wants to use it, they are welcome to it. It is not my job going around advertising and wanting people to download it. In fact, I want as little number of people to use my packages because otherwise they will be too mainstream and I will become like that person, so much stuck up. I want my software to be grunge and underworld, and if before I cared that people would want to download it, now I know for sure that all that I was doing, was first and foremost, for myself. I will do a due diligence, make a site for NodeTools, post a few links, but that's it.

Therefore, this far the progress has been:

PROGRESS

  • Completed 11% of the NameCheap API, documented getPricing method extensively.ß
  • Implemented the price check in Expensive before registration and automatic application of the coupon, added tests to it with Zoroaster masks.
  • Started writing the content for NodeTools.

SMALL POSITIVES

  • Found a way to maintain separate readme on NPM and GitHub, by having 2 files: README for NPM and README.md for GitHub. This means that I can publish all documentation on GitHub and place a link to it on NPM, because NPM sucks.
  • Added a password implementation to reloquent as well as confirmation questions. password confirm
  • Worked on Completest prototype by setting up a TypeScript server and writing types in JSDoc.
  • Created a forkFeed (different from spoonfeed :P) to be able to send data to a child process via stdin, used it in Zoroaster.

The plan for this week is:

ESSENTIAL

  • Create @svag/terminal to render terminal output with ANSI colors.
  • Print the terminal output into the @svag/terminal in Documentary.
  • Document MNP and Expensive with the terminal.
  • Complete the first version of Completest.
  • Move binary functions from Documentary to Typal, add documentation.
  • Create a scope for Documentary, move some rules there.
  • Finish at least one item from last week's list.

1-5 Planning

Since last week, I have achieved what I wanted, that is to publish @idio/core, complete work on the rqt package by testing it with IdioCore, and then move the namecheap API from expensive to the @rqt/namecheap-web, where the whois fetching is also implemented.

The unexpected work came in when I wondered off in the direction of MNP and implemented the GitHub API package in @rqt/github, updated the tests and improved Zoroaster to be able to pass inputs to the forked process. This was a longer-term goal and I'm happy I have completed it.

I have also setup VPN on the Azure and it could be nice to make a video "How to get free VPN for a year" for a video blog.

This week's goals are to finish work on expensive and carry on with the idio separation into functional part, such as router and authentication unit. Gladly, this should be pretty easy as I have written the code already, it is just in different places.

There is still the annoying bug in VS Code that makes the types not accessible.

EXPENSIVE

  • Create @rqt/namecheap standalone API package.
  • Incorporate @rqt/namecheap-web and @rqt/namecheap into the package, refactor some code.
  • Implement a feature to set DNS.

DOCUMENTARY

  • Create @svag/terminal to render terminal output.
  • Print the terminal output into the @svag/terminal.

ZOROASTER

  • Document using an example.
  • Get inputs to fork from the input.
  • Be able to access multiple properties of a mask as input.

ALAMODE

  • Reverse markers to not cut out strings, add dynamic mode.
  • Add a feature that would allow to require alamode in the same file as imports are written.

DEVOPS

  • Move domains from Route 53 to namecheap to cut the costs.

DAILY LOG

  • Archive the September section.

TODO

  • Add a new item to the todo list.

Archive

2018

Copyright

(c) Art Deco 2018