Erlang: Easy and fast creation of web service with Cowboy and ZX
The path from an empty directory to a minimally working web server you can start playing with is not always straight forward, and for newcomers to Erlang in particular the traditional "Erlang release" concept can be a bit of a stumbling block. ZX brings a workflow more familiar to modern developers to the Erlang world and Cowboy is a popular, modern, and battle-tested webserver that fully implements http1, http2, spdy, websockets, etc. Together the combination is fantastic, whether you are familiar with Cowboy already or are just trying to figure out how to get your first Erlang web project up and running.
To install ZX you require an Erlang runtime on your system, visit this page:
https://zxq9.com/projects/zomp/qs.install.en.html
The one-liner install method for unix-type systems is very quick and easy.
The demonstration is performed on a unix-type system. ZX does work on Windows, but development is a bit more cumbersome on Windows, so be aware.
27
views
Erlang: How to create an Aternity blockchain project with Cowboy and zx
Blockchain tooling can be pretty confusing and tends to suffer a strange situation where the blockchains with the most utility often have the worst tooling and interop libraries. The tooling necessary to connect to the Aeternity blockchain happens to be very easy to get working with Erlang using ZX, however.
In this demo we continue on from the previous video (creating a Cowboy web service using ZX, here https://rumble.com/v2xvn0k ) and extend that to adding the ability to talk with the Aeternity blockchain.
18
views
Aegora.jp: CRYPTO? OMG! Buy REAL THINGS with CRYPTO NOW?!?
Ah... clickbait style video title glory... This is actually a straightforward video with no hype to it. But it is true: There is a real marketplace now where you can use crypto directly on chain as a payment method -- and the process is arguably smoother than Visa (and the site fees are only 2% compared with 13~20% for eBay/PayPal). Also, sorry about the audio -- sounds like I'm in a can!
Aegora.jp is the first boringly ordinary person-to-person sales site that uses a #cryptocurrency (#Aeternity ticker #AE) governed through smart contracts, as its primary payment method rather than Visa/PayPal/etc. No NFTs, no "digital assets", no hype. All trades are completely on-chain, for real tangible items, and the negotiation is left up to the sellers and buyers.
Mainnet site: https://aegora.jp
Testnet site: https://testnet.aegora.jp
Testnet faucet: https://faucet.aepps.com
As for actually buying AE and getting them out of those creepy exchanges and onto the chain for real, so far we have had the best experience using Gate.io -- if something takes too long, open a support ticket and they will actually get to your issue right away (yes, actual support people doing support things -- what a wild concept).
More tutorials, explainers, howtos, help articles, etc. are planned but as the site just went public on Thursday this is an early first look and can act as an English-language demo/howto for early adopters to understand how it works and discover where they can find the testnet version of it to play around and figure things out for themselves. The site will be changing rapidly over the next few weeks to improve discoverability, but the minimum feature set is fairly small and easy to comprehend after a few minutes poking around the testnet site.
As a side note, the backend is implemented entirely in Erlang, and the backend libraries necessary to communicate with the chain (aka "Vanillae.erl") and the in-page code necessary to communicate with the wallet (aka "Sidekick") are open source, though not packaged nicely yet.
13
views
How to Browse ZX/Erlang Source Code Files on Windows
Development on Windows in any other environment than Microsoft Visual Studio/Code/Whatever is a major pain in the ass. For this reason Erlang development is almost exclusively a Unix game (typically Linux or OSX), but development/packaging tools like ZX and GUI launching tools like Vapor make cross-platform packaging and execution of Erlang code on Windows easy. If, however, you are trapped on Windows for whatever reason and you want to explore and tinker with the Erlang source code of an existing ZX-based program on Windows, you still can. This video shows you how.
284
views
November 3, 2021, San Diego, County Board of Supervisors meeting. Dr Youngblood MD
Dr. Youngblood's presentation to the San Diego County Board of Supervisors regarding the nonsensical situation surrounding the COVID vaccines and arguing for patient autonomy.
10
views
What use are peaceful protests?!? (Short version)
What use are peaceful protests if the "root of negotiation is the mutual capacity for violence"?
This is a question I have been asked quite a lot over the last two years and has increasingly become a theme of its own ever since the Australian protests and last weekend's eruption of Europe-wide protests appeared to achieve nothing in terms of policy changes.
In this video I explain what protests really are and in turn what they achieve in the context of negotiation and the mutual capacity for violence. This video is a short-ish take that stays pretty much on topic and avoids digression. A more extended discussion can be found here: https://rumble.com/vpphf1
Some people want me to digress endlessly, some want me to get to the point, so I'm trying both approaches to see what sticks.
Reference "Geopol: Mutual capacity for violence is the root of negotiation": https://rumble.com/vei3dh
30
views
What use are peaceful protests?!? (Long version)
What use are peaceful protests if the "root of negotiation is the mutual capacity for violence"?
This is a question I have been asked quite a lot over the last two years and has increasingly become a theme of its own ever since the Australian protests and last weekend's eruption of Europe-wide protests appeared to achieve nothing in terms of policy changes.
In this video I explain what protests really are and in turn what they achieve in the context of negotiation and the mutual capacity for violence. This video is a long-ish first take and I allow myself to wander to peripherally related subjects a bit (but it doubles the length of the video). I'll be posting a shorter take next. Some people want me to digress endlessly, some want me to get to the point, so I'm trying both approaches to see what sticks.
Reference "Geopol: Mutual capacity for violence is the root of negotiation": https://rumble.com/vei3dh
33
views
In Search of the Next Ice Age - Leonard Nimoy (1978)
A 1978 video warning about Global Cooling and the inevitable global freeze that may spring on humanity at any moment.
Archived for reference.
112
views
CCP: We Have No Plan!
The CCP seems to be turning from its prepared return to Maoism and onto the path of having no real plan at all but putting a happy face on troubles that quite clearly risk collapse.
SerpentZA's video about the Maoist editorial:
https://odysee.com/@serpentza:5/breaking-did-china-just-declare-war:8
CCP editorial (pro Maoist): "Everyone can feel that a profound change is underway!"
http://www.news.cn/politics/2021-08/29/c_1127807097.htm
Review of CCP editorial rebuttial (pro market fascism):
https://uscnpm.org/2021/09/03/breaking-down-hu-xijins-challenge-to-li-guangmans-dazibao/
97
views
2
comments
Questions to the Echelons Above Reality about the Afghanistan debacle from a Marine LTC
Lt. Col. Stuart Scheller has some pointed questions for U.S. military leadership.
Seems he has already been fired. Situation is still unfolding as of 2021-08-28
34
views
Geopol: How Geography Shapes the Drug War
BitChute link: https://www.bitchute.com/video/06c13vTml27Y/
A brief review of the illicit drug industry from the 1980's through today, how geography and political influence shaped the early drug war, how geography and the fall of the main Colombian cartels handed the Mexican over-land traffickers a massive opportunity, some of the social, political and economic side effects of drug prohibition in the United States, and a recommendation of how the situation could be diffused (though with no expectation this will ever be implemented).
102
views
Geopol: MAD (Mutual Assured Destruction) predicts ideological conflict
Previous video: https://rumble.com/vep2l3-geopol-us-nuclear-parity-with-china.html
A follow up to the previous video about nuclear parity, this video discusses the way that the MAD policy necessarily leads to ideological conflict as it limits the utility of other forms of direct conflict.
Very closely related: https://rumble.com/vbh6vf-yuri-bezmenov-ideological-subversion.html
41
views
Geopol: US nuclear parity with China?
Will CCP China achieve nuclear parity with the US soon? Well, it's complicated. In this video I talk through some of the factors that have to be taken into account when assessing nuclear parity and the balance of risks and utility involved with possessing nuclear weapons.
Follow up: https://rumble.com/vep3vr-geopol-mad-mutual-assured-destruction-predicts-ideological-conflict.html
171
views
Geopol: Mutual capacity for violence is the root of negotiation
This video addresses violence as the root of negotiation, how that allows trust patterns to emerge, aggression signals convert to trust signals, and from there the foundations of civil society are laid.
564
views
Geopol: How moral responsibility maps to the consciousness spectrum
(Didn't have a camera so this video is more podcast style.)
Morality can only be applied to conscious entities. Consciousness exists on a spectrum that ramps up to individual humans at the peak and then declines again the larger an organization composed of humans becomes. I discuss how morality maps to the consciousness spectrum to explain why so many political arguments are fallacious, dishonest distractions crafted to confuse the public.
Locals: https://zxq9.locals.com
SubscribeStar: https://www.subscribestar.com/zxq9
Website: https://zxq9.com
BitChute: https://www.bitchute.com/channel/zxq9/
Rumble: https://rumble.com/user/zxq9
YouTube: https://www.youtube.com/channel/UCMnRVG50iFEpkgbUu1mZrMA
Buy me a coffee: https://www.buymeacoffee.com/zxq9
86
views
Pol: Representative government, voting, and issues with discovering the will of the people
This video was prompted by a video by Styxhexenhammer666 yesterday about the Vermont legislature deciding to double down on mail-in voting and thereby ensuring perpetual election fraud.
Styx's video: https://rumble.com/verucj-vermont-seeks-to-permanently-abolish-fair-elections-and-codify-universal-ma.html
How to find me:
Locals: https://zxq9.locals.com
SubscribeStar: https://www.subscribestar.com/zxq9
Website: https://zxq9.com
BitChute: https://www.bitchute.com/channel/eMzIGaZLvMNx/
Rumble: https://rumble.com/user/zxq9
YouTube: https://www.youtube.com/channel/UCMnRVG50iFEpkgbUu1mZrMA
74
views
Censorship: Attack of the twits!
I've been suspended (really a soft ban) from Twitter for an hilariously stupid reason. This is a good opportunity to discuss the mechanics of it as well as what it means in terms of tech-that-gets-big changing its intentions over time (another example of the general rule "capacity informs intent").
62
views
Social Trust: Why crypto, blockchain and smart contracts will not change the world
A quick discussion about the limits of blockchain technology in the face of a chronic deficit in social trust systems. This is only a quick one, so I don't get too deep into the nature of trust itself or the problems that arise in different types of trust networks. Bottom line: being a good faith actor, at least locally, is our only way forward.
480
views
Erlang: Telnet Chat Server Part 2! Creating Channels! (aka "more cheating with ZX")
Repo: https://gitlab.com/zxq9/trash_talk
ZX docs: https://zxq9.com/projects/zomp
Part 1: https://rumble.com/ve8h9r
This is a follow up video to the original basic telnet echo chat server video. In this video we take the originally templated echo chat service (where all users see every message) and implement chat channels and a few commands as a new service within the application.
33
views
Erlang: Telnet Chat Server Part 1! Getting the basics out from scratch (cheating with ZX)
Repo: https://gitlab.com/zxq9/trash_talk
ZX docs: https://zxq9.com/projects/zomp
Part 2: https://rumble.com/ve8ilt
Explanation of how to use ZX to create a simple telnet chat server (extremely easy) and then explanation of what exactly is going on inside, why applications are structured the way they are, and toward the end homes in on how the client socket handlers are receiving data from the system and how and where we would start introducing more interesting behaviors such as chat commands and chat channels.
Reference post for the "Service ⇒ Worker" pattern mentioned a few times in the video above:
https://zxq9.com/archives/1311
142
views
Erlang: Dispatching closures (OOP style object implementation in FP)
A talk-through of a tutorial example of how classes and objects work by implementing them in a functional language (in this case Erlang, but it could be any other language just as well) and a discussion of why functional languages typically lack the keyword "class" entirely.
Original blog post here: https://zxq9.com/archives/1838
GitLab snippet of the code in the video: https://gitlab.com/-/snippets/2018486
"Objects are a poor man's closures!" (OOPsy coders hate it when I say that...)
209
views
Erlang: FizzBuzz in Python vs Erlang -- a discussion about conditionals
In this video I use the (in)famous FizzBuzz interview coding test as a platform for discussing the difference between traditional if/else if/else style imperative conditionals and Erlang's rather different concept of matching and guards to determine which way code should branch.
40
views
Erlang: Writing a Tetris clone Part 3 - Gameplay rules, final features, and deployment
Repo: https://gitlab.com/zxq9/erltris
Explanation of an Erlang implementation of the classic puzzle game Tetris as a client-side GUI application using wxWidgets and ZX. In this video I explain how the final gameplay rules and features are implemented, and briefly discuss how the game can be deployed using ZX, Zomp and Vapor.
31
views
Erlang: Writing a Tetris clone Part 2 - Gameplay mechanics
Repo: https://gitlab.com/zxq9/erltris
Blog post: https://zxq9.com/archives/1886
Explanation of an Erlang implementation of the classic puzzle game Tetris as a client-side GUI application using wxWidgets and ZX. In this video I explain how the gameplay mechanics are implemented for movement and rotation of a game piece, board locking, line clearing, board compacting and so on.
(PS: I failed to mention something really important that I had intended to cover here -- how to handle input from the GUI! Whoops! I cover this in the blog post linked above and will touch on it in the next video. Like so much of programming, it's one of those things that isn't at all hard to do but if you don't know what is going on in wxErlang it can be a real mystery to figure out for yourself. Pretty important!)
51
views
Erlang: Writing a Tetris clone Part 1 - Data types and basic GUI display
Repo: https://gitlab.com/zxq9/erltris
Blog post: https://zxq9.com/archives/1882
Explanation of an Erlang implementation of the classic puzzle game Tetris as a client-side GUI application using wxWidgets and ZX. In this video we discuss how I started the project initially, and walk through the first few commits where I establish the most important parts of the game data as abstract data types and demonstrate to myself that we can effectively render them to the screen in a way that isn't too terribly ugly.
102
views