Toto je staršia verzia dokumentu!
Obsah
Test
Posledné príspevky
Wineskin Engines archive
Comprehensive list of Wineskin engines for download.
Parsed from PortingKit list of engines.
These need to be copied into ~/Library/Application Support/Wineskin/Engines to appear in Wineskin Winery.
Wineskin Stable & Developer – WineHQ ''Stable'' and ''Developer'' branch engines
Stable builds are listed in bold. Stable branch always includes only bug‑fixes, whereas developer branch adds new features.
32bit builds
Wineskin 9
|
|
|
|
Wineskin 10
64bit builds
Wineskin 9
|
|
|
Wineskin 10
Wineskin 11
Wineskin Staging – WineHQ ''Staging'' branch engines
32bit builds
Wineskin 9
|
|
|
Wineskin 10
64bit builds
Wineskin 9
Wineskin 10
Wineskin 11
Wineskin CX(G) – CrossOver wine engines
- CX builds are engines from CrossOver wine – see release notes
- CXG builds are engines from (now discontinued) “CrossOver Games” edition – see release notes
32bit builds
Wineskin 8
Wineskin 9
Wineskin 10
Wineskin 11
64bit builds
Wineskin 10
Wineskin 11
|
|
|
Wineskin 12
Archived listEngines1.1 json files
Comments
My App settings defaults
A collection of my preferred hidden and undocumented settings for Apps I use.
The apps are alphabetically ordered by their title.
TextMate
Disable soft wraps for comments
- Problem
- Long comments (those going over window width) are wrapped even if
View → Enable Soft Wrapis turned off. - Solution
- Go to menu
Bundles → Edit Bundles → Source → Settingsand disable all items namedStyle: Line Comments ‑ *
Comments
Róbert Toth: The Structure of Forms in Plato’s Theory of Forms (2023)
A dissertation submitted in partial fulfilment of the requirements for the degree of Doctor of Philosophy (PhD).
- Official source
- https://hdl.handle.net/2262/104042
- https://www.tara.tcd.ie/items/d4d7b5ff-4a92-49c2-b6e4-a38bb99cd21e
- Direct link to PDF
- Official: https://www.tara.tcd.ie/bitstreams/8bac3c42-2472-4769-965e-975ea7fa4659/download
- Local backup: furlo.sk/papers/Toth2023_PhD-Thesis_The-Structure-of-Forms-in-Platos-Theory-of-Forms.pdf
Citation
Toth, Robert, The Structure of Forms in Plato's Theory of Forms, Trinity College Dublin, School of Social Sciences & Philosophy, Philosophy, 2023
Abstract
The main thesis of the dissertation is that Plato always, both before and after the Parmenides, in which he appears to submit the theory of Forms to critical investigation and assessment, held a single coherent view about the relations between Forms. This is the view that each Form, in addition to being what it is in virtue of itself (e.g. the Form of justice being, in virtue of itself and being the very thing it is, a certain harmony of the soul) has a number of properties in virtue of its relation to certain other Forms. According to this account of Plato’s view, which it is my aim to defend, each Form has a determinate structure, which consists of a combination of what it is in virtue of itself (kath’ auto) and what it is in virtue of its relation to certain other Forms (pros allo).
This overall thesis of the dissertation is of particular interest and significance, not least because it goes against a dominant (though not universally accepted) view in the literature, according to which Plato changed his mind radically about this issue and question in and when he wrote the Parmenides. According to this widely held view among critics, which it is my aim to argue against and refute and replace with a positive account, Plato, before the Parmenides and in such major dialogues as Republic, Phaedo and Symposium, held that individual Forms are what they are simply in virtue of themselves, and that Forms do not stand in relations to other Forms. Likewise according to this widely held view of Plato’s Forms and the theory of Forms, Plato came to realise in the Parmenides that each Form must stand in relations to other Forms, and he developed this view further in such dialogues as the Sophist.
A major aim of this dissertation is to argue against this dominant view in the literature and to show that, on the contrary, Plato holds, throughout these dialogues (including Charmides, Phaedo, Republic, Symposium, Parmenides and Sophist) a single coherent view about Forms, what they are in virtue of themselves, and what they are in virtue of their relations to each other.
Command-line tools for PDF processing
A collection of command line solutions for different PDF‑manipulation use‑cases, such as:
- PDF splitting (“explode” one multi‑page PDF into set of single‑page PDFs)
- cropping PDF pages
- …
Due to the nature of the topic, this post is (and probably will remain) a work‑in‑progress.
General: Overview of PDF-processing and manipulation tools
Coherent PDF (cpdf)
- Download: https://www.coherentpdf.com/eval.html (fully functional demo)
MuPDF (mutool)
- Download: no binary, install via
sudo port install mupdf - Changelog:
pdfcpu
- Download: https://github.com/pdfcpu/pdfcpu
- Changelog: https://pdfcpu.io/changelog.html
PDFtk server (pdftk)
QPDF
- Download: https://github.com/qpdf/qpdf/releases (for macOS using MacPorts QPDF port)
Other (non-/not-yet-tested) tools
1. Minimize PDF size
Example use‑case: Obvious.
TL;DR: Summary first
- Effectiveness of the tools (ordered by file size):
- acrobat optimize ≪ mutool clean ≪ cpdf squeeze < pdfcpu optimize ≪ pdftk compress
- ❶ Acrobat wins (but is paid), ❷ mutool is second & free (but is hard to configure), ❸ cpdf is third but is easiest to use
- I have also tested all possible combinations between these tools, and the results are best when Acrobat Optimizer is followed by yet another tool. So…
- Effectiveness of the combined tools (ordered by file size):
- acrobat optimize + cpdf squeeze < acrobat optimize + pdfcpu optimize ≪ acrobat optimize + mutool clean
Conclusion: Always optimize PDF in Acrobat PDF Optimizer, then squeeze it with cpdf squeeze!
Coherent PDF (cpdf)
cpdf -squeeze "in.pdf" [-squeeze-no-recompress] -o "out.pdf"
pdfcpu
pdfcpu optimize "in.pdf" "out.pdf"
MuPDF (mutool)
mutool clean -gggg -l -d -z -s "in.pdf" "out.pdf"
mutool clean has many options and it takes some experimentation to see what actually shrinks the PDF size:
‑gggg(Garbage collect unused objects / compact xref table / merge duplicate objects / check streams for duplication): first threeg's do not affect the file size for me, and the fourth makes it sometimes a bit larger and sometimes a bit smaller. I usually use the whole‑ggggparameter.‑l(Linearize PDF): this makes PDF ready for “Fast web view”, but makes it slightly larger. Note that MuPDF 1.26.0 removes linearisation support, so it does not really makes sense to use it.‑d(Decompress streams): this decompresses the whole file, which makes it larger – but when combined with‑z(Deflate uncompressed streams), it allows better PDF compression‑z(Deflate uncompressed streams): this is the most important switch, and when combined with‑d(Decompress streams) it lowers PDF size even more‑f(Compress font streams): no effect for me‑i(Compress image streams): no effect for me‑c(Clean content streams): no effect for me‑s(Sanitize content streams): this actually lowers file size for me‑AA(Recreate appearance streams for annotations): no effect for me (and not sure what it really does – at least while there are no annotations, it does not affect PDF file size at all)
PDFtk server (pdftk)
pdftk compress is not suitable for the task of really shrinking the PDF size to minimum, as the developer himself claims:
pdftk "in.pdf" output "out.pdf" compress
QPDF
N/A (not tested yet
)
Adobe Acrobat
Acrobat PDF Optimizer has tons of options. After thorough testing, the best settings seems usually to be these:
- Images tab
- ⚠️ This is a per‑PDF setting – it depends on your particular use‑case and file. My default is to have it turned off.
- Fonts tab
- ✅ always on, with font subsetting turned on
- Transparency tab
- 🚫 This causes optimisation to take extremely long time in some PDFs. My default is to have it turned off (and I cannot remember a situation when I actually needed to turn it on).
- Discard Objects tab
- ✅ Everything on, except Discard bookmarks (you never want that) and also Convert smooth lines to curves and Detect and merge image fragments (these are not needed in 99% of cases and they cause optimisation to take significantly longer, while they usually do not lower the PDF size at all). You might also want to Discard all Javascript actions, but if there are any internal links (e.g. table of contents, references or index pointing to specific places in PDF), this causes them to disfunction.
- Discard User Data tab
- ✅ Everything on.
- Clean Up tab
- ✅ Everything on.
2. Split each page of PDF into several pages (posterisation)
Example use‑case: you have (scanned) pages where each PDF page contains two physical pages, and want to crop those into two.
TL;DR: Summary first
Conclusion: Use cpdf ‑chop. MuPDF has some problems and combining pdftk with manual cropping in Adobe Acrobat is tedious.
MuPDF (mutool)
mutool poster -x 2 "in.pdf" "out.pdf"
Note that mutool poster sometimes sets both mediabox and cropbox – the latter seems unnecessary. More importantly, mutool poster causes problems when mutool trim is used afterwards – for some reason, it leaves the PDF completely empty. This does not happen when mutool trim is used after cpdf ‑chop.
Coherent PDF (cpdf)
cpdf -chop "2 1" "in.pdf" -o "out.pdf"
Unlike MuPDF, cpdf ‑chop only sets mediabox, which is enough.
Moreover, cpdf can also remove page labels, if needed:
cpdf -chop "2 1" "in.pdf" AND -remove-page-labels -o "dstNoLabels.pdf"
Indirect way: Duplicate each page, then crop out left or right half on odd and even pages
pdftk shuffle && cpdf -mediabox:
pdftk A=in.pdf shuffle A A output out.pdf cpdf -mediabox "0mm 0mm a5landscape" "in.pdf" odd -o "srcOdd.pdf" cpdf -mediabox "148.5mm 0mm a5landscape" "srcOdd.pdf" even -o "out.pdf"
The second step might also be done in Adobe Acrobat “Crop pages” function.
QPDF
N/A (not tested yet
)
3. Crop pages of PDF
See MuPDF documentation on different PDF page boxes (media|crop|art|trim|bleed]box).
Mediabox is a “physical” size of the page, while other boxes are in a way only “virtual”: they specify which content should be visible at what point and in which cases, but they do not alter real PDF page size.
Coherent PDF (cpdf)
cpdf -mediabox (/cropbox/artbox/trimbox/bleedbox):
cpdf -mediabox "0mm 0mm a4portrait" "srcA3.pdf" -o "dstA4.pdf"
Note that adjusting page sizes by cropping mediabox is (to my knowledge) the only way to do it without altering the PDF content in any way (as explained here in Coherent PDF manual). Cropping other boxes might lead to PDF structure being changed.
Adobe Acrobat
Note that Acrobat won't let you crop MediaBox, only other boxes (duh!).
- Go to “Edit PDF” and then “Crop pages” function.
QPDF
N/A (not tested yet
)
4. Remove cropped content from PDF
Example use‑case: You have cropped some pages but you want to actually remove the content, since otherwise it is only hidden but remains in PDF – this can be seen when you inspect the PDF in Adobe Acrobat via “Edit PDF” and zoom out the page – the cropped content will be selectable, although not visible, since it is out of the page margins.
According to its author, it seems that cpdf is not going to support this feature.
MuPDF (mutool)
mutool trim -o "out.pdf" -b cropbox "in.pdf"
Warning: In some PDFs, I have experienced mutool trim to also cut out some contents which was actually visible on‑page (that is, inside mediabox & cropbox). I don't know whether it was because the PDF itself was malformed, or whether it is a problem with mutool – but just in case, better avoid and use Acrobat below.
Adobe Acrobat
- Download custom user script CropBoxFix
- Import it into Acrobat Preflight (by double‑clicking)
- Run preflight and the script
QPDF
N/A (not tested yet
)
5. Text in Calibri-created PDF files cannot be copied/searched in Preview
Preview app (or any PDFkit‑based PDF viewer, such as Skim) cannot search/copy text from PDFs generated by Calibri. This is because the PDF created in such way uses CID Fonts, something which Preview app based on Apple's PDFKit does not support.
This leads to a situation where such PDF files can be properly shown and visually read, but trying to select (and copy) or search the text inside the PDF fails. See these sources for reference:
Fixing the problem with GhostScript
This can be fixed by converting/running the PDF file through the following GhostScript command:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH \ -dPrinted=false -dQUIET -sOutputFile="out.pdf" "in.pdf"
This was mentioned here.
GhostScript can be installed e.g. by MacPorts:
sudo port install ghostscript
6. Decompress the whole PDF for editing in text editor
Example use‑case: There are some cases when you need to see or edit the actual text contents of the PDF. For example, there are some metadata at the level of individual pages (like ) which no existing program will actually clean (Acrobat “Find hidden information” lists them, but keeps them there when you select to remove them).
So directly editing text contents of the PDF might come in handy.
TL;DR: Summary first
Conclusion:
Coherent PDF (cpdf)
cpdf -decompress [-no-preserve-objstm] "in.pdf" -o "out.pdf"
As mentioned by manual, -no-preserve-objstm will remove data from separate object streams and put them back into normal flow of PDF, which should make the PDF easier for direct editing.
Warning: After processing a PDF using this command (with or without the ‑no‑preserve‑objstm switch), I have not been able to use Adobe Acrobat's “Optimize” or “Compare documents” function on it ever again – no matter how much tinkering, document‑processing, transforming and cleaning I did on the PDF. So I consider this method to be unreliable if you want to maintain Adobe Acrobat compatibility (which I always do).
MuPDF (mutool)
mutool clean -d "in.pdf" "out.pdf"
mutool clean is specifically stated by developer as designated to “make a PDF file human editable” and to “expand compressed streams”, so this is the command to go.
There is one additional switch which deals with PDF decompression: ‑a, which ASCII‑hex‑encodes binary streams. This safely encodes binary streams so that there should be no problems when editing the PDF in text editor. However, this forces almost all streams in PDF to be encoded, which makes the whole PDF human‑unreadable, so it is not really helpful.
Of all tested tools, mutool clean is the only one which maintains original object reference numbers (e.g. /Metadata 22 0 R referencing object #22).
Warning: After processing a PDF using this command (with or without the ‑a switch), I have not been able to use Adobe Acrobat's “Optimize” or “Compare documents” function on it ever again – no matter how much tinkering, document‑processing, transforming and cleaning I did on the PDF. So I consider this method to be unreliable if you want to maintain Adobe Acrobat compatibility (which I always do).
pdfcpu
pdfcpu does not seem to support decompressing PDFs.
PDFtk server (pdftk)
pdftk "in.pdf" output "out.pdf" uncompress
PDFtk separates individual PDF dictionary elements by newlines (0A). E.g. a page definition looks like this:
<< /pdftk_PageNum 7 /Metadata 23 0 R /Rotate 0 /Resources 24 0 R /Type /Page /Parent 25 0 R /Contents 26 0 R /MediaBox [0 0 370.158 591.26] /CropBox [0 0 370.158 591.26] >>
It also adds its own elements (e.g. /pdftk_PageNum).
QPDF
qpdf --stream-data=uncompress:
qpdf "in.pdf" --stream-data=uncompress "out_qpdf.pdf"
This will effectively equivalent to using both --compress-streams=n and --decode-level=generalized.
There is also another switch, --qdf, which
QPDF currently does not support maintaining the original object ID.
New cases to come…
Comments
Adjusting $PATH on macOS Mojave (and linking it to Xcode Command Line binaries)
Trying to set PATH environment variable on macOS is hell.
This article presents a simple solution using launchctl utility which meets the following criteria:
- the PATH change is permanent (that is, it survives system restart);
- the PATH change is seen and propagated to both GUI and shell applications – that is, both Terminal (bash/Zsh in macOS Catalina+) and applications launched by Spotlight, Dock and Finder see the adjusted PATH;
- it allows appending a path to existing PATH variable, not just rewriting it to custom value;
- it should preferably allow setting the PATH on a per‑user basis, not system‑wide (and thus for all users);
- lastly, it works (at least) on macOS 10.14 Mojave and onwards
The article will also show how to make Xcode Command Line binaries available to all applications – this will, for example, replace the need to separately install python3 package (which is sometimes a little difficult), since it is part of the Command Line utilities.
Solution with launchctl config subcommand
The only — single — possible — working — way to set PATH environment variable is this:
- Per‑user $PATH change:
sudo launchctl config user path <new_path>
- System‑wide $PATH change:
sudo launchctl config system path <new_path>
To actually append a custom path to the existing $PATH variable, the command would look like this:
sudo launchctl config user path $PATH:<new_path>
The manual page man launchctl is actually helpful here. It tells you that this command specifically works only for setting PATH environment variable. Setting any other environment variable is possible with another launchctl sub‑command: launchctl setenv <variable> <new_value>.
What it does not mention is the crucial information that while it is meant to set environment variables in general, the setenv sub‑command cannot be used to set PATH variable. This information is even more important given that at some point before macOS Mojave, this was the preferred and working solution. Well, it does not work at least from macOS Mojave (reports differ as to precise OS X version on which it stopped working – see 1. 2,
3).
Caveat: this does not propagate changed $PATH to Terminal
The above solution is the only single one able to expose adjusted $PATH to GUI applications launched by Dock, Spotlight or Finder. However, launchctl config fails to propagate this $PATH to shell environment under Terminal. So, to have the $PATH adjusted also under this environment, you have to add the same changed path to one of these locations:
/etc/paths/etc/paths.d– this is actually a folder, where you create new file with your custom path(s)~/.bash_profile(probably works only until macOS Catalina+, which switched to Zsh – I guess that~./zshrcwill then work instead)
A good resource for these is here. I suggest using /etc/paths.d, since it allows adding or removing your custom path without interfering with other paths at all (as with /etc/paths) and it does not break with the change of default shell (as with ~/.bash_profile).
How to revert to default $PATH
As Hannes Schmidt, the author of EnvPane (a great app for setting environment values) fittingly noted:
Amusingly, there is no documented way to revert to the defaults.
The changes to $PATH made by launchctl config are stored in two different *.plist files under the /private/var/db/com.apple.xpc.launchd/config/ directory:
- Per‑user $PATH changes:
/private/var/db/com.apple.xpc.launchd/config/user.plist
- System‑wide $PATH changes:
/private/var/db/com.apple.xpc.launchd/config/system.plist
So reverting to the default is possible by simply deleting these files (which requires sudo authentication) and rebooting.
What does NOT work
Since there are almost dozen different solutions to the problem, it is I guess worth to list of all the ways which I personally tried and can confirm that they do not work (at least on macOS 10.14 Mojave):
So, trying to set custom $PATH in any of these files does NOT work (neither for GUI apps nor for Terminal):
~/.xprofile~/.profile~/.zshrc(but see note for~/.bash_profilebelow)~/.bashrc~/.bash_login/etc/xprofile/etc/environment/etc/launchd.conf(by setting environment variable withsetenv) – not working since Mac OS X 10.10 Yosemite~/launchd.conf– a twist to the previous answer, this does not work either, as explained here together with the right answer since 10.10 Yosemite)~/.MacOSX/environment.plist– not working either since Mac OS X 10.8 (pity, a nice Preference panel exists for setting it)Info.plistfile of the application (by setting PATH environment variable withLSEnvironmentkey, as tried here and as recommended by Apple)- using bash script called by launch agent created in
~/Library/LaunchAgents/– nicely utilized here, but not working since Mac OS X 10.12 Sierra
These files do NOT work to set custom $PATH for GUI applications, but they do set $PATH for Terminal only (and apps launched from it):
/etc/paths/etc/paths.d~/.bash_profile(probably works only until macOS Catalina+, which switched to Zsh – I guess that~./zshrcwill then work instead)
The last two ways (/etc/paths.d and ~/.bash_profile) are explained here.
Also, here is a splendid list of ways to set PATH variable on different Unix/Linux‑like systems. Neither of them works on macOS Mojave, but it is a great reference for other systems (duh!). And here is a good attempt to list possibilities for macOS, albeit outdated and no longer valid.
Linking binaries from Xcode Command Line Tools to PATH (and thus installing python3 by doing so)
This task is now easy:
sudo launchctl config user path "$PATH:/Library/Developer/CommandLineTools/usr/bin"
And because Xcode Command Line Tools contain python3 package (v3.7.3 ships with Xcode Command Line Tools 11.3.1, which is the latest version working on Mojave), this will also install python3 for all applications on your system, including shell scripts run in Terminal and also GUI apps (for example, qBittorrent 4.2.2+ requires python3).
As explained above, making this change visible in Terminal will require you to supply the Command Line Tools path also to /etc/paths.d. For this, the following command is enough:
sudo tee /private/etc/paths.d/90-Xcode-command_line_tools <<< "/Library/Developer/CommandLineTools/usr/bin"
The leading 90‑ in the filename causes the path to Command Line binaries to be added near the end of the $PATH construction. This is because the /private/etc/paths.d folder is traversed in alphabetical order, so that alphabetically “later” files get their paths added to $PATH later. Thus, by putting “90‑” at the beginning of the filename, we push the path to generic Command Line binaries down the road to allow more specific sources of binaries to take precedence over them.
Remark on setting DYLD_* variables (e.g. DYLD_LIBRARY_PATH or DYLD_FALLBACK_LIBRARY_PATH)
One last note about a remotely related topic. You might want to use the above procedures to set custom path to your dynamic libraries (*.dylib). This would make sense even for Xcode Command Line Tools, since they have not only their own binaries, but also dynamic libraries supplied in /Library/Developer/CommandLineTools/usr/lib.
You would normally do this by adding a custom path to either DYLD_LIBRARY_PATH or DYLD_FALLBACK_LIBRARY_PATH.
TL;DR: Do not even try. Since OS X 10.11 El Capitan and later this is now absolutely impossible, since all DYLD_* environment variables are cleared upon the launch of any executable for security reasons as part of System Integrity Protection (SIP). This means that setting these values is pointless, since they will be cleared anyway (that is, unless you disable SIP).
The alternative to using DYLD_* variables is to change the paths where the executable itself is looking for these dynamic libraries by using install_name_tool, as explained in Tweaking apps, executables and dynamic libraries with install_name_tool and otool.
Comments
Autoarchív
- 2025:
- 2024:
- 2021:
- 2020:
- 2019:
- 2018:
- 2017:
- 2016:
- 2015:
- 2013:
