Elian  Harber

Elian Harber


Mtail: Extract internal Monitoring Data From Application Logs

mtail - extract internal monitoring data from application logs for collection into a timeseries database

mtail is a tool for extracting metrics from application logs to be exported into a timeseries database or timeseries calculator for alerting and dashboarding.

It fills a monitoring niche by being the glue between applications that do not export their own internal state (other than via logs) and existing monitoring systems, such that system operators do not need to patch those applications to instrument them or writing custom extraction code for every such application.

The extraction is controlled by mtail programs which define patterns and actions:

# simple line counter
counter lines_total
/$/ {

Metrics are exported for scraping by a collector as JSON or Prometheus format over HTTP, or can be periodically sent to a collectd, StatsD, or Graphite collector socket.

Read the programming guide if you want to learn how to write mtail programs.

Ask general questions on the users mailing list: https://groups.google.com/g/mtail-users


There are various ways of installing mtail.

Precompiled binaries

Precompiled binaries for released versions are available in the Releases page on Github. Using the latest production release binary is the recommended way of installing mtail.

Windows, OSX and Linux binaries are available.

Building from source

The simplest way to get mtail is to go get it directly.

go get github.com/google/mtail/cmd/mtail

This assumes you have a working Go environment with a recent Go version. Usually mtail is tested to work with the last two minor versions (e.g. Go 1.12 and Go 1.11).

If you want to fetch everything, you need to turn on Go Modules to succeed because of the way Go Modules have changed the way go get treats source trees with no Go code at the top level.

GO111MODULE=on go get -u github.com/google/mtail
cd $GOPATH/src/github.com/google/mtail
make install

If you develop the compiler you will need some additional tools like goyacc to be able to rebuild the parser.

See the Build instructions for more details.

A Dockerfile is included in this repository for local development as an alternative to installing Go in your environment, and takes care of all the build dependency installation, if you don't care for that.


mtail works best when it paired with a timeseries-based calculator and alerting tool, like Prometheus.

So what you do is you take the metrics from the log files and you bring them down to the monitoring system?

It deals with the instrumentation so the engineers don't have to! It has the extraction skills! It is good at dealing with log files!!

Read More

Full documentation at http://google.github.io/mtail/

Read more about writing mtail programs:

Read more about hacking on mtail

Read more about deploying mtail and your programs in a monitoring environment

After that, if you have any questions, please email (and optionally join) the mailing list: https://groups.google.com/forum/#!forum/mtail-users or file a new issue.

Download Details:

Author: Google
Source Code: https://github.com/google/mtail 
License: Apache-2.0 license

#go #golang #calculator #monitoring 

Mtail: Extract internal Monitoring Data From Application Logs
Monty  Boehm

Monty Boehm


Interest Rates Calculation, Indexing & Term Structures


Tools for Term Structure of Interest Rates calculation, aimed at the valuation of financial contracts, specially Fixed Income instruments.


From a Julia session, run:

julia> using Pkg

julia> Pkg.add("InterestRates")


  • Julia v1.0 or newer.


A Term Structure of Interest Rates, also known as zero-coupon curve, is a function f(t) → y that maps a given maturity t onto the yield y of a bond that matures at t and pays no coupons (zero-coupon bond).

For instance, say the current price of a bond that pays exactly 10 in 1 year is 9.25. If one buys that bond for the current price and holds it until the maturity of the contract, that investor will gain 0.75, which represents 8.11% of the original price. That means that the bond is currently priced with a yield of 8.11% per year.

It's not feasible to observe prices for each possible maturity. We can observe only a set of discrete data points of the yield curve. Therefore, in order to determine the entire term structure, one must choose an interpolation method, or a term structure model.

Data Structure for Interest Rate Curve

All yield curve calculation is built around AbstractIRCurve. The module expects that the concrete implementations of AbstractIRCurve provide the following methods:

  • curve_get_name(curve::AbstractIRCurve) → String
  • curve_get_daycount(curve::AbstractIRCurve) → DayCountConvention
  • curve_get_compounding(curve::AbstractIRCurve) → CompoundingType
  • curve_get_method(curve::AbstractIRCurve) → CurveMethod
  • curve_get_date(curve::AbstractIRCurve) → Date, returns the date when the curve is observed.
  • curve_get_dtm(curve::AbstractIRCurve) → Vector{Int}, used for interpolation methods, returns daystomaturity on curve's daycount convention.
  • curve_get_zero_rates(curve::AbstractIRCurve) → Vector{Float64}, used for interpolation methods, parameters[i] returns yield for maturity dtm[i].
  • curve_get_model_parameters(curve::AbstractIRCurve) → Vector{Float64}, used for parametric methods, returns model's constant parameters.

This package provides a default implementation of AbstractIRCurve interface, which is a database-friendly data type: IRCurve.

mutable struct IRCurve <: AbstractIRCurve
  dict::Dict{Symbol, Any}   # holds pre-calculated values for optimization, or additional parameters.

The type DayCountConvention sets the convention on how to count the number of days between dates, and also how to convert that number of days into a year fraction.

Given an initial date D1 and a final date D2, here's how the distance between D1 and D2 are mapped into a year fraction for each supported day count convention:

  • Actual360 : (D2 - D1) / 360
  • Actual365 : (D2 - D1) / 365
  • Thirty360 : (360*(year(D2)-year(D1)) + 30*(month(D2)-month(D1)) + (day(D2)-day(D1))) / 360
  • BDays252 : bdays(D1, D2) / 252, where bdays is the business days

between D1 and D2 from BusinessDays.jl package.

The type CompoundingType sets the convention on how to convert a yield into an Effective Rate Factor.

Given a yield r and a maturity year fraction t, here's how each supported compounding type maps the yield to Effective Rate Factors:

  • ContinuousCompounding : exp(r*t)
  • SimpleCompounding : (1+r*t)
  • ExponentialCompounding : (1+r)^t

The date field sets the date when the Yield Curve is observed. All zero rate calculation will be performed based on this date.

The fields dtm and zero_rates hold the observed market data for the yield curve, as discussed on Curve Methods section.

The field parameters holds parameter values for term structure models, as discussed on Curve Methods section.

dict is avaliable for additional parameters, and to hold pre-calculated values for optimization.


Package documentation is hosted at https://felipenoris.github.io/InterestRates.jl/stable.

Author: felipenoris
Source Code: https://github.com/felipenoris/InterestRates.jl 
License: View license

#julia #calculator 

Interest Rates Calculation, Indexing & Term Structures
Rupert  Beatty

Rupert Beatty


Handle All The Hard Stuff Related to EU MOSS Tax/vat Regulations


Handle all the hard stuff related to EU MOSS tax/vat regulations, the way it should be. Integrates with Laravel and Cashier — or in a standalone PHP application. Originally created by Marcel Pociot.

// Easy to use!
VatCalculator::calculate(24.00, $countryCode = 'DE');
VatCalculator::calculate(24.00, $countryCode, $postalCode);
VatCalculator::calculate(71.00, 'DE', '41352', $isCompany = true);

// Check validity of a VAT number

⚠️ This package does not provide any promises for correctly calculated taxes. You are still responsible to making sure that any calculated tax is correct for your use case. If you're uncertain if a certain tax is correct or not, it's best that you talk to an accountant.


  • PHP 7.3 or higher
  • (optional) Laravel 6.0 or higher


Install the package with composer:

composer require mpociot/vat-calculator


You can also use this package without Laravel. Simply create a new instance of the VatCalculator and use it. All documentation examples use the Laravel Facade code, so make sure not to call the methods as if they were static methods.

use Mpociot\VatCalculator\VatCalculator;

$vatCalculator = new VatCalculator();
$grossPrice = $vatCalculator->calculate(49.99, $countryCode = 'LU');


Please refer to the upgrade guide when upgrading the library.


Calculate the gross price

To calculate the gross price use the calculate method with a net price and a country code as parameters.

$grossPrice = VatCalculator::calculate(24.00, 'DE');

The third parameter is the postal code of the customer.

As a fourth parameter, you can pass in a boolean indicating whether the customer is a company or a private person. If the customer is a company, which you should check by validating the VAT number, the net price gets returned.

$grossPrice = VatCalculator::calculate(24.00, 'DE', '12345', $isCompany = true);

Receive more information

After calculating the gross price you can extract more information from the VatCalculator.

$grossPrice = VatCalculator::calculate(24.00, 'DE'); // 28.56
$taxRate = VatCalculator::getTaxRate(); // 0.19
$netPrice = VatCalculator::getNetPrice(); // 24.00
$taxValue = VatCalculator::getTaxValue(); // 4.56

Validate EU VAT numbers

Prior to validating your customers VAT numbers, you can use the shouldCollectVAT method to check if the country code requires you to collect VAT in the first place.

if (VatCalculator::shouldCollectVAT('DE')) {
    // This country code requires VAT collection...

To validate your customers VAT numbers, you can use the isValidVATNumber method. The VAT number should be in a format specified by the VIES. The given VAT numbers will be truncated and non relevant characters / whitespace will automatically be removed.

This service relies on a third party SOAP API provided by the EU. If, for whatever reason, this API is unavailable a VATCheckUnavailableException will be thrown.

try {
    $validVAT = VatCalculator::isValidVATNumber('NL 123456789 B01');
} catch (VATCheckUnavailableException $e) {
    // The VAT check API is unavailable...

Alternatively, it is also possible to validate only the format of the VAT Number specified by VIES. This is useful, if you do not want to wait for a response from the SOAP API.

// This check will return false because no connection to VIES could be made...
$validVAT = VatCalculator::isValidVATNumber('NL 123456789 B01');

// This check will return true because only the format is checked...
$validVAT = VatCalculator::isValidVatNumberFormat('NL 123456789 B01');

Get EU VAT number details

To get the details of a VAT number, you can use the getVATDetails method. The VAT number should be in a format specified by the VIES. The given VAT numbers will be truncated and non relevant characters / whitespace will automatically be removed.

This service relies on a third party SOAP API provided by the EU. If, for whatever reason, this API is unavailable a VATCheckUnavailableException will be thrown.

try {
    $vat_details = VatCalculator::getVATDetails('NL 123456789 B01');
    /* Outputs
    stdClass Object
        [countryCode] => NL
        [vatNumber] => 123456789B01
        [requestDate] => 2017-04-06+02:00
        [valid] => false
        [name] => Name of the company
        [address] => Address of the company
} catch (VATCheckUnavailableException $e) {
    // The VAT check API is unavailable...

UK VAT Numbers

UK VAT numbers are formatted a little differently:

try {
    $vat_details = VatCalculator::getVATDetails('GB 553557881');
    /* Outputs
    array(3) {
            string(26) "Credite Sberger Donal Inc."
            string(9) "553557881"
            array(3) {
                    string(18) "131B Barton Hamlet"
                    string(8) "SW97 5CK"
                    string(2) "GB"
} catch (VATCheckUnavailableException $e) {
    // The VAT check API is unavailable...



By default, the VatCalculator has all EU VAT rules predefined, so that it can easily be updated, if it changes for a specific country.

If you need to define other VAT rates, you can do so by publishing the configuration and add more rules.

⚠️ Be sure to set your business country code in the configuration file, to get correct VAT calculation when selling to business customers in your own country.

To publish the configuration files, run the vendor:publish command

php artisan vendor:publish --provider="Mpociot\VatCalculator\VatCalculatorServiceProvider"

This will create a vat_calculator.php in your config directory.

Handling SOAP Faults

If for some reason, SOAP faults happen when the VIES API is faulty, these errors will be handled gracefully and false will be returned. However, if you explicitly want to be aware of any SOAP faults you may instruct VatCalculator to throw them as a VATCheckUnavailableException. The VATCheckUnavailableException will then contain the specific message of the SOAP fault.

Set the option to true in your config file:


return [
    'forward_soap_faults' => true,

You can also set a timeout for the SOAP client. By default, SOAP aborts the request to VIES after 30 seconds. If you do not want to wait that long, you can reduce the timeout, for example to 10 seconds:


return [
    'soap_timeout' => 10,

ValidVatNumber Validation Rule

VatCalculator also ships with a ValidVatNumber validation rule for VAT Numbers. You can use this when validation input from a form request or a standalone validator instance:

use Mpociot\VatCalculator\Rules\ValidVatNumber;

$validator = Validator::make(Input::all(), [
    'first_name' => 'required',
    'last_name' => 'required',
    'company_vat' => ['required', new ValidVatNumber],

if ($validator->passes()) {
    // Input is correct...

⚠️ The validator extension returns false when the VAT ID Check SOAP API is unavailable.

Cashier Stripe Integration

⚠️ Note that at the moment this package is not compatible with Cashier Stripe v13 because it still relies on the old taxPercentage method which has been removed from Cashier v13. You can still use it on older Cashier Stripe versions in the meantime.

If you want to use this package in combination with Laravel Cashier Stripe you can let your billable model use the BillableWithinTheEU trait. Because this trait overrides the taxPercentage method of the Billable trait, we have to explicitly tell our model to do so.

use Laravel\Cashier\Billable;
use Mpociot\VatCalculator\Traits\BillableWithinTheEU;
use Laravel\Cashier\Contracts\Billable as BillableContract;

class User extends Model implements BillableContract
    use Billable, BillableWithinTheEU {
        BillableWithinTheEU::taxPercentage insteadof Billable;

    protected $dates = ['trial_ends_at', 'subscription_ends_at'];

By using the BillableWithinTheEU trait, your billable model has new methods to set the tax rate for the billable model.

Set everything in one command:

  • setTaxForCountry($countryCode, $company = false)

Or use the more readable, chainable approach:

  • useTaxFrom($countryCode) — Use the given countries tax rate
  • asIndividual() — The billable model is not a company (default)
  • asBusiness() — The billable model is a valid company

So in order to set the correct tax percentage prior to subscribing your customer, consider the following workflow:

$user = User::find(1);

// For individuals use:

// For business customers with a valid VAT ID, use:



Check out the CHANGELOG in this repository for all the recent changes.


VatCalculator is maintained by Dries Vints. Originally created by Marcel Pociot.

Author: Driesvints
Source Code: https://github.com/driesvints/vat-calculator 
License: MIT license

#laravel #php #calculator 

Handle All The Hard Stuff Related to EU MOSS Tax/vat Regulations
Netinho  Santos

Netinho Santos


How to Graph Quadratic Equations without Using a Calculator

Learn how to graph Quadratic Equations without using a calculator. Learn how to find the Vertex, Axis of Symmetry, x-intercept, y-intercept, and graph a parabola with its quadratic equation in Standard Form (y = 2x^2 - 4x - 1).

Subscribe: https://www.youtube.com/c/PreMath/featured 

#maths #mathematics #calculator 

 How to Graph Quadratic Equations without Using a Calculator
Netinho  Santos

Netinho Santos


How to Multiply and Divide Fractions

In this video, I'll show you how to multiply and divide fractions.

In Mathematics, fractions are represented as a numerical value, which defines a part of a whole. A fraction can be a portion or section of any quantity out of a whole, where the whole can be any number, a specific value, or a thing

Subscribe: https://www.youtube.com/c/SuperEasyMathwithTiffany/featured 

#maths #mathematics #calculator 

How to Multiply and Divide Fractions
Netinho  Santos

Netinho Santos


How to Add and Subtract Integers

In this video, I'll show you how to add and subtract integers.

What is an Integer?

An integer is a number with no decimal or fractional part, from the set of negative and positive numbers, including zero. Examples of integers are: -5, 0, 1, 5, 8, 97, and 3,043. A set of integers, which is represented as Z, includes:

  • Positive Integers: An integer is positive if it is greater than zero. Example: 1, 2, 3 . . .
  • Negative Integers: An integer is negative if it is less than zero. Example: -1, -2, -3 . . .
  • Zero is defined as neither negative nor positive integer. It is a whole number.

Z = {... -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, ...}

Subscribe: https://www.youtube.com/c/SuperEasyMathwithTiffany/featured 

#maths #calculator #mathematics 

How to Add and Subtract Integers
 iOS App Dev

iOS App Dev


SIP Calculator Calculates The Future Value Of SIP Payments

SIP calculator calculates the future value of SIP (Systematic Investment Plan) payments.

This app is available in the AppStore. Learn more here.


SIP calculator calculates the future value of SIP (Systematic Investment Plan) payments.


  • Run pod install
  • Run open SIP.xcworkspace

Contribute Want to contribute? I would really appreciate a hand with the development to add more finance related features in this app.

Feel free to Fork, edit, then pull!




Download Details:
Author: tirupati17
Source Code: https://github.com/tirupati17/sip-calculator-swift

#swift  #ios  #calculator 

SIP Calculator Calculates The Future Value Of SIP Payments
 iOS App Dev

iOS App Dev


A Tip Calculator for IOS (in Swift) and Android

Round & Split

I needed a tip calculator, so I wrote one.

I always round my tips, and when I dine out with a friend, I email them reminders that I owe them money or vice versa. I was looking for a tip calculator that could do both, but there wasn't any. Plus, most tip calculators out there have a lot of features that I don't need.

So I decided to make one. Or two in fact – I've made an iOS version and an Android version, because I happen to know programming on both platforms.

You can download the iOS app on the App Store for $0.99. It's a free app on Google Play.

I've also made this an open source project. You are welcome to build the app on your own from the source code. The only difference is that the source code here does not include the app icons made by a professional icon designer.


  • Calculate tip at three most common rates in the United States: 15%, 18%, and 20%.
  • Always give you a rounded total.
  • Send email reminder with pre-populated subject lines.

On Rounding

When Round & Split rounds the total for you, the rounding can go up or down. Which direction it goes depends on the effective rate of the tip. The rate that is closest to your chosen rate wins.

For example, if the charged amount is $37.14, and you want to tip at 18%, the tip would be $6.69 (37.14 × 18% = 6.69) and the total $43.83, which is a bit unwieldy for a total. If we round the total down to $43.00, the tip becomes $5.86, which translate to an effective rate of 15.8% (5.86/37.14 = 0.158). On the other hand, if we round it up to $44.00, the tip becomes $6.86, and the effective rate 18.5% (6.86/37.14 = 0.185). 18.5% is closer to 18%, and so we use $6.86 as the tip and $44.00 as the total. The point is that I want neither overtipping nor undertipping too much.

How to Build the App on Your Own


Make sure you have the latest version of Xcode installed. At the time of writing, that is Xcode 8.3.2 running on macOS 10.12.4 or higher.

To build Round & Split from source code, follow the steps below:

  1. Run ./setup.sh in your cloned repo directory. This fetches the Fira Sans fonts used by the app.
  2. In ./iOS/RoundAndSplit, open RoundAndSplit.xcodeproj with Xcode.
  3. Use Product > Build.

This allows you to run the app in an iOS Simulator. To upload the built app to your iOS device, you need to be a member of Apple's iOS Developer Program.


Make sure you have the latest Android Studio installed and $ANDROID_HOME properly set. Once you have cloned the repo, go to ./Android/RoundAndSplit and run:

./gradlew clean build

The build .apk file will be at:


Then you can just upload the app to your connected device with:

adb install -r app-debug.apk

This, of course, assumes you have enabled the developer mode on your Android device.

I haven't tried this on Linux or Windows. On Windows you may have to use gradlew.bat to build the app.

Contribution Policy

This is an open source project, but I also sell a paid version on the App Store. If you make a pull request, I'll ask you to allow me to use your code in the paid app without compensation. Your contribution will be acknowledged.


App icon designed by OneToad.

User interface designed by the Smoking Hare.

The iOS version of this app uses the Fira Sans typeface from Mozilla: https://github.com/mozilla/Fira.

Download Details:
Author: lukhnos
Source Code: https://github.com/lukhnos/roundandsplit

#swift  #ios  #calculator 

A Tip Calculator for IOS (in Swift) and Android
 iOS App Dev

iOS App Dev


NumberPad: An Experimental Prototype Calculator Written in Swift

What is NumberPad

NumberPad is an experimental prototype to explore how we write, visualize, and manipulate math equations. This post highlights some of the interesting features.

Handwriting recognition and a constraint solver let the iPad do the rote algorithms of algebra so you can work at a higher level. It is inspired by the constraint solver in Structure and Interpretation of Computer Programs.

After reading the post that explains the notation, watch this video showing a visualization of the pythagorean theorem.

Using NumberPad

Draw a number, or "x", "/", "+", or "-". Unfortunately, these can only be recognized one at a time. The handwriting recognizer kicks in if you wait a bit, or if the next stroke you draw is sufficiently far away.

Drag from a number to a multiplier or adder to connect them. Tap and hold to move objects around. Use two-finger tap to delete something (couldn't get double-tap to work...). Tap a single time on a number to show the slider.


This project has several targets. The main math app is the NumberPad target. There is also a DigitRecognizer target that is for working on the handwriting recognition alone. The DigitRecognizerSDK is a dependency of both of them, and contains the algorithms for the handwriting recognition. It is in a separate target so that the compiler can optimize it indepdently.

Sometimes, when building NumberPad, Xcode will complain that it can't build DigitRecognizerSDK. Building the DigitRecognizer target and then going back to NumberPad seems to fix this issue. ¯\_(ツ)_/¯


I am providing code in this repository to you under an open source license. Because this is my personal repository, the license you receive to my code is from me and not from my employer (Facebook).

Download Details:
Author: bridger
Source Code: https://github.com/bridger/NumberPad
License: Apache-2.0 license

#swift  #ios  #calculator 

NumberPad: An Experimental Prototype Calculator Written in Swift
 iOS App Dev

iOS App Dev


IBCalculator App: How to Use @IBDesignable and @IBinspectable


IBCalculator is an example app to demonstrate how to use @IBDesignable and @IBInspectable. The origin code is from IBInspectable / IBDesignable and gist. The code has been upgraded to Swift 3.


Design in Interface Builder


Run in iPhone Simulator


Download Details:
Author: JakeLin
Source Code: https://github.com/JakeLin/IBCalculator

#swift  #ios  #calculator 

IBCalculator App: How to Use @IBDesignable and @IBinspectable
 iOS App Dev

iOS App Dev


HexaCalc Calculator for IOS Built in Swift with Xcode



Three tabbed calculator for decimal, hexadecimal and binary for iOS built in Swift with Xcode. Provides numerous operations and seamless conversion between the three tabs.

With a seperate screen for each of the number systems users can focus on exactly what system they need - many of the apps currently on the app store with similar functionality have all three number systems on the same screen or they are severely outdated in terms of UI.

Switching tabs will result in instant conversion of the current value on the screen and will allow you to complete operations on that current number on the new screen.

For the hexadecimal and binary calculators there is a limit of 64 bits as they use integer conversion, however the decimal calculator will allow you to work with larger numbers even when the other two calculator screens show an error.

Tapping on the calculator output label causes the currently displayed number to be copied to your phone's clipboard. This works for any of the three tabs!

Note: All screenshots shown were taken on an iPhone X simulator.

System Requirements

This app is optimized to run and look amazing on all iPhones and iPads which are supported by iOS13/iPadOS13.

For iPads this includes support for both landscape and portrait modes as well as support for any multitasking screen size and Slide Over.


Hexadecimal Calculator

  • Addition, subtraction, multiplication, division
  • All clear, delete

Device Screenshots for Hexacdecimal Calculator

Green Positive Hexadecimal OutputGreen Negative Hexadecimal OutputRed Negative Hexadecimal White Text OutputOrange Three Tab Positive Hexadecimal Output
alt textalt textalt textalt text

Binary Calculator

  • Addition, subtraction, multiplication, division
  • 1's compliment, 2's compliment, left shift, right shift
  • All clear, delete

Device Screenshots for Binary Calculator

Green Positive Binary OutputGreen Negative Binary OutputRed Negative Binary White Text OutputTeal Two Tab Positive Binary Output
alt textalt textalt textalt text

Decimal Calculator

  • Addition, subtraction, multiplication, division
  • All clear, delete, plus/minus, dot

Device Screenshots for Decimal Calculator

Green Positive Decimal OutputGreen Negative Decimal OutputRed Negative Decimal White Text OutputOrange Three Tab Positive Decimal Output
alt textalt textalt textalt text

User Customization

This app uses data persistance to implement saved user customization allowing each user to choose their customizations through a settings menu.

Customization options

  • 8 different system colours which change the colour of buttons and the app icon
  • The ability to disable or enable any combination of calculator tabs allowing the user to focus on what is important for them
  • The option to change the default calculator text colour from white to your selected colour
  • Options for the copy and paste clipboard gestures as well as the ability to disable them

The settings menu also includes navigation to the About HexaCalc view which has links to the privacy policy and terms and conditions documents.

Device Screenshots for Settings Tab

Default Settings ViewDefault About HexaCalc ViewRed Two Tab Settings ViewChanging Icon to Blue
alt textalt textalt textalt text

Future Development

There are many features that I would like to add to HexaCalc and these are some of the ones that I will look into implementing next:

  • Localization
    • As of now, the app only supports English, it would be great to add support for many more languages
  • Improve the bit shift operations
    • Bit shifting is a common operation, but it is only implemented on the binary calculator and only with shifts of 1
    • Add X>>Y and X<<Y to both the binary and hexadecimal calculators
  • Modulo operator
    • The modulo operation would be a good addition to the hexadecimal/decimal calculators
  • History
    • Adding calculation history for each of the calculators
  • Support for any number base
    • The app only includes binary, hexadecimal and decimal, more number bases could be added (such as octal)
  • Full calculator customization
    • Add more optional calculator buttons and let users create their own layout with their desired operations

Download Details:
Author: AnthonyH93
Source Code: https://github.com/AnthonyH93/HexaCalc
License: MIT license

#swift  #ios  #calculator 

HexaCalc Calculator for IOS Built in Swift with Xcode
 iOS App Dev

iOS App Dev


Currency Converter for IOS Apps Written in Swift

Currency Converter - Free and Quick Converter calculates money quick and easy way to see live foreign exchange rates.

This app is available in the AppStore. Learn more here.


Calculates money quick and easy way to see live foreign exchange rates.


  • iOS 9.0+ / macOS 10.11+
  • Xcode 9.4+


  • Run pod install
  • Run open CurrencyConverter.xcworkspace


Want to contribute? I would really appreciate a hand with the development to add more features in this app.

Feel free to Fork, edit, then pull!


Currency Converter - Free and Quick Converter

Download Details:
Author: tirupati17
Source Code: https://github.com/tirupati17/currency-converter-swift3.0-viper

#swift  #ios  #calculator 

Currency Converter for IOS Apps Written in Swift
 iOS App Dev

iOS App Dev


Calculator for Mobile, Desktop and Website Apps (iOS)

Mobile, desktop and website Apps with the same code

This project shows how the source code can be architectured to run on multiple devices. As of now, it is able to run as:

A demo for the Website App is available here.


Mobile Apps (iOS & Android)

Mobile Apps

Desktop Apps (NW & Electron)

Desktop App

Website App

Website App


This project uses libraries and tools like:

  • es6 syntax and babel
  • react for the Website App and Desktop App,
  • react-native for the iOS & Android Apps
  • NW to package the Desktop App
  • Electron to package the Desktop App
  • flux to organize the data flow management
  • css-loader to integrate the styles in the builds
  • grunt to create the builds
  • webpack to help during the development phase with hot reloading

Basic philosophy

All the code is contained in the src directory, especially the 3 main entry files that are used for the builds:

  • index.ios.js & index.android.js are the ones used to build the iOS & Android Apps
  • index.js is the one used to build the Website App and Desktop App as the code is strictly the same.

Flux architecture actions/stores

All the flux architecture is share to 100% to all the different builds. This means that all the logic and data management code is done only once and reuse everywhere. This allows us to have an easy tests suite as well and to ensure that our code is working properly on all the devices.


The real interest of the project is in how the components have been structured to shared most of their logic and only redefined what is specific to every device.

Basically, every component has a main Class which inherits a base Class containing all the logic. Then, the main component import a different Render function which has been selected during the build. The file extension .ios.js, .android.js or .js is used by the build tool to import only the right file.

The .native.js files contain code that is shared between both mobile platforms (iOS & Android). Currently, the .ios.js and .android.js files compose this .native.js file since all code is shared right now. However, if a component needed to be different for platform specific reasons, that code would be included in the corresponding platform specific files.

At the end, every component is defined by 6 files. If we look at the screen component, here is its structure.

├── ScreenBase.js
├── ScreenRender.ios.js (specific to iOS build
├── ScreenRender.android.js (specific to Android build)
├── ScreenRender.native.js (shared mobile app code - iOS & Android)
└── ScreenRender.js (used during Website and Desktop build)

And here is the main Class file which composes the files.

'use strict';

import Base from './ScreenBase';
import Render from './ScreenRender';

export default class Screen extends Base {
  constructor (props) {

  render () {
    return Render.call(this, this.props, this.state);

What's next

Here are some thoughts about what can come next:

  • Make the Website App Isomorphic/Universal

Thank you Robert for your awesome design

I want to thank Robert O'Dowd who kindly authorized me the reuse his very beautiful design. The original design made by Robert was part of his project called "Simplifycation" visible here.

How to build/run the projects

General requirements before running any specific project

  • npm install to install all the dependencies, React and React Native among others.

With some versions of npm (>=v3.3.10 <=v3.6.0)

Some builds from npm included bugs while npm install. So if you are using a npm version within the range form 3.3.10 to 3.6.0 included, you must run npm install twice. Those versions including npm v3.3.12 are the ones bundled by default with node from version v5.1.0 to v5.5.0.

  • npm install npm
  • npm install npm run it twice, because of the packages won't be installed after the first run #10985

The Mobile Apps (iOS & Android)

Requirements for React Native


  • OS X
  • Xcode 6.3 or higher is recommended (Xcode only runs on Mac).
  • Homebrew is the recommended way to install node, watchman, and flow.
  • brew install node
  • brew install watchman. We recommend installing watchman, otherwise you might hit a node file watching bug.
  • brew install flow. If you want to use flow.


Running the Mobile Apps


  • Open iosApp.xcodeproj and hit run in Xcode.
  • Hit cmd+R in your iOS simulator to reload the app and see your change!


Congratulations! You've just successfully run the project as an iOS or Android App.

The Website App

Requirements for React

There isn't any additional requirements since you already installed the deps with npm install.

Quick start

Congratulations! You've just successfully run the project as a Website App.

The Desktop App

You can either run the project with NW or electron.

Requirements for NW

To run the project, you are supposed to run something like:

/path/to/nw .

On OSX, the executable binary is in a hidden directory within the .app file. The easier solution to install it is to download the app on http://nwjs.io/ then copying it to your application folder. You will now be able to run:

/Applications/nwjs.app/Contents/MacOS/nwjs .

You can also setup an alias to call the binary.

alias nw="/Applications/nwjs.app/Contents/MacOS/nwjs"

Quick start with NW

  • npm run build to build the project (at least the first time)
  • npm run serve-nw to launch the desktop app and enable livereload

Congratulations! You've just successfully run the project as a Desktop App.

Quick start with Electron

  • npm run build to build the project (at least the first time)
  • npm run serve-electron to launch the desktop app and enable livereload

Congratulations! You've just successfully run the project as a Desktop App.

Run the tests

To run the tests, simply run:

npm test


Download Details:
Author: benoitvallon
Source Code: https://github.com/benoitvallon/react-native-nw-react-calculator
License: MIT license

#swift  #ios  #calculator #reactnative #javascript 

Calculator for Mobile, Desktop and Website Apps (iOS)
 iOS App Dev

iOS App Dev


BMI Calculator: Learn to Code While Building IOS Apps

BMI Calculator

Our Goal

The goal of this tutorial is to learn more about Optionals, solidify your understanding of the MVC design pattern and to introduce the concept of Classes. We’ll compare objects created from classes with instances of Structs that we learnt about earlier.

What you will create

By the end of the module, you will have made a Body Mass Index calculator. Based on the user’s weight and height it will calculate their body mass and give a piece of health advice depending on whether if they have eaten too many pies or if they need to eat more pies.

What you will learn

  • How to create multi-screen apps with animated navigation.
  • Optional binding, optional chaining and the nil coalescing operator.
  • How to create classes and difference between classes and structs.
  • Pass by value vs. pass by reference.
  • Formatting Strings.
  • Color literals.

This is a companion project to The App Brewery's Complete App Development Bootcamp, check out the full course at www.appbrewery.co

End Banner

Download Details:
Author: appbrewery
Source Code: https://github.com/appbrewery/BMI-Calculator-iOS13

#swift  #ios  #calculator 

BMI Calculator: Learn to Code While Building IOS Apps

What is a Matrix ? | The Applications of Matrices

This video goes over just a few applications of matrices that may give you some insight into how they can be used in the real world. Linear algebra was never explained well to me in school and I had very little motivation to learn matrices at the time so hopefully this helps you if you're in a similar situation. Also note there are so many applications there's just no way to fit them into one video but here you'll find some of my favorite instances of when they come up.

The application of matrix plays a major role in Mathematics, as well as in other fields. It helps in solving linear equations. Matrices are extremely valuable objects that can be found in a wide range of applications. The application of matrices in mathematics is used in a wide range of scientific fields as well as mathematical areas.

The matrix in mathematics is a rectangular or square array of numbers or variables, arranged in the form of rows and columns. Individual items in a matrix are known as elements or entries.

The size of the matrix is determined by some its rows and columns. Matrix with ‘m’ rows and ‘n’ columns is read as ‘m*n’ matrix where m and n are its dimensions.

Subscribe: https://www.youtube.com/c/zachstar/featured 

#mathematics #maths #calculator 

What is a Matrix ? | The Applications of Matrices