Month: December 2015

Announcing the Encapsular Project

Having begun a new adventure with regards to a design thesis about small scale applications of robotics – in the short, festive period of the wintertime Christmas season – I’ve started to review my notes as with regards to the original Capsela brand of – in a manner of a view – a brand of building blocks. Of course, Capsela would have been available in the toys section of a retail store, for the duration in which the Capsela brand was being actively marketed in retail distribution.

That thesis would not be apparent by the following tweet. Rather, the following is a comment made about an application of software, such that may be available for applications in a context of of computer aided design and drafting (CADD) technologies – specifically, QCAD, a CADD platform available each of a free/open source and proprietary licensing model.

Continue reading “Announcing the Encapsular Project”

Brainstorming a Knowledge Model for Audio/Video Media Proecssing

I’ve begun a short project for creating a web API client model in Common Lisp, as to be accompanied with a corresponding presentation model in CLIM.  I’m focusing about four web APIs, for the prototype:

  • Twitter and Evernote, both of which use OAuth authentication
  • Diigo, which uses HTTP Basic Authentication
  • Encyclopedia of Life, which provides an open access API

With four total Web APIs to consider, the thesis is set aside – momentarily – for a developing a concept of a matter of media file management. As “Below the fold,” this becomes to a concept of a hybrid knowledge base of media formats and media processing tools, with no too proprietary window tag for the essential information science of the knowledge model’s design.

Continue reading “Brainstorming a Knowledge Model for Audio/Video Media Proecssing”

Component-Oriented Sotware Development on a FreeBSD OS – Introducing GRANITENET

I had been searching through the ports list at Freshports, this morning – then researching a thesis with regards to audio/video file management on a FreeBSD Operating System (OS) – when I noticed an article denoting a couple of port utilities that I had not been immediately familiar with, namely portmaster and portupgrade.

Port Information Pages

The article that I’d noticed – conveniently enough – was an excerpt of the FreeBSD /usr/ports/UPDATING file, as presented via Freshports – no doubt, as presented as parsed from the file,  in an application of something probably much like a regular expression matching any single name of a known port in the FreeBSD ports tree for presentation via the respective port information page onto the FreeBSD ports tree as presented at Freshports.

An Alternate Ports Management Tree

It would be a short segue from a thesis topic that I had wished to write about, this morning, to venture as to describe any manner  of an alternative with regards to the “All the ports in one source tree” model as applied in the conventional ports tree. In a short synopsis, the secondary thesis might entail an application of something like an SVN externals and/or Git submodules structure, one for each port selected to a ports tree, if not also one for each distfile source tree, as could be linked newly within each port.  Certainly, such a model would serve as to complicate the overall tasks of ports tree management, but – in localizing the possible changes for each port to the filesystem of each port submodule or port external  – it might serve towards a greater sense of trust for maintenance of the ports tree, overall.

It may be a naive thesis – nothing immediately with regards to a situation as of, for instance, when one distfile may serve, functionally, as a source tree of multiple ports – such as, for instance, with each component developed of the Enlightenment Foundation Libraries (EFL), and each of those that is published as a port available in FreeBSD, all drawing from essentially the same distfile source tree, in any single revision of the upstream or distfile source tree for EFL. In Debian packaging – by contrast – it is possible to develop a model of “One distfile to many packages.” Such may also be possible in developing something like conventional FreeBSD ports, but it may require something of  a differing source tree structure, such that one distfile may be referenced together with multiple ports, in a single port building tree.

Such a manner of an adaptaiton, of course, it might serve as to require something of an extension as with regards to the conventional port Makefile structures, as to adapt the Makefile process for the availability of more than one port together with a single distfile in any single port build container. Certainly, it would need a concrete proof of concept.

If it may not serve as to excessively complicate the configuration of individual ports, perhaps it might rather serve as to effectively merge the configurations of individual ports, at least for those ports which are produced, each, from a shared distfile – such as, for instance with the EFL components. Moreover, it might serve to prevent duplication of distfile contents for those ports presently deriving of an equivalent distifle. If only academically, it may seem like a trivial affair.

Towards a Functional Observatino of BSDPAN

Presently, this thesis article resumes as to share an observation about another topic, namely: The functional novelty of BSDPAN as a component structure effectively integrating PERL CPAN with the FreeBSD ports tree [Smith2008]. Perhaps it may serve as something of a reference model, with regards to integrating other “Third party” software distribution frameworks with FreeBSD – such as, Maven archetypes, OSGi bundles, CORBA CCM components, if not also pkgsrc ports. To develop a more comprehensive thesis, in such regards, perhaps it would need more than a short morning’s consideration.

Personally, I was not familiar with the existence of BSDPAN until reviewing the pkgtools.conf file installed with portupgrade.

Functional Points about Portupgrade

In itself, I think portupgrade is to a distinct attention with regards to software component management on a FreeBSD OS – that portupgrade provides some useful functionality, such that may serve as to be indispensable, immediately and prototypically, in tasks of systems administration.

In one regard, I notice portupgrade provides a means for ‘pinning’ ports, in a name-based regard – namely via the HOLD_PKGS configuration parameter – in a manner somewhat analogous to a package pinning methodology available with the Debian dpkg and apt/aptitude tools. Personally, I had been searching for such a feature, at an earlier time in my own experiences with a FreeBSD OS.

In another regard, portupgrade  also provides an interface for defining event-oriented hooks, as viz a viz the following configuration parameters for portupgrade:

  • BEFOREBUILD
  • BEFOREDEINSALL
  • AFTERINSTALL

Also, there are useful shell commands that portupgrade provides, for example:

portsclean -CDLP # additional cleanup after port builds
pkg_deinstall -rR bad-mojo999 # dependency traversal

A Few Functional Observations About Portmaster

A small number of example applications of portmaster, beside the detailed documentation:

portmaster -s -y --clean-distfiles # noninteractive cleanup
portmaster --clean-packages # interactive
portmaster -a # update installed packages via ports
portmaster --list-origins # list all installed ports
portmaster --force-config coolutils/good-mojo777

Neat utilities.

A Topical Overview of Poudriere Applications

Of course, there’s also poudriere, such that provides a number of features for ports management onto the conventional FreeBSD ports tree. As a short, topical survey:

  • Automated jail/sandbox creation for port building
  • Port tree updating
  • Port build configuration
  • Port build automation
  • Port build logging
  • Package repository creation
  • Numerous event-oriented hooks for the port build process
  • Cross-compiling for ports on non-host machine architectures – e.g. armv6hf

If it does not immediately proceed so far as to automate a complete kernel build, base system build, and port buld procedure, but certainly it is an extensible framework.

Onto FreeBSD Make

As a central feature of the build process for (1) the FreeBSD kernel, (2) the utilities of FreeBSD base system userspace, and (3) the FreeBSD ports tree – together, the features of a FreeBSD OS, as a manner of a species of BSD OS – there is the contemporary manifestation of FreeBSD pmake as make, on a FreeBSD OS – ostensibly, such that might ever be obsoleted in lieu of portable bmake – however the contemporary FreeBSD make may have been forked from the original pmake, such that is now available as fmake, much in the complex genealogy of a BSD operating system.

Sure, it would be nice if a C toolchain would not be a mystifying thing  or a developer to put together – how juxtaposing to the GNU Compiler Collection (GCC) and its species in each of a GNU Linux distribution, and FreeBSD, and MinGW, there’s also LLVM and its manifestations, such as in each of FreeBSD, the Qualcom Snapdragon platform, and LLVM on Debian GNU/Linux.

Concerning so much as the functionality of the build automation tooling of a conventional C toolchain: As well as the present state of each of bmake, pmakefmake, and the current state of FreeBSD make, there’s also GNU make, i.e gmake. In some toolchains – for instance, with WebKit – moreover, cmake may be applied.

In the state of the art with Java toolchains, conventionally Maven, Ant and/or Gradle may be applied. Certainly, Maven and Ant were more the favorite, before the trend towards applying Gradle in Android Studio – needless to say that there are specialized software distribution processes for Java servlets, OSGI bundles, and JavaME MIDlets, specifically in a context of Java applications.

Build automation tools may be available for other programming languages, too – such a with each of Ruby, Lua, and Common Lisp.  Even CORBA defines its own manner of a software bundling framework, in applications of the CORBA Component Model (CCM) – albeit, in what may be ostensibly a platform-agnostic component framework, CCM.

To a Developer’s Perspective, Funtionaly

Where, then, does that leave the independent software vendor? For all of the available toolchains and their respective applications, it may seem like a mystifying manner of a toolbox to even begin to understand.

This short survey of a thesis does no begin to address any single manner of a commercially branded software platform, such as Microsoft Visual C, Adobe Flash, or National Instruments (NI) LabVIEW. Neither does this thesis develop any single concept of an integrated development environment (IDE).

Beginning at a topic of FreeBSD ports, then proceeding towards developing a topic of the FreeBSD OS build process, lastly, in providing an overview about a number of software build automation tools – as are available in individual programming languages – perhaps this thesis may seem to go too broad, in scope.

Ostensibly, every software component denoted in this thesis may be modeled with a discrete, logical model, in a domain of software development – such that a logical model may be correspondingly applied as in a practical modeling application. Albeit, to model the commercially branded products, it might seem as though to encroach on any single manufacturer’s own intellectual property. Neither does this thesis propose as to encroach on the terms of any single, legally binding non-disclosure agreement.

Certainly, it  must be possible for a construct of free/open source software to “Stand on its own premises,” as a feature of the state of the art in computing – if not, alternately, as a feature of the state of the market, as in so much of a competitive and commercial branding about software and software services, such as may be of a domain of commercial software productions.

Twoards an Analysis of FreeBSD Makefiles

Finding it as a manner of a scope to which to anchor a sense of perspective, the FreeBSD Makefile architecture may be introspected on, producibly, in analysis of the output of make -dv. In a functional regard, the output of make -dv represents a manner of a stack machine, namely o the Makefile interpreter as invoked with the make shell command. Effectively obviating a lexical analysis of Makefile syntax, the output may be analyzed for discovery of Makefiles as file objects, as well for discovery of Makefile parameter names, functional parameter value expressions, and final parameter values as computed by the respective Makefile interpreter.

Reviewing the FreeBSD Porter’s Handbook, in juxtaposition to the output of the Makefile debug stream, it may be possible moreover for any single software application to discover the complete configuration of any single FreeBSD kernel build, or singular base system build, or individual port build. Focusing distinctly about port builds, the values of specially named Makefile parameters may be analyzed for a purpose of discovering how individual Makefile parameters will effect the immediate dependency tree of any single port build in which each respective parameter is selected – viz a viz <OPTION>_<FEATURE>_ON and <OPTION>_<FEATURE>_OFF parameters, and ${PORT_OPTIONS:M<OPTION>} pattern expressions – such as may be defined in a port Makefile, independent of whether a single port configuration <OPTION> is selected at build time.

In the previous example, <FEATURE> may typically be defined as one of CONFIGURECMAKE, or QMAKE.

Makefile parameters affecting the value of CONFIGURE_ARGS:  <OPTION>_CONFIGURE_ENABLE and  <OPTION>_CONFIGURE_WITH

Makefile parameters affecting values of parameters applied in the Makefile environment, itself:  <OPTION>_USE and  <OPTION>_USE_OFF

Concluding In the Cloud

In a context of the contemporary cloud services environment, a sofrware build automation service may find applications not only in an academic sphere, but moreover in a creation of actual production systems from tangible build descriptors. In an application of a concrete build descriptor framework as in a context of a cloud service host such as IBM BlueMix, Amazon Web Services, or any single implementation of an Open Stack architecture, theotetically it is possible to construct a complete wide area network, such that may apply a lot of principal authentication services, hypervisor provisioning services, storage configuration services, software defined networking (SDN) services, and direct operating system management services, as to produce a functioning network, as well as a network management system, and any single range of software services as may be provided via the respective SDN configuration. Not as though to obviate any concrete analysis of software credentials, components, and services, in all of a theoretical convenience of such a modular framework, it may be possible to implement a trusted networking service in any context such as of DevOps tooling, scientific computing, or content management services.

In such a perspective, perhaps it may seem as like a manner of an excessive architecture, if applied for creating only a simple web log service for a sjngle web log. Thus, it may seem to ask a broader scope than of a single proof of concept as may be produced of the Hardpan Media Library – an academic project, of a kind, though not expressly non-commercial in all estimable applications. With the licensing of such a project amounting to no more than the sum of the licensing of its individual components, functionally – no manner of a premium, proprieatry branding included, immediately, in this as an application of logic, essentially as in a context of a thesis of computational sciences and digital network communications, applied in describing a manner of a software components model, albeit in a manner of a theoretical, if not singularly academic abstraction – it may not be as easily estimated that it could become to any single manner of an exclisively proprietary project, with or without any manner of a formal patent filing. Thus, albeit in something of a manner of a moderate vagueness, the GRANITENET architecture is introduced in a manner of an introductory thesis.

Thesis Outline: Platform-Agnostic Component-Oriented Development on a BSD Baseline

To propose a thesis, in a format of an outline:

  • Virtualization – Concept
    • “Bare metal” Virtualization
      • Xen
      • Bhyve
      • Commercial virtualization platforms
    • Virtualization – applications in “Userspace”
      • QEMU
      • VirtualBox
      • Bochs (historic)
    • Virualization – Emulation
      • WINE
      • Linux emulation in FreeBSD
        • Fedora 10 (f10)
        • CentOS 6 (c6)
  • Component-Oriented Design
    • Academic concept: Component-Based Software Engineering (CBSE)
    • Model-Driven Design with Standards-Based Modeling Tools – OMG Modeling Standards
      • Meta-metamodel: MOF
      • Metamodels
        • UML
        • SysML
        • ODM metamodels
          • RDF
          • OWL
          • Topic Maps (TMDM, XTM)
          • Common Logic
        • BPMN
        • SPEM
        • MARTE, AADL
      • Models
        • UML Stereotypes – Applications of UML Profiles in UML Models
        • Model Libraries
        • User-Designed Models
        • Diagram Kinds
          • Presentations of Model Data
          • UML: Class Diagram, Activity Diagram, ..
          • SysML: Block Definition Diagram, Internal Block Diagram, …
      • Objects and Data
        • Data generated of instance-specific computations
        • Objects constructed as high-level representations of data structure
        • Logically, computations resulting of applications  of Models to Systems
  • A Survey of BSD – Towards a Concept of Operating Systems
    • A Genealogy of BSD
      • Primary BSD Distributions
        • OpenBSD
        • NetBSD
        • FreeBSD
      • Forks Directly of Primary BSD Distributions and Forks Directly of Forks
        • HardenedBSD
        • TrustedBSD
        • FreeNAS
        • pfSense
        • opnSense
        • Dragonfly BSD
    • A Logical View of BSD
      • Kernel
      • Userspace
      • Ports / Packages
    • Juxtaposition to GNU/Linux
      • Different kinds of developer ecosystems
      • Different kinds of licensing models
      • Different kinds of C Toolchains
        • GNU Compiler Collection (GCC)
        • LLVM
      • Different kinds of ‘make’
        • GNU Make
        • pmake
        • bmake
        • See also: CMake
    • Assorted Topics
      • I2C Daemon in FreeBSD
      • Netgraph in FreeBSD
      • Userspace Sandboxes in FreeBSD – conventionally, jails

Blue Sky: Component-Level Compatibility for Software Distribution on BSD Operating Systems

  • Component Kinds – Software Components
    • Component Kinds in POSIX-Compatible Operating Systems
      • pkgsrc port
      • FreeBSD Port
      • Debian Package
      • RPM Package
    • Component Kinds in Java Systems Development
      • Maven Artifact
      • Maven Archetype
      • OSGi Bundle
      • MIDlet (JavaME)
    • Component Kinds in Platform-Agnostic Systems Development
      • See also: CORBA
      • See also: CORBA Components Model (CCM)
  • Development Phases – Software Component Platforms
    • Platform Design
    • Platform Documentation
    • Platform Build Test
    • Platform Test
    • Production Applications
    • Issue Tracking
    • Component Review
  • DevOps Tooling – Concepts and Case Studies
    • Software Change and Configuration Management (SCCM)
      • Change Tracking
      • Patching
      • Git, Mercurial, Arch, SVN, CVS, RCS …
    • Continuous Integration (CI)
      • Build Testing
      • Application Testing
      • Application Performance Profiling
      • CI Servers
    • Authentication
      • FreeRADIUS
      • LDAP
      • Kerberos
      • OAUTH2
      • PKI
    • Public Social Networking
      • Project Branding
      • Public Relations
      • Public Notifications
    • Host Networking
      • Ethernet Media and the TCP/IP Stack
      • 802.1X Standards
      • Bluetooth Standards
      • Software Defined Networking (SDN)
        • Context: Cloud Service Frameworks
        • Case Study: AWS Virtual Private Cloud (VPC) Architecture
        • Case Study: OpenStack
      • Subnetting
      • Network Address Translation
    • Networked Filesystem Services
      • NFS
      • GlusterFS
      • Samba
    • Host-Level Filesystem Services
      • FFS/UFS (BSD)
      • ZFS (IllumOS/SmartOS, BSD)
      • Ext4 (Linux)
    • Integrated Development Environment (IDE)
      • Language-Centricity in Formal Integrated Development Environments
        • Eclipse IDE – Java
        • IntelliJ IDEA – Java (special application in Android Studio)
        • Eclipse CDT – C, C++
        • Eclipse LDT – C (Linux)
        • Eclipse PDT: PHP
        • Emacs – Lisp
        • KDevelop – C++ (Qt)
      • Informal IDEs
        • Vim + software tools
        • Emacs + software tools
        • Other text editor + software tools
    • Knowledge Management (KM) in DevOps
      • Documentation
        • TeX
        • DocBook
        • DITA
      • Software Distribution
        • FTP
        • SCP
        • HTTP
      • Issue Tracking
        • GNATS
        • Bugzilla
        • YouTrack
      • Modeling
        • KM role of Model Development
        • Modeling as Data Management
  • Nuts & Bolts: Component Dependencies; Component Databases; Component Repositories
    • Case Study: FreeBSD Ports
    • Case Study: pkgsrc
    • Case Study: Debian ‘dpkg’ and ‘apt’
    • Case Study: Cygwin
  • How To: Component Model in Cadena?
  • How To: Platform-Agnostic Component Model Applications in OpenCCM?
  • How To: Knowledge Model in PowerLoom STELLA?
  • “End of Thesis”

Toward Applying the Enlightenment Foundation Libraries (EFL) in Cross-Platform Component-Oriented Development

Table: EFL Components, pkgsrc ports

Component Description[1,2] pkgsrc?[2]
Ecore Mainloop, low level display and input system, connections and IPC
Ector *INTERNAL* Vector rendering API used by Evas Bundled with other components?

See also:

Edje Layout and abstraction for graphical elements that lay out items to define a look and feel with animation and basic event response
Eet Data structure serialization and multi-key data storage in files with compression and encryption with fast random-access read

See also:

Eeze A thin wrapper over UDev for finding devices on Linux ?
Efl *INTERNAL* Core things shared between EFL libraries ?
Efreet Handle desktop file, menus and icons from freedesktop.org
Eina Core utilities for threading, data types (lists, hashes etc.) and more
Eio Handle async File I/O
Eldbus Glue in D-Bus protocol handling as a client and server into EFL
Elementary High level wrapper on EFL as well as a full widget set with buttons, boxes, scrollers, sliders etc.
Elocation Used for location and mapping services ?
Elua *INTERNAL* Lua wrapper and convenience layer for running a Lua script engine ?
Embryo A compiler and tiny VM execution library for the Small/Pawn language used by Edje for scripting
Emile *INTERNAL* Compression and encryption utilities and abstractions ?
Emotion Wrapping Gstreamer, Xine and/or VLC to provide Video playback in Evas objects as well as audio playback controls Bundled with other components?
Eo Core object system for EFL with handling of classes, references, inheritance, safe object access and method execution etc. ?
Eolian Used with Eo to generate both C boilerplate src, and for generating bindings ?
Ephysics Glues the Bullet physics library to Evas objects and is used by Edje ?
Escape *INTERNAL* Fills in missing LibC functionality for PS3 Bundled with other components, on select platforms?
Ethumb A library and service for async thumbnail generation and caching ?
Evas A complete scene graph and rendering abstraction as well as event router for UI and general graphics needs

See also:

Evil *INTERNAL* Fills in missing LibC functionality for Windows Bundled with other components, on select platforms?

See also:

  • changeset: “Eina: fix shm_open() check (can be in libc or librt) + various autotools cleaning”

See also:

 

[1] Source: EFL

[2] a/o 20 Dec, 2015

Tips for SSH in FreeBSD Userspace – Keyfiles from PuTTY; ssh-agent in login shell

OpenSSH Keys from PuTTY

Extending on a model presented at StackExchange *, after rebooting to the FreeBSD desktop OS on my notebook PC, I’ve developed a short shell script as for a purpose of reformatting the private component of my SSH key files as were generated with PuTTY, such that the output of the reformatting tool may be applied with OpenSSH and ssh-agent on FreeBSD.

#!/bin/sh

for F in *.ppk; 
  do NM=${F%.ppk};
  ## print file name before puttygen queries for password
  echo Converting key $NM 
  puttygen $F -O private-openssh -o $NMafter
done

This shell script is designed for an application in an SH-compatible shell. The shell script applies one of the extended parameter substitution features – as available with SH and similarly, available with BASH – such that the ${F%.ppk} expression is evaluated by the shell script interpreter, producing a string value that is the name of the file referenced in $F, sans the file name’s type string.

The shell script – as a quick “One shot” SH snippet – is written as to be run by a user, from within the user’s ~/.ssh directory. The shell script processes all PuTTY *.ppk files in the current directory, as to generate a key file in a format for OpenSSH, for each file – overwriting any existing files, in the process.

SSH in Login Shells

The following shell script may be useful for running ssh-agent, as from within ~/.shrc – in reference to SH ENV – or in ~/.bashrc, there as in reference to BASH_ENV.

if [ -z "$SSH_AGENT_PID" ] || 
  ! [ $(ps -p $SSH_AGENT_PID -o comm) = ssh-agent ]; 
# start SSH agent if not already running 
  then eval $(ssh-agent) 
fi

The previous shell script will initialize an ssh-agent process in the immediate shell environment, if the shell script computes than an ssh-agent is not presently running.

Corresponding to the pregvious  shell script snippet, the following may be recommended as a feature for ~/.bash_logout

if [ -n "$SSH_AGENT_PID" ] && 
    [ $(ps -p $SSH_AGENT_PID -o comm) = ssh-agent ];
then eval $(ssh-agent -k)
fi

The previous shell script – if included  in ~/.bash_logout – will terminate the ssh-agent process in the immediate shell environment, on logout from a BASH login shell, if the shell script computes than an ssh-agent was running in the immediate shell environment of the login shell. ** Such a feature may be applied as to ensure that the ssh-agent  process will be terminated ,  subsequent to when the user has logged out of the host. Otherwise, ssh-agent might continue to run as a forked process, independent of any controlling terminal.

* More info: How to convert SSH keypairs generated using PuttyGen(Windows) into key-pairs used by ssh-agent and KeyChain(Linux)

** More info:  bash(1) – bash – GNU Bourne-Again SHell, section: Invocation

A Rambling Introduction to a Linear Experience of Computing

Not as though to begin any more of the Web’s Favorite or Least Favorite brands of Identity Politics, Online, but rather as to entertain a simple rhetorical question: How to even begin to describe any of the adventures I’ve ever known and known personally about  UNIX computing? Where could I even start, about such a topic? If it may be in any ways a personal story, but as I am not so much a fan of vicarious descriptions of personal experience, I may not believe there is so much to say of it.

In a technical sense – in a very short synopsis – in regards to Linux operating systems, singularly, I’ve applied each of Slackware, Debian, SuSeDebian again, Ubuntu, and Debian again, for any appreciable duration at a desktop computer – OpenShift, for a short while, it is a kind of a  cloud-oriented Linux computing environment. There’s also Android, of course – an operating system developed on a Linux kernel – moreover a project as primarily sponsored by Google, secondly sponsored by individual Original Equipment Manufacturer (OEM) designers, beside  the Android Open Source Project. Then there’s Tizen, also –  something of a newer Linux operating system, as primarily sponsored by Samsung – and  the Maemo operating system, as was sponsored by Nokia.

Sometime in the duration of applying Linux on a desktop, I’ve also taken at least a topical look at QNX Momentics and the QNX Photon GUI, as was at a time when those were being made readily available for limited licensing on desktop personal computers. I’d say that I’m still impressed with the QNX Real Time Operating System (RTOS), but of course it’s not a free/open source software (FOSS) operating system. Perhaps it may not seem to permit for much of a sense of discussion, therefore, as in regards to all of the intellectual property presently invested in QNX.

Personally, I’ve yet to make any application of Solaris, but of course there is the Illumos OS family tree, however – to which, as perhaps a manner of a complimentary concept, there’s even an OpenSparc System on a Chip (SoC) project, developed in a manner of open access microcontroller design.

Not as though to indulge too far about any high-level concepts or low-level applications in regards to any singular contexts of computing,  but it may seem to be simply an ideal time in the history of the world as a duration in which one may endeavor to be a student of information sciences and computing.

This year,  personally – in by in large departing from a momentary study of the Cisco IOS operating system and its newest QNX baseline – I’ve begun to study the FreeBSD operating system. This week, moreover, I’ve begun to make an attention about the NetBSD pkgsrc framework – specifically, as with an interest in adapting pkgsrc for userspace software distribution on FreeBSD. This, of course, may not turn out to be too much of a trivial task – not as trivial of a task as its logical model may seem to suggest, in any single and immediate estimate – but it may well be “Worth it.”

So many applications of free/open source operating systems, and so many approaches in developing a concept of computing. It’s certainly a long ways away from tooling around with Tandy Deskmate, wouldn’t it seem?

 

Notes – Specialized FreeBSD Workflows – FreeBSD for AWS EC2, FreeBSD for Embedded Computing

Concerning applications of the FreeBSD operating system on the Amazon Web Services (AWS) cloud services architecture – specifically in the AWS Elastic Compute Cloud (EC2) – and applications of FreeBSD on embedded computing platforms, a few very short notes:

Conceptual Overview

  • Concept: Workflow
    • Workflow e.g. for building a FreeBSD distribution for local LAN
      • Some characteristics of Note
        • Objects of work: “Bare metal” computing hardware (PCs, Racks); “Twisted pair”, “Fiber”, and “Wireless” network media
        • Hardware accessible to administrative team
        • Installation may be managed in correlation with networked file services – including NFS – and networked credential services, viz a viz YP/NIS
    • Workflow e.g. for building a FreeBSD distribution for installation to AWS EC2
      • Characteristics of Note
        • Objects of work: EC2 virtual machine instances; S3 and EBS storage modules; RDS data services; other modules in AWS modular service mix
        • Hardware not accessible – juxtapose to virtual console as available with Digital Ocean
        • AWS Virtual Private Cloud (VPC) networking – IP address allocation, address assignment, subnetting, routing all configured via VPC API – largely independent of indiviual EC2 virual machine instances
        • Credential services via AWS IAM
    • Workflow e.g. for building a FreeBSD distribution for installation to an embedded computing platform
      • Characteristics of Note
        • “Bare metal” computing hardware (single-board computers, systems on chip, systems on module)
        • Hardware components – once configured – may be applied without immediate network availability
        • Functional systems tests may be exceptionally important – e.g. functional unit testing for new software components; integration testing for all software components, in emulator
  • Concept: Modularity
    • Not just a buzzword: Component-Based Software Engineering (CBSE)
    • Platform modeling – cf. Cadena – may be assistive in phases of design, testing, and in application phases
  • Concept: Documentation
    • Topically focused documentation schema: DITA

Technical Resources

  • EC2 AMI: FreeBSD 10
    • Ed. Notes
      • UFS Root Filesystem
      • SCHED_ULE
        • EC2 t2.micro instances provide only one virtual processor core to each instance. Therefore, the 4.4 BSD scheduler may be appropriate for such instances
      • sysrc parameters available via configinit
      • IP addressing via AWS VPC
  • Configuration File: /usr/src/release/release.conf.sample
  • Makefile/usr/src/release/Makefile.vm
    • Application: Makefile is sourced in correlation with release.conf
  • Makefile: /usr/src/release/Makefile.ec2

Somewhat Formal Announcement: On Forking Dandelion and PowerLoom

Not as though to indulge in an excess of formality, the author of this article – Sean Champ – will be publishing a fork of the PowerLoom source code, shortly, with a corresponding fork of the Dandelion plugins for the Eclipse IDE Rich Client Platform (RCP). The author has endeavored to announce the beginnings of the fork productions via the Twitter microblog service, corresponding with this announcement of the fork productions – as more formally, and in longer words – at the Hardpan Media web log.

As though to transpose the author’s own hand-written notes to a digital format, the author’s rationale for these fork productions is summarized as follows:

Dandelion Fork

  • Source Code Origin: Dandelion project at SourceForge.net
  • Source Code Destination: Hardpan Media Library at GitHub
  • Synopsis – Rationale
    • Refactor for integration with OS packaging model
    • Extend for application with Common Lisp implementations additional to the set: SBCL, CLISP
      • ECL
      • Others
    • Reuse of Lisp source code editor view
      • cf. STELLA KIF
    • Integration of Remote System Explorer plugins for Eclipse IDE
    • Blue Sky: Develop a CORBA REPL service alternate to SLIME
  • Gimmicky Stuff
    • SLIME on GraniteBoard – a FreeBSD application on BeagleBone Black – via FTDI/Serial line

 

PowerLoom Fork

  • Source Code Origin: PowerLoom project at USC ISI
  • Source Code Destination: Hardpan Media Library at GitHub
  • Synopsis – Rationale
    • Reformatting of existing TeX documentation to DITA format
    • Central SCCM availability for Open Access KIF projects
    • Central SCCM availability for the PowerLoom implementation of the STELLA programming language (KIF) and corresponding source code generators for C++, Java, and Common Lisp
    • Extending existing documentation
      • Completing the existing description of the STELLA langauage and C++, Java, Lisp components (Toolchains, APIs)
      • Extending of existing descriptions about PowerLoom SOAP web services
      • Extending of existing documentation about existing PowerLoom frames-oriented desktop GUI (applications for managing local graph/KB stores, and for integration with networked graph/KB store services)
    • Formal development of server model for PowerLoom
      • SOAP Service – extend for one or more of
        • SOAP in Java implementation(s)
        • SOAP implementation(s) in portable ANSI Common Lisp
      • Blue Sky: Develop a Knowledge Graph service (CORBA)
    • Development of “new” modular tools for generating STELLA code in application of RDF Schema and OWL (OWL RL profile) in a context of STELLA KIF
    • Development of a “new” modular framework for implementing STELLA code in a manner (1) compatible with CLOS, MOP and (2) extensible in Common Lisp applications
    • Study of thread safety, reentrancy, concurrent programming applications of software generated with STELLA tools
    • UI Development – Blue Sky: Develop a suite of Eclipse Rich Client Platform (RCP) plugins for (1) STELLA programming; (2) Interaction with local/networked PowerLoom graph/KB stores; (3) actuation of additional tooling, as in reference to a KIF transform for RDF Schema and OWL (OWL RL profile)
    • Applications for logical inference modeling, in reference to Open Access Knowledge Management Projects – i.e. Open Book Projects – at the Hardpan Media Library

Development will proceed, momentarily, onto the forks as produced to the Hardpan Media Library at GitHub

This page – Short Link: http://j.mp/hml-forks-powerloom-dandelion