Good afternoon everyone. I've been thinking about the color/contrast landscape of computing today and have a bit of a nebulous quandary that I wonder if anyone would have some insight on.
So terminals, they started as typewriters with extra steps, a white piece of paper on a reel being stamped with dark ink to provide feedback from the machine. When video terminals hit the market, the display was a black screen with white, orange, green, or whatever other color of phosphor they bothered to smear on the surface of the tube. Presumably this display style was chosen as on a CRT, you're only lighting phosphor where there is actually an image, unlike the LCD screens of today. So there was a complete contrast shift from dark letters on white paper to light letters on an otherwise unlit pane of glass.
Step forward to graphical systems and windows on the Alto? Light background with dark text.
Windows on the Macintosh? Light background with dark text.
Windows on MS Windows? Light backgrounds with dark text.
Default HTML rendering in browsers? Light backgrounds with dark text.
Fast forward to today, and it seems that dark themes are all the rage, light characters on an otherwise dark background. This would've made so much sense during the CRT era as every part of the screen representing a black pixel is getting no drawing, but when CRTs were king, the predominant visual style was dark on light, like a piece of paper, rather than light on dark, like a video terminal. Now in the day and age of LCDs, where every pixel is on regardless, now we're finally flipping the script and putting light characters on dark backgrounds, long after any hardware benefit (that I'm aware of) would be attained by minimizing the amount of "lit surface" on the screen.
Anyone know if this has all been coincidental or if the decision for graphical user interfaces and such to predominantly use white/light colors for backgrounds was a relatively intentional measure around the industry? Or is it really just that that's how Xerox's system looked and it was all domino effect after that? At the end of the day I'm really just finding myself puzzling why computing jumped into the minimalism seen on terminal screens, keeping from driving CRTs super hard but then when GUIs first started appearing, they didn't just organically align with what was the most efficient for a CRT. I recognize this is based largely in subjective views of how something should look too, so not really expecting a "Person XYZ authoritatively decided on <date> that GUI elements shall overwhelmingly only be dark on light", just some thoughts on how we got going down this path with color schemes in computing. Thanks all!
- Matt G.
Apologies to TUHS - other than please don't think Fortran did not impact
UNIX and its peers. We owe that community our jobs, and for creating the
market in that we all would build systems and eventually improve.
Note: I'm CCing COFF - you want to continue this...
On Mon, Jun 12, 2023 at 5:39 PM G. Branden Robinson <
g.branden.robinson(a)gmail.com> wrote:
> It's an ill wind that blows a Fortran runtime using the same convention.
>
Be careful there, weedhopper ... Fortran gave a lot to computing
(including UNIX) and frankly still does. I did not write have too much
Fortran as a professional (mostly early in my career), but I did spent 50+
years ensuring that the results of the Fortran compiler ran >>really well<<
on the systems I built. As a former collegiate of Paul W and I once said,
"*Any computer executive that does not take Fortran seriously will not have
their job very long.* It pays our salary."
It's still the #1 language for science [its also not the same language my
Father learned in the late 50s/early 60s, much less the one I learned 15
years later - check out: In what type of work is the Fortran Programming
Language most used today
<https://www.quora.com/In-what-type-of-work-is-the-Fortran-programming-langu…>
, Is Fortran still alive
<https://www.quora.com/Is-Fortran-still-alive/answer/Clem-Cole>, Is Fortran
obsolete <https://www.quora.com/Is-Fortran-obsolete/answer/Clem-Cole>
FWIW: These days, the Intel Fortran compiler (and eventually the LLVM one,
which Intel is the primary developer), calls the C/C++ common runtime for
support. Most libraries are written in C, C++, (or assembler in some very
special cases) - so now it's C that keeps Fortran alive. But "in the
beginning" it was all about Fortran because that paid the bills then and
still does today.
ᐧ
Sorry this is very tangential to the list but figured some folks here might have some knowledge just what with our proximity to Western Electric lore by way of UNIX. Still, didn't feel UNIX-y at all so COFF instead of TUHS.
Anywho, spotted something particularly interesting in my rounds of checking for eBay postings: https://www.ebay.com/itm/385635333789?hash=item59c9a8369d:g:8TMAAOSw3kJkblS…
After the link is an auction for a police badge, with the word "Police" on it, but also labeled as "Western Electric, Co.", along with the seal of North Carolina. I did a bit of searching and while I could find plenty of WECo badges labeled security, plant protection, etc. I can't find any others specifically using the word "Police". The latter term has governmental implications that other terms do not, and it's got me kinda curious if there was ever a time WECo or the Bell System at large actually had authority from the government to accredit their own personnel as "police" and not simply as security, guards, etc. and what sort of legal statutes would be involved. I'm not interested in purchasing this either way, but it'd be amusing if this is some facsimile, I don't know that reporting it as such would bubble up through eBay's systems though.
Also given the sensitivity of discussions of law enforcement these days, I'm simply interested in whether there is any accessible documentation or history of WECo and/or Bell's relationship with formal U.S. law enforcement agencies, not any discussion on the propriety of this. If you want to chat philosophy, email me privately, but that sort of public discussion is too sensitive for me to want to wade into in mixed company.
- Matt G.
Useful Shell Scripts Network Connections , Logins and
*Block hacking attempts*
[image: image.png]
#1. See how many remote IPs are connecting to the machine
See how many remote IPs are connecting to the local machine (whether
through ssh or web or ftp ) Use netstat — atn to view the status of all
connections on the machine, — a to view all, -T Display only tcp connection
information, ≤ n Display in numeric format Local Address (the fourth column
is the IP and port information of the machine) Foreign Address (the fifth
column is the IP and port information of the remote host) Use the awk
command to display only the data in column 5, and then display the
information of the IP address in column 1 Sort can be sorted by number
size, and finally use uniq to delete the redundant duplicates and count the
number of duplicates
netstat -atn | awk '{print $5}' | awk '{print $1}' | sort -nr | uniq -c
#2. Detect file consistency in specified directories of two servers
Detect the consistency of files in specified directories on two servers, by
comparing the md5 values of files on two servers to detect consistency
#!/bin/bash
dir=/data/web
b_ip=xxx.xxx.xxx.xxx
#Iterate through all the files in the specified directory and use them
as arguments to the md5sum command to get the md5 values of all the
files and write them to the specified file
find $dir -type f|xargs md5sum > /tmp/md5_a.txt
ssh $b_ip "find $dir -type f|xargs md5sum > /tmp/md5_b.txt"
scp $b_ip:/tmp/md5_b.txt /tmp
#Compare file names as traversal objects one by one
for f in `awk '{print 2} /tmp/md5_a.txt'`
do
#The standard is machine a. When machine b does not exist to traverse
the files in the object directly output the non-existent results
if grep -qw "$f" /tmp/md5_b.txt
then
md5_a=`grep -w "$f" /tmp/md5_a.txt|awk '{print 1}'`
md5_b=`grep -w "$f" /tmp/md5_b.txt|awk '{print 1}'`
#Output the result of file changes if the md5 value is inconsistent
when the file exists
if [ $md5_a != $md5_b ]
then
echo "$f changed."
fi
else
echo "$f deleted."
fi
done
#3. Detect network interface card traffic and record it in the log
according to the specified format
Detect the network interface card traffic and record it in the log
according to the specified format, and record it once a minute. The log
format is as follows:
- 2019–08–12 20:40
- ens33 input: 1234bps
- ens33 output: 1235bps
#!/bin/bash
while :
do
LANG=en
logfile=/tmp/`date +%d`.log
#Redirect the output of the following command execution to the logfile log
exec >> $logfile
date +"%F %H:%M"
#The unit of traffic counted by the sar command is kb/s, and the log
format is bps, so it should be *1000*8
sar -n DEV 1 59|grep Average|grep ens33|awk '{print
$2,"\t","input:","\t",$5*1000*8,"bps","\n",$2,"\t","output:","\t",$6*1000*8,"bps"}'
echo "####################"
#Because it takes 59 seconds to execute the sar command, sleep is not required
done
#4. Iptables automatically blocks IPs that visit websites frequentlyBlock
more than 200 IP accesses per minute
- According to Nginx
#!/bin/bash
DATE=$(date +%d/%b/%Y:%H:%M)
ABNORMAL_IP=$(tail -n5000 access.log |grep $DATE |awk
'{a[$1]++}END{for(i in a)if(a[i]>100)print i}')
#First tail prevents the file from being too large and slow to read,
and the number can be adjusted for the maximum number of visits per
minute. awk cannot filter the log directly because it contains special
characters.
for IP in $ABNORMAL_IP; do
if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then
iptables -I INPUT -s $IP -j DROP
fi
done
- Connection established over TCP
#!/bin/bash
ABNORMAL_IP=$(netstat -an |awk '$4~/:80$/ &&
$6~/ESTABLISHED/{gsub(/:[0-9]+/,"",$5);{a[$5]++}}END{for(i in
a)if(a[i]>100)print i}')
#gsub is to remove the colon and port from the fifth column (client IP)
for IP in $ABNORMAL_IP; do
if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then
iptables -I INPUT -s $IP -j DROP
fi
done
Block IPs with more than 10 SSH attempts per minute
- Get login status via lastb
#!/bin/bash
DATE=$(date +"%a %b %e %H:%M") #Day of the week, month, and hour %e
displays 7 for single digits, while %d displays 07
ABNORMAL_IP=$(lastb |grep "$DATE" |awk '{a[$3]++}END{for(i in
a)if(a[i]>10)print i}')
for IP in $ABNORMAL_IP; do
if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then
iptables -I INPUT -s $IP -j DROP
fi
done
- Get login status from logs
#!/bin/bash
DATE=$(date +"%b %d %H")
ABNORMAL_IP="$(tail -n10000 /var/log/auth.log |grep "$DATE" |awk
'/Failed/{a[$(NF-3)]++}END{for(i in a)if(a[i]>5)print i}')"
for IP in $ABNORMAL_IP; do
if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then
iptables -A INPUT -s $IP -j DROP
echo "$(date +"%F %T") - iptables -A INPUT -s $IP -j DROP"
>>~/ssh-login-limit.log
fi
done
Might come in handy...
--
End of line
> On May 11, 2023, at 12:38 PM, Clem Cole <clemc(a)ccc.com> wrote:
>
> I'm one of the many legacies of the over 50 years of teaching by Dan Siewiorek -- remember in the 1970s there was an infamous band (named after an interesting object BTW).
Ah, so Dan Siewiorek is Steely Dan IV, _not_ from Yokohama. Or perhaps Steely Dan V, from neither Yokohama nor Annandale-on-Hudson.
Adam
On 2023-05-04 10:58, Ralph Corderoy wrote:
> Twitter co-founder Jack Dorsey has been using it for a while.
Not only has he been using it for a while already, but he's also
contributing code and funding the developers of some projects (clients
and relays) with 14 BTC through fiatjaf, Nostr creator.
> I suggest any further chat about Nostr moves to coff(a)tuhs.org.
CC'd.
Cheers.
Ángel
I've just today received a COBOL manual I ordered to find quite the nice surprise.
The manual itself is: "IBM OS Full American National Standard COBOL". It is listed as File No. S360-24, Order No. GC28-6396-4. On the back of the first page this is noted as the "Fifth Edition (September 1973)" and that the current edition "is a reprint of GC28-6396-3, incorporating changes released in TNL GN28-1002." Copyright year chain ends at 1972.
However, in addition to this manual are three addenda:
The first is a memo from Tim S. "Systems Analyst", addressed to and cc'd to a few folks, providing an up-to-date listing (as of March 12*, 1976) of IBM System Reference Library materials. The attachment includes, among other things, documents for S/360, S/370, OS/360, BOS/360, OS/VS, and programming and diagnostic utilities. Each reference includes a volume number and an "SRL", the definition I couldn't find, but presumably just a catalog number of some kind.
The second is a scan of a 31 page, hand-written document titled "COBOL Compiler Release 2.2" providing information on the "March 11, 1979, Release 2.2 of the COBOL compiler...IBM's implementation of the ANSI 1974 Standard for COBOL. The previous Release 1.1 implemented the 1968 ANSI Standard." The document goes on to detail numerous changes between these revisions.
Lastly is a Technical Newsletter bearing the same File and Order numbers as the full manual, but with a date of May 15, 1974 and newsletter number of GN28-1048. This page bears a copyright chain out to 1974 and is simply a set of replacement pages for the manual, as was common at the time. The text indicates that all changes are denoted with a vertical bar printed to the left of the change, so this essentially is a diff between the Fifth Edition manual above and...wait for it..."Fourth Edition (May 1972); Fifth Edition (September 1973)". Strangely the copyright notice on the back still indicates the same edition, but adds reference back to the Fourth Edition as well. Strange, one of life's little mysteries? In any case, the copyright chain here is only out to 1973. Never sure how much that means at any given instant. In any case, I couldn't find any evidence in the manual-proper of previous such updates being applied, in other words, no vertical bars spotted flipping through the pages at least.
Both the replacement pages and the catalog are still stapled together, and the manual-proper still contains the pages (that I spot checked) slated for replacement. It seems the original was even bound itself at one point, indicated by the ghost of a glued spine still lingering on the end of the pages, but both the replacement pages and manual itself also have 3-hole punches and are bound in an Acco binder. If the manual had a true cover, it's long gone.
Figured I'd share some of those details in case anything in this is in want of further illumination. For the record, the Sixth and Seventh editions of this same document appear to be on archive.org. I haven't plumbed their depths searching for evidence of aforementioned diff pages, they're probably just scans of complete published copies.
So all of this for me at least begs the question, is there any sort of equivalent to TROFF sources for documents from the Big Blue? Truth be told, I only ordered this to have a paper COBOL reference on hand, if one should ever need such a thing. If there are such document sources, I'd happily add "patching" them to produce a restoration of this to my studies. At the very least the two smaller addenda will get a scan here pretty soon.
- Matt G.
P.S. While my main focus is Bell UNIX documentation, I do peek around for stuff like this time to time, but I'm much less inclined to spring for something without some functional value to me. That said, I'm looking for documents all the time, so if anyone has any tips on stuff that isn't well preserved in the public record that I should add to my searches time to time, I'm happy to keep an eye out. I'm coming to quite enjoy finding things and getting them on the record.
Apologies, this was meant to go to another mailing list. I also posted
to COFF, so send any follow-ups there.
John Cowan wrote:
> I attended CRWU in 1975-76 and programmed the 1108 (abs, alphabetic, arccos,
> arcsin, arctan) with punch cards so I am definitely interested if the
> material is still available.
Thank you, I'll fill you in on the details.