Tuesday, September 30, 2014

Thoughts Concerning Selected Projects Historically of XEROX PARC - Another Academic "Lark"

XEROX PARC
  • ...
  • Lisp Machines
  • Metaobject Protool
  • ...
ETC
ETC2 - i.e. Towards a file stream model for CORBA
    • Basic filesystem operations (Save, Read, Rename, Delete)
      • Protocol appears to be specified at the granularity of files
      • How direct file I/O would be handled, in the implementation, is not specified
      • DS_EXTERNALREFERENCE [IDL type]
    • com.highqsoft.corbafileserver [IDL namespace]
    • Interface with the file server's local filesystem
      • CORBAFileServer.RootDir [Configuration parameter]
      • Relies on host OS' underlying stream buffering
      • Might not provide significant I/O control, filesystem exceptions, etc
  • Alternate view: Create, Read, Write, Rename, Delete
    • The Read and Write operations would require direct stream I/O onto the file server's filesystem
    • The Create, Rename, Delete operations would be implemented onto the filesystem structure underlying the file server
  • See also: Mungee et al. The Design and Performance of a CORBA Audio/Video Streaming Service
    • Raises concerns with regards to memory allocation and data handling in CORBA IIOP implementations
      • Responses: Caching and Memoization of object structures during the IIOP request/response cycle?
      • Orthogonal: IIOP in Common Lisp, cf. CLORB 
    • Stream Adapter - feature in model diagram, fig. 1
    • Virtual Device model in CORBA A/V
    • Media Controller model in CORBA A/V
    • Stream Controller and Stream Endpoint model in CORBA A/V
    • Question: Suitability of IIOP for connectionless/datagram protocols, cf. UDP?
    • Design concern: Does not provide an explicit read/write model
      • Appears to be designed for media consumer services, whether or not not extensionally suitable for media creation and editing
      • Filesystem protocol "Not included"
    • Resources Optionally in a Context with CORBA for A/V applications
    • Orthogonal Concepts
      • Resource Kernel architectures in Embedded Systems Development
      • Towards CORBA Architectures for Desktop Computing
        • The X Window System's XLIB Protocol
        • Desktop Remoting
      • Interfaces onto computer hardware environments, within computer virtualization systems
        • Bochs
        • VirtualBox
        • Xen
        • ...
      • Streams in SBCL
      • ...
    • ...
  • "Tack On" Items
    • Integrating filesystem structure protocols with CORBA A/V
    • Interfaces to filesystem I/O and IO control via CORBA 
      • cf. Streams iN SBCL
    • Efficiency of CORBA protocols in implementation
    • Far sidebar: Parallels of CORBA and RM-ODP. 

Thoughts Concerning Microsoft Windows Shell Integration for Applications

Presently, I'm endeavoring to replace Immunet with AVG 2015 Free edition -- having replaced my laptop's Mcaffee antivirus "trial run" software (whose registry features, some, are still in the registry, as namely in regards to Mcaffee's quarantine proces) having replaced that with Immunet -- the latter is derived from ClamAV somehow -- that, before the same "Trial run" had expired, and now Immunet has expired. I'm in no kind of a rush, really. I plan on installing AVG, shortly.

In the process of trying to determine where Immunet has suffixed away some files -- those that may have been "false positives," but such that Immunet states to have located a "Worm" in -- so, simply in trying to find what's the quarantine directory's pathname[1] I've been searching the Windows Registry for the string, "Immunet". In that process, I've noticed a couple of things that I would note on a sidebar, namely:  Concerning Microsoft Windows Shell Integration for Applications

Components for a Microsoft Windows Application, albeit in an ad hoc selection:

  • Installer
    • cf. Nullsoft Scriptable Installer (NSI) or otherwise
  • Main application binary
    • i.e. "The thing that shows up in the Start menu," using a classic Microsoft Windows shell or the similar.
    • May be extended with an additional "Smart menu" feature, such that that "Thing that shows up in the start menu" would itself provide a submenu unique to the same "Thing." The Kindle application provides such a "Smart menu," using the classic Kindle application for Microsoft Windows platforms.
  • Context menu integration
    • Specifically for the file manager's context menu
    • May or may not be relevant for an application, depending on the nature of the application
    • Example: "Context menu" integration within TortoiseGit
  • System tray integration
    • "Like as" with regards to the Context Menu integration, may not be relevant for all applications
    • Typically, system tray integration is a feature provided with "Service-like" applications, such as the iCloud Control Panel integration for Microsoft Windows platforms and its corresponding System Tray component
  • Uninstaller
    • Likely bundled with the installer.
  • Documentation
    • Manual
    • Support forums
    • Etc.
Simple outline!


[1] On further review, I've found the pathname for the Immunet quarantine folder at C:\Program Files\Immunet\Quarantine -- this, on Microsoft Windows 8.1. The files are all named peculiarly, there, and Immunet won't run so long as to provide more information about those files, now. I'll just have to re-install JabRef -- Immunet said it detected a worm in the same, though that seems peculiar to me, moreso for that Immunet had once scanned a *.crdownload file and said there was a worm in the same, though the file had not even finished downloading. So at this time, candidly, I'm not particularly trusting of Immunet's file scan architecture. and will be installing AVG instead.

Saturday, September 27, 2014

"This Space Reserved for Mathematics and Engineering"

In an effort to build a small bookstore for sharing on the web — as specifically, in a context of mathematics and engineering — I've developed the following browser widget, at Amazon Associates Central. Though I would rather like to develop, literally, a concept of how well one may integrate an online bookstore's associates program withing a normative online content development process, presently I've enough tasks on my task list, already. So, but here's books:

Wednesday, September 17, 2014

Towards Reviving the Garnet Source Tree

I've begun developing a fork of Garnet Lisp. Corresponding with the fork, I've also begun developing a few items of documentation, within a journal for the corresponding Genizee Project.

Focusing on the Garnet Lisp fork, this morning I've endeavored to make a git rebase of the garnetlisp branch, such that that branch would be denoted as it  having a head revision proceeding somehow from the last revision of the cvsgarnetlisp branch of the fork. This seems to have resulted in a substantial number of merge conflicts within the local source tree -- a few hundred such conflicts, in fact, which I must now manually merge, to continue with this development task. Towards that effect, I'd begun by using SourceGear DiffMerge as the Git merge tool. For the most part, I've simply been using DiffMerge to set the "local" copy, in the conflict, as it being the preferred copy, in the marge -- though having to do so, manually. Courtesy of an article by Nick Quaranto at git ready, I've been able to determine that it will be possible to automate this process, namely using the shell command "git checkout --ours".

On a related note, the the "git status --shortcommand can be used within a conflicting merge -- as in the following example --  to display which files are in conflict, after a number of manual merge resolutions, in the merge:

gimbal@granite:garnet$ git status --short | grep '^AA'
AA src/contrib/plotxy.lisp
AA src/contrib/pmop-class-browser.lisp
AA src/contrib/ritter-labeled-box.lisp
AA src/debug/debug-compiler.lisp
AA src/debug/debug-fns.lisp
AA src/debug/debug-loader.lisp
AA src/debug/inspector.lisp
AA src/demos/demo-angle.lisp
AA src/demos/demo-animator.lisp
AA src/demos/demo-arith.lisp
AA src/demos/demo-clock.lisp
AA src/demos/demo-editor.lisp
AA src/demos/demo-gesture.lisp
AA src/demos/demo-graph.lisp
AA src/demos/demo-pixmap.lisp
AA src/demos/demo-schema-browser.lisp
AA src/demos/demo-scrollbar.lisp
AA src/demos/demo-truck.lisp
AA src/demos/demo-unistrokes.lisp
AA src/demos/demo-virtual-agg.lisp
AA src/demos/demo-xasperate.lisp
AA src/demos/demos-compiler.lisp
AA src/demos/demos-controller.lisp
AA src/demos/demos-loader.lisp
AA src/demos/garnet-calculator.lisp
AA src/demos/garnetdraw.lisp
AA src/demos/tour.lisp
AA src/gadgets/GAD-scroll-parts.lisp
AA src/gadgets/arrow-line-loader.lisp
AA src/gadgets/browser-gadget-loader.lisp
AA src/gadgets/error-gadget-loader.lisp
AA src/gadgets/gadgets-compiler.lisp
AA src/gadgets/gadgets-loader.lisp
AA src/gadgets/gauge-loader.lisp
AA src/gadgets/gauge.lisp
AA src/gadgets/graphics-loader.lisp
AA src/gadgets/h-scroll-bar.lisp
AA src/gadgets/h-scroll-loader.lisp
AA src/gadgets/h-slider-loader.lisp
AA src/gadgets/h-slider.lisp
AA src/gadgets/labeled-box-loader.lisp
AA src/gadgets/menu-loader.lisp
AA src/gadgets/menubar-loader.lisp
AA src/gadgets/motif-check-buttons-loader.lisp
AA src/gadgets/motif-error-gadget-loader.lisp
AA src/gadgets/motif-gauge-loader.lisp
AA src/gadgets/motif-gauge.lisp
AA src/gadgets/motif-h-scroll-bar.lisp
AA src/gadgets/motif-h-scroll-loader.lisp
AA src/gadgets/motif-menu-loader.lisp
AA src/gadgets/motif-menu.lisp
AA src/gadgets/motif-menubar-loader.lisp
AA src/gadgets/motif-option-button-loader.lisp
AA src/gadgets/motif-parts.lisp
AA src/gadgets/motif-prop-sheet-win-loader.lisp
AA src/gadgets/motif-radio-buttons-loader.lisp
AA src/gadgets/motif-scrolling-labeled-box.lisp
AA src/gadgets/motif-scrolling-menu-loader.lisp
AA src/gadgets/motif-scrolling-window-loader.lisp
AA src/gadgets/motif-scrolling-window.lisp
AA src/gadgets/motif-slider-loader.lisp
AA src/gadgets/motif-text-buttons-loader.lisp
AA src/gadgets/motif-trill-device-loader.lisp
AA src/gadgets/motif-trill-device.lisp
AA src/gadgets/motif-v-scroll-bar.lisp
AA src/gadgets/motif-v-scroll-loader.lisp
AA src/gadgets/mouseline-loader.lisp
AA src/gadgets/multi-selection-loader.lisp
AA src/gadgets/multifont-gadget-loader.lisp
AA src/gadgets/option-button-loader.lisp
AA src/gadgets/polyline-creator-loader.lisp
AA src/gadgets/popup-menu-button-loader.lisp
AA src/gadgets/popup-menu-button.lisp
AA src/gadgets/prop-sheet-loader.lisp
AA src/gadgets/prop-sheet-win-loader.lisp
AA src/gadgets/prop-value-gadgets.lisp
AA src/gadgets/prop-value-loader.lisp
AA src/gadgets/radio-buttons-loader.lisp
AA src/gadgets/radio-buttons.lisp
AA src/gadgets/save-load-functions.lisp
AA src/gadgets/scrolling-menu-loader.lisp
AA src/gadgets/scrolling-string-loader.lisp
AA src/gadgets/scrolling-unlabeled-box.lisp
AA src/gadgets/scrolling-window-loader.lisp
AA src/gadgets/scrolling-window.lisp
AA src/gadgets/standard-edit-loader.lisp
AA src/gadgets/text-buttons-loader.lisp
AA src/gadgets/trill-device-loader.lisp
AA src/gadgets/v-scroll-bar.lisp
AA src/gadgets/v-scroll-loader.lisp
AA src/gadgets/v-slider-loader.lisp
AA src/gadgets/v-slider.lisp
AA src/gadgets/x-buttons-loader.lisp
AA src/gem/define-methods.lisp
AA src/gem/gem-compiler.lisp
AA src/gem/gem-loader.lisp
AA src/gem/gem.lisp
AA src/gesture/agate.lisp
AA src/gesture/gesture-compiler.lisp
AA src/gesture/gesture-loader.lisp
AA src/gesture/gestureinter.lisp
AA src/gesture/train.lisp
AA src/gilt/filter-functions-loader.lisp
AA src/gilt/gilt-compiler.lisp
AA src/gilt/gilt-functions-loader.lisp
AA src/gilt/gilt-gadget-utils.lisp
AA src/gilt/gilt-gadgets.lisp
AA src/gilt/gilt-loader.lisp
AA src/gilt/gilt.lisp
AA src/gilt/motif-gilt-gadgets.lisp
AA src/gilt/path-functions-loader.lisp
AA src/inter/accelerators.lisp
AA src/inter/angleinter.lisp
AA src/inter/animation-process.lisp
AA src/inter/animatorinter.lisp
AA src/inter/buttoninter.lisp
AA src/inter/define-mouse-keys.lisp
AA src/inter/find-key-symbols.lisp
AA src/inter/focus-multifont-textinter.lisp
AA src/inter/garnet-keytrans.lisp
AA src/inter/i-windows.lisp
AA src/inter/inter-compiler.lisp
AA src/inter/inter-loader.lisp
AA src/inter/interactors.lisp
AA src/inter/lispkeyhandling.lisp
AA src/inter/menuinter.lisp
AA src/inter/movegrowinter.lisp
AA src/inter/multifont-textinter.lisp
AA src/inter/selection-interactor.lisp
AA src/inter/x-define-keys.lisp
AA src/inter/x-inter.lisp
AA src/kr/constraints.lisp
AA src/kr/kr-compiler.lisp
AA src/kr/kr-doc.lisp
AA src/kr/kr-loader.lisp
AA src/kr/kr-macros.lisp
AA src/kr/kr.lisp
AA src/lapidary/constraint-gadget-compiler.lisp
AA src/lapidary/constraint-gadget-loader.lisp
AA src/lapidary/custom.lisp
AA src/lapidary/dialog-parts2.lisp
AA src/lapidary/lap-draw.lisp
AA src/lapidary/lapidary-compiler.lisp
AA src/lapidary/lapidary-loader.lisp
AA src/lapidary/move-grow-box.lisp
AA src/lapidary/new-editor.lisp
AA src/lapidary/query.lisp
AA src/lapidary/save-restore.lisp
AA src/opal/basics.lisp
AA src/opal/clean-up.lisp
AA src/opal/create-instances.lisp
AA src/opal/create-instances2.lisp
AA src/opal/defs.lisp
AA src/opal/fast-redraw.lisp
AA src/opal/halftones.lisp
AA src/opal/macros.lisp
AA src/opal/multifont-loader.lisp
AA src/opal/multifont.lisp
AA src/opal/new-defs.lisp
AA src/opal/objects.lisp
AA src/opal/opal-compiler.lisp
AA src/opal/opal-loader.lisp
AA src/opal/open-and-close.lisp
AA src/opal/pixmaps.lisp
AA src/opal/process.lisp
AA src/opal/roundtangles.lisp
AA src/opal/text-fonts.lisp
AA src/opal/text.lisp
AA src/opal/types.lisp
AA src/opal/update-basics.lisp
AA src/opal/update-constants.lisp
AA src/opal/update-window.lisp
AA src/opal/update.lisp
AA src/opal/utils.lisp
AA src/opal/windows.lisp
AA src/protected-eval/error.lisp
AA src/protected-eval/garnet-errors.lisp
AA src/protected-eval/prompter.lisp
AA src/protected-eval/protected-eval-compiler.lisp
AA src/protected-eval/protected-eval-loader.lisp
AA src/protected-eval/protected-eval.lisp
AA src/protected-eval/protected-process.lisp
AA src/ps/ps-compiler.lisp
AA src/ps/ps-loader.lisp
AA src/utils/general.lisp
AA src/utils/mouse-keys.lisp
AA src/utils/utils-compiler.lisp
AA src/utils/utils-loader.lisp
Together with "awk",there is the following shell command, such that would ensure that every local file would be used 'as is' in completing the merge. Note: This will overwrite any manual changes made to the merge-conflict files, during the merge.
FILES=$(git status --short | grep '^AA' | awk '{print $2}') 
git checkout --ours $FILES
git add $FILES
Note: That short script can also be of use when merging conflicting patches during 'git rebase'

It seems that many of the conflicts are due to changes within the structure and formatting of comments, within the files, as well as the addition of the RCS/CVS '$Id$' tag. I presume that those changes may've been made around the time of the 3.3 branch of the canonical  Garnet Lisp.

As another observation that I'd like to make note of, from during the merge -- as a sidebar to the tedious task of resolving the conflicts in the files: Garnet originally had included support expressly for one Coral Common Lisp (circa 1987-1989) such that is denoted as CCL in the CVS edition of the Garnet source tree. (Web view) (Info).

Reportedly, Coral Common Lisp was part of the origins of Apple's Macintosh Common Lisp (MCL) [BG2013] such that is a part of the development history of Clozure Common Lisp (i.e. contemporary CCL) [Wikipedia]. Evidently, Garnet's support for the original CCL  was removed from the Garnet codebase -- perhaps, sometime around the time of the Garnet 3.3 branch. The original CCL support for Garnet would still be available in the history of the CVS branch, however -- as now mirrored in the cvsgarnetlisp branch of the MetaCommunity fork of Garnet.

Pending a successful merge in the source tree on my laptop -- considering that this merge will be leaving out most of the support made expressly for the original CCL -- then I should try out the Garnet demos, to see how they'll run with the new CCL.

I've made a merged tree of each of the canonical CVS and SVN Garnet source code repositories. That merged tree is published in the branch mergetree, within the MetaCommunity Garnet repository at GitHub.

Presently (19 Sept 2014) I'm developing a set of ASDF system definitions for Garnet -- along with a few corresponding changes in the source tree, as with regards to system dependency resolution -- publishing those in the garnetlisp branch.

For writing the ASDF system definitions for Garnet, largely I've been referencing the original garnet-foo-loader.lisp files. Though tedious, this has been fairly trivial to "Work out". The effort has met with a "Hitch," however, as towards determining how to transpose the files and dependencies from garnet-gadgets.loader.lisp, in avoiding the circular dependency that would result between the derived gadgets and aggregadgets systems, if without moving files from the gadgets system, into the aggregadgets system.

At some point in the revision history of the files in the gadgets system, the source code was revised so as to depend largely on the definition of the opal:aggregadget schema -- thus, making those files and any files depending on those files, in effect, dependent on the aggregadgets system, though contained directly within the gadgets system. Considering that the gadgets system is expressly a dependency of the aggregadgets system, in effect this creates a circular dependency, such that may be observed when the corresponding system definitions are loaded "So far as to that point" with ASDF. There are so many files in the gadgets system, moreover, such that are dependent on the definition of opal:aggregadget, it may effectively seem to require that the gadgets and aggregadgets systems should be merged. However, such a merge would serve to adversely affect the alignment of the Garnet documentation onto both of the gadgets and aggregadgets systems, "As is".

Fortunately, it would not require a revision with regards to the Common Lisp packages in which the respective gadgets are defined, as they are all defined uniformly within the 'opal' package. It would serve to require, however, that the files from the original gadgets system would be annotated, within the resulting aggregadgets system definition, as for the origins of those files in the original 'gadgets' system -- therefore, corresponding to the Garnet Gadgets user manual. Optionally, those files may be annotated, as such, by simply containing all of those files within a unique module in the resulting aggregadgets system definition, the "Gg" module. The majority of the aggregadgets source files could then be contained within a corresponding "Agg" module. "Gg" would then depend on the single source file defining the opal:aggregadget KR schema, and the "Agg" module would then depend on the "Gg" module.

Saturday, September 13, 2014

An End of Entertainment

I've arrived at a conundrum, presently, in a study of electrical engineering. This, of course, is not a new condition to me. The conundrum that I have arrived at,  presently -- it is not, insomuch a question of access to knowledge, though that may be the easier concern to respond to, even of my own sentiments. Presently, in my view of the conundrum that I have arrived at, this conundrum occurs to my attention, initially, in such that I shall denote as so: I've found a book that addresses, very well, the same concepts that "we" are studying in ECT-125. In the view that I have developed about that same material -- my having "flunked out" of the course, once, already -- I think that although the same material is addressed somewhat thoroughly, and in a practical usefulness in the textbook of the ECT-125 course, but the textbook's description of the same material, it would seem to be lacking much of a mathematical view of the material. Inasmuch, the textbook for that same course may not as much help to develop a comprehensive sense for circuit analysis, as much as for simply completing the rote material of the course, as though ad infinitum.

I have found what I consider is a useful textbook for understanding the mathematics of the same material as is being addressed in the ECT-125 course. The textbook that I have found, it may seem to be lacking some of the practical material represented in the course's actual textbook, but insomuch as that that the same book I've found -- in no sense of competition -- it represents a mathematical view of the same material, comprehensively, I suppose the conundrum is essentially so: I find myself unable to dispense with either book. Beside that, in an all too personal regards, I feel rather stymied for my previous experiences in the same course.

In a short sense of summary: The course that I'm enrolled in is a course presented by DeVry University Online (DVUO). The course's course code is ECT-125. In a practical sense, it is the "Lab II" course for the electronics track in the electronics and computing program that I'm enrolled in -- a program ostensibly proceeding towards earning an associates of science degree in electronics and computing. Candidly, the "Computing" aspect of the same program seems to be represented almost exclusively of some material about Cisco networking -- namely, network routing. In all earnestness, I feel rather nonplussed at that, but it's such that I have to choke down my own grief about, anyway, to complete at least the electronics portion of the course, that that itself might be sufficient towards developing an understanding of more about computing.

In the Lab I course, we'd studied a whole lot about electrical resistors, after learning something of the basic foundations of electronics, as of Ohm's Law and Kirchoff's Laws of, respectively, voltage and current. That, of course, was in the time of a whole eight week session of study, effectively representing a semester of the same course. The resistor analysis part of the course became grossly repetitive, to a point, but I was able to improve my own sense of view about that, with a bit of consideration towards how such analysis might be modeled in a finite state machine, if not later in a computerized circuit analysis program. Of course, my now having flunked out ECT-125 -- the Lab II course -- I've now had an opportunity to see that it does not improve by a whole lot, in the Lab II course, all the repetitive reiteration of the same formulae, as though ad infinitum.

In the Lab II course, we're studying inductors and capacitors, primarily, as in a view of RL, RC, and RLC circuits, each in series and in parallel, towards calculating -- repetitively, so much that the calculations loose all sense of meaning -- capacitive reactance, inductive reactance, and impedance (inversely, admittance) with a brief mention of susceptance and some related concepts. This occupies us for the time of an entire session, but at least it's of a more varied lot of material than of, comparatively, the Lab I course. I've discovered, this evening, that I may be able to represent a lot of the relevance of the course's material, in one short page of writing. That being of an eight week course that I am invested in, but of course I'm no longer to retain any sort of a sense of higher expectations, neither about the progress of the course nor for my rather unlikely successes in life and career, if projected as a function of the same course -- the same university has well sapped all of the greater expectations out of me, already. I'm now prepared to assume a role as a nice function-applying machine -- and certainly, I should wish to develop my own "Communication skills", proceeding to such? I've been instructed of whom, to that effect? I shall reiterate my response, tonight: Here's a nice nothing for politics in technology, so far as absent of proficiency in technology.

If I've been able to develop anything of a sense of understanding of the material being addressed in the courses -- and not only in the courses at that university, in the world -- but so far as the courses have contributed to my understanding? In that, the courses themselves have been like merely an incidental keynote to me, in studying the actual material, in so far as I may ever be even momentarily able to study -- and in that, relying on many and varied additional reference resources, in addition to each course's beloved textbook and beloved brief lectures, absolutely. Tonight, perhaps I'm simply "Cheered up" that I've found a single book I can study, towards understanding so much as the mathematical relevance of the limited material being immediately addressed of the same "Lab II" course. I shall not be continuing towards a bachelor's degree, in such a line of study. It's been really an ill foot to start out on. Still, though, I try to complete the course of study that I'm. Although it fails me if towards developing any real sense of professional proficiency in electronics and/or computing, in and of itself, but maybe it's been some use toward weekend garage work? and oh I've been so helpful to the university, for keeping the university's staff employed. I'm investing how much of my life's own limited time and resources, for that?

There is definitely a reason I had wished to altogether avoid formal school programs about computing, or any topics related to computing.  I have certainly learned it, now: Wherein the school becomes dedicated merely to upholding a "Status quo," and though it would be the "Status quo" upheld of how many? If the "Status quo" is for merely a mindless repetition of material only superficially explained at the outset? It helps me in none, and again I'm in service to the agency I was paying for a service. The irony of that, I will not be able to forget. There is no "Character building," in that kind of a backwards arrangement.

What good is any of a sense of goodwill, either, in a society possessed of merely its own cynicism, vanity, and political delusions? I'll save my sense of goodwill for when the circuit tent caves in, of all its own lofty fantasies, if that would be the best that I can do. At least, then, I may be able to keep any of a sense of goodwill, to share ever, before that's all torn out of me yet.

There are two books about solid state electronics. In a world not whatsoever about science, however -- and about what, instead, I cannot ascertain -- this ends the short duration of my life's small aspirations, "To entertain," in whatsover, in the society of the globalized "Status quo", neocons and neoliberals inasmuch alike. I call it candor, no cynicism whatsoever.

Wednesday, September 3, 2014

Compatibility Note: Xilinx ISE WebPack NOT Compatible with Microsoft Windows 8.1, MAY BE Compatible with Linux

Towards developing a prototype of MIT's 1980s-era CADR Lisp Machine design on the Papilio FPGA platform, today I'd installed Xilinx ISE WebPack on my HP TouchSmart laptop. This laptop presently runs Windows 8.1 as its primary OS. Much to my chagrin, I've since discovered that Xilinux ISE WebPack is not compatible with Windows 8, but that it may be compatible with Linux.

Someone has provided some helpful advice for installing ISE WebPack on Ubuntu, specifically. When installing Xilinux ISE WebPack from DVD, the 'xsetup' file would be located in the root directory of the DVD image, itself. Documentation about installing Linux, of course, would be available of the respective Linux distributor. "YMMV" -- Of course, I'd tried to install Linux Mint directly onto my HP laptop, without immediate success however. I'd kept a sort of simple work-log, after that endeavor. Since then, I've effectively uninstalled the item from the laptop's hard disk drive, instead installing to Virtualbox on Microsoft Windows. It runs well enough, especially when running at realtime priority, but of course it's not as efficient as a Linux installation directly to the hard disk drive would be.

My HP Laptop uses UEFI firmware, moreover -- alternate to the conventional BIOS architecture. The laptop allows for "legacy" boot configuration, such that would function in a manner similar to a BIOS boot, but with the "legacy" configuration enabled, the laptop may not be able to boot to Linux, by default.  As something of a resource, for installing Linux in a manner as that the boot-loader would be integrated with the laptop's native UEFI framework, there's a Quick Install guide for Linux on UEFI, by Roderick W. Smith


I'd written the following notes, as was previous to discovering that ISE WebPack is fully incompatible with editions of Windows 8.

During the installation process, a dialogue window has appeared, notifying me -- effectively -- that the WinPcap installation provided with the ISE WebPack installation is not compatible with Microsoft Windows 8.1. The notification dialogue has provided a web link for further information.

In short, it seems that there is a sure workaround for that software compatibility issue, namely: To install WinPcap manually, after ISE WebPack is installed. Of course, considering that the WinPcap (4.1.1) as provided with ISE WebPack is only two patchlevels older than the current WinPcap (4.1.3) and that the former installed without apparent issue, the workaround -- as such -- may not be necessary.

I'm not certain of what exactly resulted in that -- ostensibly -- helpful dialogue window having appeared. It might simply be to an inaccurate view of the installer's platform compatibility. Nonetheless, the workaround -- as such -- would be available, should not impede normal ISE WebPack functionality, and inasmuch would be advised, simply to install WinPcap manually, in its latest available version.

Even with that completed, however, the applications installed with Xilinx ISE WebPack will not run successfully under Windows 8.1.