The Intellectual Wilderness There is nothing more useless than doing efficiently that which should not be done at all.

2021.05.4 17:56

Tsuriai: Now engaging in smart contract work

I never thought I’d see the day, but Tsuriai (the tiny Japanese software company I work for) is now in the Ethereum smart contract market as a developer — which means I am now in that same market.

Need a smart contract or blockchain/IPFS-based project developers/consultants/educators*?
Just shoot the office an email at info@tsuriai.jp and they’ll hook you up.
They can even accept payment in ETH now, which makes it a lot easier to contract from overseas.

What a world!

[*Or, as always, Erlang developers or consultants, distributed systems analysis, and pretty much any other BEAM-related services, education or assistance!]

It is pretty well known that I don’t think smart contracts are going to save the world from itself because the problems in the US, Europe and China have everything to do with violations of social trust by government and lack of faith in people among the people themselves (as well as lack of faith in culture and tradition), but… smart contracts actually are kind of fun to write and our workflow is pretty darn fast.

There are clear use cases that fit the Ethereum-style computing paradigm and even some that clearly benefit from deployment on something like IPFS rather than a traditional server back end, and we can talk the client through the pros and cons. I suppose the most common thing to want to implement is NFTs at the moment, and some forms of NFTs (especially distributed name registry systems <hint!> <hint!>) are clearly extremely valuable solutions to otherwise difficult to administer problems.

2021.04.30 09:10

Valgrind “Hello, World!”: Python 3.6 VS Python 2.7 VS Erlang R23

I’ll just leave this here…

Python 3.6

ceverett@icecream:~/Code/python$ cat hello.py
#! /usr/bin/python3

print("Hello, world!")
ceverett@icecream:~/Code/python$ ./hello.py
Hello, world!
ceverett@icecream:~/Code/python$ valgrind ./hello.py
...
==19264== HEAP SUMMARY:
==19264==     in use at exit: 320,946 bytes in 166 blocks
==19264==   total heap usage: 1,698 allocs, 1,532 frees, 2,505,946 bytes allocated
==19264== 
==19264== LEAK SUMMARY:
==19264==    definitely lost: 0 bytes in 0 blocks
==19264==    indirectly lost: 0 bytes in 0 blocks
==19264==      possibly lost: 5,608 bytes in 10 blocks
==19264==    still reachable: 315,338 bytes in 156 blocks
==19264==         suppressed: 0 bytes in 0 blocks
...
==19264== ERROR SUMMARY: 8163 errors from 116 contexts (suppressed: 0 from 0)
ceverett@icecream:~/Code/python$

Python 2.7

ceverett@icecream:~/Code/python$ cat hello2.py 
#! /usr/bin/python

print "Hello, world!"
ceverett@icecream:~/Code/python$ ./hello2.py
Hello, world!
ceverett@icecream:~/Code/python$ valgrind ./hello2.py
...
==19416== HEAP SUMMARY:
==19416==     in use at exit: 417,246 bytes in 199 blocks
==19416==   total heap usage: 2,958 allocs, 2,759 frees, 3,085,205 bytes allocated
==19416== 
==19416== LEAK SUMMARY:
==19416==    definitely lost: 0 bytes in 0 blocks
==19416==    indirectly lost: 0 bytes in 0 blocks
==19416==      possibly lost: 528 bytes in 1 blocks
==19416==    still reachable: 416,718 bytes in 198 blocks
==19416==         suppressed: 0 bytes in 0 blocks
...
==19416== ERROR SUMMARY: 489 errors from 30 contexts (suppressed: 0 from 0)
ceverett@icecream:~/Code/python$

Erlang R23

(On this one I can include the entire output.)

ceverett@icecream:~/Code/erlang$ cat hello_world 
#! /usr/bin/env escript

% Example of an escript
-mode(compile).

main(_) ->
    ok = io:setopts([{encoding, unicode}]),
    io:format("Hello, world!~n").
ceverett@icecream:~/Code/erlang$ ./hello_world 
Hello, world!
ceverett@icecream:~/Code/erlang$ valgrind ./hello_world
==25872== Memcheck, a memory error detector
==25872== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==25872== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==25872== Command: ./hello_world
==25872== 
Hello, world!
ceverett@icecream:~/Code/erlang$

Hey, Python! What the actual fsck is going on here?!? Jeebus… The Good Idea Fairy came along and convinced the webtarded among you to start throwing kitchen sink features in (“walrus operator” — yeah, great idea, that, and totally worth losing the sober guidance of Guido over…) along with 8163 memory errors. Sweet! Oh how far the great have fallen…

Honorable mention: Ruby 2.5

I didn’t expect much better from Ruby as the Good Idea Fairy has been forwarding all xer mail there for years, but wow… just wow

ceverett@icecream:~/Code/ruby$ cat hello_world.rb 
#! /usr/bin/ruby

print "Hello, World!\n"
ceverett@icecream:~/Code/ruby$ ./hello_world.rb 
Hello, World!
ceverett@icecream:~/Code/ruby$ valgrind ./hello_world.rb
...
==27051== HEAP SUMMARY:
==27051==     in use at exit: 2,921,234 bytes in 20,690 blocks
==27051==   total heap usage: 65,312 allocs, 44,622 frees, 16,447,358 bytes allocated
==27051== 
==27051== LEAK SUMMARY:
==27051==    definitely lost: 385,479 bytes in 4,421 blocks
==27051==    indirectly lost: 640,953 bytes in 5,808 blocks
==27051==      possibly lost: 1,626,429 bytes in 9,663 blocks
==27051==    still reachable: 268,373 bytes in 798 blocks
==27051==         suppressed: 0 bytes in 0 blocks
...
==27051== ERROR SUMMARY: 162050 errors from 402 contexts (suppressed: 0 from 0)
ceverett@icecream:~/Code/ruby$

162,050 memory errors. For Hello, World. How can there even be 162,050 instructions in the resulting set of commands to the system?

2021.04.6 16:37

Random: T’Challa’s Song

Filed under: Overlooked Resources,Society — Tags: , , , — zxq9 @ 16:37

Once upon a time, a student asked his music teacher the most difficult philosophical question in all of music and received wisdom.

T’Challa: “Teacher, there are so many instruments to pick from, which one is the best?”
Mrs. Ngudu: “Which is the best? You are the best instrument, T’Challa. All the music comes from you! Do you understand?”
T’Challa: “I think so…”

What he did with this wisdom was… novel.

Mrs. Ngudu

The principal

T’Challa’s cousin…

As a teacher you never know to what heights or in what manner your students may someday soar.

2021.04.5 20:25

Erlang: Socket experiments preliminary to writing a web server from scratch

Filed under: Computing,Science & Tech — Tags: , , , , , , , — zxq9 @ 20:25

A relative newcomer to networking in Erlang, Dr. Ajay Kumar, has started a self-educational project to create a web server from scratch in Erlang to give himself some first-hand insight into how TCP sockets work in Erlang and how web servers work in general. Web servers are a thing almost everyone has written against or for, but few have tried to implement on their own because socket programming sounds scary and time consuming to learn.

This video is quite short but incidentally demonstrates how not scary socket programming is and how easy it is to experiment with networking concepts on your own. Go experiment! Write networky things! It’s fun!

As an aside to this… I have a two-part explanation video that explains everything that is going on inside the service at he is basing his web server on. In the first part I explain what is going on within the default chat server that ZX templates as a network service project (kind of slow, covers basics for Erlang and ZX newcomers), and in the second part I explain how I used that as a basis for creating a telnet chat service that implements global shouts, channels, permissions, and other basic features needed for a real chat service (a bit better paced if you already know your way around Erlang and discusses some higher-level concepts such as service structure and the “service -> worker pattern“).

Pol: Representative government, voting, and issues with discovering the will of the people

A discussion about voting, representation, and discovering the will of the people.

Watch on Rumble or BitChute.

Geopol: MAD (Mutually Assured Destruction) Predicts Ideological Conflict

A discussion about how the policy of MAD between major powers prevents direct overt competition, and when given a lack of intermediate means of conflict exists conflict will instead manifest through subterfuge, subversion and ideological conflict.

Watch on Rumble or BitChute.

Geopol: US Nuclear Parity With China?

This video discusses nuclear parity, what it means, and how the situation between China and the US shape our thinking about this issue.

Watch on Rumble or BitChute.

Censorship: Attack of the Twits!

Filed under: Politics / Geopolitics,Society — Tags: , , — zxq9 @ 12:26

The story of how I left Twitter. Pretty ridiculous, but in 2021 the line that defines Poe’s Law is long gone in the rear-view mirror for the majority of the English speaking world.

Watch it on Rumble or BitChute.

2021.03.11 17:11

Geopol: How moral responsibility maps to the consciousness spectrum

Continuing on with the foundations of geopolitics (and this one is also part of the foundations of general moral philosophy — but I’ll get into that later), this video discusses consciousness as a spectrum and how moral responsibility maps to that. This particular video is podcast style with just a still image over it as I didn’t have a camera or any interesting B-roll to illustrate it with.

Watch on Rumble or BitChute.

Geopol: Mutual capacity for violence is the root of negotiation

Misunderstandings about the root of political interaction has come up repeatedly lately so I’ve decided to do a few videos that discuss the roots of geopolitics. In the video below I discuss how the mutual capacity for violence is the root and essence of negotiation.

Older Posts »

Powered by WordPress