[COMPETITION] Measured - Pebble

The goal of this watch app is to use the accelerometer of the watch to measure real-world distances between button presses, using a high sample rate during measurement. Additional functionality/methods for measuring is planned if the lack of gyroscope and the error introduced from double integration proves too great for this to be remotely reliable.
Implementation wise, it's will be a watch app (not a face) so we have access to buttons. Instructions will be displayed on screen with minimally an option to calibrate (to a known distance) and an option to perform a measurement. Any manual settings (set and forget) will be available via a configuration/settings screen on the phone and stored in persistent storage on the watch. It is unlikely that the app will work without the phone connection, simply because A) the calculations will be fairly involved, and are likely better handled in JavaScript on the phone, B) it's uncertain how much accelerometer data we'll be able to retain in memory to allow sufficient time for measuring - if we can buffer it on the watch and offload it to javascript for later processing, we can potentially measure longer or with more precision.
The motivation for this is for estimating dimensions - rooms, yards/lawns, camping sites, game fields, etc. without needing to carry anything extra, and to get some familiarity with using the accelerometer (as I'm already familiar with the other pieces, having written a fairly involved watch face, Timely)
As the development period doesn't officially start until tomorrow at 1pm EST, I'm focusing purely on planning/theory/research right now - keeping track of it in Trello here.
Current timeline:
2014-08-15, 1PM EST:
- Create github repository, create compile and upload basic app to appstore with javascript enabled (for IOS bundling), begin actual development.
2014-08-22:
- Sanity check: 1 week in, basic UI and functionality should be done, working on javascript calculations
2014-08-29:
- Add additional methods for measurement (pedometer/counter, etc.) and ensure settings page is in place, then resume algorithm work.
2014-09-05, 5PM EST:
- Publish final code to github and final app to store, sanity check, confirm/test all functionality until the 8PM deadline.
Thoughts/comments/suggestions welcome, especially from anyone who's dared to try to use a single accelerometer with no gyroscope to double integrate and approximate distances
XDA:DevDB Information
Measured, Tool/Utility for the Pebble
Contributors
cynorg
Version Information
Status: Alpha
Created 2014-08-15
Last Updated 2014-08-14

Status Updates
Latest Status:
2014-08-15, 2pm EST
- repository created on GitHub, basic/placeholder assets created for Pebble publication, basic watch app compiled and published for IOS javascript bundling.
2014-08-16, 11pm EST
- integrated basic appmessaging and configuration functionality
2014-09-06, 5pm EST
- Nope! I absolutely didn't get an opportunity to complete this (let alone work on it much) during the contest window, due to various reasons. I'm still committed to making this happen, and will work on it as time permits.
Apologies to those who were looking forward to measuring things from their wrist this weekend!
Git Repository: github.com/cynorg/PebbleMeasured

Wonderful new idea!

Related

[APP] Sleeptracker

Hi
I wanna show you my new app: the sleeptracker.
Specially crafted for the design of Windows Phone, the Sleeptracker has a wide variety of features to help you analyze your sleeping habits. Equipped with different readily accessible options, the app helps you record, calculate, and evaluate the hours you have slept. With this information, this app not only graphically displays any irregularities, but also archives them for your personal evaluation, giving you the information you need to change your sleeping habits to achieve a healthier sleep pattern.
Some of the many useful features:
- Enter your periods of rest manually or let Sleeptracker record them automatically
- Calculate your time sleeping and designate any time missed as an irregularity
- Records of your sleep habits are displayed graphically so you can easily evaluate them
- Information is archived so you can evaluate sleep patterns over longer time ranges
- Lovely designed Live Tile
If I could draw your interest you'll find a marketplace link below. The program has a free trial mode. You can use it without any restrictions for up to 40 times.
I'm looking forward for your feedback and suggestion for improvment.
http://www.windowsphone.com/s?appid=73140033-3a1d-42e9-bd08-d4fa184b034f

[APP] [4.0+] atmosHere Weather, making Android weather smarter!

I'm the developer of atmosHere (play on words of atmosphere) Weather for Android, an Android app to make weather smarter, and simpler. The app is "Card UI" based, similar to that of Google Now, and is powered first and foremost by the hyper accurate Forecast.io. By using Google's Fused location Provider, we can get your exact location and get down to the minute weather information, all while also getting data for the upcoming week! The app prioritizes information based on the current weather conditions. So if there is a weather alert for your location, that will be the first card you will see! Similar concepts are used else where, if it's raining or snowing, you will get a card for nearby traffic accident counts. This pattern is used throughout the app. This makes it extremely simple to get glance-able information about what is going on right now, and other data that applies based on the conditions. The card ui also makes it simple to fling down a little further for the upcoming week weather, chances of rain, device sensor readings (barometric pressure, temps, etc), pollen counts, UV index, astronomy information, and many more! The app is also extremely configurable, by allowing users to toggle what information they want to see, allowing them to personalize the data they get within the app!
Just recently (last night) I added a new feature that I have yet to see from any other Forecast.io powered app. Forecast.io provides TONS of information, but for the normal person it is hard to parse through all the data given and make sense of it and what it means for the weather. So i have taken the data given, and "pre-parsed" it in a sense, and turned it into a friendly, readable, format when needed. For example, forecast.io provides a summary for a given days' forecast, "Breezy starting in the afternoon, continuing until the evening." and then this is where I come in and add additional, relevant information. So if there is a high chance of rain in the forecast, I will add precipitation information, "75% chance of rain, with light rain starting at 5pm". This gives you the chance of rain, how heavy it will be (can range from very light to very heavy), and then the forecasted time of that precipitation! I also do the same for the given temperature. So you may see "High for today of 35, with a low of 25" and if it will "feel" warmer or cooler than the given temperature, it will also let you know! This makes the forecast for every day personalized and relevant, and lets you very quickly flip to a given day's forecast and know exactly what the forecast is. No need to flip through charts of data, and stare at numbers trying to make sense of them!
The app also features data from other services to aid with contextual information, such as traffic conditions, marine and ski conditions, latest earthquake information, and even a feed of National Weather Service Audio Streams! This will be built out even further going forward, allowing users to custom tailor the weather information they are shown!
The app also features radar data of all types, from precipitation, to weather alerts, and plenty more! Your Android standards such as widgets, notifications, and even extensions for the ever popular DashClock and Muzei are included! The app has already been optimized for Android Wear once it is released to the public. Google Glass has not been forgotten either, as there is a build ready to go for when Google Opens up GDK app distribution!
I have a G+ community setup that I am posting information about updates, bugs, and asking random questions for possible future updates. I will also answer any questions or I am open to just good old conversation! I am always open to suggestions of new ideas for the app. It's been extremely enjoyable thus far getting that app to where it is, and look forward to keeping that going. I also have no problem answering any emails if you prefer taking that route. The about section of the app includes all contact information you could ever need.
Youtube Demo video
Play Store Link
G+ Community
I have been doing weekly releases, and the app has improved tremendously over the last few weeks. We are now sitting in the top 30 in free weather app!
I have also worked on a free version, as some people have seemed hesitant to purchase without being able to really try the Card UI style out first.
So atmosHere Weather Free has been published just today!
Google Play Feature!
atmosHere Weather is now being featured on Google Play!
Feel free to join the G+ Community as well to follow development, make suggestions, or report bugs! There's a current Reddit thread right now as well.
I bought this the other day for my brand new Note 4. After installing all it would do is tell me i was running an unlicensed version. Pretty odd behavior considering i bought it via the play store. Had to request a refund pretty much immediately. Shame. I liked the look of this.

[COMPETITION] Food Trucks - 1.0 on Pebble App Store

I am developing a new Pebble watch app to display which street food trucks are currently open for business and its current location for a given city.I will be using an API that currently collects this information for food trucks in 9 different cities.
I backed the Pebble kickstarter project and I have since written several watch apps, mostly in the transportation area, including one for various bus systems and the BART train. I wrote the apps for myself, but they have also been proven to be useful to thousands of other users.
I also wrote several watch face style apps that aggregated open sourced watch face apps, which enables users to have over 40 ACTIVE watch faces (not in the locker) that will only use up 3 of the 8 watch face slots.
Outside of Pebble, I have been working full time as a senior software engineer for many years and I am very into starting with a well-thought-out design and using the agile process and test first. Anyone monitoring my checkins will see how I will build and unit test each portion of the app. I've had several weeks to work out the design, so I'm ready to start the coding for tomorrow's official start.
Update: The API now supports 14 cities. I have enabled only the 13 cities that actually have trucks signed up for the service that are reporting their schedules. This is more than the 9 cities originally promised by my pitch.
iOS users can download the latest pbw from the downloads section of this project. See my reply below for instructions. Android users can download the latest app from the Pebble App Store.
source code link: http://github.com/mikebikemusic/FoodTrucks
XDA:DevDB Information
Food Trucks, ROM for the Pebble
Contributors
pebblemike
Version Information
Status: Stable
Current Stable Version: 1.0
Stable Release Date: 2014-09-03
Current Beta Version: 0.3
Beta Release Date: 2014-08-21
Created 2014-08-14
Last Updated 2014-09-04
What cities are you supporting? I just moved to Austin and could use a method for navigating the 10,000,000 trucks here.
mcongrove said:
What cities are you supporting? I just moved to Austin and could use a method for navigating the 10,000,000 trucks here.
Click to expand...
Click to collapse
Unfortunately, the API I will use does not yet support Austin or for that matter, the SF Bay Area where I live. The cities in the current API are Boston and Tallahassee in the US and Vancouver, Victoria, Ottawa, Edmonton, Halifax, Calgary and Toronto in Canada.
Like you, the first thing I asked the API developer when I contacted him was when he would cover Oakland. He is very interested in expanding. In fact, 3 of the cities on the above list are new. He said it takes some time to contact and get the truck drivers to buy into reporting their schedules into his app, but it's very easy, so once they start doing it, the information returned by the API is quite good. Better than the other APIs I considered.
Mike
UI Design
It's 10:01 Fri Aug 16 on my pebble as I start writing this...
Documenting and sorting out my mental design of the Food Trucks app UI. A lot of it is based on providing a similar UI to what I used for my BART app.
UI: On Pebble screen, 3 views:
1. Startup text to alert user if Pebble app is not responding, which, if responding gets replaced with
2. Menu of Food truck names and their locations, truncated, and when one is selected,
3. Scrolling text. Full details of the selected truck, including full name, location, ending time and other details such as phone #, type of food, etc.
Configuration screen: Shows list of supported cities. User picks one. Choice is remembered across Pebble runs and reboots.
Task Breakdown
Prototyping phase:
API example output is captured and JSON is analyzed. Use jsbin to write the necessary loops to iterate across trucks.
Filter out the unwanted data and extract the data needed for the menu and the details.
Decide on the format of the JSON to be sent to the Pebble watch.
Decide on the message sequencing between the watch and the javascript.
Code and debug the text layer in the main window to be used during startup.
Code the App Message interface in C. Use the text layer as a debugging screen.
Code the javascript so it sends mock menu data for a sunny day use case in the filtered format expected to be sent when the real data is connected.
Debug the C to Javascript interface.
Evaluate reliability and check for memory leaks.
Code the menu layer into the main window and display the received data in the menu.
Code the Scrolling Text Layer as a separate window pushed onto the main window.
Code the Javascript mock data for the details format.
Debug the interface and check for memory leaks.
Integration coding and testing:
Using Javascript prototype code from task 1 above, write the API call, analyze the incoming JSON and transform it to the expected data for the tested interface.
Debug using live data.
Write the configuration html and javascript.
Mock up edge and exception data cases and fix bugs.
Design icon and marketing materials.
If time permits, replace static arrays with malloc/free data.
Check and fix any memory leaks.
Release first version.
pebblemike said:
Prototyping phase:
API example output is captured and JSON is analyzed. Use jsbin to write the necessary loops to iterate across trucks.
Filter out the unwanted data and extract the data needed for the menu and the details.
Decide on the format of the JSON to be sent to the Pebble watch.
Decide on the message sequencing between the watch and the javascript.
Code and debug the text layer in the main window to be used during startup.
Code the App Message interface in C. Use the text layer as a debugging screen.
Code the javascript so it sends mock menu data for a sunny day use case in the filtered format expected to be sent when the real data is connected.
Debug the C to Javascript interface.
Evaluate reliability and check for memory leaks.
Code the menu layer into the main window and display the received data in the menu.
Code the Scrolling Text Layer as a separate window pushed onto the main window.
Code the Javascript mock data for the details format.
Debug the interface and check for memory leaks.
Integration coding and testing:
Using Javascript prototype code from task 1 above, write the API call, analyze the incoming JSON and transform it to the expected data for the tested interface.
Debug using live data.
Write the configuration html and javascript.
Mock up edge and exception data cases and fix bugs.
Design icon and marketing materials.
If time permits, replace static arrays with malloc/free data.
Check and fix any memory leaks.
Release first version.
Click to expand...
Click to collapse
In an ideal world, I would do the development in more or less the above order. But, as pointed out in the email sent to the 20 finalists there are early deadlines. I want to make this app available to all Pebble owners. This project won't need a companion app for Android or iOS, so I don't have to worry about Whitelisting. However, I will need to bundle the JS with a working API call by the end of next week. To that end, my goal is to start working on integration coding tasks 1, 2, 3, and 5 by Thursday, so I can post a beta on Friday.
This prompted me to consider what else I can accelerate. I decided to give the new CloudPebble Graphical UI Editor a try and see if it will build what I planned to do for prototyping tasks 5, 10 and 11. I may end up writing two applications. one that I can rapidly write and test code with, and the other where I assemble the tested code into the UI.
Update: I tried CloudPebble Graphical UI Editor, but it does not yet allow me to make either a SimpleMenuLayer or a ScrollLayer. It will be easier for me to build this myself.
bundle early, bundle often
FWIW - as I understand it, you don't need the javascript finalized (though that's certainly very good) - but you do need to have *a* bundled version of your javascript in place before they collect. It seems silly, but I've just published a barebones version of my app w/ javascript enabled that warns, specifically, that it's only published for javascript bundling. (Then again, the whole javascript pre-approval process in the walled garden that is IOS is pretty silly, IMO)
I don't think you technically need to make it public, you just need a published/ready version, but I went ahead and did so because I'm a paranoid type, and my free time is too limited to chance it. Once any version of your javascript has been published, I gather the updates in the future are made available on the order of minutes not weeks.
cynorg said:
FWIW - as I understand it, you don't need the javascript finalized (though that's certainly very good) - but you do need to have *a* bundled version of your javascript in place before they collect. It seems silly, but I've just published a barebones version of my app w/ javascript enabled that warns, specifically, that it's only published for javascript bundling. (Then again, the whole javascript pre-approval process in the walled garden that is IOS is pretty silly, IMO)
I don't think you technically need to make it public, you just need a published/ready version, but I went ahead and did so because I'm a paranoid type, and my free time is too limited to chance it. Once any version of your javascript has been published, I gather the updates in the future are made available on the order of minutes not weeks.
Click to expand...
Click to collapse
That's good to know, John,
Since the first 3 tasks of my prototype will get me to usable JS code for my integrated app, I'm not too concerned, even if it gets bundled and distributed.
But I thought that published/ready meant that Android uses would be able to download it immediately. I wouldn't want to publish anything that didn't work.
Mike
UPDATE:
Hey, everybody. Cherie just posted: "Submit your JS changes before 8/19/2014 11:59AM PST"
Progress Updates
Aug 15 2pm - Prototype task 5 is done. Github repository created. Stub checked in.
Aug 15 2:20pm - Prototype task 1 is done. jsonanalysis.js checked in.
Aug 15 3:00pm - Prototype task 2 is done. jsonanalysis.js updated.
Aug 15 4:00pm - Prototype task 3 is done. jsonanalysis.js updated.
Aug 15 7:00pm - Prototype task 4 is done. 3 unit tests passed. main.c updated.
That's it for today.
Aug 16 8:00am - Added assertions to debug and exercise app message sequencing, refactored unit tests. main.c checked in. Unit test output:
​I realized that task 6 depends on task 7 so, I'm starting 7 first.
Aug 16 8:30am - Prototype task 7 is done.
Aug 16 10:30am - Prototype task 8 is coded, but has timing issue
Aug 16 4:00pm - Prototype task 9 is done. I decided that the memory leak "Still allocated <42949" is bogus because the only allocations were 1 window and 1 text layer and both got deallocated. (removing either destroy results in a reasonable 2 digit number leak). I then implemented and am satisfied with Prototype task 10 being done.
Aug 17 8:30am - Did task 12 before task 11. Both needed to work at the same time anyway. Code checked in.
I am declaring the Prototype phase complete and moving on to integration. Will change my status from Testing to Alpha.
Aug 17 9:30am - Integration tasks 1 and 2 went smoothly. Real data looks like I expected.
Aug 17 noon - Integration task 3 is working, but I have to go off to play music with friends. Will try to put together what I need to publish a beta on the Pebble App Store either tonight or tomorrow.
Aug 17 10:40pm - Put together enough of integration task 5 that I could publish the app as a beta. Because of the all the unit testing, there should not be too many bugs. However, I will continue to build a lot of edge tests, add one more icon that shows up on the watch, and fix any bugs I find through my additional tests or get reported. Your comments, suggestions and bug reports are welcome. I also need to update my website.
Aug 19 9:30am - Found and fixed several bugs. Published a more stable 0.2 beta. See release notes.
Aug 19 10:00pm - Started coding integration task 4. What I'm doing for that is expanding on the function testRequestSceduleFor(city) in the javascript. Since I don't want to ship all this test code with the app, I created a test branch where I will put the additional code. Fixes will merged into master. I'll be testing handling of very long string sizes and very large number of trucks. I already know the C program will fail because I'll be sending more data than the fixed sizes I put in. Since I have time, I will convert to malloc/free to fix these failures.
Aug 21 7:30am - Completed all tasks except for releasing a 1.0 version and updating my website. API now has Checked source code of 0.3 into github. I consider this a release candidate.
Aug 22 7:00am - Website is now updated with this app. Banner for the app store was updated to 10 cities. Here are screen shots of the food truck icon on the pebble, the startup screen and the no food trucks are open yet message.
Aug 27 7:00am - Updated configuration from 10 cities to 13 cities. More will be added as truck data becomes live.
Sept 3 9:30pm - Bumped version number to 1.0 after giving a number of iOS users a chance to download and use the app. Finalized the marketing materials to match the number of cities supported.
AppMessage timing issue
I've just implemented the AppMessage code for my app which requires a rapid sequence of requests and responses that is always kicked off from the javascript side. It's working fine when all my logging is in place, so I disabled the log messages and now it gets stuck after the first round-trip message. The message sequencing for the test is as follows:
JS: send count of 30 to C
C: request item 0 to JS
JS: returns item 0 to C
C: request item 1, then both sides go idle. JS does not get the message.
I found that if I add a psleep(100) before each request in the C code, it will get farther, but will eventually stop at a different item number, for example:
Not sure why yet. The send / receive code in the C program is a slight variant of the todo list demo app in the 2.0 sdk, also similar to what's in the weather and quotes apps in the 2.2 sdk.
Code as it stands is checked into github.com/mikebikemusic/FoodTrucks
I'll probably figure it out while out doing errands today.
====================================================
Update: Searching through the pebble forums, I found a few others who had similar problems. One of whom said his solution was in the todo list demo app, without explaining what his fix was, which didn't help me much. There was mention in several places about waiting for an ACK, but never an example. I updated my SDK to 2.4.1, but the demo apps all looked pretty much like mine. So, I re-read the app_message API looking for a way to set a callback for an ACK and noticed that app_message_outbox_begin can return,APP_MSG_BUSY. I then coded a retry/timeout using psleep, and lo and behold, the code is now working. Looking back at the 3 SDK samples they will all do the same dumb thing: throw away the request if it can't be sent immediately.
A little experimentation and measurement and I found that sometimes the wait between outgoing messages to the JS can be up to 1 second. I coded up a stress test that ran for a number of minutes and kept running even through an incoming phone call conversation. I caught this screenshot right before stopping it (over 20,000 round trips without stopping):
Bogus memory leak report
I started to see the following during testing of starting and stopping my app:
[PHONE] pebble-app.js:?: JS: starting app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: app is ready: 1
[INFO] ocess_manager.c:291: Heap Usage for App <Food Truck: Total Size <13348B> Used <5692B> Still allocated <0B>
[PHONE] pebble-app.js:?: JS: stopping app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: JS: starting app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: app is ready: 1
[INFO] ocess_manager.c:291: Heap Usage for App <Food Truck: Total Size <13348B> Used <5248B> Still allocated <42949
[PHONE] pebble-app.js:?: JS: stopping app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: JS: starting app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: app is ready: 1
[INFO] ocess_manager.c:291: Heap Usage for App <Food Truck: Total Size <13348B> Used <5692B> Still allocated <0B>
[PHONE] pebble-app.js:?: JS: stopping app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: JS: starting app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: app is ready: 1
[INFO] ocess_manager.c:291: Heap Usage for App <Food Truck: Total Size <13348B> Used <5692B> Still allocated <0B>
[PHONE] pebble-app.js:?: JS: stopping app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
Since only 24kb is available, 42949 makes no sense. It reports no leaks if my code also creates/destroys the scrolling window. It's almost as if I need to do a minimum amount of memory allocation before the leak detector works properly.
Release Notes
0.1 Aug 17 10 pm Published first beta to allow a working pebble-js-app.js to be bundled and to solicit user beta testing.
0.2 Aug 19 9:30 am Watch icon added. Changed startup message. Pre-build scroll window and its layers at startup. Bug fixes: Prevent multiple scroll windows when repeating select button quickly. Reset scroll to top when selecting details. Clear prior city's list when switching cities.
0.3 Aug 21 7:30 am Built javascript driven testing of C app. Used it to debug malloc/free code. The Javascript tests exercise the app with unrealistically large strings and large numbers of trucks coming from the API. In examining the API, I found that the developer added 5 new cities, so I added them also to the configuration screen. I will be doing live testing for all the cities before publishing an official 1.0 release.
Update: Aug 21 7:30 pm Of the 5 new cities I tested, only 1 had active trucks, so I removed the other 4 from the drop down. Fortunately, this is a simple server-side fix to hide the others until they are ready.
malloc/free challenge/solution
I ran into a little snag (which I eventually solved) during the conversion from using a fixed size array for the menu titles and subtitles to allocating them on the fly with malloc/free. I wanted to change the pointer directly in the menu_items.title without having to allocate a separate array of pointers. Problem was that title and subtitle are declared const, so free(menu_items.title) gets a compiler error.
I discovered that reinterpret_cast<> and const_cast<> are not supported by the compiler. Eventually I tried a simple (void *) cast, which did the trick. Then I refactored the code so that one bottleneck method took care of the free function and updating the pointer. I'm pretty proud of that code change. It's aware of the two string pointers that are not malloc'ed and provides an interface that prevents accidental leaks when my code dynamically changes the menu list.
Comments about developing using cloudpebble.com
I started writing pebble apps using cloudpebble soon after it first came out. I didn't have to install a dev system at home and I could make a quick bug fix at work, if necessary. I've since installed the development tools at home and used that primarily. I decided to give cloudpebble a second look for this competition. It's progressed a lot, but there are still some things on my wish list.
I find it a bit inconvenient when I have compile errors that I cannot see unless I open a second browser window to view source and errors side by side. A single button to flip back and forth between the compile logs and the current source code would really help.
Cloudpebble does not allow me to check in files unrelated to compilation, such as the configuration html. At one point, I tried to commit new code and I got an error (with no error message, just the word error). I figured out it was because of updates I had done to files unrelated to the compilation, but the only choice I had might have replaced all the new code I wrote with the previous commit. So I made a backup of my changes, updated the project and pasted back the changes.
Finally, as I had mentioned at the start of the challenge, the new code generation feature did not help me because I needed layers that were not supported yet. I ended up creating those layers while I was trying to track down the false memory leak report. I like doing that because now, if the app runs out of memory due to too many trucks in the menu, it won't fail to create the scroll layer for those that made it into the menu. Hmm, I need to put together a test case for that...
Feedback Anyone?
Android users can download my app from the Pebble store.
iOS users can get an advance copy here. The easiest way to load on iOS is to put the pbw file on your dropbox and, from dropbox, select the file and Open In Pebble.
Use the Reviews, Feature Requests, and Bug Reports tabs at the top of this development page. Also, search for "Food" in the Pebble store to find my app and tap the heart button on it. I see 5 already!
Adding another city
Looks like several more city's data has come online. I've added Hamilton (Near Toronto), Surrey, and Kitchener-Waterloo to the configuration. The other new city, Columbus, Ohio just has a few trucks using streetfoodapp.com. Only 2 of the 20 trucks registered with streetfoodapp.com in Columbus are promoting themselves this way.
If you live in Columbus, Surrey, or Kitchener-Waterloo that list just a few trucks, go tell your favorite food truck vendors to start publishing their schedule on streetfoodapp.com. If you live in a city not supported, click here to request your city
Feature creep vs planned development
It may seem like I've stopped working on my app now that it's feature complete and stable, but that's not entirely true. Yes, I've requested and am awaiting feedback from users, and I'm especially interested in seeing what happens when iOS users can see the app on their app store. That should happen any day now, since I met the Aug 19 deadline for JS bundling. I needed to publish another bug fix 2 days later, and one of the fixes I planned would have required a minor change to my JS. That JS fix was for an edge case that could only occur with the artifical data I supplied as a unit test that had a string size much larger than any in real data. If I updated my JS, iOS users would be delayed getting the other C code fixes. So, I chose to ship 0.3 with the original JS. It is interesting to note that when I reverted my JS manually, and published it, the dev-portal considered it a different version, so I pulled that release and reverted the JS to what I checked in to github. It turned out to be a whitespace difference. So, word of caution, the JS is compared byte by byte (or maybe a checksum).
Meanwhile, I have considered a few improvements. And I've experimented with one of them, which required further JS changes. The change will eventually go to the master branch, but rather than providing an improvement that nobody really cares or needs, I'd rather wait for feedback and act on that first, rather than announce future planned improvements. As features creep in, it's easy for the app to become more complex to use.
I'll give you one example. I'm on the west coast and when I look at the times reported for the Boston food trucks, the times are off by 3 hours. Should I fix it? Some would say, of course. But think about it. Are the real users who use this app going to be in a different time zone when they need to go out to lunch and open my app? Extremely unlikely. Both JS and the pebble watch API fall flat on their face when it comes to determining time zone differences, both dealing only with local time. I know how to compute that offset by calling another TZ API like I did for my Any Time Zone app. What I chose to do instead was contact the Food Truck API developer suggesting he provide all API users with a TZ offset in the data response. He has agreed to do so in a future API version. This is how planned development should work.
Mike
1.0 released
I posted my 1.0 build last night. It is available in both the Android and iOS Pebble App Stores for download.

[COMPETITION] PebbleTrailTacker

Summary
This WatchApp will guide you during long races. Track your running mates and be tracked at home. Are you tired and thirsty? Check in your watch how far is a check point with drinking water.
Resources
Pebble + Android
Description
Every day there are more long distance runners. These are endurance races where most of the times it is harder to endure psychologically then physically. Imagine a trail with 60 km and you don’t know anything, where you are or your friends… This Pebble App will reduce loneliness and give you information about the track and your friends. Also, for those who are at home, expecting for news will be able to track you online and even cheer for you.
This app will use the network connection and GPS from the Android OS.
WatchFace + Android Application flow
1. Upload in the Android App a GPX or KML file with the track and Points of Interest.
2. Login in the Android App and select one track.
3. Wait (or not) for more friends to log in the same track
4. Connect to Pebble WatchApp and start running
5. Get track information in watch
6. Send your position to a website where your friends can check your position
7. Receive cheers from your friend in your watch
8. End your race and check your data in your website.
All configurations and track upload must be set in the Android Application before using the WatchApp.
XDA:DevDB Information
[COMPETITION] PebbleTrailTacker, ROM for the Pebble
Contributors
BazingaTheDog
Version Information
Status: Testing
Created 2014-08-16
Last Updated 2014-08-16

General Android Phones Privacy. Is it more secure than previous versions? View on ColorOS 12

Recent reviews of Android 12 have been enticing me to check back to current changes. Personally, I enjoy Androids (nearly) full customizable & unlockable ecosystem, but the thought of being invasive by customized setups has always haunted me.
I wouldn’t describe myself as paranoid, but with interest in personal privacy protection, especially when it comes to the use of files and location sharing. As a full time Google Suite user, I’m strongly relying on Googles’ Apps and suitable solutions, across private and work.
As we see with the new Android 12 a high priority is placed on Privacy. A brand new Privacy Dashboard app, which is similar to iOS 15, reports which apps are utilizing personal information through sensors on the device. Based on these new (or partly new) implementations, I came across OPPO’s new ColorOS 12 based on Android 12, which seems to be the fastest OEM to catch up on this.
What do we know already? ColorOS 12 comes with a 100% Android Privacy Feature integration, to manage private data and features, including
Privacy Dashboard
Users can now see the type of data that is being accessed by different apps at a glance in one dashboard. OPPO, too, will be hosting this feature, with clear charts showing data and feature permissions, allowing you to see and control which apps have been extracting your data.
Microphone and Camera Indicators
With apps becoming incessantly intrusive, ColorOS 12 will rectify the situation by giving indicators if any app is using the phone’s camera or mic. A flashing icon will be displayed on the status bar to tell you which permission is being accessed by the app.
Microphone and Camera toggles
You can also instantly turn off apps permission to camera and microphone with a single tap, barricading your hardware against any future forced entry attempt via Quick Settings option.
Approximate Location
Next to the previous options of location settings by choosing between “While using the app”, “Only this time” and “Deny” you can provide apps now also an approximate location to hide your exact whereabouts.
Anti-Peeping Notification
A so far ColorOS only feature, previously named Smart Spying Prevention, should help to prevent privacy, or in this case notification content. An AI-enhanced Smart Sensor, recognizes if there’s another person watching your screen and hides content of pop up messages, probably pretty cool in public places.
All in all Android 12 sounds very promising to me. Next to all these features I am hoping that continuous software- and security upgrades will be dropped to ensure ongoing security. I’m keeping my fingers crossed, hoping that Android will do the trick and will keep you updated about my experience with OPPO and ColorOS 12.
What are your thoughts on this?
As far as I'm concerned Android 11 and 12 are dead meat. A bad Apple...
If you're careful with your configuration, load only trusted apps, run a firewall and don't to stupid things Android 9 is pretty secure and far more usable.
Android 10 is somewhat less usable, but runs well.
Android 11 is a bloody nightmare. Uses excessive resources and cpu cycles. Constant redundant access popups.
A creepy big sister of a hog. Android is in a high G flat spin, as their altitude sink rate approaches a blur all they do is firewall the throttle indents to the full afterburner position
The impending crash is inevitable☠☠☠
The irony being that Google is the biggest data miner and manipulator on the planet.
With Google you're not the customer... you are the product.

Categories

Resources