Home
Introspection (Chao) Mac OS

Introspection (Chao) Mac OS

June 03 2021

Introspection (Chao) Mac OS

Modern OS kernels including Windows, Linux, and Mac OS all have adopted kernel ASLR. Introduction State-of-the-Art Overview Design Evaluation Discussion Conclusion References Why Kernel ASLR. For virtual machine introspection and forensics to be effective, we must derandomize kernel ASLR. Development; How to Build ClickHouse on Mac OS X. Build should work on x8664 (Intel) and arm64 (Apple Silicon) based macOS 10.15 (Catalina) and higher with recent Xcode's native AppleClang, or Homebrew's vanilla Clang or GCC compilers. 'RuntimeWarning: You have imported the Gtk 2.0 module. Because Gtk 2.0 was not designed for use with introspection some of the interfaces and API will fail. As such this is not supported by the pygobject development team and we encourage you to port your app to Gtk 3 or greater. PyGTK is the recomended python module to use with Gtk 2.0' ).

  1. Introspection (chao) Mac Os Catalina
  2. Introspection (chao) Mac Os Download

At a Glance

Expert’s Rating

Pros

  • Panther compatibility
  • Better large-media support
  • Hard-drive backups now span multiple drives
  • Faster hard-drive–based backup

Cons

  • Can’t run multiple simultaneous executions
  • No backward compatibility for networked clients
  • New features appeal mostly to enterprise users
  • May need to reset or create new backup sets

Our Verdict

Everyone has a mission-critical application — that one program they can’t work without (Adobe Photoshop, Microsoft Excel, or Apple’s Final Cut Pro, for example). But backup programs are mission critical for all users, no matter how they earn a living. Dantz Development’s Retrospect backup software, the most popular of this genre, performs full and incremental backups of local and networked Macs and saves data to a wide variety of storage devices.

Many people waited to upgrade to Mac OS X until Retrospect 5.0 ( ; July 2002) was available for the platform. And many people have also held off on upgrading their servers to Mac OS X 10.3 (Panther), due to its incompatibilities with Retrospect 5.1. Retrospect 6.0 addresses those incompatibilities but otherwise offers only a few new features, which are aimed at people using Retrospect to back up very large amounts of data.

New Features

The main change in Retrospect that’s likely to get non-enterprise users to upgrade is Panther compatibility. Panther introduced FileVault and Fast User Switching (among other things), and Panther Server introduced case-sensitive HFS+ (in which documents named thisfile and ThisFile can exist in the same folder). These changes caused trouble in Retrospect 5.1, forcing careful users to either work around the problems or hold off on upgrading the Macs running Retrospect to Panther, though client Macs could be upgraded individually without ill effects.

Panther Issues

In our testing, Retrospect 6.0 successfully worked around such obvious issues with Panther by adding an option to ignore FileVault-sparse images (a disk image of your entire Home folder that, when any small change occurs, must be backed up in its entirety, adding many gigabytes to your backup set every day) and refusing to allow multiple users on the same Mac to launch Retrospect simultaneously. These changes make it possible to upgrade any Mac running Retrospect to Panther.

Retrospect’s most compelling new feature is its improved backup to hard drives, which are now the most cost-effective backup media for small to medium-size networks, thanks to low prices and ever-increasing capacities. Retrospect 6.0 significantly improves backup performance to external FireWire drives.

Another major change, however, is support for backup sets that span multiple hard drives as though they were tapes or optical discs. This allows a hard-drive–based backup set to grow indefinitely, something that wasn’t possible before. In Retrospect 5.1, a backup set was limited to the size of the drive, which forced manual intervention in the form of eras-ing the backup disk and starting over, or starting a whole new backup set when a drive filled up. This change makes hot-swappable FireWire drive bays such as Granite Digital’s FireVue ( ; Reviews in Brief, January 2004) and WiebeTech’s BayDock (866/744-8722, www.wiebetech.com) particularly attractive backup devices, since you can now back up to a series of inexpensive hard-drive mechanisms installed in hot-swappable trays.

IntrospectionIntrospection (Chao) Mac OS

Enterprise Benefits

Enterprise users will appreciate Retrospect’s other new features, though they may be left wanting more. The program now supports the Xserve RAID, as well as SCSI and Fibre Channel tape-drive libraries, with features such as bar-code inventory (which allows the program to quickly locate and identify tapes) and more than 128 tape slots. Users running OS X 10.3.3 with a tape autoloader or Fibre Channel library must download Retrospect’s free upgrade (to version 6.0.193), which enables these drives to work again. A change in 10.3.3 had rendered such drives inoperable with Retrospect 6.0. In addition, Retrospect’s backup sets can grow beyond the previous limit of 1 terabyte, a necessity for organizations with massive quantities of data generated by video, genomics, or other data-intensive fields. For people who have bumped up against Retrospect 5.1’s backup-set size limits or been forced to jury-rig a backup strategy for lack of appropriate device support, Retrospect 6.0 is worth considering.

Not Looking Back

Although Retrospect 6.0 can read and restore backup sets created by previous versions, the addition of Unicode and terabyte support forced a change in the backup-set format such that users must reset existing backup sets or create new ones, an annoying requirement for companies with complex backup procedures. The Retrospect 6.0.193 update enables new media backups to backup sets created by previous versions. This is a welcome change that lets companies add to existing backup sets without erasing old media, an act that could be troubling for legal or auditing reasons.

All Must Upgrade

The lack of backward compatibility extends to Retrospect clients as well; all copies of Retrospect Client on networked OS X Macs must be upgraded to version 6.0. Although Retrospect 6.0 can update all connected clients and is smart about updating only those that need it, ensuring that every Mac on a large network is updated is onerous. It would help if Retrospect could use OS X’s Wake For Ethernet Network Administrator Access feature to wake sleeping Macs for backup or client update.

Administrators of networks large and small must still initiate file restores for users who have lost data, since the Retrospect Client software running on each networked Mac doesn’t let individual users restore their own files. Such a feature would potentially reduce the load on network administrators. Lastly, unlike the Windows version of Retrospect, which can run multiple simultaneous executions, Retrospect for the Mac is still limited to a single execution at a time. Multiple simultaneous executions improve overall backup speed and administrator productivity, in part, because one slow client can’t make every other client computer wait to be backed up.

Macworld’s Buying Advice

On the surface, Retrospect 6.0 is a fairly minor upgrade offering compatibility changes and a few new features. Users who want to run Retrospect on their desktop Macs with Panther should definitely upgrade to version 6.0. But for people who see no reason to upgrade their servers from Jaguar, the other changes in Retrospect 6.0 may not warrant paying for an upgrade right now. But large companies with significant backup needs, and people looking to move up to backup software with network and large media support, should upgrade to version 6.0.

The open source Qt development toolkit is a popular choice for cross-platform development. It provides native-looking widgets and tight integration with the underlying platform on Windows, Linux, and Mac OS X. Qt applications that are written in C++ are easy to compile and deploy across all three platforms, but what if you don't like C++? I prefer Python, a dynamic programming language with a richly expressive syntax and exceptionally powerful support for introspection.

Fortunately, there are cross-platform Python bindings for Qt. The downside, however, is that packaging PyQt applications so that they can be deployed to users on Windows and Mac OS X is an immensely frustrating and arcane process. I declared victory last week after spending several hours battling with MacPorts and distutils. Now that I have unlocked the toolkit's dark mysteries, I can show you the hidden secrets that will allow you to achieve mastery of the alchemical art of cross-platform PyQt application deployment.

First, you'll need access to each platform for which you want to build redistributable packages. The easiest way to accomplish this is to use a Mac and either triple-boot or virtualize Windows and Linux. The initial setup process for Mac OS X will require a lot of very heavy compilation, so you are going to be in for a world of pain and a very long wait if you try to do this on a Mac mini.

My test application

My computing environment is a quad core Mac Pro configured to dual-boot OS X and openSUSE 11.1. For Windows, I'm running XP in VirtualBox. I do most of my actual development in Linux, but you can do it pretty comfortably on any of the platforms.

My test application, which I call Orbital Liftr, is a simple utility that I made for batch uploading graphics to Ars Technica's content management system. The Ars CMS is built on Movable Type, which means that it supports the MetaWeblog XML-RPC API, and my app lets you upload images to any standard Movable Type or WordPress blog that supports the API. The app has a few simple features like support for receiving images via drag-and-drop, and it can proportionally resize them before uploading.

The program consists of one module of Python code which contains the application logic and a few basic user interface forms that I made with the Qt Designer program. I have published the complete source code of the program on Launchpad. You can use it to follow along with this tutorial, or you can use your own code.

Advertisement

PyQt on Windows

To build a distributable PyQt package for Windows, you first need to set up a working PyQt execution environment. Start by downloading and installing the standard Qt SDK from the Qt Software website. Next, you will need to install Python 2.6.1. Use the binary installer for Windows from the Python website.

The next step is installing the Python bindings, which can be obtained from the download page at the PyQt website. You'll want to get the Windows installer that is compatible with Python 2.6; it's listed at the bottom of the Binary Packages section.

These components should be enough to give you a fully functional environment for running PyQt applications. You can test it by making a simple PyQt application with a few widgets in a single .pyw file. If your PyQt environment installed correctly, you should be able to run the program by double-clicking the .pyw file in the file manager. There are several example scripts that come bundled with the PyQt installation. These can be found in the site-packagesPyQt4examples folder.

Now that you have a working PyQt environment, you need to package up the application so that you can distribute it to users and make it possible for them to run it without having to install all of the dependencies. This is done with a utility called py2exe that leverages Python's distutils framework. An installer for py2exe is available from the SourceForge website.

You will need to adapt your setup.py script so that it can provide proper instructions to py2exe. If your program is simple and you already know how to use distutils, this shouldn't be terribly hard. The following example shows my setup.py file:

Most of that is pretty much standard distutils. The last two lines were added to accommodate py2exe. The 'windows' parameter specifies the script that py2exe should use to launch the actual program. As you can see, for a simple program that is being ported from Linux, it's the same thing that you already have in your 'scripts' parameter.

The 'options' parameter allows you to pass specific instructions to py2exe. For PyQt applications, you will need to tell it to include sip, a fundamental component of the PyQt binding system.

Advertisement

The py2exe tool will typically compress all of your required Python library modules into a single zip file in order to reduce space and keep your redistributable package clean. I disable that with the skip_archive option. My program dynamically loads the user interface description XML files at runtime, but it can't read those files when they are bundled up in the zip archive.

When you are building PyQt applications with py2exe, you need to either statically generate your user interface modules from the XML description files in advance, disable archiving with the skip_archive option, or structure your program so that the UI files will not end up in the archive.

After you finish making your setup.py script, you can build your redistributable package by running it from the command line:

The terminal will display a lot of messages as it byte-compiles your modules and copies all of the necessary dll files and other dependency components. The automated setup process will take place in the 'build' directory and everything that your users need will be copied into the 'dist' directory. If the script won't execute, make sure that Python is in your PATH environment variable.

To deploy your application to users, ship them everything that is in the 'dist' directory. This adds up to roughly 25 MB for a simple program. It includes the executable and all of the runtime dependencies, which means that users will be able to run the program without having to install the other components.

Introspection (chao) Mac Os Catalina

You can just zip it up and ship it out that way, but it will be more convenient for your users if you give them a single self-standing executable with a standard installer wizard. A lot of PyQt developers seem to like Inno Setup, a free installer maker.

Introspection (chao) Mac Os Download

Although your users will not have to manually install Qt or the PyQt bindings, they might still have to install the VC++ 2008 Redistributable Package. This package is available directly from Microsoft.

Deploying PyQt on Windows works reasonably well. Inno Setup uses good compression, so you can get your final package down to an acceptable size and make it easy for users to install. The biggest challenge is getting py2exe to deal appropriately with certain kinds of corner cases.

If your application is complex or structured in an unusual way, you might run into problems. For example, py2exe doesn't respect the distutils package_data option. There are a few workarounds for problems of that nature, and you can get more details about py2exe from the project's website.

Introspection (Chao) Mac OS

Leave a Reply

Cancel reply