March 30, 2016

github, go and hub=git

I had some a local files and directories in a local src directory that I wanted to push into a local github repository.  

Follow the  adding an existing project to github using the command line instructions.

Create:
git init
git add . -A
git commit -m "initial commit"
git remote add origin https://github.com/<username>/<repository>
git remote -v 

git push -u origin master

Update changes:
git add . -A 
git commit -m "add commit comment here"
git push origin master


If you messed up the repository settings with git instead og https:
git remote set-url origin https://github.com/<username>/<repository>

Then the repository should be ready for using github as an aliased git command set. Once you've got everything installed.

To ensure that your editors temporary files, apple DS_store files, etc are not added to your git repository, you'll have to create a .gitignore file in your local repository. Github has a nice tutorial here.  

If you need to remove some of these files you can use the find -exec rm trick.
find . -name '.DS_*' -exec rm -v {} \;

There's lots of information informtion about ignore rules in the git scm ducumentation. If you messed up something and want to permanently delete files and folders in your repository, here's a blog post on how to achieve that. And here's one for setting up your OSX keychain to handle passwords.

March 28, 2016

Downloading a free Oreilly book

O'reilly sometimes offers free books, which is a fantastic service. If you ever wondered how to read the entire book off line.

All you have to do is download it. But if the book is divided into chapters in seperate files, how do you get just the book files? The answer lies in a single simple oneliner with wget.

# wget -r --no-parent -A pdf http://www.oreilly.com/openbook/make3/book/

This downloads the book in the current directory, under the directories www.oreilly.com/openbook/make3/book/. Now you have your book present in a single directory. If you wish, you can now join all the seperate pdf files into a single book. For this you need a program called pdftk (pdf toolkit) if you don't have it installed already

# sudo port install pdftk # will install it on OSX using mac ports, or
# sudo aptitude install pdftk # will install it on debian based Linux

With pdftk in place, check the order of the various book parts on the books oreilly page, and then construct a command line following that structure.

# cd www.oreilly.com/openbook/make3/book
# pdftk cpyrt.pdf toc.pdf author_colo.pdf part1.pdf ch01.pdf ch02.pdf ch03.pdf \ ch04.pdf ch05.pdf part2.pdf ch06.pdf ch07.pdf ch08.pdf ch09.pdf ch10.pdf ch11.pdf \ ch12.pdf part3.pdf appa.pdf appb.pdf appc.pdf inx.pdf cat output \ ManagingProjectsWithGnuMake.pdf

Voila, you have a brand new book.

March 23, 2016

Installing Gimp & checking md5 sums on OSX

After the resent Transmission BitTorrent RansomWare issue on OSX, its time to step up the security. Remeber to add checks when grapping packages and images from the big bad internet. Here's a check when installing tha' Gimp

Download the dmg file for the gimp, wait until its complete. Then copy the md5hash from the page, and fire up a terminal. Then type:

# test $(md5 ~/Downloads/Gimp-2.8.14p2-Mavericks-Yosemite.dmg | cut -d ' ' -f 4) = 30a4a0851f1da76bd4702bf99aec60b3 && echo "ohhh ya"

If you get the ohhh ya, the hashes match and you can go about your business. Please note, it stille dosen't assure that the mounted archive is RansomWare free, just that it came from the Gimp source on the website you down loaded it from.

Now, that takes care of the md5 sums but what about the sha256 issues? Welle if you didn't know the shasum program will help you here. You should grap a copy of Transmission. If you dare `:O.

Then check the file integrity with:

# test $(shasum -a 256 ~/Downloads/Transmission-2.92.dmg | cut -d ' ' -f 1) = 926a878cac007e591cfcea987048abc0689d77e7729a28255b9ea7b73f22d693 && echo "bingo champ install it"

Again if you get the echo bingo champ install it. The file should be ok to install, but backup just to be sure. If you like you can script it, echo'ing the checksums etc. then you may only have t call en chksum.sh "chksum" file script. That's a small project or check what Ted does.

ClamAV & OSX using MacPorts


ClamAv is a command line virus scanner. It runs on all the major platforms, Windown,Linux, and OSX. You can download the source and install it from there, or you can follow these simple steps   to install it using MacPorts.

To install ClamAv check the ports including clam by listing these:

port search clam

Then to install the files issue:

sudo port install clamav clam-server clamsmtp p5-mail-clamav

Once the ports are installed you'll need to configure ClamAv. The following is an extract from the port installation echo:

To configure clamd and freshclam look for the following files:
    /opt/local/etc/clamd.conf
    /opt/local/etc/freshclam.conf

If these files do not exist you can copy the sample conf files into place:

    sudo cp /opt/local/etc/clamd.conf.sample /opt/local/etc/clamd.conf
    sudo cp /opt/local/etc/freshclam.conf.sample /opt/local/etc/freshclam.conf

Edit /opt/local/etc/clamd.conf to your liking, example:

# Comment out 'Example' near the top if it exists
    #Example
    LogFile /opt/local/var/log/clamav/clamd.log
    PidFile /opt/local/var/run/clamav/clamd.pid
    LocalSocket /opt/local/var/run/clamav/clamd.socket
    TCPSocket 3310
    TCPAddr 127.0.0.1
    Foreground yes

Edit /opt/local/etc/freshclam.conf to your liking, example:

# Comment out 'Example' near the top if it exists
    #Example
    UpdateLogFile /opt/local/var/log/clamav/freshclam.log
    PidFile /opt/local/var/run/clamav/freshclam.pid
    NotifyClamd /opt/local/etc/clamd.conf

The important thing when editing these configuration files, is that the directories for clams and freshclam points to the same directories. I let mine point to:

/opt/local/var/log/clamav/
/opt/local/var/run/clamav/

And, make sure that the TCPSocket and TCPAddr are set, enabling you to use ClamAv from within other programs. After installation you'll need to create an entry in the ports share directory. The reason for this is that  ClamAv runs in this directory and the directory is not created on installation. Create it like this:

sudo mkdir -p /opt/local/share/clamav
sudo chown clamav:clamav /opt/local/share/clamav

Now you're ready to create a fresh clam, issue:

sudo freshclam -v

Current working dir is /opt/local/share/clamav
Max retries == 3
ClamAV update process started at Thu Mar 24 00:01:09 2016
Using IPv6 aware code
Querying current.cvd.clamav.net
TTL: 632
Software version from DNS: 0.99.1
main.cvd version from DNS: 57
main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
daily.cvd version from DNS: 21470
daily.cld is up to date (version: 21470, sigs: 83891, f-level: 63, builder: neo)
bytecode.cvd version from DNS: 275
bytecode.cvd is up to date (version: 275, sigs: 45, f-level: 63, builder: amishhammer)


ClamAv will generate a new virus signature file. When it is done, you're ready to scan your box. This is done by:

clamscan -ro ~/

----------- SCAN SUMMARY -----------
Known viruses: 4297361
Engine version: 0.99.1
Scanned directories: 132235
Scanned files: 595659
Infected files: 0
Total errors: 4
Data scanned: 72096.62 MB
Data read: 136687.80 MB (ratio 0.53:1)
Time: 22133.709 sec (368 m 53 s)


It'll take loads of time to finish. As, almost, all other codlin tools --help or man clamscan displays all the options you can pass to the program. Next, you'll need to get ClamAv running automatically. Following the installation instructions, another extract:

Two launchd startup items have been installed.
To load clamd and freshclam do the following:
    sudo launchctl load -w /Library/LaunchDaemons/org.macports.clamd.plist
    sudo launchctl load -w /Library/LaunchDaemons/org.macports.freshclam.plist

To unload clamd and freshclam do the following:
    sudo launchctl unload -w /Library/LaunchDaemons/org.macports.clamd.plist
    sudo launchctl unload -w /Library/LaunchDaemons/org.macports.freshclam.plist

Issue both of the commands that loads the deamons, then check that the clamd is running.

ps -aef | grep clamd 

The result should look somewhat like this:

0 25965     1   0  4:52PM ??         0:07.78 /opt/local/sbin/clamd

If your are using Thunderbird and Firefox you can use ClamAv to scan your downloads and your mails. Install the firefox add-on Fireclam, and the Thunderbird add-on clamdrip LIN.

The clam drip LIN extension if meant for Linux only, but it's all runnable using the port version of ClamAv. simply press the: Download for Linux anyway link anyhu!


And import the add on in Thunderbird. Ignore the *beware* message, if you do not trust me, check the contents of the plugin file, using unzip to extract it and inspect the code. It, doesn't look malicious to me.

Next, go to the Thunderbird add on, and select the clam drib preferences. Configure it to listen to the clamd available on localhost:3310.


Now, all you have to do to verify that ClamAv is running, is to check your mail.


The ClamAv status is shown in the green blop above. The information is also shown in the preview pane in Thunderbird.

March 22, 2016

Moving Mozilla tools from Linux to Mac

To move your Firefox and Thunderbird profile and settings from Linux to Mac. All you have to do is to copy (or create a tarball) the profile. On Linux the profiles are located under:

~/.mozilla/filefox/extentions
~/.mozilla/filefox/<profile>.default
~/.thunderbird/<profile>.default

where <profile> is replaced with your profile name, usually named something cryptic, like: an8e24f4.defaultOnce you have them copied or backed up to your, stick, dropbox, drive account. Or if you copy them using scp. You'll need to place, extract them on your Mac box. On mac they're placed in:

~/Library/Application Support/Firefox/Extentions
~/Library/Application Support/Firefox/<profile>.default
~/Library/Thunderbird/ <profile>.default

Creating a profile with Firefox will help you synchronize your Firefox data. So this kind of copying is not needed again. Unless you're restoring from a backup. And I assume you know the cp/scp/tar commands.