Never Ending Security

It starts all here

Frink – Frink is a practical calculating tool and programming language

About Frink

Frink is a practical calculating tool and programming language designed to make physical calculations simple, to help ensure that answers come out right, and to make a tool that’s really useful in the real world. It tracks units of measure (feet, meters, kilograms, watts, etc.) through all calculations, allowing you to mix units of measure transparently, and helps you easily verify that your answers make sense. It also contains a large data file of physical quantities, freeing you from having to look them up, and freeing you to make effortless calculations without getting bogged down in the mechanics.

Perhaps you’ll get the best idea of what Frink can do if you skip down to the Sample Calculations further on this document. Come back up to the top when you’re done.

Frink was named after one of my personal heroes, and great scientists of our time, the brilliant Professor John Frink. Professor Frink noted, decades ago:

“I predict that within 100 years, computers will be twice as powerful, ten thousand times larger, and so expensive that only the five richest kings of Europe will own them.”


For those with a short attention span like me, here are some of the features of Frink.

  • Tracks units of measure (feet, meters, tons, dollars, watts, etc.) through all calculations and allows you to add, subtract, multiply, and divide them effortlessly, and makes sure the answer comes out correct, even if you mix units like gallons and liters.
  • Arbitrary-precision math, including huge integers and floating-point numbers, rational numbers (that is, fractions like 1/3 are kept without loss of precision,) complex numbers, and intervals.
  • Advanced mathematical functions including trigonometric functions (even for complex numbers,) factoring and primality testing, and base conversions.
  • Unit Conversion between thousands of unit types with a huge built-in data file.
  • Date/time math (add offsets to dates, find out intervals between times,) timezone conversions, and user-modifiable date formats.
  • Translates between several human languages, including English, French, German, Spanish, Portuguese, Dutch, Korean, Japanese, Russian, Chinese, Swedish, and Arabic.
  • Calculates historical buying power of the U.S. dollar and British pound.
  • Calculates exchange rates between most of the world’s currencies.
  • Powerful Perl-like regular expression capabilities and text processing.
  • Supports Unicode throughout, allowing processing of almost all of the world’s languages.
  • Supports Interval Arithmetic (also known as Interval Computations) in calculations, allowing you to automagically calculate error bounds and uncertainties in all of your calculations.
  • Reads HTTP and FTP-based URLs as easily as reading local files, allowing fetching of live web-based data.
  • Runs on most major operating systems (anything with Java 1.1 or later,) as an applet, through a web-based interface, on a wireless Palm VII, on an HDML- or WML-based webphone, and on many mobile phones and hand-held devices.
  • Installs itself on your system in seconds using Java Web Start and automatically keeps itself updated when new versions of Frink are released.
  • Runs with a Graphical User Interface (Swing, AWT, and Android) or a command-line interface.
  • User interface has a Programming Mode which allows you to write, edit, save, and run extremely powerful programs even on a handheld device.
  • Frink has a simple but powerful system for drawing graphics which are resizable, support transparency and anti-aliasing, and can be printed or written to image files. Graphics can also have exact lengths, so that a 3-centimeter line is three centimeters long when printed.
  • Powers Frink Server Pages, a system for providing dynamic web pages powered by Frink.
  • Frink is a full-fledged programming language with arrays, dictionaries, sets, functions, loops, even object-oriented programming and self-evaluation.
  • Frink allows Object-Oriented Programming, which allows you to create complex data structures that are still easy to use.
  • Java Introspection layer allows you to call any Java code from within Frink.
  • Frink can also be embedded in a Java program, giving your Java programs all the power of Frink.
  • Did I mention it’s free? If you find it useful, please donate something. I’d really appreciate it!


Using Frink

Try as you read

If you want to try the calculations as you’re reading, click here to open the web-based interface in a new window. The web-based interface gives hints for new users, which may make it the easiest way to learn how to use Frink.

If you have a frames-enabled browser, and you don’t see a Frink sidebar to the left, you can also click here to try Frink in a sidebar as you read this. (The sidebar mode doesn’t give as many hints, though.)

Download using Java Web Start

This method of installation requires Java Web Start, which is installed with recent versions of Java. Using Java Web Start is used to be a great way to run Frink if you don’t need to run programs from the command-line. (But you can still write and run programs from the GUI using Java Web Start!) If you do want to run programs from the command-line, see the Downloading Frink section below. Java Web Start will allow you to automatically get the latest version of Frink and will update Frink automatically when new versions are available.

Installation Steps

  1. If you don’t have a recent version of Java, you can get it from Sun. (Link opens in new window.)
  2. (Optional) If you’ve never installed anything with Java Web Start, please read and understand the FAQ entry about the security warnings you’ll see (link opens in new window) and your alternate download options.
  3. Warning: If you’re using Java version 7u51 or later, they silently and incompatibly decided to change default security settings so you’ll need to open the Java Control Panel to allow Frink to run. Otherwise you will see a dialog that says something like “Application blocked by security settings” or “Your security settings have blocked a self-signed application from running.” (This silent change was made after 12+ years of the aforementioned method working fine.)The best way to allow Frink to run is to follow the instructions listed here and add to the exceptions list in step 7.

    Note: As always, Java’s instructions and installer are terrible, and the Java Control panel on Windows may actually be under your Start menu as Java |Configure Java, or under your Windows Control Panel, or if you start your Control Panel and don’t see it, Java’s control panel will be hidden under “32-bit Control Panel.” And sometimes you’ll have multiple versions of Java installed and the one that gets started isn’t the latest version. I had lots of problems until I manually uninstalled all the versions of Java on the Windows machine, reinstalled the latest version, and uninstalled Frink and reinstalled it. Sorry about that. Windows and Java integration is terrible.

  4. Click one of the options below to install Frink with either interface (see the screenshots below):

    You can install both, actually, with no problems.

If you’ve read those security notes, and understood what the security messages are telling you, and the warnings are still too scary, (and you don’t want to send me the $400 per year it would cost me to remove at least one of them,) and you’d rather download a limited version of Frink that runs in the most restrictive security sandbox (breaking some features), then click here to install a limited version of Frink. Again, please read those security notes to see what features will be unavailable if you choose this option. You can always get the full version of Frink later if you need those features.

If someone wants to send me the $400 necessary to get a VeriSign “Code Signing Cerificate”, I’ll sign it just for you. It won’t work any differently.)

If you have an old version of Java Web Start, Frink will probably show up in the “Downloaded Applications” section of the Java Web Start panel which isn’t immediately visible. Use the View menu option to select the Downloaded Applications tab. It will also let you create a Frink shortcut on your desktop or in your start menu. The defaults in Java Web Start before version 1.4.2 are set oddly so that the second time you run Frink, it will ask you if you want to make a shortcut.

If you’re using Linux, and Sun’s Java release, only Java version 1.5 beta and later will install shortcuts onto your desktop and start menu. Highly recommended.


More information aboutu Frink can be found on: and

Information about the Android App can be found here:


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s