[COMPETITION] Food Trucks - 1.0 on Pebble App Store - Pebble

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.

Related

[APP] Location Marker

While waiting this morning on something, I sketched up a tool to quickly mark spots you're at. Unlike regular GPS loggers, it just tags and saves locations (I frequently need something like this on bike tours).
http://www.youtube.com/watch?v=Tjq9WiGEuGA (outdated)
http://social.zune.net/redirect?type=phoneApp&id=ee9c5dae-9fea-df11-9264-00237de2db9e
Tom Servo said:
While waiting this morning on something, I sketched up a tool to quickly mark spots you're at. Unlike regular GPS loggers, it just tags and saves locations (I frequently need something like this on bike tours).
http://www.youtube.com/watch?v=Tjq9WiGEuGA
Click to expand...
Click to collapse
Looks good. May I suggest enabling the correction features on the keyboard in the Name textbox. (Change the InputScope property)
Sure, why not.
Looks pretty handy.
Is there a way to get directions to the saved spot in bing maps?
Not sure. Trying to invoke the installed Bing Maps with a target location isn't something I thought of or know if it's possible (I figure it should be).
Added some functionality. And I figured, why not put that silly EOS 550D of mine to use, instead of capturing the emulator. Praise my girly hands.
http://youtu.be/mpUQUWRyyJs
Marketplace has already v1.0, without description field and photos.
Giving it another look. Hitting the marketplace soon.
Old 'n' Busted!
Pro-Click Zone
New Hotness!
Pro-Click Zone
Looks really nice and useful.
What methods are there for exporting that data? Sharing via e-mail? SMS? Would be nice if it could also be exported directly to Bing Maps (My Places) or Google Maps (Starred), if even possible. Or even if you could import locations from those services.
Also, is saving locations based on GPS only? Or can you manually input and specify the location on a map (I suppose it'd be like dragging and dropping a pin on a map and saving that location)?
-sigh- if only all Windows Phone 7 developers could do UI like you seem to be capable of doing.
I haven't thought much of exporting yet, altho I have something on my mind. I figure exporting all of it in a KML via e-mail might be an idea, but if there are a lot of photos, it'd end up in a huge package, tho.
Locations are purely GPS based right now.
Hi. This looks nice. Shame there's no trial though. Does it use Bing maps for the map images or Google maps (or another service)?
Thanks
Bing maps. I could make it use a different tile source, but I'm not sure how Google feels about it, since it's against their ToS.
Just bought this app, not sure what I'll use it for but it looks great!
The update with the prettified UI has been submitted since a few days and is in testing apparently, but nothing happened as of now. The other versions passed testing rather quickly, this is mostly an UI update only, not sure why it's stuck in limbo.
Submitted an update today, probably available in a day or two.
Added a trial mode, allowing marking up to 5 spots. Added an options dialog to change GPS behaviour in background as well as changing distance units (kinda required, since it was Meters up until now and I sold the most to the US). And pinpoints in the full map are clickable now.
Version 1.4:
- Does resolve coordinates to addresses using the Bing SOAP webservice now. Happens retroactively on existing spots.
- Ability to send your current location to someone else via SMS and E-mail. Retrieves the actual address if the GPS accuracy becomes better than 150m. Adds a Google Maps link to the message pointing to the coordinates.
- Can also send stored locations, but formats them like current location messages thanks to late night coding dizzyness.
http://social.zune.net/redirect?type=phoneApp&id=ee9c5dae-9fea-df11-9264-00237de2db9e
Version 1.5:
- Can choose now, what service to use to create map links in SMS/E-mails (Bing, Google, OSM). Note: Bing doesn't have a mobile map site. If the receiving mobile gets a Bing link and identifies as smartphone to the website, Bing will mess it up and show a search site.
- Can save photos to the pictures hub now.
- Alternative coordinate formats. DMS, UTM and MGRS (both military). North and south poles aren't covered in the military ones. Examples:
Regular/Decimal: 50.71625 - 6.01385
DMS (Degrees, Minutes, Seconds): 50°42'59"N 6°00'50"E
UTM: 32 U 289206 5622525
MGRS: 32UKB8920622525
Version 1.6 somewhen in a few weeks will limit sending adhoc locations. Currently, it's unlimited in trial.
1.6 is out. It was held up a long time with certification not pleased with the privacy policies I kept writing up, after being required one out of the blue.
Anyway:
- Distance math is fixed. It was off by half, no one apart two people seemed to have noticed.
- Option to add photos from the phone' library to locations as option in the menu roll-up.
Upcoming:
- Google and OSM image data as alternative options. (Works already)
- Custom pinpointing of a location on a map.

[GAME] TextMixt (Internet Battle) -[R]- 1 JULY 2011 -[U]- 1 JULY 2011 -[V]- 2.1

Name: TextMixt (with Internet Battle Mode)
Description: TextMixt is the free sequel to anag7ams. Find as many 3, 4, 5 & 6 letter words in the time allotted. There are four difficulty levels to choose from.
Now available is Internet Battle Mode. You'll be playing against EVERYONE on the Internet in real-time. Everyone is given the same 7 letter scrambled word to start with. You'll have two minutes to guess as many words as you can. This mode uses an enhanced dictionary with all the words found in the Scrabble dictionary.
Included in this release are multiple themes to choose from, 11 Achievements (to start with) and a dictionary of over 10,000 words.
Scoring is based off of letter and word values, with Double, Triple & Quadruple tiles randomly assigned.
Finally, there is the Challenge Round -- solving a single six-letter word enables point multipliers.
NOTE: THIS UPDATE IS SUBMITTED TO THE MARKETPLACE AND CURRENTLY AWAITING APPROVAL
This App uses location services for ad targeting, but you can turn it off in the App itself if you're not interested. For online play, you'll need to enable location services and your data connection. Data charges may occur for online play, which is your responsibility.
Any feedback for future versions is very welcome and encouraged.
This is a XAP file, you'll need to download it and sideload onto your phone.
Thanks!

[APP] [BETA] Weather Stats [R] 26 JAN 2011 [V] 2012.01

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.

Multiple user accounts code found in JB

SOURCE
If Android ever hopes to be make the move towards becoming a real desktop OS (this has to be in the back of Google’s mind), it’s going to need one thing first: multiple user accounts. This has long been one of the items at the top of my “Things That Grind My Android Gears” list. Towards the wee hours of last night, we received a tip from our developer friends after a discovery they made, revealed some pretty interesting code hidden deep inside Android 4.1 Jelly Bean AOSP.
What they found were clues that Google has been doing more than just toying around with the idea multiple user accounts on Android, and they’ve actually been busy incorporating code all over the OS that makes its future all but certain. Our developer Steven put together a nice little walk through and if you’re handy with ADB, you can see it for yourself.
Exploring Jelly Bean’s Unfinished Multiple Profile Switching Discovery and Testing Performed by Kevin Barry of TeslaCoil Software.
Commands (using ADB Shell)
pm = PackageManager
am = ActivityManager
*
pm create-user test (creates a user, ‘test’ in this example)
am switch-user 1 (switches to user ‘1’, which is ‘test’)
am switch-user 0 (switches to user ‘0’, which is your original configuration)
pm list-users (lists all users on current device)
pm remove-user 1 (removes the user ‘1’,which is ‘test’ in this example. *Note that create-user takes a string name while remove-user takes an integer)
Things To Note:
App settings are in /data/user/0/ with /data/data symlinked to it for backwards compatibility
Some system settings are in /data/system/users/0/ rather than just /data/system/
You can view 2011 commit messages in AOSP for all of these commands
Visually you can not determine what user is currently active.
Notifications and recent apps do not clear (remember… unfinished) and causes confusion to what user you’re on and will switch to whatever user that is running that particular app you click on.
Static wallpapers do not switch per user (seems to be shared) but live wallpapers do switch with each user.
Encrypted apps, which is all paid apps from the Play Store in Jellybean, will FC between users. *For example: if you run a paid app from one user on a different user that did not originally install the app, you will get the following error: "E/AndroidRuntime( 8707): Caused by: java.lang.ClassNotFoundException: com.levelup.beautifulwidgets.BeautifulWidgets"
Apps all have different settings which allows you to login or have different settings per user. *(even gmail)
Example Shell (ADB):
[email protected]:/ # pm list-users
Users:
UserInfo{0rimary:3}
UserInfo{1:test:0}
Click to expand...
Click to collapse
Pretty amazing find, right? The boys at Android Police made a similar discovery, giving a timeline of commits pushed to AOSP dating as far back as April 14th, 2011, all the way to March 28th, 2012. This shows Google has been working on UA’s for awhile now. All the pieces are in place. Multiple user accounts are coming to Android. The question is no longer*if — but when. Excited?
Click to expand...
Click to collapse
It makes sense with tablets and smart TVs, where you get multiple people using them.
Someone on here has already made a profile switching app. Not sure if it's as effective as profile switching on Windows, but anyone that's interested should give it a look.
http://forum.xda-developers.com/showthread.php?t=1465661
Archer said:
It makes sense with tablets and smart TVs, where you get multiple people using them.
Someone on here has already made a profile switching app. Not sure if it's as effective as profile switching on Windows, but anyone that's interested should give it a look.
http://forum.xda-developers.com/showthread.php?t=1465661
Click to expand...
Click to collapse
I have SwitchMe and I definitely would recommend using it for a battery saving profile, I use it in situations when I know I'm not going to be using my phone much but need the battery to last. I get really good battery life setting up a bare bones profile. It always worked well for me on ICS but I haven't tried it yet on JB. It took 3-10 minutes to boot back and forth in my experience with it, and it takes some battery to do that so I wouldn't use it for constantly switching. It works for what I use it for but a baked in option that didn't take as long to switch would be awesome.
Yeah. But this would be useful for devices with limited memory and or no root
Sent from my LG-P500 using xda premium
I'm running a job ROM at the moment and I can say with complete confidence there will be multiple accounts in jellybean
Sent from my SGH-T959 using xda app-developers app
Would be nice though. You could hand your phone to a friend to do something and have them on your profile that only has making calls and certain apps available.
Looks like we can now access the multi-account feature.
http://www.xda-developers.com/android/switch-user-profiles-on-jelly-bean/

[COMPETITION] Measured

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!

Categories

Resources