[APP] [BETA] Weather Stats [R] 26 JAN 2011 [V] 2012.01 - Windows Phone 7 Apps and Games

I know you hate me by now, but I have one more app under my sleeve. Err.. Straight from my keyboard. After a quite a few nights of development I’m ready to ask yet for your help once again in beta-testing a completely new application for windows phone 7 – Weather Stats. Weather Stats sources data from http://www.weatherbase.com/ (by permission from the owner) to bring back local (offline) climatological database (temperature and precipitation averages across the world) to your phone. Once released this app will be completely free and will have no advertisements (I hate both of the opposites). This database app will be useful for planning vacations or events and has massive amounts of data, almost 100000 charts among 26820 cities worldwide.
This app allows you to search by city name, navigate by country or search nearest places on map (using Bing maps). Integrates with Wikipedia too. It supports both metric and US units for charts. Finally it integrates with bing local search (place cards) to instantly bring you weather averages of the nearest location to your destination.
I want to make it good and reliable before I try to release it to the marketplace. If you want to help beta test it – please send me the liveid of your phone and I will give you a link to the app (this is needed for private beta-testing).
Thanks a lot for your help,
Nikita

Second Beta is released. Many bugfixes and improvements!
Learn about geography, plan your next vacation or event, or just browse through maps and charts to satisfy your curiosity. Weather Stats is your one authoritative source for finding monthly weather records and averages for more than 26,820 cities in 250 countries worldwide. The climatological information database is used by permission from weatherbase.com. Weather Stats accurately shows high, low and average temperatures and precipitation data.
Most functions of the app (excluding mapping and full-text search) work both offline and online. Various units and search methods are supported. App also integrates with Bing local search to bring you weather history information for your favorite places within one click.
Weather Stats is absolutely free and contains no advertisement.

Related

[APP] MindPush

Connect Quickly & Anonymously with MindPush–The New Location-Driven Social Media App
Website: http://www.mindpushers.com/
Android Market: https://market.android.com/details?id=and.mind.coon&feature=search_result#?t=W251bGwsMSwyLDEsImFuZC5taW5kLmNvb24iXQ..
About MindPush
MindPush, the latest innovation from JimmyGood Technology, creators of the leading online text message management portal CiiAll, is like nothing else on the market. As products such as Facebook and LinkedIn increasingly focus on contact between people who know each other, we realize that you want something more. With MindPush, you can:
- Connect with other MindPush users in your location, anonymously
- Share information as easily as sending a text, while limiting what others can see
- Interact with “like”, comments and other collaborative features
- Get the information you need about the places you like best, instantly
- Give users at your company or school the chance to communicate more effectively
- Learn more about your location via brief, digestible messages
How it works and what we need from YOU!
MindPush is a location based application – so you can see messages that have been posted within 1/2 mile of your current location at any given time. Users are able to leave anonymous messages, so other users can view and interact with them once they are in the same location. This interaction can happen in real-time, but users can also see past messages in their location up to 30 days. If another user is active within the 1/2 mile range, they will be shown on the user icon and Proximity map. This is to encourage users to post new messages and interact with not only their given material environment, but the people in that environment as well.
We need YOU to start leaving your anonymous messages and feedback everywhere you go! Imagine a future where you can go into any restaurant, bar, clothing store, sports venue, coffee shop, etc. and instantly get useful information from your peers using MindPush. Also imagine the power from being able to anonymously leave your feedback everywhere you go for other users to benefit from. MindPush can and will change the way we interact with our immediate surroundings…and with each other! Start leaving messages and connecting with the world around you today!
About JimmyGood Technology
JimmyGood Technology was founded in 2007 by three Kansas City entrepreneurs with a focus on changing the world via cutting-edge technology. JimmyGood has interests in social aggregation, social networking, location-based services, and an emphasis on bringing consumers and businesses closer using innovation. JimmyGood Technology was founded on making the complex simple and a belief that turning good ideas into reality can change the world.
Feedback?
Has anyone tried this out yet? I would love to receive some feedback from the XDA community!
Thanks!
I tried it.. Good idea. Drains battery though im im gonna keep it and use it to see what its like. Does it only work in my area or can i use it to communicate with people outside of my city/state?
As of right now - you can only view messages and other users that are within 150 feet of your current location (we have/are considering making the range wider though...depends on initial download numbers and feedback). The messages will change depending on where you are located and what other users have posted in the area.
As for the battery drain - we realized that having your GPS location set while the app is running - and having the app call our servers to update the location of other users and various messages could be an issue for some as far as battery goes. Once you've logged into the app, press the menu button to access the battery drain slider. From there you can set the time interval for how often the app will call the server for updates which should help improve battery drain based on your preferences.
Thanks for the feedback and support! Please let me know if you have any other questions or suggestions. I really want this to be an app for the people and am more than willing to listen to how people are using the app and what could make it better! The iOS version was completed today and will be submitted to Apple for approval. Once that is done, you will be able to communicate cross platform and the numbers of users in each area should improve as the user base grows.
Update coming soon
We will be releasing an update soon to widen the range to 1/2 mile. Users will be able to view other messages up to 1/2 mile and see how many users are within 1/2 mile as well. This should really increase interaction between users and provide more information about cool things going on in your area! Let me know what you think.
Thanks
IPhone Update
IPhone update released today!http://itunes.apple.com/app/mindpush/id493920061?mt=8

[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.

[free app] Maps Tool

Maps Tool - new free app (with no ads either) to work with gps coordinate, maps and grids, including public land survey system (township, range, section)!
Do you happen to own some real paper maps? If so, my new app is designed exactly to make using them simpler. Or maybe you are just interested to learn something about geodesy, navigation and cartography? If so – read on.
While most online and other digital maps are now standardized around using decimal degrees latitude/longitude pairs using WGS84 geodesic datum, paper maps are not so simple. They use all kinds of different coordinate system. Many use UTM – Universal Transverse Mercator coordinate system that was developed by the United States Army Corps of Engineers in the 1940s. NATO militaries around the world wanted their own thing and developed another grid coordinate system called MGRS. While these two are most popular there are many more other grids, especially once we go to local level. Maps in UK often use something called Ordinance Survey National Grid (OSGB) while Ireland had to use yet another system called Irish Grid.
To make things even more complicated years before recent standardization around WGS84, maps often used other geodesic datum, based on different models of earth ellipsoid and measurements. In fact many historic reference earth ellipsoids are still used in local areas, since they may provide better accuracy of measurements in certain territories. In practice this means that getting coordinates assuming wrong datum can put you hundreds of meters away.
Maps Tool is a powerful app that allows you to convert data between many coordinate system representations and also adjust for various datum. This app currently supports lat/lng, UTM, MGRS, Earth-centered, Earth-fixed Cartesian coordinate system, Swedish Grid, Ordnance Survey of Great Britain and Irish National Grid and many different geodetic datums, including, but not limited to: WGS 84, NAD 27, ED 50, ETRF 89, OSGB 36, OSI 65, RT 90, SWEREF 99, SIRGAS 2000, SAD 69, Córrego Alegre, SICAD, Astro Chuá and SK 42.
By default Maps Tool uses offline HERE+ maps already stored on your phone, but can also use Bing Maps, Google Maps, and OpenStreetMaps for better coverage. Overlays such as topographic map and satellite imagery are also available. Other handy function of Maps Tool include geocoding (finding location by address) and reverse geocoding (find closest address for a given location), sharing your location via sms/email and build-in database of around 3000 major cities and 9000 world airports for quick access (you can just key in a 3-letter IATA or 4-letter ICAO code).
Using web service from BLM (Bureau of Land Management) Maps Tool also gives you access to PLSS (Public Land Survey System) information (township, range, section) as a convenient map overlay (you can search for parcels by TRS or view parcels around you by tapping on the map).
Last but not least, Maps Tool app allows you to see rough altitude information from the GPS module in your phone, or (available as an optional download) query various GIS systems for accurate topographical altitude information including currently supported: USGS (US only), SRTM3, GTOPO30, ASTER and Google.
Best of all this app does not require a data connection to work, so you can take it with you into the field.
It is currently translated to English, Russian and Japanese and if you can help with more languages - please let me know.
Here is the store link:
http://www.windowsphone.com/s?appid=4bf54046-e1a3-4140-9f6f-7516948a5d29
This is good app, i am using that. Thx a lot
i am forest engineer. i wish i could use my own maps on my wp7 phone is there any app for this ? my maps is .tif format about 500 mb data is UTM 36T

[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.

Shortcuts in Search. Google rolls out Tappable Shortcuts

Starting today in the U.S., Google is introducing tappable shortcuts on the Google app for Android and iOS and Google.com on the mobile web that give you easy access to many tools and the ability to explore deeper within topics you care about.
Getting up-to-the-minute info is as easy as a single tap. With shortcuts right on the home screen, you now have access to in-depth experiences across sports, eat & drink, entertainment and weather
Android users will find many useful shortcuts like—translate, nearby attractions, flights, hotels, internet speed test, currency converter, and more. And , if you’re looking for fun, there are shortcuts like tic-tac-toe, roll a die, animal sounds, solitaire, and " I'm feeling curious".
You can tap into news, trailers and reviews that are relevant for you or swipe through listings to catch up on your favorite show.
Similarly on sports, whether you love basketball, hockey or football, now you don’t need to type anything when you want the latest scores. Just tap into game times, scores and team news.
Tap the weather shortcut and be ready for the day before you walk out the door. You’ll have access to updated information every time you tap—from hourly sky conditions and chance of rain, severe weather alerts, a detailed 10-day forecast, and more.
To find the most timely and recently used shortcuts, make sure your Google app is updated to the latest version and then look for your shortcuts right underneath the search box.
And Google is planning to add new shortcuts for big moments and events later.
Read more at RTOZ.org

Categories

Resources