Indexing a Apple Help Book on BigSur - appkit

I'm trying to generate an Apple Help Book index file (Big Sur), I'm using the following scripts:
hiutil -I corespotlight -Cf Base.lproj.cshelpindex -a -vv .
hiutil -I lsm -Cf Base.lproj.helpindex -a -vv .
Files are generated, but when I validate them I get:
Index format no longer supported.
or
Unable to open Archive
I've generated the same files with Apple's "Help Indexer" GUI program, but the files too are apparently no-longer supported.
I've read that it apparently works on High-Sierra, but I don't have access to a Mac with that OS.
Is there a known workaround for this? or am I doing it wrong?
The ultimate goal would be to run on GitHub Actions, but I'm limited as I can't run a macOS Virtual Machine on there.
Maybe I could find the version of hiutil that ran on High Sierra (hiutil version 1.3.2 (55) ?) and run that in a Linux Docker?
Maybe I could find out the file format of the .helpindex files and write a program to generate them
Thanks
Chris

I think I have the answer, the commands need to be:
hiutil -I corespotlight -Caf Base.lproj.cshelpindex -vv .
hiutil -I lsm -Caf Base.lproj.helpindex -vv .
and to validate
hiutil -I corespotlight -Af Base.lproj.helpindex
hiutil -I corespotlight -Af Base.lproj.cshelpindex

Just use a virtual machine which runs another os inside your os. This is the easiest way for you: download Parallels Desktop Lite and see Install MacOS in Parallels Desktop Lite.

Related

Honeyd Logging Issue

I have a question regarding the Honeyd logging . I am using Raspberry pi Wheezy Raspbian ...
I am using the -l flag as described on the website of the Honeyd.
but the problem is I could not found that where the logs are being stored I cant find them ..
$ sudo honeyd -d -f honeyd.conf -l /usr/share/honeyd/scripts/logs/honeyd.txt
When I checked the honeyd.txt file, its always empty
It will be very nice and the help will be highly appreciated .
Regards
OY

Update 'vw' command line call to reference most current vowpal_wabbit installation

I recently updated my installation of vowpal wabbit by manually deleting the vowpal_wabbit directory and reinstalling according to the instructions at https://github.com/JohnLangford/vowpal_wabbit/wiki/Tutorial.
I needed access to the --link=logistic option, which my older installation didn't have. Currently the command:
~/vowpal_wabbit/vowpalwabbit/vw -d test_vw.vw -t -i lg.vw --link=logistic -p raw_predictions.txt
gives me what I want, whereas
vw -d test_vw.vw -t -i lg.vw --link=logistic -p raw_predictions.txt
hangs. It seems that only by explicitly declaring the path to the most current implementation of vw am I able to get the result I'm looking for.
This is probably more of a Unix/BASH question, but how do I update the short call to vw? I've had similar difficulties using vw-varinfo for what I suspect are similar reasons.

Docopt isn't setting defaults

I have a bash script that uses docopts. It works beautifully on my Debian machine, but fails to set defaults on my Ubuntu laptop. Here's the docopts code:
eval "$(docopts -A args -V - -h - : "$#" <<EOF
Usage: cmus_select.sh [--list <tag>] [--random] [--structure=</alt/dir/structure>] [--dir=/path/to/music]
-h --help Show help
-r --random Randomize selection instead of using a dmenu
-l --list TAG List music by tag. Unless you use -s, genre, artist, album, and song are expected. [default: song]
-s --structure STRUCT Directory structure for your music. [default: genre/artist/album/song]
-d --dir DIR Location of music [default: $HOME/Music/]
----
cmus_select.sh 0.0.1
EOF
)"
I found the two spaces requirement and already checked that (not sure if stackoverflow formatting will eat the spaces.)
Both machines use docopts 0.6.1+fix. The debian machine uses bash 4.2.37 and python 2.7.3. The ubuntu machine is on 4.2.45 and 2.7.5+.
I tried a variety of ways to describe the options. Different order of -l/--list. = sign between the option and its variable. Var name in angle brackets. Etc. It reliably works in debian and not in Ubuntu.
-- followup--
I encountered the same problem on a debian testing machine. Docopts is looking for a new maintainer so I gave up. As an alternative I wrote https://raw.github.com/sagotsky/.dotfiles/612fe9e5c4aa7e1fae268810b24f8f80960a6d66/scripts/argh.sh which is smaller than docopts but does what I need.

How to strace adb shell am start myandroidapp

I need to lean on you for some help on stracing android apps in the sdk emulator
here is my setup
android sdk emulator running android api 4.03
adb shell connected to emulator.
I am able to install an apk usng adb install filename.apk
I am able to run the app using
adb shell
am start -a android.intent.action.Main -n com.akproduction.notepad/com.akproduction.notepad.NoteList
I try to strace using (adb shell)
strace am start -a android.intent.action.Main -n com.akproduction.notepad/com.akproduction.notepad.NoteList
but I get nothing!
how do you trace the runtime behavior of android apps and their installation ?
thanks,
Jose.
p.s. the test app is located here: http://www.appbrain.com/app/ak-notepad/com.akproduction.notepad
am is a batch file and cannot be used in strace.
You need to run it like this:
strace -v -fF -tt -s 65535 -o /data/local/tmp/opengl.strace /system/bin/app_process /system/bin com.android.commands.am.Am start -a android.intent.action.MAIN -n demo.opengl.android/.OpenGLDemo
BTW don't use the strace statically compiled binary available for download from:
http://benno.id.au/blog/2007/11/18/android-runtime-strace
It will output nothing.
Instead use the one which comes with the ROM.

OS X: equivalent of Linux's wget

How can I do an HTTP GET from a Un*x shell script on a stock OS X system? (installing third-party software is not an option, for this has to run on a lot of different systems which I don't have control on).
For example if I start the Mercurial server locally doing a hg serve:
... $ hg serve
And then, from a Linux that has the wget command I do a wget:
... $ wget http://127.0.0.1:8000
--2010-12-31 22:18:25-- http://127.0.0.1:8000/
Connecting to 127.0.0.1:8000... connected.
HTTP request sent, awaiting response... 200 Script output follows
Length: unspecified [text/html]
Saving to: `index.html
And on the terminal in which I launched the "hg serve" command, I can indeed see that an HTTP GET made its way:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
So on Linux one way to do an HTTP GET from a shell script is to use wget (if that command is installed of course).
What other ways are there to do the equivalent of a wget? I'm looking, in particular, for something that would work on stock OS X installs.
The following native command will work:
curl http://127.0.0.1:8000 -o outfile
Note that curl does not follow redirects by default. To tell it to do so, add -L to the argument list.
brew install wget
Homebrew is a package manager for OSX analogous to yum, apt-get, choco, emerge, etc. Be aware that you will also need to install Xcode and the Command Line Tools. Virtually anyone who uses the command line in OSX will want to install these things anyway.
If you can't or don't want to use homebrew, you could also:
Install wget manually:
curl -# "http://ftp.gnu.org/gnu/wget/wget-1.17.1.tar.xz" -o "wget.tar.xz"
tar xf wget.tar.xz
cd wget-1.17.1
./configure --with-ssl=openssl -with-libssl-prefix=/usr/local/ssl && make -j8 && make install
Or, use a bash alias:
function _wget() { curl "${1}" -o $(basename "${1}") ; };
alias wget='_wget'
Curl has a mode that is almost equivalent to the default wget.
curl -O <url>
This works just like
wget <url>
And, if you like, you can add this to your .bashrc:
alias wget='curl -O'
It's not 100% compatible, but it works for the most common wget usage (IMO)
1) on your mac type
nano /usr/bin/wget
2) paste the following in
#!/bin/bash
curl -L $1 -o $2
3) close then make it executable
chmod 777 /usr/bin/wget
That's it.
Use curl;
curl http://127.0.0.1:8000 -o index.html
Here's the Mac OS X equivalent of Linux's wget.
For Linux, for instance Ubuntu on an AWS instance, use:
wget http://example.com/textfile.txt
On a Mac, i.e. for local development, use this:
curl http://example.com/textfile.txt -o textfile.txt
The -o parameter is required on a Mac for output into a file instead of on screen. Specify a different target name for renaming the downloaded file.
Use capital -O for renaming with wget. Lowercase -o will specify output file for transfer log.
Instead of going with equivalent, you can try "brew install wget" and use wget.
You need to have brew installed in your mac.
You can either build wget on the mac machine or use MacPorts to install it directly.
sudo port install wget
This would work like a charm, also you can update to the latest version as soon as it's available. Port is much more stable than brew, although has a lot less number of formula and ports.
You can install MacPorts from https://www.macports.org/install.php you can download the .pkg file and install it.
You could use curl instead. It is installed by default into /usr/bin.
wget Precompiled Mac Binary
For those looking for a quick wget install on Mac, check out Quentin Stafford-Fraser's precompiled binary here, which has been around for over a decade:
https://statusq.org/archives/2008/07/30/1954/
MD5 for 2008 wget.zip: 24a35d499704eecedd09e0dd52175582
MD5 for 2005 wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb
No make/install/port/brew/curl junk. Just download, install, and run. Works with Mac OS X 10.3-10.12+.

Resources