mesrik
Joined 2 years ago
Joined 2 years ago
However there are also things Junos vs Cisco was that Cisco had made bit easier. Just to mention few
1) a simple and quick way to add aliases to config file, which made life easier with long commands that could be otherwise always in hurry hard to remember. Now later versions Junos they have made this better, before it involved twiddling with XML files OS-level etc.
2) IOS TCL scripting, that proved to be quite useful automation tool.
3) OS upgrades of course with a single flash blob made it easier than upgrading or downgrading FreeBSD based Junos.
Cisco did provide updates via CCO and anonymous ftp server. They quite openly told that just download new image and test in your lab, and then if feature set did require licensing, please do it before deploying production. Trust was put on customers and they did very little to check and verify if customers did comply. Which is quite contrary to what for example Oracle practise is been.
>If history has taught us anything. It’s that the measure of a successful product is usually more to do with its sales people.
As someone who worked Cisco gear over thirty years I still remember why us networking did want cisco instead of many other brand devices and it hadn't anything to do with marketing and sales people did.
The Cisco IOS text based configuration was in early days of internet which made it so popular.
Many other manufacturers like HP, 3Com, Cabletron, Madge (IBM), Bridge, etc. did not get why we wanted and complained “give us textual configuration format like IOS has”.
With a plain text based configuration it was easy to adapt configuration from one model to have ready made templates for each model, upgrades and migration to new models were easier, you could use version controls (rcs,cvs, svn,... long before git) and then when RANCiD came it was easy to automate config backups, revert and rollback changes, pass audit with human readable configs and what was in production even long time after etc. In short text based configs made it possible to build large network scale configurations management tools.
IOS has compact, but quite easy to read config snippets made it much easier emailing others, posting examples newsgroups, opening TAC at Cisco CCO, books with examples, learning and teaching etc.
It took quite long before for example HP understood and switched text formats right after turn of century. Juniper seemed to understood right from beginning. But some like Fore, Nortel, Alcatel (ATM-switch makers) and many others did not understand before going out of business. Most of these others had either menus (3Com, HP) or a lousy CLI with obscure unique for just that device model and quite often not even option to print config or if they had not just with changes from default config but printing everything and providing no means to drop showing default. This made it manually while online very hard without external version control to even know what is current status and what had been changes.
BTW, this is still an issue with some manufacturers haven't understood and makes their devices much worse than they understand. Fortigate firewalls CLI is still like this. You can select a subsection of config to print, but it will no indication what differs from default configs. And the whole firewall config is hundreds of kilobytes. Good luck finding what's been changed unless you had saved default config when you started using that device!
When you have thousands to even tens of thousands of network devices in use as many were working you need to be rely that even when you encounter device failure and you don’t have same model any more available, you are able to adapt and find working fix configuring something else doing what is needed.
Binary and any non textual configurations may fit the purpose SOHO category devices, but when network grows even bit larger and configurations more complex there isn’t anything better than text base configs as far as us humans will need to configure and maintain those devices.
Cisco have had issues with software quality for sure, but it was Cisco IOS that was the reason it became so popular and we wanted to use it.
And we did put more weigh on manageability which that IOS text based configuration provided than for example speed some manufacturers got with their devices (Madge, etc.) and even when some Cisco switches dropped some Network World tests more packets we still wanted that manageability more and relied Cisco will fix those issues with software upgrades which it often did.
Juniper when it came end of 90's did understand this and made even better configuration system for Junos than IOS was and still is. Cisco have improved things with IOS-XR, but it's still not up to what Junos is currently.
e: fixed few typos and added that manageability chapter near end. Places where I did work none were always everything Cisco places. No, but either so called ABC (Anything But Cisco) places either. Cisco was and is still popular for those reasons mentioned above.
I remember that NT4 did not have "current directory" context for each process. But but apparently[1] windows 2000 had it already. So what you write above is per process and not per logged in user right?
Asking, because I remember that Citrix which did Terminal Server 4.0 for NT4 had to license windows source code to be enable to make changes for their product at least somehow working with NT4. Up till that time Winddows did not keep current directory per process or at least user, but it was a global state.
So if you changed with "cd" current directory it changed for all processes which was a big issue for Citrox as they did look a way to make Windows a server class system, where each user had distinct environments with distinct default directories etc.
For me as I heard that then I did not understand what was Microsoft thinking letting still with NT such misfeatures remain shipped product and especially when they had real talent Dave Cutler been working on it.
I haven't been using windows besides using Visio a separate local VM since turn of century. So is Windows been since 2000 etc. a real multitasking multiuser system or does it still suffer such handicaps it had at least before?
[1] Microsoft licensed Citrix made changes and RDP protocol they had developed, then brought Server 2000 with terminal server product to compete with Citrix Terminal Server.
https://en.wikipedia.org/wiki/Dave_Cutler
Youtube has many of his interviews. The Computer History Museum (CHM) two part is perhaps most extensive. Links below to these. https://www.youtube.com/watch?v=29RkHH-psrY
https://www.youtube.com/watch?v=SVgSLud50ssI had to fall back patching, repackaging and maintaining multiple times while waiting sometimes weeks them to issue fixed packages. I don't know what happened to Red Hat over the years, already before IBM purchased them. But they became too slow on this kind of issues.
Debian consistently provided fixes quickly next day at least and I never had any issues upgrades since from 7 to 12, when I retired. Only reason to do complete reinstall was that ext3 and ext4 disk formats had improvements, which made life bit easier with 64bit systems.
ps. No problems from 12 to 13 any more with my own systems at home.
# cat /usr/local/sbin/ca-certificates-list-active
#!/usr/bin/env bash
#
# BFMI tool to list Debian CA certificates active - mesrik, 2015
#
CA_CONFIG=/etc/ca-certificates.conf
CA_REPO_DEBIAN=/usr/share/ca-certificates
if [ -f $CA_CONFIG ]; then
# study any ca-certificates which have been configured active
for i in $(egrep -v '^[#!]' /etc/ca-certificates.conf) ; do
cert_source=$(dirname $i)
cert_file=$(basename $i)
openssl x509 -in $CA_REPO_DEBIAN/$cert_source/$cert_file -noout -subject |\
sed 's/^subject=//'
done
else
echo "$(basename $0): Ooops, was not able to access $CA_CONFIG"
fi
# eof
# cat /usr/local/sbin/ca-certificates-reconfigure #!/usr/bin/env bash
LANG=C dpkg-reconfigure ca-certificates
# cat /usr/local/sbin/ca-certificates-invalidate-all #!/usr/bin/env bash
#
# BFMI tool to invalidate all CA certificates in Debian Jessie - mesrik, 2015
#
CA_CONFIG=/etc/ca-certificates.conf
prog=$(basename $0)
usage="Usage: $prog { -commit }"
if [ $# -lt 1 ]; then
echo $usage
exit 1
fi
if [ "$1" = "-commit" ]; then
if [ -f $CA_CONFIG ]; then
backup_ext=$(date -r $CA_CONFIG +".%FT%T%z")
perl -wpi$backup_ext -e 's/^([^!#].*)$/!$1/;' $CA_CONFIG
if [ $? -eq 0 ]; then
echo "$prog: backup $CA_CONFIG$backup_ext was made."
/usr/sbin/update-ca-certificates
fi
else
echo "$prog: Ooops, was not able to access $CA_CONFIG"
fi
else
echo "$prog: Need -commit to actually invalidate all CA's"
fi
# eof
ps. I did bit of editing, I didn't expect Tab to be ignored when pasting here.So is this better too
$ less | find / -type f -perm /6000 -ls
than ? $ find / -type f -perm /6000 -ls | less
Just because shell actually starts executables right to left when using pipes.
Reason to this behaviour is because it can fail early if there is problem constructing pipe first and not spend lot of time something finding later that some pipe components can't start and receive data properly.ps. I'm fine with current notation and would not like change it.
[0] straight link to where he explains retroflection https://youtu.be/0MtRxX0crjU?t=3019
Also many other videos where he explains how to solve hard problems are really good too.
e: There seems to be commercial product using retroreflection advertised Youtube
Also "There are just two types of equipment; those which are already broken and those which will be broken".
I've found a good way to point out anyone thinking right direction not to trust their valuable data in any single entity, product, location, etc.
When I heard it decades ago IIRC 80's Nokia Data Unix courses I went. The distinction made Backups is just 1/3 of the triad Redundancy, Backups, Archives.
1) Redundancy is what you get using RAID, multiple network connectivity etc. ie. good for avoiding single point of failures and avoiding loss service or product availability.
2) Backups are for recovering lost data needed returning lost running known state right before fault or some time state before what backup schedule and used rotation cycle can provide.
3) Archives are meant to saving valuable data not expected to change or active use and but there is need saving much longer periods.
Not seeing and understanding usefulness of difference between these seem hard some people I met over decades. Which then led to confusion, not knowing what they are up to with their data and also often later disappointment when they found out that for example backup programs are not great if you expected archiving instead.
I've listened through those flights few times and it still each time takes me back to memories still giving me goosebumps. Especially Apollo 11 when I was nine year old kid listening tiny battery radio all nights at our summer cottage attic.
IIRC I saw already Bruce Schneider's blog some team proof of concept where they listened using laptop speakers what was spoken in that room. Audio quality wasn't perfect, but it making sense what was spoken was good enough.
But when Turbo C with assembler (TASM) came out those were just great. And by that asm output generating feature it was often way faster way to write something first in C, translate to asm and go from there do what you wanted with that asm directly. I'm not sure which higher level compilers came with that feature, but once available it was many times just great thing to have for sure.
Q: Do you have ever committed a crime or have criminal record?
For heavens sake even though down under they understand jokes, do not try your luck with an answer:
A: Is it still required? :)
Depending the person interviewing and how bad day have had already, they may get you some feedback and give a lesson. I don't know if this is true, but that what those colleagues then told and I think I'm gonna believe and not try joking in that situation.