FreeBSD Pi

This is, hopefully, my last OS Variety Exploration du jour for a while. I think I’ve tested most of the “likely candidates” and need to move on to actually building something from one of them.

In this case, it is NOT a Linux. BSD is the Great Grandparent of Linux, via an affair with a stranger… There is a strong family resemblance, but everyone swears Linux is not derived of Unix… so is free and unencumbered by prior legal entanglements. FreeBSD, however, is a direct child of Unix. In the beginning, AT&T used “version numbers” and one of them, Version 7, was used by Berkeley to make the Berkeley Software Distribution, or BSD. Since, at the time, AT&T was forbidden by law to make money off of anything but telco service, it gave BSD a sweetheart license that let them issue on licenses to others. ALL BSD variations stem directly from that one Version 7 license.

Years later when AT&T was broken up and allowed to make money other ways, it tried to regain some kind of control of Unix via a load of (IMHO) gratuitous changes to form and function (largely, again IMHO, making it bigger, bloatier, and worse…) and even changed from “Versions” to “Systems” and called it “System V” (since System Buggerall One isn’t very catchy…) Yes, I know there were other “system” numbers used inside AT&T, but this isn’t a full on history of Unix versions class…

That is why for the “init” method that starts all other processes running, the world mostly divided into BSD style (rc.d files) and System V Init (init.d files) distributions. Lately, Red Hat has decided to make something called systemd for system daemon that replaces init. Not really an issue… except… they extended it as a giant layer between most all of userland and the OS that has tentacles into everything, is a PITA to use and configure, is a giant “attack surface” for hackers, and when someone finds a bug or hole in it, your whole system is toast for a few months until someone at Red Hat figures out a patch ’cause nobody else will be able to learn the Giant Blob overnight… Oh, and via gratuitously changing just about every common configuration file, command, and log makes “everything you know is wrong” happen. Thus my quest for a replacement for all the Linux releases that run off to SystemD Land.. (so far including: Debian, Raspbian, Ubuntu, Red Hat (Fedors, Centos, etc.), Arch and a few others I rarely use.)

As you might guess, BSD continues to happily use the BSD style rc.d files… And everything I know continues to work.

OpenBSD is in many ways the worlds best security operating system. So much so, in fact, they don’t want to port to the Raspberry Pi. Why? Because the boot loader is a ‘binary blob’ that gets loaded to the GPU where it proceeds to load the rest of the Operating System to regular memory and the regular CPU. It then hangs around as it runs the GPU. It is, theoretically, possible to hack that code so that it became an entry point for things like reading and changing memory. I’m relatively OK with that as it is a highly unlikely target for ‘serious folks’, but they are correct that an exploit could be done that way. (So check the SHA code on any Raspberry Pi boot loader downloads). That is also why I have said “good enough for a home user but don’t bet your company on it or use it if you have TLAs after you”. (Three Letter Agencies…). For that, you want OpenBSD supported hardware. (Cubieboard / Cubietruck are supported IIRC). I’d rather have a UK origin and binary bootloader blob than China sourced and no blob, but that’s just me… not the OpenBSD folks who are Industrial Strength Paranoid (since that is their job, and their day job, and their life, and… OpenBSD is what I would use for any strongly security enhanced system and is the base that China used for their Kylin system). So no OpenBSD on the Pi, but FreeBSD is less obtuse and did make a port.

So I installed FreeBSD.

The install itself is nearly trivial. Go here and download the SD card image:

ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/arm/armv6/ISO-IMAGES/11.0/

The one I downloaded was the most recent:

FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20160429-r298793.img.xz
	160006 KB 	04/30/16 	06:42:00

After the download you unpack it (on a linux box) with

unxz FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20160429-r298793.img.xz

Then just put an empty SD card in a reader / hub ( I use a $10 Targus from Walmart) and do a dd to it.

dd  if=FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20160429-r298793.img of=/dev/sd{letter} bs=1M

The bs=1M sets the block size to read and write to 1 MB so it goes a bit faster. Other sizes also work. The {letter} gets replaced with whatever drive letter was assigned to your SD card on insertion. For mine it was ‘/dev/sdb’. Note: that is NOT a partition number like /dev/sdb1 but the whole device. Any partitions get wiped out and the partitions from the image get put on. One MS type boot partition and one UFS Unix File System with the OS in it. It ends up about a 1/2 GB IIRC in a 900 MB partition.

That’s it. Stick it in the Pi and boot. It automagically resizes that partition to use the rest of the chip. I wasted time inspecting it before and after with gparted (though I didn’t change any partitions since gparted on linux didn’t understand UFS and I didn’t know if an ext type partition would be easy to use under BSD without adding software.).

At boot, lots of stuff is detected including my USB optical mouse. Basically, it booted cleanly into a text terminal presentation with a mouse cursor (that didn’t seem to do anything as it was not a windowing system…)

At that point I reached the usual Oh Gak! moment where I need to install X-windows. At that point it looked like X is in something called “ports”. BSD has a nice “ports” system that has grown up over the decades with LOTS of added software. So I thought “Heck, I’ll just adds the ports stuff and then deal with X”… Three hours later it finished installing ports… there’s somewhere north of 26,000 of them… Now my ‘chip’ is at 1.7 GB of fullness, and that’s not all of the stuff, just the ports make tree part. (It says that the source code is fetched as needed, so this is just the recipes to make stuff…). It likely would have gone faster, but I was using a very slow chip. Class 4. (I tend to reuse old slow chips for experimental things, then move them to newer faster more expensive chips if they are “keepers”. This was a 4 GB class 4 cheap slow Sandisk chip… so writing 3/4 GB of small files would be very time expensive. In the future I’m likely to use a Ultra Class 10 chip, or put things on a real USB hard disk…)

I ran into the usual clock issue when I went to build the ports collection (it refused due to date being way wrong). Doing

ntpd -gq

gets the right time set (if more than 1000 seconds off, net time protocol daemon will not do the adjusting, unless you insist with those flags). Then add ntpd_enable=”yes” in /etc/rc.conf and do a “service ntpd start” to keep it running.

The package manager is named ‘pkg’. Initially it isn’t installed or set up. To do that you type, well “pkg”… which finds it isn’t there and installs itself… There’s a reason I like BSD…

You can then audit your software for any known security issues. This is very fast.

pkg audit -F

Yeah, that’s ALL it takes to find out if every package is up to current rev for security patches.
Nice, eh?

There’s a reason all sorts of pro shops run BSD…

To get the ports listings, you first fetch them then unpack them. The fetch is:

portsnap fetch

the “automatic verification” step of this command took a long time with little feedback, about 5 minutes on my network. Slower on slower networks I’d guess.

It then does “automatic patching” of all the builds in the package.
No being one security patch behind here…

After that, I figured I’d just do the extract and then proceed directly to X install / config.

3 hours later the decompress / extract / write 26,000 files… completed.

At this point, in theory, I can cd to any directory in /usr/ports, type “make install” and that package just gets built and is installed. All I have to do now is decide which of 26,000 things to install… (Really only a few hundred need decisions as many of the others are sub-modules or dependencies).

OK, since I’ve been at this about 6 hours now, I’m not going to install and configure X today. I have other things to get out of the way. But overall my experience with FreeBSD was one of a fond remembrance of BSD and things just “being right”. We’ll see if they have fixed any of the “user hostile” aspects of an X install and made it “fit for normal humans”, or if I’m going to use it for hardened servers but look elsewhere for the user friendly build system.

Oh, also I noticed that the image has v6 in it, but the Model 2 is v7. IIRC, the v7 can run v6 instruction set, so OK; but I think a custom build with the v7 instruction set, full hard float math, and NEON support would likely be faster. OTOH, this one was never taxed at all (likely due to not running X yet ;-)

So that v6 / v7 issues speaks to a “young port” of the kernel, but the ports package library size is a very old port story… some of each world.

Sometime in the next few days I’ll give a shot at X, try building and installing a few generic packages, and generally see what’s changed in the 15 years since I last used one of these… My first impression is that they have polished off a lot of the rough edges while sticking with the style of “you are done when there is nothing left to remove”… A clean and tidy world of things all “just so”…

(Rosy glasses to be broken on X install… but not, I think, today ;-)

Useful Stuff

https://www.freebsd.org/ports/

The FreeBSD Ports and Packages Collection offers a simple way for users and administrators to install applications. There are currently 26057 ports available.

The Ports Collection supports the latest release on the FreeBSD-CURRENT and FreeBSD-STABLE branches. Older releases are not supported and may or may not work correctly with an up-to-date ports collection. Over time, changes to the ports collection may rely on features that are not present in older releases. Wherever convenient, we try not to gratuitously break support for recent releases, but it is sometimes unavoidable. When this occurs, patches contributed by the user community to maintain support for older releases will usually be committed.

Each “port” listed here contains any patches necessary to make the original application source code compile and run on FreeBSD. Installing an application is as simple as typing make install in the port directory. If you download the framework for the entire list of ports by installing the ports hierarchy, you can have thousands of applications right at your fingertips.

Each port’s Makefile automatically fetches the application source code, either from a local disk, CD-ROM or via ftp, unpacks it on your system, applies the patches, and compiles. If all went well, a simple make install will install the application and register it with the package system.

For most ports, a precompiled package also exists, saving the user the work and time of having to compile anything at all. Use pkg install to securely download and install the precompiled version of a port. For more information see Using pkg for Binary Package Management

https://www.freebsd.org/doc/handbook/ports-using.html

4.5. Using the Ports Collection

The Ports Collection is a set of Makefiles, patches, and description files stored in /usr/ports. This set of files is used to compile and install applications on FreeBSD. Before an application can be compiled using a port, the Ports Collection must first be installed. If it was not installed during the installation of FreeBSD, use one of the following methods to install it:
Procedure 4.1. Portsnap Method

The base system of FreeBSD includes Portsnap. This is a fast and user-friendly tool for retrieving the Ports Collection and is the recommended choice for most users. This utility connects to a FreeBSD site, verifies the secure key, and downloads a new copy of the Ports Collection. The key is used to verify the integrity of all downloaded files.
[…]

One can also get full source code and more via FTP servers located around the globe…

https://www.freebsd.org/doc/handbook/updating-upgrading.html

Chapter 23. Updating and Upgrading FreeBSD
Restructured, reorganized, and parts updated by Jim Mock.
Original work by Jordan Hubbard, Poul-Henning Kamp, John Polstra and Nik Clayton.
Table of Contents

23.1. Synopsis
23.2. FreeBSD Update
23.3. Updating the Documentation Set
23.4. Tracking a Development Branch
23.5. Synchronizing Source
23.6. Rebuilding World
23.7. Tracking for Multiple Machines

23.1. Synopsis

FreeBSD is under constant development between releases. Some people prefer to use the officially released versions, while others prefer to keep in sync with the latest developments. However, even official releases are often updated with security and other critical fixes. Regardless of the version used, FreeBSD provides all the necessary tools to keep the system updated, and allows for easy upgrades between versions. This chapter describes how to track the development system and the basic tools for keeping a FreeBSD system up-to-date.

https://www.freebsd.org/doc/handbook/mirrors.html

Appendix A. Obtaining FreeBSD
Table of Contents

A.1. CD and DVD Sets
A.2. FTP Sites
A.3. Using Subversion
A.4. Using rsync
[…]
A.2. FTP Sites

The official sources for FreeBSD are available via anonymous FTP from a worldwide set of mirror sites. The site ftp://ftp.FreeBSD.org/pub/FreeBSD/ is available via HTTP and FTP. It is made up of many machines operated by the project cluster administrators and behind GeoDNS to direct users to the closest available mirror.

Additionally, FreeBSD is available via anonymous FTP from the following mirror sites. When obtaining FreeBSD via anonymous FTP, please try to use a nearby site. The mirror sites listed as “Primary Mirror Sites” typically have the entire FreeBSD archive (all the currently available versions for each of the architectures) but faster download speeds are probably available from a site that is in your country or region. The regional sites carry the most recent versions for the most popular architecture(s) but might not carry the entire FreeBSD archive. All sites provide access via anonymous FTP but some sites also provide access via other methods. The access methods available for each site are provided in parentheses after the hostname.

Central Servers, Primary Mirror Sites, Armenia, Australia, Austria, Brazil, Canada, China, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hong Kong, Ireland, Japan, Korea, Latvia, Lithuania, Netherlands, New Zealand, Norway, Poland, Russia, Saudi Arabia, Slovenia, South Africa, Spain, Sweden, Switzerland, Taiwan, Ukraine, United Kingdom, USA.

Every country name a link in the original…

Subscribe to feed

Posted in Tech Bits | Tagged , , , , | 22 Comments

Tangled Web Of FOSS – Google vs Oracle

Oh what a tangled web of FOSS they weave…

http://arstechnica.com/tech-policy/2016/05/google-wins-trial-against-oracle-as-jury-finds-android-is-fair-use/

Google beats Oracle—Android makes “fair use” of Java APIs
Oracle has spent many millions trying to get a chunk of Android, to no avail.

by Joe Mullin – May 26, 2016 8:03pm UTC

Oracle just lost a $9 BILLION suit against Google (aka “Alphabet” these days). At first I didn’t think much about it, then the news pointed out it was over the API of Java. The Application Programming Interface is basically how programs talk to one another. It is typically published so that programmers know how to write programs that use that blob of code. All sorts of things all over the place have an API. To talk to a database, a computer language has an “API” into it. In Java, it’s a little bit different, since the Java language runs on a “virtual machine” inside the Java Engine, and is written in chunks called classes (of objects) and grouped in “java beans”. These things have an API as well. Google wrote their own versions of the code from scratch, but did use the same interface (otherwise it would not work with others… and Sun required things work even to the point of suing Microsoft for an incompatible version. See below.)

Typically, folks copyright their software they wrote, but really want others to use it, so the API is simply published.

I was stuck wondering why in the heck Oracle would be suing over use of the API?! IF the API of things being used started to cause suits for copyright in infringement, most programming would come to a screeching halt until folks found ways to use only FOSS Free Open Source Software for everything… If, for example, I wrote a database data entry program using SQL, and the API was subject to suit, I could be sued by whoever first wrote an SQL product, despite my using a FOSS version like MySQL. Not good. IMHO a large chunk of the software world would crash to a halt and fall to the ground in one fat splat until all this got sorted out. Would everyone writing FORTRAN be subject to suit by IBM? Could AT&T sue anyone using C? In some ways it would be like claiming to own the placement of gas pedal and steering wheel in a car…

A prior ruling had said Google DID violate the copyright, this one was to determine payment… IMHO, rightly, the jury decided it was “fair use”.

SAN FRANCISCO—Following a two-week trial, a federal jury concluded Thursday that Google’s Android operating system does not infringe Oracle-owned copyrights because its re-implementation of 37 Java APIs is protected by “fair use.” The verdict was reached after three days of deliberations.

“Ladies and gentlemen of the jury, listen to your verdict as it will stand recorded,” said the court clerk, before polling each of the ten men and women on the jury.

There was only one question on the special verdict form, asking if Google’s use of the Java APIs was a “fair use” under copyright law. The jury unanimously answered “yes,” in Google’s favor. The verdict ends the trial, which began earlier this month. If Oracle had won, the same jury would have gone into a “damages phase” to determine how much Google should pay. Because Google won, the trial is over.

“I salute you for your extreme hard work in this case,” said US District Judge William Alsup, who has overseen the litigation since 2010. “With the thanks of your United States District Court, you are now discharged. I would like to come in the jury room and shake each of your hands individually.”

Four of the ten jurors declined to comment to reporters gathered in the hallway. The other six went out through a back exit.

“We’re grateful for the jury’s verdict,” said Google lead lawyer Robert Van Nest before getting into the elevator with Google’s in-house lawyers. “That’s it.” Oracle attorneys had no comment.

Google said in a statement that its victory was good for everybody. “Today’s verdict that Android makes fair use of Java APIs represents a win for the Android ecosystem, for the Java programming community, and for software developers who rely on open and free programming languages to build innovative consumer products,” a Google spokesperson said via e-mail.

Oracle, however, vowed to appeal.

“We strongly believe that Google developed Android by illegally copying core Java technology to rush into the mobile device market. Oracle brought this lawsuit to put a stop to Google’s illegal behavior. We believe there are numerous grounds for appeal and we plan to bring this case back to the Federal Circuit on appeal,” Dorian Daley, Oracle’s general counsel, said in a statement.

Google’s win somewhat softens the blow to software developers who previously thought programming language APIs were free to use. It’s still the case that APIs can be protected by copyright under the law of at least one appeals court. However, the first high-profile attempt to control APIs with copyright law has now been stymied by a “fair use” defense.

So on the one hand, as a programmer, I too think that APIs are “free to use” as that is substantially what programming is all about. Using Application Programming Interfaces to get things done. IMHO the first verdict, that they are subject to copyright, was in error due to the mess it makes… But at least now they have sort of fixed it… You can copyright it, but the damages for using it are zero…

But wait, there’s more…

Java was originally made by Sun Microsystems. Sun was bought by Oracle. Oracle was trying to wring money out of that purchase, but Sun had put much of Java into the FOSS world already… The suit over the API was in some ways just looking for what bit had NOT been explicitly set free and hanging a suit onto it.

https://en.wikipedia.org/wiki/Java_%28programming_language%29

Implementations

See also: Free Java implementations

Oracle Corporation is the current owner of the official implementation of the Java SE platform, following their acquisition of Sun Microsystems on January 27, 2010. This implementation is based on the original implementation of Java by Sun. The Oracle implementation is available for Microsoft Windows (still works for XP, while only later versions currently “publicly” supported), Mac OS X, Linux and Solaris. Because Java lacks any formal standardization recognized by Ecma International, ISO/IEC, ANSI, or other third-party standards organization, the Oracle implementation is the de facto standard.

The Oracle implementation is packaged into two different distributions: The Java Runtime Environment (JRE) which contains the parts of the Java SE platform required to run Java programs and is intended for end users, and the Java Development Kit (JDK), which is intended for software developers and includes development tools such as the Java compiler, Javadoc, Jar, and a debugger.

OpenJDK is another notable Java SE implementation that is licensed under the GNU GPL. The implementation started when Sun began releasing the Java source code under the GPL. As of Java SE 7, OpenJDK is the official Java reference implementation.

The goal of Java is to make all implementations of Java compatible. Historically, Sun’s trademark license for usage of the Java brand insists that all implementations be “compatible”. This resulted in a legal dispute with Microsoft after Sun claimed that the Microsoft implementation did not support RMI or JNI and had added platform-specific features of their own. Sun sued in 1997, and in 2001 won a settlement of US$20 million, as well as a court order enforcing the terms of the license from Sun. As a result, Microsoft no longer ships Java with Windows.

Note well that “OpenJDK” version… It matters. A Lot.

https://en.wikipedia.org/wiki/Free_Java_implementations

After the May 2007 code release
See also: OpenJDK
Ambox current red.svg
This section is outdated. Please update this article to reflect recent events or newly available information. (January 2014)

As of May 2008, the only part of the Class library that remains proprietary (4% as of May 2007 for OpenJDK 7, [7][8] and less than 1% as of May 2008 in OpenJDK 6[9][10]) is the SNMP implementation.[11]

Since the first May 2007 release, Sun Microsystems, with the help of the community, has released as free software (or replaced with free-software alternatives) almost all the encumbered code:

All the audio engine code, including the software synthesizer, has been released as open-source.[11][12] The closed-source software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK called Gervill,

All cryptography classes used in the Class library have been released as free software,

FreeType has replaced the code that scales and rasterizes fonts.

LittleCMS has replaced the native color-management system.[16] There is a pluggable layer in the JDK, so that the commercial version can use the old color management system and OpenJDK can use LittleCMS.

The open-sourced Pisces renderer used in the phoneME project has replaced the anti-aliasing graphics rasterizer code. This code is fully functional, but still needs some performance enhancements,

The JavaScript plugin has been open-sourced (the JavaScript engine itself was open-sourced from the beginning).

Because of these previously encumbered components, it was not possible to build OpenJDK only with free software components. In order to be able to do this before the whole class library is made free, and to be able to bundle OpenJDK in Fedora Core and other free Linux distributions, Red Hat has started a project called IcedTea. It is basically an OpenJDK/GNU Classpath hybrid that can be used to bootstrap OpenJDK using only free software.[22][23]

As of March 2008, the Fedora 9 distribution has been released with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7.[10] Some of the stated reasons for this change are:

Sun has replaced most of the encumbrances for which IcedTea was providing replacements (less than 1% of encumbered code remains in the class library, and this code is not necessary to run OpenJDK).

OpenJDK 6 is a stable branch, whereas OpenJDK 7 is unstable and not expected to ship a stable release until 2009.

Sun has licensed the OpenJDK trademark for use in Fedora.[citation needed]

In June 2008, it was announced that IcedTea6 (as the packaged version of OpenJDK on Fedora 9) had passed the Technology Compatibility Kit tests and can claim to be a fully compatible Java 6 implementation.

In September 2013, Azul Systems released Zulu, a free, open source build of OpenJDK for Windows Server and the Microsoft Azure Cloud. Later releases added support for Mac OS X, multiple versions of Linux and the Java Platform, Standard Edition version 8. Zulu is certified compliant with Java SE 8, 7 and 6 using the OpenJDK Community Technology Compatibility Kit.

So Sun was busy turning Java free, and then Oracle tried to reel it back in again… Bad Oracle!

Google has announced that they are now shipping on OpenJDK. Prior they had been using their own code implimenting the original Java API. BUT, had not bothered to get an original Java license. Essentially, they were not under either the proprietary licence nor under the GPL license. Turns out, this too might matter. The GPL requires that you set free code written using it. So Google could keep Android (parts of it anyway) private and proprietary as long as they didn’t do the GPL. Yet didn’t get a Java license from Oracle / Sun… Bad Google!

This guy covers the legal niceties fairly well:

http://www.fosspatents.com/2015/12/google-switches-to-open-source-license.html

Wednesday, December 30, 2015
Google switches to open-source license for Java APIs in Android: will this limit Oracle’s case to past damages?

It looks to me like it was not just to limit damages to the past, but perhaps also to demonstrate to the jury that the “damages” were worthless as theere was a free version. I.e. Oracle was shouting $9 Billion for something freely available… so likely not really worth $9 billion…

I’ve seen comments on Internet discussion boards according to which the long-running Oracle v. Google copyright infringement dispute has been practically settled, given that Google has just confirmed to VentureBeat that its upcoming release of Android (Android N) will come with Java language libraries that follow “an OpenJDK-based approach.” The OpenJDK is licensed by Oracle under the GPLv2 with a so-called Classpath Exception.

It’s too early to agree with those who believe it’s a virtual settlement (except that damages for past infringement might still have to be determined in court). I do remember that Oracle’s lawyers released a statement ahead of the 2012 trial in which they basically said that Google had two options for using Java in Android–a proprietary license or using it on open source terms with the obligation to contribute back to the open source community–but, by simply using Java without either kind of license, Google had committed copyright infringement. That was more than three-and-a-half years ago. Why wouldn’t Google have taken this step long before, if such a seemingly simple solution to the legal problem as OpenJDK had existed all along?

There are two possibilities:

It could be that Google is now (that Android has unstoppable momentum) indeed fine with GPL’ing all of Android and just wanted to avoid it earlier on. Android already uses Linux, which is available under only the GPL (no proprietary option there). Now it’s also going to use the OpenJDK libraries. So maybe Google doesn’t care about applying copyleft–the rule that derivative works incorporating GPL-licensed code must also be published under the GPL (or they must not be published at all)–to Android as a whole. It previously preferred the Apache Software License, which gave Google and its partners more flexibility in terms of throwing closed-source components into the Android mix.

Without knowing how Oracle views this and what Oracle will do, I consider a second possibility no less likely than the first one. It could be that Google still isn’t going to put Android as a whole under the GPL. Maybe Google interprets the copyleft rule in the GPL (in this case, in conjunction with the Classpath Exception) in a way that differs from the way Oracle would interpret it. Maybe Google believes it can just replace those Java APIs with something based on the OpenJDK but still doesn’t have to put any additional components of Android under the GPL. In that case, Oracle would likely disagree. And that disagreement could then give rise to another lawsuit.

In any case, the jury has now decided that the API can be copyrighted, but the use of it is “fair use”. Reasonable, in a way.

Oracle wants to take all this to the Supreme Court. I suspect they will look at that “Sun setting it free” history and decide to just leave things as they are. OTOH, a good slap up side the head to Google for not bothering to just get a FOSS version in the first place would be a show worth watching. But I’d be most happy if they just tossed out the API copyright… But I’m OK with “you can copyright it, but since the purpose is to have folks learn and use it, the price is zero”…

I never really liked Java, and would not really mind if everyone just stopped using it. I know that will never happen, especially now that there are entirely FOSS versions of it. OTOH, it is fun to watch the two biggest parties in the Java Pot busy pissing on each other… ;-) I’m just glad as a non-Java programmer, I’m standing well off to the side…

Subscribe to feed

Posted in News Related, Tech Bits | Tagged , , , | 4 Comments

VA Administrator Massive Brain Fart

I can’t believe someone that dumb makes that much money.

It’s hitting news outlets everywhere, even on the nightly TV. Saw one quote from Disney saying they take wait times seriously, but that obscures the depth of it.

http://www.breitbart.com/big-government/2016/05/23/va-secretary-compares-long-hospital-waits-lines-disneyland/

“To me personally, the day to an appointment is really not what we should be measuring, what we should be measuring is the veterans satisfaction,” he said.

To illustrate his point, he cited the long lines at Disney theme parks.

“When you go to Disney, do they measure the number of hours you wait in line or what’s important?” he said. “What’s important is: What’s your satisfaction with the experience.”

Completely missing the fact that wait time is a significant part of what is important…

It’s on CNN and Fox both ( I first saw it on Fox).

http://www.cnn.com/2016/05/23/politics/veterans-affairs-secretary-disneyland-wait-times/index.html

http://video.foxnews.com/v/4908266912001/va-chief-compares-healthcare-delays-to-wait-times-disneyland/?#sp=show-clips

Even Russia Today has it:

https://www.rt.com/usa/344163-va-secretary-veterans-disney/

But The Thing That Makes This Colossal Stupid:

Disney does measure wait times and line length. Constantly.

This is likely spilling the beans or violating some agreement or other, but… It has me steamed, even though I’ve been gone from Disney for a couple of years now.

I have been in the operations center from which all the line wait time data is gathered and sent, real time, to key operational managers. It happens all day, every day. They use the information to decide when to close admissions on any given day, and to decide how best to change operations “going forward”. So too many people waiting at Peter Pan? Not enough throughput? A manager is dispatched (via radio, no less) to go find out what’s wrong. More staffing needed? Maintenance needed?

Some facilities have hidden automatic counters. There’s an “IR Blob” counter in one major exhibit doorway. It counts “blobs in” and “blobs out” (assuming each IR signature is a person). Automatic totals show on a computer screen in the Ops center (underground somewhere… no I won’t say where… it takes a bus and a tunnel or two to get to it…) There a person is tasked with monitoring status, a computer program compares it to expectations and past history, a floor manager circulates around the people doing the traffic monitoring, and there is real time telephone and radio chatter going on.

If anything has a FUBAR, chains get yanked in real time and things happen. More (or less) tickets may be sold, parks closed to new entrants, new exhibits or rides opened, staff sent urgent “get here quick for overtime” messages, managers phone ringing, maintenance teams dispatched…

I did the Disaster Recovery Project Management work, and we had to go look at their data processing needs and facilities to have clue about how to keep it running, no matter what.

The end of day wait time and occupancy report is one of THE biggest daily metrics put in the face of management. (IFF it wasn’t already there via radio / phone / whatever).

Wait time is considered a key metric. There is a constant battle to get wait times down, while occupancy is kept high. No, they don’t always win it. When a million people all want to spend Christmas in Disney World Magic Kingdom, it is just not big enough. (Thus the opening of parks in Paris, Hong Kong, Tokyo, Singapore, etc. etc. They are building them as fast as they can).

But to assert the folks at Disney are not even looking at wait times is pig ignorant of reality and dead wrong.

A brain fart of Biblical Proportions. When you have constant monitoring real time with real time and end of day (and week and month and quarter) reporting to all levels of management, I dare say nobody has stronger metrics on wait times than Disney. Every ride, every line, all the time. (Staffing levels are set based on it, for one small example. Both next day and same day.)

I know that Corporate can’t say that kind of thing. It breaks the illusion, lifting the cover on the behind the scene beehive of work that goes into making the surface “magical”. But rest assured the V.A. Administrator is a flaming idiot with no clue how to run a ship even 1/2 as tight as Disney, and certainly has no clue how much wait time metrics data is gathered all day, every day, all around the planet; processed real time, and sent to management for actionables.

Subscribe to feed

Posted in News Related | 49 Comments

Pi LFS – Linux From (almost) Scratch on the Pi

The Task of The Day (TOTD?) was to get a version of LFS Linux From Scratch running on the Raspberry Pi Model 2 so that I could play with it a bit and see what I think of it.

I’m about 1/2 way through that. I do have a LFS image up and running on the SD card, however, I took a shortcut and simply downloaded and installed this basic version instead of actually building it myself from scratch. Yeah, yeah, I know, cheating… But in my defense, I did read the LFS Book (and the CLFS book and the BLFS book and…) found nothing in it that was abnormal or even particularly hard. My biggest complaint is in fact their big strength. It is laid out to teach, not to build with minimal involvement… Since that is their goal, I can’t really complain about it.

For example, they have you download a package of source code, unpack it, compile it, install it, wash and repeat for each package.

For a “fast build” you would prefer to “download all that stuff into a source archive and be done downloading”… then “launch the giant build script and go to bed”…

Well, I found a guy who had done some of that already… so I am just going to leverage off what he has done for now.

http://www.intestinate.com/pilfs/

A LOT of very good work done there, and many useful tools, downloads, and docs. My only nit pick, and it is a very minor one, is that some of the bits are Pi A or Pi B+ era centric and not clearly labeled as “Not Pi Model 2” (or some bits are both and not so labeled). I’ll be having a bit of adventure as I find out things like “the source code download is BOTH” (or not…). Yes, I’m pretty sure I know it is both ( I inspected the github pages) but for a noob, such precision and repetition matters.

OK, that nit squashed, the rest is great, IMHO.

I chose to download the pre-built basics and put it on an SD Card:

http://www.intestinate.com/pilfs/images.html

There are two columns on the left under “basics” that I assume are mirrors ( the “showcase” version labels the two columns as mirror 1 and mirror 2, so maybe…) and I used that Pi2 image.

Under “showcase” it looks there is only a Pi original model giant build all done and packaged. I presume he was working on the P3 basic port rather than making a fat Pi2 build.

On the right side are “chapter 5 tool chain” builds. These are, near as I can tell, exactly by the book to Chapter 5. Minus the nice to have additions in the “basic” I am using. Good if you wish to pick up the book exactly at Chapter 5 and not deal with the whole making tool chains to make tool chains bootstrap.

His “how to build” guide is under the “guide” tab at the top:

http://www.intestinate.com/pilfs/guide.html

Probably a bit much for a noob first out the gate, but useful for a mid-level guy. Down at the very bottom he says how to make an image from your SD card (that you have presumably just built from scratch). I assumed (read guessed) that he did something like that to build the “basic” card image, so used it backwards to get the image out.

dd if=/dev/sdb of=mylfs.img bs=1M count=950

The image arrives as:

pilfs-base-rpi2-20160313.img.xz

Which is a few hundred MB. After unpacking, nearer a GB.

so you do a

unxz pilfs-base-rpi2-20160313.img.xz

in a nice empty directory, then stuff it onto an SD card. Stick your SD card into a Rasbian on the Pi and it will mount it and tell you the partition name. (a, b, c, whatever). BE VERY CAREFUL TO GET IT RIGHT! Doing a ‘dd’ to the wrong drive letter will get you something very much emptied of anything you wanted that was stored there… Unmount it, then copy to it. I did:

dd  if=pilfs-base-rpi2-20160313.img  of=/dev/sdb bs=1M

Notice there is no “count”… the image ends when it ends…

That “sdb” might be sda or sdc or even other drive letters depending on what else is mounted on your system. (IFF you are using Windows, you get to do things the M.S. Way and consult someone else…)

When this is done, they guide gives a complicated line oriented way to grow that 1 GB to fill the whole card. I think it is extraordinary value to have a Raspbian or Fedora or Ubuntu (or all three) on a different SD card (even a dirt cheap class 4 one of 8 GB will work fine…) and simply use gparted on it. Note: you must boot the card as is before gparted can grow it.

There is some kind of boot process that finishes up the install and makes the file system good to go. So I shutdown my Raspbian (that was used for the unpack / put on SD card) swapped chips, booted, shutdown, rebooted Raspbian, launched gparted and let it grow the partition. Then swapped back.. Maybe 5 minutes all told. Maybe.

It took all of 8 seconds for the PiLFS to boot, by my count, on a class 10 Sandisk card. Running top gave the red one like in Arch, but now I know how to use Z to change the colors ;-) Memory usage was 4% or nearly nothing. CPU uses was essentially idle.

As there is no GUI on this level, when you are not doing anything, it tends to not do anything! ;-)

Next?

Since most folks are NOT interested in line command console only machines, I’m not going to proceed into the BLFS Beyond Linux From Scratch build of all that ‘userland’ stuff.

http://www.intestinate.com/pilfs/beyond.html

http://www.linuxfromscratch.org/blfs/read.html

I was very happy to see this version of LFS had init running, and not systemd ;-)

All in, this took about an hour and a half, including typing this posting…

I’m very happy with the small size and the speed of the image. We will see what happens as I bloat up userland with everything possible ;-)

At this point, I’m leaning toward LFS as my “base”. Why? You do not need to learn a “build system” and package manger and all that stuff. It is alien to noobs anyway, and hides what you are really doing. I AM likely to ‘script’ my build so I don’t have to type things over and over again, and I’m likely to ‘reorder’ it into a “build easy” instead of a “learn more” order.

We will see if I retain that attitude once I reach the “now build and install and configure X-windows” stage. (You may have noticed if that doesn’t “cookbook” I tend to halt and look elsewhere… I really really hate X configuring…)

OK, with that said, time for me to get back to work… I wanna get a browser on this thing pronto! ;-)

Subscribe to feed

Posted in Tech Bits | 2 Comments

Tips – May 2016

Since WordPress has decided that comments on Pages, like the Tips pages, don’t show up in recent comments, it kind of breaks the value of it for me. In response, I’m shifting from a set of “pages” to a set of “postings”. As any given Tips Posting disappears or gets full, I’ll add a new one. That will restore the broken function.

I will be keeping the same general format, with the T page still pointing to both the archive of Tips Pages as well as the series of new Postings. With that, back to the Tips boiler plate:

This is an “overflow” posting from prior Tips pages as they had gotten so large it was taking a long time to load. Same idea, just a new set of space to put pointers to things of interest. The most immediately preceding Tips posting is: https://chiefio.wordpress.com/2016/03/28/tips-march-2016/.

The generic “T” parent page remains up top, where older copies of the various “Tips” pages can be found archived. I have also added a Tips category (see list at right) and will be marking Tips postings with that for easy location.

While I’m mostly interested in things having to do with:

Making money, usually via trading
Weather and climate
Quakes, Volcanoes, and other Earth Sciences
Current economic and political events
(often as those last three have impact on the first one…)
And just about any ‘way cool’ interesting science or technology

If something else is interesting you put a “tip” here.

You can also look at the list of “Categories” on the right hand side and get an idea of any other broad area of interest.

This ought not to be seen as a “limit” on what is “interesting”, more as a “focus list” with other things that are interesting being fair game as well.

Subscribe to feed

Posted in Tips | Tagged | 25 Comments

Για τον Ματθαίο, ένα όνειρο, τότε; now with son

Yes, almost one whole hour and 50 minutes. A bit shy of 2 whole hours. You have something else worth doing? Really? Well, by all means, Get The HELL OUT!!! For every one else, this is an Electric Light Orchestra (E.L.O.) concert. Please sit back and enjoy.

The E.L.O. Comeback Tour of 2001. I always loved the strings, didn’t know it was two ladies on base fiddles… Nice, that.

Subscribe to feed

Posted in Arts | Tagged , | 2 Comments

Nile Crocodiles In South Florida

Just the thing to make a day at the swamp exciting…

If the native American Alligator and American Crocodiles were not enough, now they have found 3 examples of the Nile Crocodile (over a 5 year span).

Since there are already large crocodiles in Florida, why does this matter? Let’s take a look at the differences… but just after this pointer to the Orlando Sentinel:

http://touch.orlandosentinel.com/#section/-1/article/p2p-87255231/

Nile crocodiles slither into South Florida
Terry Spencer, Associated Press
9:12 pm, May 19, 2016

FORT LAUDERDALE — Step aside, Burmese python — you may no longer be Florida’s scariest invasive species.

Researchers have confirmed that three Nile crocodiles were captured near Miami, and they say it’s possible more of the man-eating reptiles are still out there, although no one can say for sure.

The big question now: How did they get to Florida?

“They didn’t swim from Africa,” University of Florida herpetologist Kenneth Krysko said. “But we really don’t know how they got into the wild.”

Krysko and his co-authors just published a paper showing that DNA testing proved the three animals captured in 2009, 2011 and 2014 are Nile crocs, a species whose males grow to over 16 feet long and weigh upward of 1,600 pounds.

So they found three of them, in 2009, 2011, and 2014. But now this is news because someone published a paper? Really? OK…

There are two quotes from the article that I just love (for their bias…)

Krysko and two co-authors, independent wildlife biologist Joe Wasilewski and UF wildlife ecology professor Frank Mazzotti, think more Nile crocs lurk unfound in the Everglades, but they aren’t certain.

Allyson Gantt, a spokeswoman for Everglades National Park, where one of the reptiles was found, disagrees, saying no Nile crocs still roam the park.

“Are to! Are Not!!“… so y’all just keep coming to the park and playing in the swamp… don’t worry a bit, ’cause we know for absolute fact that not a single pair of slightly different colored eyes and nostrils are hiding anywhere in any square foot of it or on the bottom. We looked.

Now “look at the negative space” (or “between the lines”) of this quote:

All three Nile crocodiles were captured in extreme South Florida.

The first, a hatchling, was found on a front porch and sent to a Louisiana reptile exhibit. The second, a female measuring 4 feet, was captured at a park. Wasilewski kept it, but later gave it to another licensed researcher. The third was captured twice. The first trapper didn’t have the proper permit, so he released the female. The croc was recaptured two years later 18 miles away by water in Everglades National Park. It was euthanized.

3 crocs, over 5 years. One as a hatchling, the others later and bigger. One hatchling and two females… OK… so what happened to the male that made the hatchling possible? Also was this a nest of exactly ONE egg? Or three? (And, if three, where is the mama crocodile too…)

But the good folks at the park are exceedingly sure there can’t possibly be even one more in the entire Everglades swamp, or any of its tributaries, despite one sample moving 18 miles from where first caught.

I think someone is “making stuff up” from “facts not in evidence”.

OK, why does this matter? Because the American Crocodile is not known to eat people or cows, while the Nile Crocodile likes them for dinner. Also the American Crocodile likes semi-salty water and doesn’t go inland much while the Nile likes, well, rivers and swamps. The American Alligator tends to live in the fresh water areas, and it is smaller than the crocs.

https://en.wikipedia.org/wiki/American_crocodile

The American crocodile (Crocodylus acutus) is a species of crocodilian found in the Neotropics. It is the most widespread of the four extant species of crocodiles from the Americas. Populations occur from the Atlantic and Pacific coasts of southern Mexico to South America as far as Peru and Venezuela. It also lives on many of the Caribbean islands such as Cuba, Jamaica, Hispaniola and Grand Cayman.

Within the United States, the American crocodile’s distribution is limited to Puerto Rico and the southern half of Florida, though at least two have been found as far north as the Tampa Bay area. The current US population, estimated at 2,000, represents a significant recovery from a few hundred in the 1970s.

The habitat of the American crocodile consists largely of coastal areas. It is also found in river systems, but has a tendency to prefer, not merely to tolerate, some level of salinity, resulting in the species’s congregating in brackish lakes, mangrove swamps, lagoons, cays, and small islands. Other crocodiles also have tolerance to salt water due to salt glands underneath the tongue, but the American crocodile is the only species other than the saltwater crocodile (C. porosus) to commonly live and thrive in salt water. They can be found on beaches and small island formations without any freshwater source, such as some of the many cays and islets across the Bahamas and the Caribbean. They are also found in hypersaline lakes; one of the largest known populations inhabits the Lago Enriquillo.

The American is one of the larger crocodile species. Males can reach lengths of 6.1 m (20 ft), weighing up to 907 kg (2,000 lb). On average, mature males are more in the range of 4.1 m (13 ft) to 4.8 m (16 ft) in length weighing about 400 kg (880 lb). As with other crocodile species, females are smaller; rarely exceeding 3.8 m (12 ft) in length.

About the size of the “salty” of Australia…(Yeah, they CLAIM theirs is bigger, but really, arguing over 6 inches…)

https://en.wikipedia.org/wiki/Saltwater_crocodile

The saltwater crocodile (Crocodylus porosus), also known as the estuarine crocodile, Indo-Pacific crocodile, marine crocodile, sea-going crocodile or informally as saltie, is the largest of all living reptiles, as well as the largest terrestrial and riparian predator in the world. Males of this species can reach sizes up to 6.3 m (20.7 ft) and weigh up to 1,360 kg (3,000 lb), and possibly up to 7.1 m (23.3 ft) in length and a weight of 2,000 kg (4,400 lb). However, an adult male saltwater crocodile is on average between 4.5 and 5.0 m (14.8 and 16.4 ft) and 450 to 590 kg (990–1,300 lb), with an average maximum size of 6 m (19.7 ft) and 1,000 to 1,200 kg (2,200–2,600 lb), rarely growing larger. Females are much smaller and often do not surpass 3 m (9.8 ft). As its name implies, this species of crocodile can live in salt water, but usually resides in mangrove swamps, estuaries, deltas, lagoons, and lower stretches of rivers. They have the broadest distribution of any modern crocodile, ranging from the eastern coast of India, throughout most of Southeast Asia, and northern Australia.

20 ft. vs 20.7 ft. (“I’m not counting the “possibly” 23 foot / 4400 lb) Though that 2000 lbs vs 3000 lbs means theirs is a fat SOB and ours more lean… must be the ‘beach time’ leading to wanting to look more sleek…

Compare the Nile:

https://en.wikipedia.org/wiki/Nile_crocodile

The Nile crocodile (Crocodylus niloticus) is an African crocodile and may be considered the second largest extant reptile in the world, after the saltwater crocodile (Crocodylus porosus). The Nile crocodile is quite widespread throughout Sub-Saharan Africa, occurring mostly in the central, eastern, and southern regions of the continent and lives in different types of aquatic environments such as lakes, rivers and marshlands. Although capable of living in saline environments, this species is rarely found in saltwater, but occasionally inhabits deltas and brackish lakes. The range of this species once stretched northward throughout the Nile, as far north as the Nile delta. On average, the adult male Nile crocodile is between 3.5 and 5 m (11 ft 6 in and 16 ft 5 in) in length and weighs 225 to 750 kg (496 to 1,653 lb). However, specimens reaching 6.45 m (21 ft 2 in) in length and weighing up to 1,090 kg (2,400 lb) have been recorded. Sexual dimorphism is prevalent, and females are usually about 30% smaller than males. They have thick scaly skin that is heavily armored.

So bigger by a foot in exceptional specimens, and 400 lbs heavier. However, since many of the American version were killed (even by the local Indians prior to the European invasion) and it can take a 100 years to grow a really big one, I suspect the USA crock can get just as big. There’s a large exhibit sign with a giant crock on it and load of Indians fighting it with what looks like a telephone pole sized spear at a beach park north of the Kennedy Space facility. IIRC, it said that the Indians had stories of monster sized crocks from the old days. Does anyone really doubt that a 22 foot long 3500 lb Crocodile lounging around a marina would not be left alone for long?

This story basically comes down to the Nile being a more inland species and likely to snack on cattle and people, while the American form likes to hang out in the mangroves near the beach. They say the American Crocodile doesn’t eat people, but the Indian stories tended otherwise… I suspect it is just a matter of size, number, and time…

In Conclusion

I am pretty sure the Nile Crocodile story isn’t over yet. There were three caught that may have been from the same clutch, and that took about 2 years each to find. Which means we have another 1/2 year or so to be on track. That the parents were never found is also intriguing. (There is the remote chance someone imported 3 small hatchling sized crocodiles all of the same sex, then let them loose, I suppose…)

OTOH, since the American Alligator is “not small” I’m not going to be swimming in the swamp anyway. There have been a few folks “munched” from sitting with their feet too close to the waters edge…

https://en.wikipedia.org/wiki/American_alligator

The American alligator (Alligator mississippiensis), sometimes referred to colloquially as a gator or common alligator, is a large crocodilian reptile endemic to the southeastern United States. It is one of two living species in the genus Alligator within the family Alligatoridae; it is larger than the other extant alligator species, the Chinese alligator. Adult male American alligators measure up to 3.4 to 4.6 m (11 to 15 ft) in length, and can weigh up to 453 kg (999 lb). Females are smaller, measuring around 3 m (9.8 ft). The American alligator inhabits freshwater wetlands, such as marshes and cypress swamps from Texas to North Carolina. It is distinguished from the sympatric American crocodile by its broader snout, with overlapping jaws and darker coloration, and is less tolerant of saltwater but more tolerant of cooler climates than the American crocodile, which is found only in tropical climates.

So “only” 15 feet and 1000 lbs. So “only” eats people on rare occasions…

And that, boys and girls, is why when you drive down I-95 / I-4 or I-75 into Florida headed to Disney World, and see all the wonderful and beautiful little lakes and ponds all over (one county is named “Lake County”) you will NOT see anyone swimming in the lakes. Clean beautiful placid water… And boats with decent size, and hands and feet not hanging out…

I did see some kids swimming in one lake near Kissimmee. At the boat dock. Several adults were fishing from the pier next to it. At about 4:15 P.M. one Dad hollered “Out of the water!”. About 10 minutes later a large gator swam by. I asked… “Oh, that’s just Gertrude. She swims by about 4:30 on her way to her feeding grounds on the other side of the lake. Sleeps in the weeds over there… So we get the kids out about 4.”

I’m not sure I’d trust my kids to the stomach clock of a 10 foot Gator… but there are some places where you will find a few souls swimming in the lakes. At least, for a little while …

Subscribe to feed

Posted in News Related | Tagged , , , | 14 Comments