Category Archives: root

Guilt By Association

The Free Association Thought Experiment

What are the implications of free association and how do they impact who we are and what we present to the world? A simple answer is that when we choose to associate with someone it does not imply a complete, nor even a partial, endorsement of that person’s beliefs, practices or standards. It simply means that we find a net benefit to association versus disassociation.

Taking this thought experiment further, what if our association is non-voluntary as in that of the association between child and parent? Well surely it logically follows that if we are not culpable for judgment in the case of voluntary association we cannot possibly be so in the case of involuntary association.

Many of you reading this will realize that I am alluding to the recent revelation that the LDS Church will not allow the children of same sex couples to be baptized until they are 18 and permission has been given from the highest office in the church. As a member of the LDS church this gives me a significant amount of heartache and as an amateur philosopher it gives me several interesting things to think about.

I think the simple argument I put forth above regarding the illogic of guilt by association stands on its own and I don’t wish to muddy the waters further by delving into it any more deeply. To restate though, guilt by association is an immoral principle and I find it sad that an institution that seeks to put forth morality as its foremost concern would embrace such a practice.

Two Wrongs != Right

In the last day I’ve seen the argument put forth that this is nothing new and that those raised by polygamous families often face the same treatment. In the media we recently saw an example of this play out with one of the children of the Brown family, subjects of TLC’s realty series ‘Sister Wives’.

Let me take you back to your childhood, your name and the names of your childhood companions have been changed to protect the innocent. We all remember a scenario playing out like this:

Mom: Why did you hit Brian?

You: *Through sobs* Brian hit me first!

Mom: Two wrongs don’t make a right, now apologize to Brian.

You: *Grudgingly, with an insincere scowl* Sorry Brian.

Brian: *At behest of his mom and also through an insincere scowl* Sorry Andre.

All right so maybe you’re not Brian and didn’t have friends called Andre as a child but you get the point I hope. To point at another form of injustice and say it justifies further injustice is not only logically fallacious but it violates the principle behind one of the earliest lessons we learn, a principle so divinely simple that the partially formed reasoning centers of very small children’s brains can comprehend it. Two wrongs do not equal a right. Justifying a decision based upon the bad actions of another or our own prior bad actions does not make our action right, it simply demonstrates that we are not willing or possibly able to hold ourselves to the consistent set of standards we have previously espoused.

Not being perfectly logically consistent in the application of our ethics is, this may surprise you, absolutely fine. In fact, it’s what makes us human. We aren’t perfect rational beings and we are inconsistent in our thoughts, actions and behaviors. What does pose a problem is willful rejection of ethical inconsistencies in the face of clear evidence of their existence.

A counter argument I have also seen is the point that children of non-members face far less restriction from baptism as do those of single parents. Given their minor status, permission is all they need in order to become members. The logical question then follows: Why are these two groups (the children of polygamists and gay people) treated differently? That’s where the willful rejection of consistency seems to come into play and the answer becomes something like “those are the rules” or “who am I to question?”. I have an answer for that second one.

Who Are You To Question?

You are a beautiful, self owning, independent human being. That’s who you are to question. You possess, be it by divine gift or innate natural quality, the ability to perceive, discern and analyze extremely complex and nuanced intellectual concepts. You also possess free will and moral agency. The very foundation of our existence on Earth, from an LDS perspective, is predicated on your ability to choose for yourself and make moral judgments on what you accept to be good or not. The argument that we should uncritically accept an argument, position or policy simply because of its source violates and cheapens our moral agency. We should, I think, think critically and as consistently as we can about moral issues regardless of their source. I think most of us remember the time in our lives when we realized our parents were just humans trying to do their best and not superheroes of perfection to be followed and emulated at all cost. I think of this as an early example of our comprehension of the “appeal to authority” logical fallacy. Here’s a brief definition thanks to the folks at logicalfallacies.info (emphasis added):

An appeal to authority is an argument from the fact that a person judged to be an authority affirms a proposition to the claim that the proposition is true.

Appeals to authority are always deductively fallacious; even a legitimate authority speaking on his area of expertise may affirm a falsehood, so no testimony of any authority is guaranteed to be true.”

To apply this practically and in the current context, just because this policy originates from General Authorities it does not guarantee its truth nor moral correctness. We must analyze the value of this policy for ourselves using the faculties we possess and the guide posts of good and morality we hold dear, and come to our own conclusion.

There Is No “Right” Reaction

We have the ability and right to accept this decision “on faith” with the hope we might understand it later on.  To those who choose to do this please do so in a humble manner and realize that not everyone can.

There are many people, I place myself in this camp, who have relatives and friends who could be adversely effected by this policy even if not directly then certainly emotionally. Someone’s complex feelings on this do not mean that they are unfaithful or apostate or any of the ugly slurs I’m seeing in social media directed toward those who are consciously struggling with this issue.

It is true that there are some who have existing beefs with the church or religion as a whole who will use this as another weapon in their armory. Here’s the real truth though NOT EVERYONE FALLS IN TO ONE CAMP OR THE OTHER. This issue is far from black and white. It is complex, nuanced and difficult to process. It could be deeply faith shaking for some and a non issue for others but I expect that for the large majority of people it is deeply confusing and creates a high degree of cognitive dissonance. Be kind to those who are conflicted about this issue, don’t assume that your experience and/or reaction to this is the only valid position, right nor the same as that of everyone else.  To assume that because someone is either active or not active within the church will have the same reaction or feelings on this issue is, well, to assume guilt by association.

Thoughts on Thought!

As a species we have come a long way from the days of barbarism and conquest. There is, however, still a thread of tribalism that runs through many in the world that brings the worst qualities out in otherwise peaceful and enlightened people. This is understandable, we’re a social mammal for whom association with fellow members of our species is an innate quality. It can be problematic, however, when we lack self knowledge and apply that collectivist instinct to our opinions and beliefs. Those mere concepts, when applied to the universal, can often be problematic too. I had a debate over the weekend on the role of force in society. Through extensive reading and thought on the subject I have come to the conclusion that the Non Aggression Principle is the most virtuous guide for my actions and the highest goal for human behavior. If applied in society it would lead to a far more peaceful, prosperous and free world. The folks I was debating with, however, didn’t agree and while I respect their right to hold an opinion or belief the problem with the debate was that the facts I was presenting, for example that the notion that the best way to subdue violence in society is the threat of violence is an inherently circular and irrational position, their emotion and predisposition to thinking within the current paradigm uncovers a lack of thought about the subject or an acceptance of the legitimacy of force, something I reject.

The reason I find this interesting is that I was struck by something Michael Malice (author of the excellent “Dear Reader”) said on Gavin McInnes’ podcast “Free Speech” a while ago. He said that he thinks most people aren’t “thinking beings” and are much closer to the instinctive ancestors we tend to think we have left behind. I’ll admit that I initially balked at this idea as it could be used to leverage an argument for subjugation and against a free society. The rationale might go something like “Most people aren’t thinking beings therefore they are unfit to govern themselves and an elite must be empowered to make decisions for them”. This, I think, is the current rationale for statism. As Mises said, and I paraphrase, the [statist] claims that because we say something ought not be done by the government that it ought not be done at all. There seems to be an assumption that because the voluntarist rejects the monopolistic, violent entity of centralized, coercive government that he wants the world to revert to feudalism or that this would be the inevitable result of the transition to a free society. It is this assumption of the worst in humanity that I find so very disheartening. It is the epitome of cynicism misanthropy to conclude that without the constant threat of violence hanging over our heads we would all become pillaging murderers and rapists. That we are inherently bad and need to be forced to be good makes zero logical sense when you apply rational thought to the problem. This is, again, something that Mises pointed out and all it takes is a simple thought experiment to verify it. If people are so bad that they are incapable of governing themselves then it follows logically that none are suited to govern others. We are the best judges of our own actions and thoughts because only we know our whole selves. Striving to attain better self knowledge is something that helps us inform our actions and decisions thus increasing our focus on developing self knowledge is essential to the transition to a more peaceful and ultimately free society.

The “Microsoft” Phone Scam (Windows 7)

Last week I got a somewhat frantic call from a relative who was, at the time, on the phone with a “Microsoft” representative who had informed him that his computer was vulnerable and required a new firewall or the FBI was going to block his computer from the internet.

Now, before you roll your eyes, this relative had gotten an email from his employer that very morning with security warnings so it’s not an enormous leap to think that they, or some contracted company, were calling to address that issue.

The Attack

Anyway, here’s what they did and how I fixed it. He had given them remote access using a java-based remote support that goes under various names. In this case it was called “MyRemoteSupport” and had created a directory in C:\Program Files(x86) of the same name. The really tricky part was that they used a Windows feature to attempt extortion in the guise of a “fix”. There’s a little known feature sometimes referred to as “SysKey” that encrypts the SAM registry hive. This results in Windows requiring a password on boot and it’s not something that Ophcrack or chntpw can deal with as it’s the hive itself that’s encrypted.

The Solution

Thankfully my relative called me and I was able to tell him to yank the network cable before they could get to the next point in their attack, a point that would likely have necessitated a complete reinstall of Windows from scratch. The System Restore Points were still there so the fix was actually simple, a boot whilst hammering “F7” then an “F8” on the Windows 7 boot option (the only one in this case) then a boot in to the System Rescue allowed me to restore to the most recent point before the call which was just a couple of days prior. Thankfully this feature just restores the registry from one of those nastily named system restore blobs that sit around your hard disk so the SAM file was restored to the previous, unencrypted version.

After the restore I rebooted into networkless safe mode and had a poke about to see what the jerks had done. Nothing was super evident except the previously mentioned directory and an outbound firewall on a high port that looked somewhat suspicious. It was ambiguously named something like “VtSrv” and allowed all traffic out on a high port. After these were deleted I rebooted in to “Safe Mode with Networking” and installed/ran a MalwareBytes Anti-malware scan to clean things out. It found about 73 infected files some of which always seem present on his system the others had names that looked like the remote access thing in the browser cache/AppData directories.

Another reboot, this time letting the machine come up normally and an anti-virus scan cleared out a few strays and it was done. I’m sure that there are far more pervasive and unpleasant examples of this attack but if you’re lucky enough to find yourself getting a call at the same point of the attack as I did it’s not too much of a challenging fix.

Just another reason why Windows sucks!

Slackware 14.1 Released!

All praise be to Bob!

The latest version of Slackware has been released and is now available. Go to your nearest mirror and pull down an ISO!

From the release announcement:

Yes, it is that time again!  After well over a year of planning,
development, and testing, the Slackware Linux Project is proud to
announce the latest stable release of the longest running distribution
of the Linux operating system, Slackware version 14.1!

 

 

Removing sensitive data with ‘shred’

We’ve all been in the situation where we’re selling a computer, giving it to charity or a friend or neighbor or simply throwing it away. Most likely we have resume’s, family pictures and the like stored on it and may not want that data to get into even trusted hands.

The simple solution most go for is formatting the disk or deleting the files if they want to preserve the operating system. This is far from a forensically sound way of doing things and the data is still easily recoverable by anyone with forensic or data recovery knowledge. The blunt, simple route is to write random data across the entire disk and if you have many, many hours and either a livecd/usb or another system you can connect the drive to; this is a reasonable and secure option. You’d use something like the following to do such a thing:

me@myshell:~$ dd if=/dev/urandom of=/dev/DISKTOBEWIPED

But what if you want to leave the OS intact and just remove the files you don’t want to share? The answer is ‘shred’!

What shred does is overwrite the blocks and clusters assigned to the file you’re deleting. Essentially it makes recovery of the file impossible besides the name if the attempt to recover is almost immediate. It can be used on block devices (partitions and disks) as well as regular files but only use that if you want to wipe an entire partition of personal information or files.

<WARNING!!!>

Never (and I mean NEVER) shred a partition as root from inside that partition. Modern versions should have error checking that will not allow you to shred a mounted partition but don’t ever issue a command that could do this!

</WARNING!!!>

To shred a single file is not much more difficult than removing it with rm you simply type the following

me@myshell:~$ shred -u myfile

You won’t get any output and your file will be gone, securely. If you want to see what’s going on you just need to add the “-v” flag. You can string flags together so the following will work fine, shown after is what you will get.

me@myshell:~$ shred-uv myfile
shred: myfile: pass 1/3 (random)...
shred: myfile: pass 2/3 (random)...
shred: myfile: pass 3/3 (random)...
shred: myfile: removing
shred: myfile: renamed to 000000
shred: 000000: renamed to 00000
shred: 00000: renamed to 0000
shred: 0000: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: myfile: removed

This is all very well and good and is great if you only have a couple of files you want to remove. What, however, if you want to safely remove an entire directory of files? Let’s assume we have a directory full of family pictures called “fampics” Shred doesn’t have a recursive flag like “rm -r

The solution is to use a for loop and a find command so we get the full path of each file. The little, one-line script looks like this:

me@myshell:~$ for file in `find fampics/ -printf "%p %A@\n"`; do shred -vu $file; done

What this does is execute the find command, which prints the relative path (the path from your current position) of each file in the directory followed by a newline. Then passes the output to “shred -vu” and then repeat until there is no more input. What you will be left with is an empty directory that you can safely remove knowing that its contents can’t be recovered.

While those of us who crave complexity and to whom such a for loop has become second nature (pray for us!) it’s not exactly the most convenient of ways to do things in a normal situation, especially given that you’re not likely to use it that often. I’ve put a little, rudimentary script together to do the job. You can either pop it in your home directory or an executable path on your system to use at your leisure. Here’s what it looks like: (download below)

#!/usr/bin/env bash

# Script to descend into and shred the contents of a
# directory then, optionally, remove the directory

#Set named var (for sanity!)

targdir=$1

# Check user has issued a valid command

if [ -z "$targdir" ];
then
	printf "usage: dirshred directory/\n"
	exit 1
fi

# Confirm and shred directory

printf "Really shred: $targdir? "
read confans

if [ "$confans" != "y"];
then
	exit 1
fi

for file in `find $targdir -printf "%p %A@\n"`; do shred -vu $file; done

# Ask user if they want to remove the target directory

printf "Remove target directory? "
read remans

if [ "$remans" = "y" ];
then
	rm -rfv $targdir
fi

A Tutorial from 2006 (by way of 1997!)

The following is a tutorial I wrote way back in 2006 as a way of introducing new members of our team (in a former job) to the hateful task of creating and modifying templates for VSI Fax. Putting it up here for preservation more than anything!


If the task has fallen upon you to become the next in a long line of AS noob’s whose duty, nay life’s meaning, it is to create, modify and hack VSIFax documents then I present to you, the chosen one, the (probably not) definitive guide on how to go about this turgid task with as much expididity as is possible.

Firstly you need to establish what the customer wants form their new document or what they want changing or moving where on an existing document.  As of writing the call loggers do a pretty good job of putting this in the call details but should the quality ever fall off the best thing to do is to get an example of their printed stationary and ask if that’s how they want it.  If they don’t want it like their printed stationary ask them if there are any companies documents they do like, chances are that you have them as the nuts and bolts world is fairly insular and OGL has most of them over a barrel. Once you know what they want you can get down to the delightful job of actually editing the things in Word 2000 on a Win98 PC, this is how it is now and how it shall ever always be, amen.

Situation 1 – The Customer wants a new document

In this situation we will take the example of a company currently using VSIFax frequently who have found they need a Purchase Order (PO) document.  The best thing to do is look through the “local fax docs” folder on the 98 PC or get an archive from oglsoft that may contain a PO doc.  They are located in

/u/VSIFax/Layouts/[companyname]

and are tar archives that have often been tar’d many many times.  Copy the file over to the 98 box using something like WinSCP and extract it using the tools on the 98 box (7zip at time or writing).  As soon as you have a PO document from another company it would be best to get all of the current documents that exist for the company you are creating the document for onto the 98 box and into a folder of their very own.  This way you can see what type of docs they currently have and can locate a PO document comparable to their style.  Getting these documents also gives you the advantage of being able to copy over such items as logos and address text boxes easily and therefore matching the style of the current documents.  You should be able to edit the document without too much trouble, the one piece of advice I have for you is always use text boxes, don’t type text directly on to the page as it will make layout changes nigh on impossible.  So once we have our completed PO document in Word we need to get it approved by the customer, just print it out and fax it to them with a cover sheet explaining what you have done.  Once approved you should print the document again using the “VSI Docs” printer, this prints to file and produces a pure PCL document.  Make sure you select the type of file to be “all files *” and give the document a name in the same scheme as the existing files i.e. if their invoice file is companyin.pcl then call it companypo.pcl.  Make sure the file has the .pcl extension as this helps differentiate the different file types as we progress.  Once we have the PCL document we need to move it to oglsoft via WinSCP again then get a shell on oglsoft.  The next step is to convert the PCL file to a useable little-endian TIFF File using VSIFax’s pcltotiff script.  If your teammates have been prudent enough to furnish you with a good .bashrc file then you should be able to type “v companypo.pcl” and you’ll get a useable TIFF.  If you get “v: command not found” then you can get a copy of my .bashrc off this board or type the actual command that it is aliased to: /usr/vsifax3/lbin/pcltotif -EFine.  Before you go about implementing this document you should get it back over to the 98 box and open it up in image viewer to make sure it looks right.  The VSIFax “pcltotiff” script has a nasty habit of cutting off the left edge of documents when it converts them, if you see that this has happened you will need to move the documents margins until it no longer gets cut-off.  Pay special attention to the right edge when doing this as if you move it too much pcltotiff will start cutting that edge off too.  If this starts to happen you may have to start changing column widths which is not a fun task but is very occasionally necessary.  Assuming all is OK with the document it is now time to implement it, get linked up then follow the below section “Implementation is not for chumps

Situation 2 – Changes across all documents

Oftentimes a customer will change their address, website, phone/fax numbers, name or a multitude of other details that they want amending on their VSIFax documents.  These are (normally) the most favorable and preferred kind of VSIFax calls that come in as they tend to involve small changes across all docs.  It can sometimes get a little difficult if the customer wants additional information adding to all documents and there is not a space in the same location on all docs.  In this situation produce several examples and fax them to the customer for them to decide and consult the customer heavily on what they want.  It also may be worth talking to Mick (PS) about it as if it is a small amount of text like a company registration number it is possible that the software could do it and the documents won’t need amending at all.  But let’s take the example of an address change.  First have a look at all the documents and see if the address is laid out in a unified way, if they are then modify the address on one document then delete the text box containing the address on the other documents and copy and paste the text box containing the new address over to the other documents.  That’s it, just follow the instructions for printing and converting the document as in situation 1 and you can implement the document (see below).  If the address is laid out differently on each document then you may want to see if there is a way to standardize it (this is often impossible due to the layout of the doc or the opinion of the customer).  If you can’t standardize the layout then you’ll just have to modify the details on all the docs by hand.

Situation 3 – Changing a single document

While you may be thinking that this is just the same as changing all the docs I can assure you that modifications to individual documents tend to be more involved and specific than changes to multiple documents involving small global changes.  Often the customer will want columns moving around, box labels/sizes changing and lots of other seemingly small modifications that can take a long time to do.  My number one piece of advice for this type of call is get too much information and too many examples from the customer, you can never have enough information when going in to this type of call, also fax them regular updates to make sure that you have understood (or more likely that they have articulated) the change they want correctly.  When modifying column layout you will notice that there tend to be four layers of text/graphics that you need to manipulate this is where using Word’s rather flawed layering feature tends to be useful.  If you are finding that you can’t edit a column header graphic because you keep selecting the text layer, send the text layer to the back, you can always send all the other layers to the back to get the text layer back to the front again (that seemed really confusingly obfuscated when writing but when doing it I’m sure you’ll get it!).  Another technique is always using the keyboard to move an item, be it text or graphics, as they keyboard will move it in unified amounts whereas the mouse is imprecise and can lead to layout nightmares.  Once you have changed the document to the customers liking, follow the guide to creating a usable document as found in Situation 1 followed by the below guide on implementation.

Situation 4 – Cover sheets

Cover sheets tend to be the easiest of the documents as they contain few graphics and are actually a different type of document than all the others.  Most cover sheets will only need details like logos and contact details amending.  You will find yourself editing them somewhat frequently however as detail changes tend to be frequent.  After you are done changing all you need to on the document you need to print it using the “Cover Sheets” printer which produces a pure postscript file, consequently you should call it “whatevercompanyco.ps”  That tends to be it with the cover sheets, you are done.  There is, however, a frequent issue that occurs with cover pages.  You will sometimes find that the cover sheet will print all the comment lines correctly except one where it will have something like “FXMESS”  This has happened because the driver did not produce the postscript correctly and you need to either reprint the document or edit the postscript manually and remove the malformed block.  A correctly formatted block looks like this:

(FXMESSAGE01)S ^M
; : 234 1747 2071 1373 rc 0 0 0 sco F3_50^M
Ji ^M
564 1747 M ^M
( )S ^M
; : 234 1747 2071 1373 rc 0 0 0 sco F3_50^M
Ji ^M
234 1797 M ^M

A badly formed block will look like this:

(FXMESS)S ^M
; : 234 1747 2071 1373 rc 0 0 0 sco F3_50^M
Ji ^M
564 1747 M ^M
( )S ^M
; : 234 1747 2071 1373 rc 0 0 0 sco F3_50^M
Ji ^M
234 1797 M ^M
> (AGE01)S ^M
> ; : 234 1747 2071 1373 rc 0 0 0 sco F3_50^M
> Ji ^M
> 564 1747 M ^M
> ( )S ^M
> ; : 234 1747 2071 1373 rc 0 0 0 sco F3_50^M
> Ji ^M
> 234 1797 M ^M

Notice how the first line of the block is truncated and there is a duplicate block that begins with the truncated part of the “FXMESSAGE” tag.  All you need to do is delete one of these blocks and fill in the munged part of the FXMESSAGE01 tag.  In the above example the lines with the preceding “>” characters are the ones that I would remove but you can remove either block.  All you need to do is then save the file and you’re done.  Congratulations you can now implement the document.

Implementation is not for chumps

So you’ve created your documents, they are all nicely bundled together in a folder on oglsoft so how do we get them to the customer’s server and once they’re there what do we do with them?  Firstly it is best to get your docs into a compressed tar file, I prefer bz2 compression but if you’d rather gzip you can, it’s up to you.  All you need is the tif and ps documents so issue a command like this:

tar cvf companydocs.tar *.tif *.ps
bzip2 companydocs.tar

You should now have a file called “companydocs.tar.bz2” obviously replace the word company with the name of the company you are doing the work for.  Now you have the file you are going to transfer it is time to get linked up.  There are, currently, 3 ways in which we link to sites that use VSIFax; SSH, PPP and CU.  The link script is often used to get on to SSH and PPP sites so you will need to either just type “link companyname” to get on via SSH or get the customer to link the modem then do the same.  Either way you need the same bit of information; the customer’s IP.  For SSH customers it will be an external IP and you will copy the file over in the following way.

SCPing files to customers:
The format of this command is:

scp FILE USER@IPADDRESS:/PATH/TO/WHERE/YOU/WANT/FILE
--
e.g.
--
 scp companydocs.tar.bz2 admin@82.82.82.82:/tmp

To get the file over to a PPP customer (sometimes referred to as telnet customers) you need their PPP IP which is attainable by getting them to link then typing “link customername” you will then get some output like this:

PING 10.13.45.250: 56 data bytes
64 bytes from pinstructure.customers.ogl.co.uk(10.13.45.250): icmp_seq=0 ttl=62 time=303.473 ms
64 bytes from pinstructure.customers.ogl.co.uk(10.13.45.250): icmp_seq=1 ttl=62 time= 303.655 ms 

The highlighted IP address is the one you need.  We then need to ftp to this IP as in the following:

FTPing files to customers:
The sections highlighted in purple approximate what you will see, the UPPERCASE sections are what you need to type

ftp IPADDRESS
Connected to CUSTOMER.
220 CUSTOMER FTP server (Version wu-2.6.2(1) Fri Feb 22 16:34:38 EST 2002) ready.
530 Please login with USER and PASS.
Name (CUSTOMER:admin):root
331 Password required for root.
Password:password
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp-> put /home/yourusername/companydocs.tar.bz2 /tmp/companydocs.tar.bz2
local: /home/yourusername/companydocs.tar.bz2 remote: /tmp/companydocs.tar.bz2
200 PORT command successful.
150 Opening BINARY mode data connection for /tmp/deanwooden.zip.
226 Transfer complete.
4451 bytes sent in 0.0067 seconds (6.5e+02 Kbytes/s)
ftp-> quit

The last way to get files over to a customers box is a little antiquated and is only used when getting files over to a Unix box to which either we dial or we link via cu (giving a line number and connecting up via, for example, modem9).

Getting files over with cu:
We need to prepare the file initially as it is going to go over a link that can only handle transferring “uuencoded” files.  So we need to uuencode our file like so:
The format is:

uuencode INPUTFILENAME OUTPUTFILENAME > FILENAME.UUE

e.g.

uuencode customerdocs.tar.bz2 customerdocs.tar.bz2 > customerdocs.uue

Once we have this file link up, login, then type:

~% (tilde and percent: shift+#+4)

You’ll then get the following line of output, type the red text :

oglsoft:%put /home/username/companydocs.uue /tmp/companydocs.uue

Make sure you type it exactly right first time or you’ll get errors, there is no error checking with this method of transfer meaning that any noise on the line or slight drop in connection may result in corruption.  You will get an output of numbers until it is done at which point it will return you to the command prompt. The final step is to uudecode the file with a command like this:

uudecode FILENAME > OUTPUTFILENAME

e.g.

uudecode customerdocs.uue > customerdocs.tar.bz2

Once decoded the file should be a regular old bzipped tar again.  Move onto the next step.

Now we have our bzipped tar on the customers server in /tmp I find it is good to create a temporary working directory called fax and to move the file into this directory:

mkdir fax
mv customerdocs.tar.bz2 fax
cd fax
pwd
/tmp/fax

Then extract the archive:
On newer Linux systems (post about RH7.2):

tar xvjf customerdocs.tar.bz2

on older systems:

bunzip2 customerdocs.tar.bz2
tar xvf customerdocs.tar

We will now have our created tif’s and ps’s in the /tmp/fax directory.  cd into the directory where live VSIFax documents are kept:

cd /usr/OGL7/vsifax

then backup the existing VSIFax documents:

mkdir old
cp *.tif old
cp *.ps old

then copy over the new document(s)

cp /tmp/fax/*.tif .

change permissions on the file:

chmod 777 *.tif

it is also a good idea to change the ownership of the file to the vsifax user/group:

chown vsifax:vsifax *.tif

This should now be working.  It is best to mention that if there has been a significant layout change the call should be passed to PS to modify the print tabs, otherwise contact the customer and advise that it is done!

Whew, that took longer than expected.  Have fun and remember that the newest member of AS is always the VSIFax stooge 😉

Tasty Cajun Tilapia

Yummles!

Yummles!

I ended up making dinner last night and was unsure what to have as the main feature of the meal. I knew I was doing roasted sweet potatoes with Parmesan and asparagus as the accompaniments and that I had tilapia in the freezer. I didn’t know how I was going to season the tilapia so I raided the cupboards and had some cajun spice mix left over from our honeymoon! I mixed it with some plain flower then dipped the fish in the dry batter mix and shallow fried it on medium-high heat. It was tastylicious!

Hello world!

It would appear that I have simply neglected to add a new post after installing WordPress but I thought that given this site will feature Linuxy stuff involving code and the like, “Hello world!” was a pretty good title for a first post! Here are some images that represent the things I love:

Linux

Slackware

sed and awk