uudecode
I sometimes think Apple removed /dev/tap from iOS because it provided too much potential freedom.
Not every user needs in-kernel performance for their daily routine but there's certainly an argument that every user could use a decent "VPN" that could run on all their computers.
Alas, OpenVPN mindshare is rather strong, to the detriment of existing or future userspace alternatives.
socat readline,history=file exec:qExcept my lack of creativity using k at this point.
Thanks for this.
As a k noob, I wonder: is thinking of solutions using iteration and control structures a bad habit, at least until I have command of the rest of the language?
Currently I'm using recordio to save my sessions; crude, but it works well enough:
recordio q 2>logWould the k community appreciate this as useful, pragmatic solution?
I am a BSD /emul/linux, /bin/sh, vi-mode, ESC / user. I need searchable commandline history for q)k) and I really do not like rlwrap as a solution.
sources:
http://kx.com/q/c/c/ http://raw.githubusercontent.com/antirez/linenoise/master/li... http://raw.githubusercontent.com/antirez/linenoise/master/li...
Great work.
(This project relies on keystone and capstone.)
In fact, "amphtml" is the first link on the page. Follow this link to see the full article.
However the /amp URL does not retrieve comments like the URL you posted.
Today, people can, in theory, choose from among billions of peers to form these small groups. And the groups can if they so choose connect with each other, via a network of networks.
This internet "connects billions of people". True. But your company's LAN probably does not connect that many.
If a user started creating numerous fake identities on the LAN, then it's likely she would be detected.
Is it possible to create distributed "LANs" over the internet? (rhetorical question)
Another commenter questioned why a distributed Web needs "lack of trust".
People in small groups can and do trust each other. No computers are needed to make this happen.
If a system forces all users to be part of some large, Borg-like, distributed hash table, or ledger, then by my definition it's not "fully decentralized".
I thought the same when they invested in "Facebook" and gave some kid with a website 17M or so.
And then when they overpaid for Skype.
I would not say "probably" any more. They are buying users. Maybe it's the only way they can stay in the game.
(No Perl, Python, Ruby, Go, etc.)
I tried this when I first experimented with AWS after I read the story behind it, i.e., the directive Bezos allegedly gave to disparate groups within Amazon to make their data stores accessible to each other.
The AWS documentation claimed everything could be controlled via HTTP. Great. I know HTTP. Sign me up.
I have no trouble interacting with servers via HTTP using the Bourne shell and UNIX utilities, without using large scripting languages. I have been doing so for many years.
But after a few hours trying to get AWS to work using UNIX it was such a PITA I gave up. And I do not give up easily.
But it turned out there were small errors in the documentation, so even if one followed their specification to the letter, things still would not work.
The Amazon developers in the help forums would just say use the Java programs they had written.
Of course AMZN had a "web interface" from Day 1. But I have little interest in another hosting company with a web GUI.
At the time all Amazon offered for anyone interested in the command line was Java. Installing OpenJDK and a hefty set of "Java command line tools" just to send HTTP requests? This did not inspire confidence.
Then came Python. Everyone loves AWS. How can anyone criticize it?
I concluded that if AWS was well-designed (according to Bezos alleged directive) then it would be possible to interact with it without having to use a large scripting language and various libraries.
I guess I am either too stupid or I set the bar too high.
AWS, as I understood it back then (before the massive growth), is a wonderful idea but I am not sure the implementation was/is as wonderful as the idea.
Instead of making several versions, each with with more features, only one version is made that contains all possible features.
Whether they are turned on or off is what correlates with the "model" and the price.
Turn features off and sell as "basic" model. Turn features on and sell as "pro" model.
In this story, turning on features correlates with whether the customer has deep pockets and consistently buys in large quantities.
Open to interpretation but that's my take. You use the word "elegance" and I think that's the idea. Alas, software usually does not "evolve" toward elegance.
tr -h | wc
I wish more programmers thought like McIlroy. Good taste is rare in programming. He has it.
LAN parties were implementations "instant messaging", "VOIP","video conferencing" and maybe some other things I'm omitting. Before these things even had a "market".
Gamers solved all these challenges when the web was still a blatently crude hack and the internet was dog slow by today's standards.
Then they successfully and reliably pierced NAT to play games over the internet. Even when the internet was painfully slow. Before Napster, before Bittorrent, before Kazaa/Skype, etc.
Others outside of gaming seemed to be struggling with coming up with solutions for these basic but obviously valuable "services". There is a wasteland of failed/abandoned "VOIP" projects from the 90's that still boggles my mind.
Except for some well-funded research labs, gamers did it first. LAN over internet. (Ethernet frames in UDP packets.) It might be ugly to some people, but it does work.
Now, I will let you all tell me how my opinion is misinformed.
OK, so it just so happens this is what I love to do. I like writing small programs and continually trying to improve them.
So I guess I should be a UNIX user?
Is NT not good for this too?
BTW, I do like VMS. But despite the NT kernel, using NT feels nothing like using VMS.
Are you implying that an increase in "power" can never be achieved through increasing simplicity?
e.g., run a single k interpeter on each CPU, then divide and conquer
Isn't it faster to do parsing in memory and avoid I/O wherever possible?