michael lorenz portfolio · ble (bluetooth low energy). i adapted some of the code from the...

13
Michael Lorenz Portfolio [email protected] Note: Projects are listed approximately from oldest to newest. I developed almost every PHP & Perl script for All About Jazz. (Naturally they have changed since my departure.) http://www.allaboutjazz.com I entered and won a game dev contest using Lua / Corona SDK. The object was to create a game from scratch in 48 hours real-time. https://www.youtube.com/watch?v=pxYq-g2tbbc Corona invited me to write a guest blog post detailing the development process with some reflection on what went right and wrong. At Pixani Games in 2011 I developed an iOS game called Reflection Connection using Lua / Corona SDK. https://www.youtube.com/watch?v=ob9PwqOPYtY Later in 2011, also for Pixani, I started a game framework for iOS, mainly in C. The video was made using a first generation iPad. Today's iPads are >10x faster. https://www.youtube.com/watch?v=4amURFYkNs4 In 2012 at XCENT I developed a mobile app for internal use by Deb Shops, a clothing retailer. Approximately every other day they had products scheduled for price markdowns, which needed to be moved to the store's discount area. (The following screenshots are from an early version of the app, written in Objective-C. Later versions had less garish colors and included photos of the apparel being scanned, along with alternate colors and sizes. Unfortunately I don't have screenshots of those.)

Upload: others

Post on 25-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

Michael Lorenz Portfolio

[email protected]

Note: Projects are listed approximately from oldest to newest.

✦ I developed almost every PHP & Perl script for All About Jazz. (Naturally they have changed since my departure.)

http://www.allaboutjazz.com

✦ I entered and won a game dev contest using Lua / Corona SDK. The object was to create a game from scratch in 48 hours real-time.

https://www.youtube.com/watch?v=pxYq-g2tbbc

Corona invited me to write a guest blog post detailing the development process with some reflection on what went right and wrong.

✦ At Pixani Games in 2011 I developed an iOS game called Reflection Connection using Lua / Corona SDK.

https://www.youtube.com/watch?v=ob9PwqOPYtY

✦ Later in 2011, also for Pixani, I started a game framework for iOS, mainly in C. The video was made using a first generation iPad. Today's iPads are >10x faster.

https://www.youtube.com/watch?v=4amURFYkNs4

✦ In 2012 at XCENT I developed a mobile app for internal use by Deb Shops, a clothing retailer. Approximately every other day they had products scheduled for price markdowns, which needed to be moved to the store's discount area. (The following screenshots are from an early version of the app, written in Objective-C. Later versions had less garish colors and included photos of the apparel being scanned, along with alternate colors and sizes. Unfortunately I don't have screenshots of those.)

Page 2: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

An iPhone was connected to a third-party barcode laser scanner sled, interfaced via software through their custom API. The operator would login and select a date:

Page 3: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

Then select a department to get a blank "main" scan screen:

Page 4: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

Once they scan an item, it may or may not be marked down:

The iPhone would live-query the database to show how many items should be in inventory, and what the old and new prices are. This app went through on-site testing and passed all tests, but it did not end up getting implemented. Deb Shops filed for bankruptcy a year later and closed all their stores.

Page 5: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

✦ At XCENT I developed another mobile app for Deb Shops using Xcode and Objective-C. This one was for public consumption, and was available on iTunes. It was fairly straightforward, showing an abbreviated catalog as an embedded web page. It had a scan feature where the user could take a photo of a barcode to get information on that item.

Page 6: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

✦ Version 1 of the "Jazz Near You" iOS mobile app, written in Objective-C:

This lists jazz events near the user's location. The first four tabs present the same data in different ways (by date, distance, musician, venue). The last tab lets the user select a different city. The detail screen lets the user see a map of the event's location, call the venue, or read more details about any of the participating artists.

✦ Version 2 of "Jazz Near You" is available on the three major app stores: Google, Amazon, Apple. It was written in Lua using Corona SDK. The same basic functionality, but cross-platform and nicer looking.

Page 7: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

✦ In 2014 I developed Schedule Expert for Educational Scheduling, Inc. The existing product was DOS-only, and the company needed a new Windows-based app. None of the original code was retained; it was rewritten from scratch utilizing the same proprietary algorithms translated from ANSI C to C#. I cannot show too much of the program, but I have permission to include this document: a draft version of marketing literature offered to prospective customers. PDF File

✦ I wrote an experimental app in 2016 using C# and Xamarin.Forms called Tippit XF, available at Apple and Google stores. It's a tip calculator that works for splitting the bill among several people. I had written the original version in Swift, but never published it. I was curious to see how the code differed going from MVC to MVVM architecture. My C# source code (minus binaries and images) is available in this zip file.

✦ In 2016 I completed work on the Wharton School's "Nano Tools" mobile app, available at Google and Apple stores. I was sole mobile developer, and I also created a .NET project to scrape Wharton's existing website and import the data on their html pages into SQL Server. For the mobile app I used C# and Xamarin.Forms.

Page 8: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

✦ In 2016 I wrote and successfully delivered a C# WinForms app used to test Moog's Digital Bearing Distance Indicators used in many models of aircraft.

The software running on-site. The unit under test is on the far right.

Page 9: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

Screenshot of the software running on Windows 7

Page 10: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

Earlier in the project, creating a serial connector with the pin-outs we needed

Page 11: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

In 2016 I wrote a version of Asteroids in C# using MonoGame. My personal challenge, other than creating an Asteroids clone, was to do it using vector graphics: no sprite images whatsoever. It runs on Windows 10 and iOS. I don't have any particular plans to publish it, but I enjoyed the experience and may apply it to future projects. Full-size iPhone screenshots are here and here. Xamarin Studio IDE screenshot here.

Page 12: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

In 2017, inspired by an article, I created a small iOS app in Swift that reads data from a Texas Instruments SensorTag via BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift) for sensor functions the article didn't cover. It was a fun weekend project, and I only include it here to show that I've had at least some exposure to BLE fundamentals on iOS. My source code is available in this zip file.

Page 13: Michael Lorenz Portfolio · BLE (Bluetooth Low Energy). I adapted some of the code from the article, but I also incorporated a bit of TI's Objective-C sample code (translated to Swift)

In 2017 I released an app called Titlematic, available on iTunes.

The app generates random titles suitable for novels and short stories. It allows the user to mark titles as favorites, share them, edit them, and so on. Each title is based on a pattern. For instance, the pattern "The (profession) of (city)" could produce "The Barber of Seville" or "The Butcher of Bombay". Some of the patterns were more complicated, requiring alliteration or rhyming, which required me to seek out a pronunciation dictionary, find a way to embed it, and write some rhyming logic. I started writing a more primitive version of the app years ago in C with no user interface at all (just a command line utility), then I switched to iOS and Objective-C in early 2013. Back then I had about fifty patterns and never thought I'd get to a hundred. But soon enough, working in my spare time, I reached 100 patterns, then 200, and so on. Now, after working on it (on and off) over the years I've created 640 patterns. Here is the code for two patterns: case 465: { // The Brilliance of Bays

alliterate(^(){ return qualityNoun(); },

^(){ return pl(choose(noun(nWATER, -1, nSOUL, -1),

abstractDramaticNoun(),

dramaticNoun(),

verb(VerbFormNoun))); },

&word1, &word2);

return join(idx, choose("a", the(80)), word1, choose("of"), word2);

}

case 579: { // Grail of the Summer Stars

return join(idx,

choose(noun(nBORING|nCONTAINER, nCONTAINER,

nBORING|nWATER, nWATER,

nBORING|nSTREET, nSTREET,

nBORING|nCREATOR, nCREATOR)),

choose("of the", "of"),

choose("", choose(season(), quality(), color(), simpleAdj())),

pl(noun(nBORING|nHUMAN|nANIMAL|nCONTAINER|nTIME|nMONTH|nELEMENT|nMATERIAL, 0)));

}

✦ ✦ ✦