Flex++/Bison++ Downloads

flex++ and bison++ were created from flex and bison by A. Coetmeur in the 1990s. These two programs provided seamless integration with C++, allowing developers to code actions in C++ and call private member functions of a parent class. This makes it straightforward to embed a parser and scanner by private inheritance, creating a clean “compiler” class which need expose only the results of the parsing. For these and other reasons, flex++ and bison++ impressed me as being well-engineered when I first discovered them, and I still prefer their approach to C++ integration.

Releases of flex++ and bison++ ended in 1993 and they fell out of date as C++, gcc, flex,and bison all evolved. New releases of gcc would often reject the generated parser and lexer code because it no longer conformed to the evolving C++ standard. To keep two legacy programs that used flex++ and bison++ afloat, I was making hasty, on-the-fly patches whenever a new version of gcc arrived.

No pre-built flex++/bison++ packages are available for openSUSE (as of this post). So recently I loaded the 1993 releases into Google Project Hosting and updated them more carefully to build cleanly under gcc 4.5 and generate code that compiles and links cleanly under g++ 4.5. I also added a configure file to flex++, which was so old it didn’t have one.

If you’ve arrived here by following the Contact Page link from the Google Project page, leave a comment and I’ll get back to you.


FiOS Case Study: Installation

In a previous post, I presented an Installation Guide for potential FiOS customers. I wrote that guide with the benefit of hindsight. In this post, I’ll describe my own installation.  You can see how I gained some of that hindsight and learn what  gets attached to your house.

First Visit – The Drop

For a single-family building (e.g. my house), Verizon splits the installation into two days.   The “drop” is an optical fiber cable running from the nearest utility pole or box to an attachment point on your house.  Unfortunately, you cannot schedule the date of the drop installation (aerial at least, I’m not sure about underground).   In areas with underground utilities, the fiber-optic cable may have to be trenched in, which is why the drop gets a day all its own in the schedule. Our area uses aerial drops and the fiber was installed in less than half an hour.

If (like I was) you are imagining a guy reeling a length of fiberoptic cable out of a box just like Ethernet cable, not so.  Because of the difficulty in terminating optical fiber, drops come in fixed lengths with connectors affixed to both ends. When the lineman comes out, he/she assumes that the ONT will be bolted to the exterior wall directly below the point where the fiber attaches to the house. If you want the ONT some distance away, you have to get the lineman to install a longer cable.

The sales representative had added a note to my order requesting the ONT to be installed in the basement.  This information was not passed on to the lineman. Fortunately I was home when he showed up and he readily agreed to “super-size” the drop and paced off the distance to where I wanted the ONT.


The Verizon FiOS web site, the technician during the ordering phone call, and Internet forums all had differing opinions on if/how one could use Ethernet cable to connect the ONT to the Internet router. But everyone agreed that “if you want an Ethernet connection to your router, you must run Cat 5e cable ahead of time”, so I did just that and hoped for the best.

I also screwed a 24″ by 12″ plywood ONT mounting panel to studs in the basement. A grounded outlet was just within 10 feet of the panel.

Second Visit – Installation Day

Verizon installer “Bob” arrived toward the middle of the 4-hour appointment window, cheerful and ready to install FiOS. I led him to the basement and proudly unveiled the plywood mounting panel with my newly run Cat 5e cable hanging nearby.

After verifying that a long fiberoptic cable had been run from the pole and that a grounded outlet was nearby, Bob signed up for the basement ONT location.  He attached the ONT and power supply, coiling the excess  cable in a storage bin mounted behind the ONT.  In the photo below, the FiOS fiberoptic cable is the one with the red tag attached.

Next, Bob screwed a signalling LED onto the fiberoptic cable and then drove off to the other end of the cable to find and connect it to the Verizon FiOS infrastructure. Upon return, he connected a piece of measuring equipment in place of the LED and pronounced the signal level to be excellent.

ONT Mounting

ONT and Power Supply Mounting Panel

ONT Premises Interface

Motorola ONT Coaxial, Ethernet, and POTS Connections

If I had seen the FiOS ONT and power supply beforehand, I would have planned a horizontal panel, with the ONT to the left and power supply to the right. This would have made for neater wire runs with fewer crossovers.

At this point, the ONT is connected to Verizon and is online. Now the premises wiring (TV, phone, and Internet) must be connected. When I asked Bob to use my Cat 5e cable to connect to the router, he declared this to be impossible. “Older routers could be connected with both Cat 5e and coaxial cable, but the newer ones use only coax. Here, take a look for yourself,” he said, handing me the Actiontec router.

Well, the Actiontec router has an Ethernet WAN port and the ONT has an Ethernet port pointed to by a big, green, “Step 2” arrow (see Connections photo). But I still didn’t know what the STB needed to connect with on the LAN, and faced with Bob’s conviction that Cat 5e couldn’t be used, I relented. Bob said he would run new coaxial cable to the same destination as my Ethernet cable, so I pointed to the far corner of the basement crawl space and off he went.

Bob did a professional job routing the RG-06 cable through the crawl space to the router and connecting to the existing TV cable. I ended up with properly supported cable running parallel or perpendicular to the floor joists, as opposed to the diagonal maze left by the cable TV installer last time around. By offering to help with a couple runs, I ended up with all new coaxial cable in the basement, leaving only one short existing stub to the set-top box (STB).

The Motorola STB and Actiontec MI424WR Internet router are standard fare so I’ll skip any photos of them.

With everything wired up, Bob now needed access to a PC to activate the STB for the TV and “complete the installation” of our FiOS Internet. Planning for this, I had rebooted one of my Linux workstations back into Windows XP. Bob ran an application off of a USB thumb drive that uploaded some measurements of the FiOS signal quality, then set a username and password for the router.

Verizon has added their own GUI for the Actiontec router: suffice to say it’s a heavy-handed, “if it’s more inconvenient, it must be more secure” affront to customers, while of course providing an un-blockable back-door for Verizon to log in remotely any time they please.

I logged into the router and viewed the network. The set-top box indeed appeared as a DHCP client, so the stories are true: Verizon FiOS STBs must be able to view the Actiontec router on their LAN segment in order to request an IP address.


Verizon FiOS performs as advertised, slightly exceeding both download and upload bit rates on DSLReports speed tests. But I haven’t yet downloaded a Linux distribution torrent to confirm sustained rates.

I’m very glad to have the FiOS ONT inside the house. Only the optical fiber passes through the wall. If the ONT had ended up outdoors, up to 5 wires would be drilled through the wall, and neighbors would have to look at my ugly ONT. If you have an attached garage, that’s the perfect place for your ONT.

If you sign up for FiOS Internet plus TV (with a set-top box), the Internet router must be connected to the ooaxial cabling in the house. This is true even if the router-to-ONT WAN connection is Cat 5e. This LAN topology with MoCA and Ethernet segments and STBs is unusual. I haven’t seen anything like this since the days of 10Base-2 Ethernet (anyone remember thinnet?).


FiOS Installation Guide for the Fastidious

This is an overview and checklist for those who are particular about their house and LAN and want some control over an upcoming Verizon FiOS installation. Glance through this guide if you are particular about what gets bolted onto your home and installed on your network. If you think you might need to customize your LAN after FiOS is installed, this guide is also for you.


  • ONT – optical network terminal. A “very small” (not!) box that is bolted onto your wall. Verizon’s fiber-optic cable goes in (terminates) and your premises wiring (phone, TV, Internet) comes out.
  • STB – set-top box. Decoder that sits on your TV. Unlike cable TV broadband Internet, FiOS STBs also connect to your LAN as DHCP clients.
  • MoCA – the Multimedia over Coax Alliance. Used as an adjective (as in a “MoCA router”) it means using cable TV wire as LAN cabling instead of normal twisted-pair (i.e. Cat 5e) cable.  Both Verizon-supplied Actiontec MI424WR and Westell 9100EM routers are MoCA and Ethernet capable.
  • SOHO – small office/home office. My FiOS installation supports a home office with five computers and several networked peripherals. This installation guide is written with the SOHO user in mind.

Verizon FiOS Installation Guide

Step 1 – Ordering:

Placing your FiOS order will of course cover choice of services, what channels are included, pricing, and special offers. Here are additional items to consider beyond the “default” ordering session:

  • ONT Location – learn whether you’re getting an aerial or underground fiber-optic cable drop. It’s one or the other — I haven’t heard of anyone who had a choice. For aerial drops, the default ONT location is adjacent to your electrical utility feed. If you want your ONT elsewhere (mine is in the basement), have this noted on the order configuration, even though this is only a “suggestion” to Verizon and not a commitment.
  • Appointment Dates – FiOS installation is done in two steps: the drop and the interior equipment and cabling. The interior installation date is the one that is used to qualify the limited time offers (e.g. “Free DVR. Must order by 1 Jan, install by 30 March”). If the order-by date is at hand but you need time to prepare your house, push out the installation date.
  • Activate Additional TV Coax Lines – my service representative suggested activating all existing cable runs in the house even though we had only one television. Verizon will activate up to six during initial FiOS installation, if you specify this number when placing the order.  When a TV is added in the future, Verizon just sends out an STB which is connected to an activated coaxial cable (no installation fee).
  • Ethernet Cable from ONT to Internet Router (non-TV installations only) – all FiOS Internet installations come with a Verizon-proprietary MoCA Internet router which they connect to the ONT using RG-06 (TV) coaxial cable. If you’ve also signed up for FiOS TV, this is the only installation method possible. But non-TV, non-apartment subscribers can opt for Ethernet cabling between ONT and router. This makes it possible to switch to your own router in the future. Have this request added to the order configuration (again, this is only a suggestion to Verizon).
  • Sign-up Offer – save whatever “special offer” literature you signed up with. You’ll need it to compare against your first and second bills to help determine if the proper pricing has been applied.

Step 2 – Preparation and Fiber-optic Drop:

If you’ve decided on one or more of the non-standard items listed in step 1, here are the actions you must take between placing the order and your installation date:

  • Non-standard ONT Location – if you want your FiOS ONT in a specific location. provide a sturdy 24″ x 12″ mounting surface (wood or drywall) for the ONT and its power supply (12″ x 18″ for the ONT and 12″ x 12″ for the power supply, if not co-located). Both the ONT and power supply are supposed to be within 10 feet of a grounded outlet. The power supply’s cord is only 10 feet long, so this is a hard limit.
  • Fiber-optic Drop – non-standard ONT locations are often far away from the point on the house where the fiber-optic drop is attached. If so, you must get a longer fiber-optic cable installed. If the equipment installer comes out and finds that the cable is too short to reach your planned ONT location, you’re in trouble. And you can’t schedule aerial drop installs — the guy just shows up. You either have to catch him, or try leaving notes posted where the phone and cable TV wires currently attach to your house.
  • Internet Router Location – as part of the standard new FiOS installation package, Verizon will run coaxial cable from the ONT to any router location you desire. The cable pathway is the installer’s choice (negotiable) and does not include snaking cable between walls. If you’re very particular about cable runs, consider running RG-06 cable yourself or offering to pay the installer to meet your requirements.
  • Cat 5e Cable Installation – FiOS installation includes running coaxial cable from the ONT to your chosen router location. If you prefer Ethernet cable (for cosmetic reasons or because you plan to substitute your own router for Verizon’s) you must install Cat 5e cable yourself.
  • Sacrificial PC – the installer wants access to a Windows PC to activate your installation, and to install a couple of unconfigurable, undocumented, inscrutable software applications. Those who are particular about what gets installed on your PCs, consider yourselves warned. I rebooted one of my Linux machines back into its Windows XP partition on installation day.

Step 3 – Installation, the Big Day:

All equipment and interior cabling will be installed and made operational today. If all goes well, you’ll be surfing the Internet at blazing-fast speeds before the day is out. Once again, the following items relate to customizing your FiOS installation beyond a standard Verizon FiOS installation:

  • Patience- your installer will arrive expecting a standard installation; special requests written down during the ordering process are rarely passed on to the installer. So explain your mounting and cabling requests anew and don’t blame him/her for not being aware of them.
  • Diplomacy – when ordering, you were the customer and Verizon was the seller. Now the situation is reversed: you may have to “sell” your installer on accommodating your non-standard requests. Verizon FiOS nstallers often are contractors and not Verizon employees. Contractors are paid by the install, not by the hour, and thus may be less-than-thrilled with time consuming special requests. Find out your installer’s situation, pick and choose your battles, and consider appropriate motivational options.
  • Cat 5e from ONT to Router – if you’ve run Cat 5e cable, and if you’re not getting FiOS TV, and if the ONT and router have Ethernet ports, and if the installer knows the procedure, he/she can use your cable instead of running new coax. If you’re not so lucky, you’ll need to do this later yourself.
  • Router Username and Password – Verizon forces these to be set during installation and you cannot leave this step until later. Ask to set them yourself or write them down. Either way, make certain you can successfully log in before the installer leaves.
  • Complete the Installation – this is one of those software applications I mentioned earlier. It enables email accounts and sets up your MyVerizon area at Your installer will either walk you through this, or will leave your PC with a “Resume Verizon FiOS Installation” icon on your desktop.  It will also set the router username and password if this wasn’t done by the installer.
  • User Guides and Manuals – many customers aren’t interested in “reading the manual”, so installers often overlook them. I found 3 manuals and 1 CD going through the boxes in my recycling bin. I was lucky, since some installers leave the boxes in the back of their trucks. If you want yours, tell the installer you want every scrap of paper from every box.

Step 4 – Aftermath:

Congratuations, your new FiOS installation is complete! In between hours of watching TV and surfing the Internet, you can log on to your new Verizon FiOS router and see the following devices on your local LAN:

  • – the Verizon FiOS Actiontec router.
  • – your computer.
  • – your FiOS set-top box (FiOS TV subscribers only).
  • Additional PCs appear at addresses 3-n, additional STBs at 101-n.

Export and save the router configuration, then begin your network configuration (instructions in a future post).

My FiOS Installation and Customization

Read my own saga and see how well I followed my own advice. The following posts also include instructions for customizing the LAN configuration for Actiontec routers:

  • My FiOS Installation.
  • The Actiontec MI424WR-GEN2 Version E Router (to-be-posted).
  • Change the IP address space of a FiOS LAN with STBs from (to-be-posted).

Alternating Tri-Boot for Linux Workstations

For small office/home office (SOHO) Linux workstations, I buy name-brand PCs (HP/Compaq most recently) and install Linux myself.  I’ve tried various installation strategies including Linux-only (reformatting the entire hard disk) and various forms of dual-boot or multi-boot.

Alternating tri-boot is what I call my preferred configuration for a work environment where down time or restore time due to a failed OS upgrade is costly schedule-wise.  Alternating tri-boot hosts three operating systems on a workstation: the as-delivered Windows XP partition, and two Linux distributions which both mount the same /home partition.


During normal use, two Linux distributions (e.g. openSUSE 11.0 and 10.2) and the original Microsoft OS are always bootable.  An extended partition containing four logical partitions is created. In the following diagram, the extended partition is aqua and the current Linux boot partition is the rightmost ext3 partition (labeled “root” and containing openSUSE 11.0):

Alternating Tri-boot - Two Linux OS Distros

Figure 1. Alternating Tri-boot Disk Partitions

When openSUSE 11.0 is booted, it mounts the common /home and /swap partitions and also mounts the 10.2 partition under /oldOS.  Moreover, the openSUSE 10.2 partition remains bootable since it was untouched during the installation of 11.0.  If booted as root, it would mount the same /home and swap partitions.  Thus all user data is available through normal login under either Linux OS.

Figure 2. Installation Progression for Successive Linux Versions

Figure 2. Installation Progression for Successive Linux Versions

Figure 2 shows how the contents of the partitions change as the newest Linux OS progresses from openSUSE 10.2 to 11.0 and finally 11.2.  The arrows show the new installations alternating between partitions sda6 and sda7, highlighting the point that current release is not disturbed when the next one is installed.  The availability of each release (10.2, 11.0 and 11.2) always spans two full release cycles.

Thus there are always three bootable OSes and new Linux installations alternate between the two Linux OS partitions — “alternating tri-boot”.


  • Never a “point of no return” during upgrades.  At any time during the installation of a new Linux distribution, you can stop and reboot into the most recent working configuration.
  • Mounting the previous distribution’s root partition under /oldOS solves  “lost configuration file” anxiety.  Ever been working on your new OS distribution for a few weeks, then fire up a seldom used application only to find out you forgot to copy/save its configuration file?  With the alternating OS partitions, that missing file is available somewhere under /oldOS.  It can be copied or diffed without having to restore from a tar file or other backup.
  • New hardware can be installed and debugged using the Windows utilities provided by the vendor.  Problems can be localized to either the hardware or the Linux driver.  No more calling the 800 number only to hear, “Load Windows and call me back.”
  • Present the machine as a Windows PC for on-site support and warranty issues.  For service calls, set the default OS back to Windows XP in the NT loader and let the technician have at it.
  • Alternating tri-boot retains the NT bootloader.  This is an integral part of avoiding point-of-no-return situations, since the original bootloader and the disk’s MBR are never overwritten or disabled during Linux installations.


  • In the midst of a new OS installation there is of course only one functional Linux partition.  During this window of vulnerability, you can’t fall back to booting the /oldOS partition if the current OS is damaged.  So don’t meddle with the configuration of the current OS while installing the new one.
  • Don’t let the /home partition be reformatted! Linux installer programs (e.g. YaST for openSUSE) usually scan the disks and partition tables and suggest an installation scenario.  Often they propose reformatting all of the Linux partitions.  This will wipe out the /home directories and all of your user data.  Only one partition (root) should be reformatted.

Coming soon – step-by-step instructions…


"No input file specified" mod_rewrite Problem

I made several changes to some mod_rewrite rules which were working fine on my local Apache server.  I then published to a staging site hosted on GoDaddy for further testing. The rules which directed permalinks to a PHP program stopped working; “no input file specified” appeared on my browser instead. No access to the error logs on this bargain basement hosting plan makes debugging all but impossible.

I finally found this post which presented a solution:

“Turn off MultiViews. It seems when MultiViews is enabled there is confusion between MultiViews and the RewriteRules. So if you go to /user there will be no problem, MultiViews will translate it to /user.php. However when you go to /user/blah/login/blah or one of the other more complex clean URLs it gets confused.”

Adding “Options -Multiviews” to my .htaccess file fixed the problem. Not sure why this only happens on my GoDaddy account and not locally or at our other hosting accounts. Is this the one and only error that results from Multiviews and ModRewrite colliding, or are there others? If so, maybe I’ll shut off Multiviews on all my web sites until I need to add multiple language support.

Powered by Wordpress and MySQL. Theme by