HN user

platform

246 karma
Posts5
Comments130
View on HN

Thanks for sharing the video. Very interesting. If the whole thing is too long to watch suggest to start 17:30.

Here is my layman interpretation (disclaimer: I am not by any means knowledgeable in biology, and just wikepidyed most of the terms used):

1) our immune system has T cells that are responsible for recognizing if an antigen is 'foreign' molecule/substance or something that's generated by our own body (self).

These types of T-cells are called 'Regulatory T-Cells' [1]

2) Cancers, as an example, trick these types of cells to think that the cancerous cells are 'self'

3) For these type of regulatory T-Cells (T-regs) to get activated, they need 2 signals:

-a- signal that says -- here is a pathogen

-b- signal that says -- this pathogen is foreign (if not, immune system will not get activated).

Toll-like receptors help with -b-.

They work, in a way (this is my analogy, sorry if it is lame), like RegEx (regular expression), that have evolutionary encoded patterns that indicate the origin of a given antigen. And that's the core of Ruslan Medzhitov's research

4) So if we get the regex match of the antigen structure (which is being sliced 'prepped up' for the check, by slicing its proteins into peptides) -- the signal 2 is generated, and immune system will activate.

If the match did not happen -- no activation.

5) Another interesting thing, (or may be I misunderstood) Is that those TReg cells, each do not have 'all the patterns'. Instead, our body generates, randomly, many of those cells, and each one just have one of those 'RegEx'. So another key, is that our body has to, in parallel, so to speak, apply multiple of them to the foreign body. And so some of those TReg cells would never get activated (as they did not have the pattern to induce the -b- signal). But others, hopefully, would get the match and the -b- signal will happen, and immune system will get activated.

[1] https://en.wikipedia.org/wiki/Regulatory_T_cell

How up-to-date is clojurescript+react-native workflow?

I checked Re-natal as tool to manage build/debug workflow with clojurescript+react-native

https://github.com/drapanjanas/re-natal

But re-natal supports up to React native 0.59, which is quite far back, in the RN-release-years time units.

Now React-native is 0.62.

PRGMR.com 1.25 GiB RAM, 15 GiB Disk for $5 per month.

https://prgmr.com/xen/ inexpensive. no overage charges. can pay by bitcoin. (and a FreeBSD friendly).

I wonder if you would also benefit from installing something like yunohost [2] on top of Debian. This will get you your personal cloud. And the use YounoHost's 'Custom web app' container [4]

This way, you get an automatically configured web server (nginx), with certificates (via Let's encrypt) that get auto updated.

You also get a pre-configured user/sftp access to your app's folders.

And those folders will be backed up when you hit the backup button...

Nginx will invoke your python app when the predefined URL is hit.

All you have to do is to point your domain registrar to the prmgr VPS host running yunohost.

[2] https://yunohost.org/#/whatsyunohost [3] https://yunohost.org/#/apps [4] https://github.com/YunoHost-Apps/my_webapp_ynh

got it. thank you for the explanation. I am planning to add 'multiplayer' feature, where multiple participants needs to quickly exchange positional and surrounding attributes.

Currently system is in Java+JS front end. I feel that JSON serialization that I currently use, is not the right thing..

But at the same time, I care about 'size in kb' of the js front end. Therefore have been learning the options.

react native packaging into an Android app. More specifically: the @react-native-community/cli followed by metro bundler.

Every single time I have to upgrade react-native, I have no problems with the code base,

but with these horrible 'put a js config file here', put 'node_modules' there, set environment variable this way -- kind of tools.

This is approximately equivalent in frustration, trying to build a Linux-kernel with a new network-interface driver in early 90s.

..may be even worth than that.

I looked at Soverign at the time I was setting up private cloud on a $5 VPS (prgmr.com with 1.5 gb ram)

I went with YunoHost.

https://yunohost.org/#/apps

I initially tried sovereign, but once I figured out I had to pay for tarsnap backup service, and that it did not have ansible for nginx setup (I needed that experience for work stuff), I went with Yunohost.

Sofar I am happy with YunoHost and subscribed to send periodic donation to the project.

Overall, though, if you are working with ansible at work, or want to advance in devops field, learning ansible and contributing to Sovereign project would be a good path to take.

Yes, I have been doing same thing, only with LMDB.

I do not think LMDB could load from in-memory only object (as it has to have file to memory-map to), however.

But same design reasons, I wanted something that

a) I can move across host architectures

b) something that can act as key-val cache, as soon as the processes using it are restarted (so no cache hydrating delay)

c) something that I can diff/archive/restore/modify in place

We tested sqllite for the above purpose at the time, and writing speed and ( b ) - lmdb was significantly faster.

So we lost the flexibility of SQLite, but I felt it was a reasonable tradeoff, given our needs.

I also know that one of the Intel's python toolkits for image recognition/ai, uses LMDB (optionally) store images that processing routines do not have incur the cost of directory lookups when touching millions of small images. (forgot the name of the toolkit though)…

Overall, this a very valid practice/pattern in data processing pipelines, kudos to you for mentioning it.

Oracle has done the same in the last 25 years. Company I worked for used Oracle database for an enterprise system.

Oracle over the years, acquired some of our competitors.

Then every time customers would need to renew database licenses with Oracle, Oracle's sales reps would try to sell them the competing enterprise systems that they had acquired.

For a specific ansible role for nginx, suggest to look at

https://github.com/nginxinc/ansible-role-nginx

it is complete free, open source, not difficult to use, does not require any additional tools on the target host.

On the control (source) host you just need ansible and target hosts need python3.

And from there you can use this role to push nginx install on 10 or 100 target hosts (with same single command). The hosts do not have to run the same OS (they can run a mix Debian-based, or -redhat based Linuxes, and a FreeBSD.. I think (although did not try that) ).

This role automatically setups and download the appropriate versions of nginx binaries, and allows pretty flexible config of nginx itself, from load balancers to reverse proxies, to plain-jane web servers...

Any passwords that may need to be transmitted to target hosts (eg for cert files), are normally encrypted in crypto-secure ansible vault. So they get transferred with SSH over to the host, without being ever bein stored plain on the source/controller host.

With regards to

Most automation scripts are used to sell additional products like Ansible so this script avoids that.

I think most open source software, nginx including, can be though of as 'promoting' something or somebody. Just like any other endeavor that meant to be publicly consumed.

One can create new languages fit for the purpose of a given class of problems and thus reducing size of codebase 10 to 100 fold

interesting, thank you for sharing.

Could I transpose your thought into:

--

Solutions (or large scale programs), should not be written in a general purpose language.

Instead, there should be core domain language (solution DSL) developed (using a general purpose language) and then the solution should be developed using the solution DSL.

?

I use FreeBSD when developing non-mobile work (which is mostly java backends + JavaScript react).

My environment is

- Hyper-V on windows laptop

- FreeBSD 12.1 as guest (zfs)

- FreeBSD packages I use for devel (installed simply with its standard 'pkg add') are: InteliJC, vscode, openjdk11, postgres12-server, node12, tmux

- Desktop env is: xrdp (to allow remote desktop into the VM), wmaker (window manager and wmakerconf to config it), qterminal or lilyterm

So I just use Remote Desktop from windows host, into FreeBSD VM using XRDP and just run like that.

I connect using 24 or 32 bit depth (via RDP protocol) and tend to run Darkish/pastel colors themes in Visual Code and IntelliJ.

---

I know this is not an ideal setup, but lack of support for mobile dev (android at least) prevents me from using FreeBSD directly on hardware...

When Running on native hardware, without VM, I tend to use Pop! Linux because of how beautiful it looks, on HiDPI or regular screens, and it is relatively easy for me to use, as somehow that window manager setup does not get in my way

I also usually install emacs 27 or 28, but those require a binary package download from

https://freebsd.pkgs.org/12/freebsd-ports-latest-i386/ghub-e...

Use Emacs rarely these days, because of its lackluster support for JavaScript+Flow tooling.

I would much rather use Emacs for everything.. but right now I just use it to write status reports (org mode)…

Article mentions that server-side rendering was needed for SEO (Search engine optimization) and first-page load speed

(normally server-side rendering first-page loads faster because it is pre-rendered (and often cached) ).

"... SEO was a very important consideration — we had full-time SEO consultants on staff — and we wanted to provide the best possible page load speed, so server-side rendering quickly became a requirement. ..."

Thank you, my understand was that S3 is also 'external' (that's AWS service).

What I was hoping/looking for is something where another tool lightweight tool that can be installed alongside Rudder, that can use PG instance (may be just different db within Rudder's instance or just different schema).

For a light weight, end-to-end solution (including analytics) that can 'grow' with needs.

For many small self-funded startups that care about privacy a combination of following challenges exist:

a) need self-hosted solutions that require minimal footprint (because data, even anonymized, is hosted on self-paid VPS instances )

b) need to use solutions that do not require initial purchase/investment, but yet can scale out (both technically, and in terms of support) when/if commercial model of the startup becomes more successful

c) need to use solutions that are not heavy VC backed, because those typically do not have stable engagement model (as VCs rates of return demand, typically, changes in initial service/open source model, while self-funded startups are typically much slower growing (and slower in committing to buying expenses))

d) need self-hosted solutions to cover lot of ground in one (so that the learning curve, and time needed to integrate are minimized).

very interesting and approacheable solution.

With regards to: >" Rudder runs as a single go binary with Postgres. It also needs the destination (e.g. GA, Amplitude) specific transformation code which are node scripts. "

what would be a recommended approach, if I would like to keep the data internally, and not use external Analytics engine?

One can also use D (now part of GCC). D with its better dialect allows one to not use D run time libraries, or even C++ runtime libraries. A developer can just choose what C libraries they want to link with.

In this mode, no GC is provided, so a developer will be using manual allocation.

With upcoming D's dip1000 feature, it will be able to do rust-like borrows checker at compile time (or at least this is my understanding). And that capability will be available in betterC mode as well (not just for full blown D).

The code in betterC can use generics and other advanced features

https://dlang.org/spec/betterc.html

---

Nearly the full language remains available. Highlights include:

- Unrestricted use of compile-time features

- Full metaprogramming facilities

- Nested functions, nested structs, delegates and lambdas

- Member functions, constructors, destructors, operating overloading, etc.

- The full module system

- Array slicing, and array bounds checking

- RAII (yes, it can work without exceptions) scope(exit)

- Memory safety protections

- Interfacing with C++

- COM classes and C++ classes

- assert failures are directed to the C runtime library

- switch with strings

- final switch

- unittest

dip1000:

https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1000...

HAProxy 2.0 7 years ago

Thx. Yes, NGNIX will not be able to balance HTTP/2 traffic based on HTTP headers. But HAProxy 2.0 can.

In our case, we are not un-encrypting at the load balancer, so we cannot see the HTTP headers anyway. Instead we use NGINX to load-balance based on TCP-level info.

HAProxy 2.0 7 years ago

WRT > end-to-end HTTP/2 [2]

I think this is supported.

We are using NGINX with its core Stream module to receive HTTP/2 encrypted traffic, and loadbalance it (with random or least_conn) algorithms -- to each of our backends.

Traffic stays encrypted end-to-end, and it remains HTTP/2 (because the Stream module works at TCP level, not http so it does not care http/2 or http/1 is used).

It seems that in the ticket [2] that you mentioned, the commenter at the end is asking exactly for this. And that works well.

It is called often 'pass-through proxy'. The article here explains how to set it up

https://serversforhackers.com/c/tcp-load-balancing-with-ngin...

We loose information about the Web-browser's IP address at our backend. For for privacy-enforcement reasons, we actually do not want to have it at our terminating points (our backend apis). And also, if we ever need it -- I thin this can be enabled with the proxy protocol.

Well, if Huawei would say a) here is our store b) your app will be marketed to Chinese population (as long as your backend servers run on Chinese infra)

then, I think they have a chance to attract app developers. Otherwise, I doubt it.

Surely, just cancelling debt will always increase cost of service (I cannot come up with a historical example where this is not the case, but happy to be corrected).

However, this gesture is not a policy, and just a really nice gift and expression of altruism.

Also... since you mentioned it, I cannot believe how little teachers are making, including their pension guarantees (in US and many other countries) -- for the effort that many of them put in -- this is just a disgrace.

I wish, there would be a way for exchange safety/tenure guarantees for significant pay increase (eg at least double). And let the teachers make that choice.

thank you. It is such a great service to the community around the language.

If I may, i would like to ask if there are any AI/numerics libraries that are available in clojure, that are also exposed and working via clojurescript.

I want to allow my users to write 'snippets' of instructions in a custom DSL, that get translated into some numeric, in the area of matrix functs, CAS, and a PDE solver.

Similar like core.logic works with clojurescript.

Thank you for sharing your experience.

It seems like Japan would benefit greatly from telecommuting. (it is a developed economy with well built telecommunication infrastructure, affinity for robotics/etc).

is there such a trend in that country?

java is definetely an option on all of the BSDs I mentioned. It just they did not have Java 11 ported to them yet.

But now since OpenJDK 11 is ported to FreeBSD, others, will follow.

Sorry if my comment was not clear.

ah, this is great news. Thank you.

I have been monitoring this since October last year. Since now freeBSD has it, other BSDs should soon pick that up.

I noticed that freeBSD is bit like a 'mothership' as far as package ports go, to the other BSDs.