« first day (3345 days earlier)      last day (46 days later) » 

6:30 AM
@JeffSchaller I don't suppose they asked for feedback before doing this?
 
 
2 hours later…
8:24 AM
@FaheemMitha We were aware of this happening.
 
8:59 AM
For anyone trying to use their ASR33 with their Raspberry Pi: github.com/hughpyle/ASR33/tree/master/rpi/kernel
 
 
3 hours later…
Tim
12:17 PM
I heard JIRA is bad
Is web UI not suitable for complicated software?
constantly changing software?
Would CLI be a better solution?
Similarly, Git's CLI vs its third party GUI frontends?
 
 
2 hours later…
2:09 PM
@FaheemMitha I think the duplicate verbiage is much better now, although I wish people were able to read and comprehend better. So many people would get offended by the "Possible duplicate of..." comment and their responses to it would often be as if the word "possible" was not in there at all
 
@Jesse_b that, and “but my question’s completely different” even though the answers apply exactly
 
Yeah I think the "Does this answer your question?" is much softer language and hopefully will reduce a lot of that
 
Yes, I’m quite happy with the change!
 
Tim
2:38 PM
Me too
From Jeremy Corbyn to Bernie Sanders
 
3:35 PM
anyone know how to find the version of dash
 
3:49 PM
@Jesse_b don't know any way; I suspect because it's not required by POSIX :)
 
@JeffSchaller Yeah everything I'm finding about it suggests using the package manager to figure it out but I'm looking for an OS agnostic method :(
 
@Jesse_b strings just gave me the directory I compiled it in, which isn't useful
(that's the only way so far I've gotten the actual version number out of it)
 
well I'm not a fan of dash anyway so I'll skip it for now
 
4:04 PM
ksh sends it's version info to stderr (n)
 
4:25 PM
Ask the package manager. On OpenBSD:

$ pkg_info -I dash
dash-0.5.10.2 Debian Almquist shell, POSIX-compliant
 
@Kusalananda: Thanks but I want to make an OS agnostic tool
I guess I could check for the existence of several package managers but I would rather just ignore dash
it sucks
 
@Jesse_b What do you need it for?
 
I'm working on a tool that will check the compatibility of commands/scripts with all available shells. Sort of like the function terdon has but more in depth
 
That's like wanting to test a random Perl statement with a Ruby, Python and Shell interpreter. Why on earth do you want to do a thing like that? Didn't the person who wrote the code know in what language they were writing?
Sorry for any perceived tone there. It's just one of those things I'm getting worked up about with shell scripting.
 
People are often trying to figure out how to make completely portable shell scripts
 
4:32 PM
Can't be done without knowing what Unix they are writing it for. Unless they only ever want to use POSIX syntax and POSIX utilities. There was a question about that recently.
If they want to write something portable, tell them to write it in a particular release of some other scripting language.
Ok, going to stop ranting now and get a cup of coffee.
Iteratively, that's how you write a portable shell script. You fix the portability issues when they arise.
Most of the time "people" is only one person, on one system, so it doesn't matter too much.
 
umadbro.jpg?
@Kusalananda want me to check if your coffee is POSIX compliant?
 
5:10 PM
@Jesse_b :-)
Coffee now consumed, and cat thoroughly patted.
 
useful use of cat
 
@Jesse_b No, just tired of seeing questions about why people's bash scripts don't seem to work when they do sh myscript.sh.
@Jesse_b Indeed.
 
well this tool can also be used to test between different versions of bash
although I'm not sure I'll actually make as much progress with it as I would like
 
@Jesse_b Now that would be a useful tool to have though.
 
@Jesse_b peanut gallery suggestion: add some sort of "expect"-like logic to it, so that "echo foo" expects "foo" as output; then the test can be quieter if the shell passes, but make noise if the test fails
 
good idea
The entire project is 2 hours old so it's extremely incomplete :p
 
5:53 PM
found an infinite loop
 
@Jesse_b have you seen that monstrosity wizardry Stéphane has written that will tell you what just about any script is written in?
 
@terdon I have not
 
I don't even know what language that is
 
@Jesse_b It's all of them. Save it as a file and then run it with an interpreter. For instance:
$ for i in perl python python2 sh dash ksh csh ; do $i which_interpreter ; done
perl 5.30.1
python 3.8.0 (default, Oct 23 2019, 18:51:26)
[GCC 9.2.0]
python 2.7.17 (default, Oct 22 2019, 09:14:09)
[GCC 9.2.0]
bash 5.0.11(1)-release
POSIX shell
ksh93 Version A 2020.0.0
tcsh 6.21.00 (Astron) 2019-05-08 (x86_64-unknown-linux) options wide,nls,dl,al,kan,sm,rh,color,filec
$ dash which_interpreter
POSIX shell
Not too helpful for dash, no. And it chokes on fish, oddly enough.
The shell, not the aquatic animal, in case that wasn't clear.
 
6:00 PM
I've choked on a fish before
 
6:14 PM
good morning, @terdon! ;)
at least I'm in good company when I do stuff like try to sort in sed
 
6:30 PM
@JeffSchaller :P
 
sorry, got my timezones wrong. I'll ping you again in 5hr 20min so that I'll be correct :)
Jesse.... (insert tsk sound) please either write an answer or ... skip the lmgtfy comment. I just edited someone else's comment to clear a flag.
 
6:48 PM
:( I don't see what's so bad about it
 
it implies "you didn't try this thing" without adding anything useful itself
If you think they didn't show enough effort, downvote (or not) & move on.
 
I disagree, it implies "You didn't try this thing" and then adds a link to several useful websites that solve their issue
 
if it solves their issue, write an answer ;)
 
It's closed
 
then wait for it to be open
 
6:50 PM
it wont be because it's a terrible question
 
agreed
but the google-link doesn't add anything to the question
it's 2 steps away from being useful: (1) it's a meta link to google results (which might vary from person to person or over time) and (2) it doesn't apply those results to this person's current problem. Yes, we don't know how far they've gotten, which is why the Q is closed, and is the way this should go until they clarify.
 
what if I did a link to a regular google search like:
http://www.google.com/search?q=linux+hello+world+script
 
@Jesse_b does it improve the question?
 
@JeffSchaller It could. It would give op the answer to half of their question so they could focus only on the other half
 
@Jesse_b you would put those words in their mouth? Assume that they know what shell to use and what commands they want in that script?
 
6:56 PM
@JeffSchaller If they properly read the related articles they would get most if not all of that information
Although anyone asking that question isn't going to read anything
 
and so ...
you post a comment (that they will or won't read) that asks how far they got and then cast a VTC as whatever-unclear-is-called-now
you ask them what it means to write something to the screen when there is potentially no screen at reboot. you ask what the message should be. but saying "google it" is (I think) not the "Stack Exchange way" of getting good Q's & A's
 
I think when someone comments and tells them to edit their question with more details and then they respond with more (really just the same) details in a comment all hope is lost for salvation of the question
 
I'm with you -- at best, this is a new user doesn't know how to write a good question. I'm just saying that we can do better with our comments
 
7:19 PM
I just have a lot of anger inside me. Dealing with terrible ISPs again
These same 5 circuits are flapping and/or going hard down every day for a week now and they closed the open tickets we had for them and 20 minutes later they went down again
 
@Jesse_b and being short-handed with bad resume's on your desk. I get it! Try 20 pushups :)
 
7:30 PM
I would rather force the owner of centurylink to do 20 pushups
 
push-up contest! Loser has to fix the circuits
 
they are notorious for closing tickets with "Don't see anything wrong on our end"
 
"no traffic -- no problem!"
 
To be fair I think we are in a war now
Every time they blow off my tickets I go through and open new tickets for the last 50 or so closed tickets
and escalate them
 
global thermonuclear ticket war
 
7:36 PM
I've gotten into similar battles with most of the ISPs we use though, two of them have tried to complain to my management about it and their response was just "Good, fix your process and you wont have this issue"
I take inspiration from the person that wrote a script that tweets @comcast every time their internet went down and it didn't take long for comcast to fix the issue
 
indeed, go with what works!
 
8:16 PM
@Jesse_b Don't think POSIX spec includes coffee, so presumably it's a BSD extension.
 
every spec includes coffee, even if you need to read between the lines
 
@Jesse_b Not true! ISO 3103 / BS 6008:1980 doesn't. :-)
 
Well next time someone tells me I'm wasting time on useless shell scripts I'll point them to the protocol on coffee pots
 
As silly as that RFC was back in the day... I bet there are at least a few "smart" coffee pots now :-/
 
8:27 PM
warning: click-baity: roastycoffee.com/smartphone/…
> Integrated with Amazon Alexa
 
I was expecting there to be maybe a dozen, then I plopped "smart coffee pot" into Amazon... and there are pages of them...
 
Back in like 2008/9 I was on a field op in the military and one of the officers had planned out the cabling diagram for the site we were on
He had planned for an ethernet drop for the coffee pot and we had to run one knowing damn well the coffee pot didn't need any ethernet connection
 
Planning for the future, I guess! Of course, I doubt any of those coffee pots have Ethernet ports either, probably all wifi or bluetooth.
 
speaking of coffee I made a cup like 15 minutes ago and it's still too hot to drink
 
I have a small fan I set blowing over my tea to get it drinkable faster. Works pretty well.
 
8:34 PM
@derobert huh! now there's a good use for this docking station's USB ports!
 
decent
 
Hah, I have an AC one, it's a bit more powerful than those USB ones... but I imagine those would help too
 
I need a small fan for my desk
Are those metal blades?!
 
@derobert holy moly, you must make some hot tea
 
@Jesse_b Yep, metal. Quieter than the plastic ones in my experience.
 
8:38 PM
I didn't think they made them anymore. What are you a rockafeller?
 
@JeffSchaller Well, it's boiling.... That fan is all of a foot tall or so, it's not one of the huge ones
@Jesse_b I got that a few years ago at Walmart :-)
 
Ok, I was thrown off by the perspective. Needs a banana for scale :)
 
All my bananas are at home...
 
@derobert: Have you considered applying to that SRE role?
 
It's nothing like the fans Costco had a few of a few years back, which were almost person height. I suspect they were designed to remove people from the store at closing time.
 
8:40 PM
hmm do I go classic or safety-be-damned?
 
and I just spilled hot coffee on my lap
 
@Jesse_b the spec definitely requires that coffee enter through your mouth
 
@JeffSchaller I would go with the widowmaker
Could be fun, you could slice carrots and such with it too
 
apparently I would have to replace the "Soft and Safety Fan Blades: Durable fan blades are made of soft plastic which will not harm anyone" with metal ones
 
@Jesse_b Yeah, or the object storage one.
@JeffSchaller "will not harm anyone" is clearly a challenge.
 
8:43 PM
Yeah the manta team is constantly growing
Would you rather only be allowed to use kali linux as your primary operating system, or you can only use fish shell as your primary shell
 
@Jesse_b Well, there are worse options. Like you could have to use Windows ME as your primary OS. I'd take Kali over than any day!
At least, as long as I don't have to answer Kali questions here.
 
heh
I've been thinking about trying to use fish shell for a week
But really I should do that with zsh because apparently it's cooler than my shell :(
 
I don't think I've tried fish. Haven't even tried zsh. Bash is... good enough.
I tried a Perl shell once, it sort of worked, but not really.
 
I ran fish, just to see it. I should switch to zsh, but I think I'll keep it as a handy tool and not as $SHELL
 
Yeah that's the way I see it. Everyone is always harping about POSIX compliance and I don't want to get spoiled by all the high speed features of zsh
although I'm already spoiled by all the low speed features of bash
Anyway @derobert: If you end up applying to either of those positions let me know and I'll message the manager of the respected department and vouch for you
Although much like the mafia if you don't work out I'll be executed
respective*?
respect.*
 
8:53 PM
*that
 
@Jesse_b I hope that means execve("/dev/jesse_b" ...) and not the guillotine
(/me now wonders if people are character or block devices)
Some of them certainly are characters, so that must be the answer.
 
some can be blockheads
(Charlie Brown, for one)
 
@JeffSchaller True. So I guess it varies by person, then.
 
The only thing with the object store position is they mostly use nodejs as a language for that platform. The compute team uses C
 
Yeah, I saw that (yeah for open source). Seems a somewhat odd choice, but I guess it's been popular for a bit.
 
9:01 PM
@derobert We used to own nodejs and still sell support for it. Also it's a pretty good language for serving web resources
 
@derobert When does your job end? Are you planning a vacation after that?
 
@FaheemMitha Jan. 15. I have a vacation planned in February already, wasn't planning on taking another...
 
Last login: Thu Nov 28 16:51:47 on ttys006
You have mail.
Welcome to fish, the friendly interactive shell
jessebutryn@JButryn-MAC-01 ~>
 
anthony@Watt:~$ fish
-bash: fish: command not found
anthony@Watt:~ [$?=127]$ go-fish
Would you like instructions (y or n)? n
You get to start.

Your hand is: A 4 8 8 J J K
You ask me for:
 
Gave up already
Had to switch back to bash
@derobert You made a go fish game?
 
9:17 PM
@Jesse_b No, it's one of the traditional ones from BSD-land
I wish I'd asked for instructions, I don't remember the rules :-(
 
I briefly thought about making a go fish game in bash after seeing that but I don't really have much desire for that
@derobert: What do you have in your ps1 to display the exit code like that? I imagine it only happens when it's != 0?
 
@Jesse_b Yes, when it's !=0 it displays and turns the prompt red
RED="\[\033[31;1m\]"
NORMAL="\[\033[0m\]"
shell_level=
[ "$SHLVL" -gt 1 ] && shell_level="($SHLVL)"
PS1_INSIDE='${debian_chroot:+($debian_chroot)}${shell_level}\u@\h:\w$bad\$ '
PS1="\$(
        retcode=\$? ;
        if [ 0 -ne \$retcode ]; then
                bad=\" [\\\$?=\$retcode]\"
                echo \"$RED$PS1_INSIDE$NORMAL\"
        else
                bad='';
                echo \"$PS1_INSIDE\";
        fi;
)"
unset RED NORMAL PS1_INSIDE
I think that's the whole block from bashrc
 
nice
 
anthony@Zia:~$ schroot -c jessie
(jessie)anthony@Zia:~$ bash
(jessie)(2)anthony@Zia:~$ perl -E 'exit 99'
(jessie)(2)anthony@Zia:~ [$?=99]$
... there's the full set of 'em. The last one is bold red.
 
black magic
 
9:28 PM
@derobert Oh, quite soon then. You could take that round-the-world trip that you've been thinking about.
 
I wasn't aware I was thinking about one!
 
Tim
hello. anyone willing to educate me about CGI?
 
@Tim as in how we wrote dynamic web pages back in the 90s?
 
@derobert You weren't? Well, perhaps it was subconscious.
 
Tim
I am reading CGI Programming with Perl in 2000. So yes @derobert
If you know about the state of art of CGI, that would be great
 
Tim
Is it correct that mod_cgi and mod_cgid stand between the pure HTTP server and the perl interpreter?
for converting betw HTTP request/response and input and output for Perl scripts?
 
They're part of the Apache HTTP server. CGI is a really simple protocol, it just just converts HTTP headers to environment variables, then executes the CGI program. Then stdout is more or less directly sent back as the response
(There are some complexities for a few things, but that's the gist)
FastCGI and SCGI are more modern versions. They have the advantage that they leave the script running, not starting a new instance per request
 
Tim
Yes they are. Is it correct that Apache web server contains several parts, and the most important part of it is a pure HTTP server, and the other parts are the two CGI modules? So I am asking if the two cgi modules stand between the pure HTTP server and perl interpreter.
Do mod_cgi and mod_cgid function like a reverse proxy server, sitting between the pure HTTP server and the perl process?
For comparison, Nginx says it can work as a reverse proxy server for a fastCGI server
 
Another modern deployment approach is to have the app provide an HTTP server, then use a frontend server to proxy to it. All of these approaches (and even good old CGI) are supported by Plack, if you're using Perl.
CGI != FastCGI.
Apache's current FastCGI module works through mod_proxy (Apache's proxy feature) as well.
I'm not exactly sure how Apache is structured internally...
From an external standpoint, its structured as a bunch of modules that work together.
httpd.apache.org/docs/2.4/developer would probably be a good place to find out how it works internally
 
Tim
In "have the app provide an HTTP server, then use a frontend server to proxy to it", is a frontend server also a HTTP server and working as a reverse proxy server?
Do you have examples for it? e.g. Python?
Java?
 
9:44 PM
yes, the frontend is normally a web server as well, nginx and apache are commonly used
HAproxy is too
 
Tim
What is an app provided HTTP server? For example?
What is the purpose of having a "frontend server" besides an app provided HTTP server?
 
It lets you do things like add and remove app servers (e.g, to upgrade the app) without taking your site down. It can also centralize things like TLS, offload static content hosting to other servers, etc.
 
Tim
Do you mean have multiple apps with their own HTTP servers, behind one frontend server, and use one in place another before taking the other down?
What is an app provided HTTP server, if I may ask? for example
 
It's normally multiple copies of the same app, and yeah, you can tell the frontend proxy "stop using app server 10", wait for the connections on server 10 to finish, and then reboot that server. All without your users being aware anything happened.
Or you can see that your site got mentioned somewhere, and quickly add more app servers (e.g., on a cloud service).
... and you can automate all of that.
@Tim Starlet and Starman are two from Perl I'm familiar with.
 
Tim
Do you know examples in Python or Java?
 
9:54 PM
http.server
 
Tim
If I may also ask, Computer Networks by Tanenbaum calls CGI an API.
Of what is CGI an API? Is CGI an API of the two cgi modules?
What calls CGI as API? Does the pure HTTP server calls CGI as an API?
 
An API is just a way computer programs "talk" to each other. So CGI is an API.
 
Tim
So does the pure HTTP server part inside Apache web server calls CGI as an API to access the two CGI modules inside the APache web server?
 
The two Apache CGI modules are part of the HTTP server (not sure what this "pure HTTP server" is, I don't think Apache has such a thing). Those two modules call an external program — the CGI — and speak to it using the CGI protocol. Which as mentioned earlier, is a fairly simple protocol.
 
9:59 PM
Since I don't work with Python, I can't tell you if Python is commonly deployed using one of the Python HTTP servers, or if it's all WSGI.
 
Tim
Thanks. In "Those two modules call an external program — the CGI — and speak to it using the CGI protocol." , by "an external program — the CGI ", do you mean the perl interpreter which runs a CGI script?
In terms of CGI being an API, what calls CGI as an API to access what? Does the two CGI modules call CGI as an API to access perl/python/... interpreter process that runs a CGI script?
 
A CGI can be any program, not just an interpreter. Writing CGIs in C used to be common enough.
The web server (under apache, that'd be mod_cgi or mod_cgid) calls the external program (via normal fork/exec)
The web server is processing a HTTP request, and it more or less forwards that request to the CGI program. Not really about "accessing" something, but it then sends the CGI's output (stdout) over the network to the web browser (or whatever HTTP client)
There are complications (e.g., Apache parses the response headers from a CGI — which are sent over stdout, in normal HTTP format, up until the first blank line, again just like HTTP)
... Apache can do special things with some of those headers. Or add its own.
 
Tim
Gracious and still mysterious
 
I sort of suspect to get the level of understanding you want, you're just going to have to write your own HTTP server. (Thankfully, HTTP/1.0 is a simple enough protocol)
 
Tim
gracias, I meant. I know little about spanish
HTTP protocol doesn't specify anything about CGI, does it?
SO that why I say pure HTTP server
i guess something outside the pure HTTP server that can invoke CGI scripts.
that something is the two CGI modules.
 
10:09 PM
No, HTTP doesn't care where the response content comes from.
 
Tim
So the pure HTTP server doesn't know to dispatching HTTP request to CGI scripts
 
Whether it comes from the filesystem, is generated on-the-fly, or pops up a message on screen demanding the operator type a reply... is beyond the scope of HTTP
(HTTP as currently understood, I wouldn't be surprised if the the HTTP/1.0 standard is clearly thinking of it coming from a filesystem. That's a standard from 1991.)
 
Tim
So I guess the two CGI modules sit between the pure HTTP server part and the perl process?
the two CGI modules work like a reverse proxy server?
 
@Tim I guess if you want to view it conceptually like that, sure. I have no idea if that's how it's actually implemented, though.
@Tim I very much doubt they function as proxy servers.
 
Tim
Nginx says it can work as a reverse proxy server for a fast CGI server. So I guess that.
 
10:14 PM
Again, FastCGI ≠ CGI
 
Tim
same except fastCGI reuse the perl interpreter process?
CGI create a new Perl interpreter process for each requet?
 
FastCGI leaves a Perl process running, and that Perl process handles multiple requests. CGI programs are for a single request. A FastCGI server is much closer to an HTTP server
BTW: As to a "pure" HTTP server, HTTP requests "/foo" from your server. It's entirely up to your server how it generates a response for "/foo". If it's purely HTTP... then it has no response. Whatever response it generates is beyond what HTTP specifies. HTTP tells you how to format that response over network connections, it doesn't tell you what the content is—or where that content comes from.
 
Tim
Do you mean the pure HTTP server doesn't fetch an existing file from its filesystem?
That is beyond HTTP protocol?
 
Yep. That's beyond the HTTP protocol.
 
Tim
Is it correct that a FastCGI server is the perl process that is being reused?
 
10:20 PM
Yes (though it doesn't have to be Perl, of course.)
 
Tim
That is my guess 2.
If I may still ask, what calls CGI as an API to access what?
- The pure HTTP server calls CGI as an API to access the two CGI modules?
- or THe two CGI modules call CGI as an API to access the perl/python interpreter process which runs a CGI script?
I am trying to picture where CGI as an API is in:
Pure HTTP server <-> the two CGI modules <-> Perl/Python process running a CGI script
 
The second one, if I'm understanding right. The two Apache CGI modules (one or the other is used, not both) call the perl/python interpreter.
 
Tim
As a programmer who writes CGI script, is it correct that we don't use CGI as an API?
 
Is this an acceptable edit?
 
The protocol the CGI module "speaks" to the perl/python/etc. program is called "CGI". So, too, normally is the perl/python/etc. program. So that can be a bit confusing.
@Tim The script also speaks the CGI protocol/API. Both sides have to speak the same protocol/API or it won't work.
 
Tim
10:26 PM
In CGI scripts, is there any call to library functions that CGI protocol/API provides?
 
@Jesse_b I guess normally translating would be, but that looks like a comment-as-an-answer
Or a thanks as an answer
 
@derobert Yeah I flagged it as not an answer as well
Just figured I would save other people the time of dropping it in google translate
 
@Tim Normally CGI scripts have library functions they use to make speaking the CGI protocol easier. Or to make generating HTML easier. Your ancient book probably knows about CGI.pm.
 
Tim
Thanks. I will think about it
 
Someone should make an awk shell
 
10:39 PM
@Jesse_b Probably this is a better translation. But that is not an answer, its only a comment, maybe a thanks, definitively "not an answer".
 
Thanks. And this is not the greatest song in the world, this is just a tribute
 
11:07 PM
@Jesse_b me and Kyle, we looked at each other.
 
I wonder how often the "I'm feeling lucky" button gets used on google. Personally I don't think I've ever once used it
 
11:28 PM
@Jesse_b you just aren't lucky enough. xkcd.com/692
 
It just seems like a pointless feature. It's a novelty at best. If you can have options to choose from why would you ever choose not to have options?
Google takes pride in having a very simplistic search page so that extra button is just pointless clutter
 
@Jesse_b reminds me of "the answer is not more options".
 
I'm sure google wishes they can convince the world of that. They would love it if they could get everyone to click on their sponsored ads instead of actual results
 
@Jesse_b simplistic search page? Have you tried viewing the source?
 
simplistic to the user
it's the key to their success
 

« first day (3345 days earlier)      last day (46 days later) »