Notes on Fixing Incomplete Bitcode Error in TeamCity Automated Objective-c Builds

Notes I took while trying to fix the Incomplete Bitcode error in submission bug.  Not sure if it’s fixed yet as I haven’t tried submitting an app to the App Store yet.  Hopefully someone else will try it and confirm it’s fixed.

In summary when submitting an app to iTunes Connect that has the XPlugins.iOS.BEMCheckBox the user got the following error:

ERROR ITMS-90668: “Invalid Bundle Executable. The executable file ‘InstantApp.BoostOrder.Customer.Touch.app/Frameworks/BEMCheckBox.framework/BEMCheckBox’ contains incomplete bitcode. To compile binaries with complete bitcode, open Xcode and choose Archive in the Product menu.”

[Read More]

Family Vacation is Over

Our family vacation is over and the basement is back open for business.  Actually we where open on Monday but I forgot to remove the digital closed signed.  Sorry about that.

On this trip we visited Hong Kong and Shanghai, spending about a week in each city.  This is our second time to Honk Kong and we got to see and do things we missed on our first visit.  This includes hanging out at a beach and swimming, hiking the highest mountain in Hong Kong, a helicopter ride (sponsored by our daughter who saved her money for a year), and visiting the highest building in Hong Kong.

[Read More]

Closed for Family Vacation

Basement Office Closed SignSaturday MP is a small family business and like your local family run restaurant the entire family is involved in some way.  Currently it’s mostly me working at Saturday MP but Ada helps with some book keeping and in the past was a consultant.  Our daughter also used to clean the basement office and shred papers.

Also, like your local family restaurant, when we take a vacation the entire business closes.  Well, mostly closes, we can still be reached virtually but please expect delays in our response.  Thank you for your patience and we look forward to serving you when we get back to the basement on November 27th.

Categories: business-side fun  Tags: small-business vacation 

Today I Learned The Final Backslash is Important in Apache HTTPS Redirects

Lets start with the bug:

When requesting a download link via the Downloads page the link that is sent via e-mail is invalid.  It is missing a slash.

  1. Enter a e-mail on the Downloads page (https://www.saturdaymp.com/downloads) that has already purchased Mini-Compressor.

  2. E-mail should be sent but the link in the e-mail is incorrect.  For example the link I got was:

https://www.saturdaymp.comdownloads/show_products?link=blahblahblah

There should be a slash after the https://www.saturdaymp.com.

But when I looked closer at the actual e-mail, the link was correct.  It looked like:

[Read More]
Categories: today-i-learned  Tags: apache https 

Degree of Temporalness

This post is part of a larger discussion about temporal databases.  Hopefully it stands on it’s own but for more context see the Temporal Database Design page.

Most of us have worked with database tables that track some historical information.  You add a EffectiveDate column or something similar and usually it’s just limited to a table to two.  A Temporal Database is designed so most or all of the tables can track historical information.

The important part is that you can access the historical database using a SQL query and don’t have to look elsewhere, such as audit log.  This is what makes a database a Temporal Database, at least according to me.

Degree of Database Temporalness

A database can either be non-temporal, partial temporal, or fully temporal.  You can measure the temporalness by the percentage of tables that store temporal data.

Non-Temporal (0% Temporalness): Database has no temporal capabilities.

Partially Temporal (1% - 99% Temporalness): The database has some tables store temporal data but not all.

Fully Temporal (100% Temporalness): All the tables in the database store temporal data.

Type of Table Temporalness

We don’t measure how temporal a table is by percentage.  Instead a table is defined by what type of historical data you can retrieve.  There are two types of historical data:

[Read More]