**** BEGIN LOGGING AT Fri Jan 04 02:59:56 2008 Jan 04 03:19:54 "However, Google is not responsible for any claims or disputes between one Participant and any other Participant regarding the ownership of the Entry or the content within the Entry." Jan 04 03:19:58 That is a bad line. Jan 04 03:22:08 it's up? Jan 04 03:22:09 nice. Jan 04 03:22:38 These terms of services strongly suggest that it would be wise to work on the project alone, and in a closed environment. Jan 04 03:23:40 * jasta gives an awkward glare in Google's general direction Jan 04 03:24:52 jasta: I don't see how it could be otherwise. Google cannot be responsible for infighting in contest groups. Jan 04 03:27:32 Yes, but Google claims to not be *RESPONSIBLE* for them, in that they would not facilitate discovery from one group into another to determine the authenticity of the project's source code. Jan 04 03:28:18 So, in that way, a participant may be eligible to win after illegally using copyrighted code (e.g. violating the GPL) Jan 04 03:28:35 and Google would not be responsible for facilitating that investigation. Jan 04 03:28:49 That is crazy, in my opinion. Jan 04 03:30:09 Google should assume responsibility at least so far as to allow one group to examine another group's original entry. Jan 04 03:30:41 And thus provide a process by which a Grant judgment may be reversed, should a project or participant be found to be invalid. Jan 04 03:34:43 Also, there is no way to add or remove members after the challenge has begun. That is crazy. Jan 04 03:35:39 So, if you entered a team project, and one member of the team decides to quit after the first round Grant is given, the other members must still afford that person an equal percentage of the second round Grant if they decide to pursue it and win. Jan 04 03:36:32 Bah, this is frustratingly biased toward individuals and corporations. Jan 04 03:48:07 this stupid thing contracts itself even. it suggests that you must have the copy right for the project you submit, but that they won't listen to any complaints that you are not. Jan 04 03:48:21 s/suggests/clearly states/ :) Jan 04 03:57:53 Also, it doesn't specify if we'll be able to see how we were graded, or how the other winners were graded. Jan 04 03:58:05 that is, what specifically the qualifying scores were. Jan 04 04:12:27 this really makes me think. Jan 04 04:12:40 specifically, that i should not open my project until after the first round. Jan 04 04:15:20 * rwhitby predicted the contest would cause source to be closed Jan 04 04:18:15 i had thought as much at first, but i had positive reassurance that would not be thec ase. Jan 04 04:19:10 specifically that they do not allow you to add or remove members, and that there is no process by which a team can challenge another teams entry. Jan 04 04:34:26 romainguy_: you around? Jan 04 04:34:45 zgold: are you planning to submit to the challenge? Jan 04 04:38:14 I don't like Bureaucracy, so probably not. Jan 04 04:38:28 if it means a mountain of paper work and lots of rules which waste my time; i'de rather just have fun and code Jan 04 04:40:10 That and I doubt i'de win anything. I dont have a lot of experience in this area Jan 04 04:41:36 you? Jan 04 04:41:47 Yeah, I will be participating, I think. Jan 04 04:41:56 I am turned off by the rules, though. Jan 04 04:42:06 So i read Jan 04 04:42:11 Whats your project? Jan 04 04:42:27 If im allowed to ask =P Jan 04 04:42:52 i plan to implement a media system which works to let you synchronize with your home collection (of music, principally). Jan 04 04:43:14 but more than just "press sync and copy all of your music to your phone", that model of course would never work. Jan 04 04:43:27 thats cool. You'de be hard pressed to beat rsync though for those who know how to use it =P Jan 04 04:43:38 no, it's nothing like rsync. Jan 04 04:43:49 synchronize, in this context, does not mean the same thing. Jan 04 04:44:21 Perhaps Jan 04 04:44:39 my idea is to synchronize meta data in that way, and present it in place of real data to the user. so browsing through your "collection" is possible with literally no actual media available. Jan 04 04:45:12 playback and manipulation occurs by retrieving either from the server or the phone's cache. Jan 04 04:45:26 So its all over the air Jan 04 04:45:31 principally, yes. Jan 04 04:46:02 But the idea is that if a cache is well designed (LRU, or perhaps a more sophisticated variation), the user should not actually hit the network very often. Jan 04 04:46:28 Usually, people's listening habits are only as wide at any given time as one's memory. And usually, people don't remember very much :) Jan 04 04:46:32 that'd be rough for osmebody who just listens to music on random Jan 04 04:46:41 aka me Jan 04 04:46:55 I know that personally I tend to listen to the same relatively short playlists and kind of rotate them out from time to time, occassionally jumping to an artist or song i am reminded of, but not that much. Jan 04 04:47:21 could work Jan 04 04:47:37 although with storage getting cheaper; have to wonder how much longer we'll be worried about such things though Jan 04 04:47:41 Well, actually, that would still be possible. I plan to design the system around a predictive scheduler. Jan 04 04:48:07 So it can begin retrieving media before it is needed. Jan 04 04:48:45 zgold: I still think it would be relevant, since it allows you to keep your collection up-to-date without forethought. Jan 04 04:49:12 that'd be nice Jan 04 04:49:19 download some new songs on the pc, and it'll already be on the phone without thinking Jan 04 04:49:30 For example, I love that my phone synchronizes my contacts and calendar items with my company's Exchange server, but I would find that feature useless if I had to actually plug in my phone and sync it each time I made an update. I'd never remember, and I'd constantly go without the data I want. Jan 04 04:50:24 That said, I don't intend to have it necessarily work that automatically. The meta data could synchronize automatically, and next time you pull up your phone the app might helpfully suggest that you've got some new music in your collection. It won't necessarily download the audio for you though. Jan 04 04:50:46 But the great thing about mobile data connections is that they are getting very fast. Fast enough to stream music, actually. Jan 04 04:51:03 My phone can optimally transmit at approximately 50KB/s. Jan 04 04:51:18 Give it 3 more years and that'll be much more commonplace Jan 04 04:51:23 ATM 3G is pseudo hard to find in the US Jan 04 04:51:36 but yeah, when I do have a 3G signal its fantastic Jan 04 04:51:43 It is? I am in Seattle and have 3G nearly everywhere. Jan 04 04:51:50 Your in seattle.. Jan 04 04:51:54 Even outside of city limits. Jan 04 04:51:59 I move around alot between NYC, Philadelphia and Long Island Jan 04 04:52:14 Philly and NYC are pretty well covered, but anything inbetween is hit or miss with mostly misses Jan 04 04:52:19 I wouldn't think Seattle ahead of NYC in terms of wireless technology. Jan 04 04:52:37 and once your 2-3 miles out of philly its GSM only Jan 04 04:52:48 Well, I plan to design my app around the failure of the data network, of course. If you can't download new stuff, it'll just show you the "offline" (cached) collection. Jan 04 04:52:56 yep yep Jan 04 04:53:28 I have a 2GB memory card, and I think 1GB at least is pretty common, so that still is a fair bit of music. And the cache will at least have been smart enough to give you stuff you've listened to recently very often. Jan 04 04:53:43 So that killer CD you just got could be in there, for example. Jan 04 04:54:08 This idea actually came to me when moving between my home and work computers and constantly being frustrated by music I haven't moved between them yet. Jan 04 04:54:08 I've never done the demographics on how people listen to music, I just know that no matter how smart your algorithm it wouldn't work for me. Jan 04 04:54:12 I hit random and just go Jan 04 04:54:37 And how frustrating and awkward it was to ssh home, scp stuff over, patiently wait for it to all come in, "update" the music library, bla bla Jan 04 04:54:40 stupid. Jan 04 04:54:57 zgold: Random could work just fine. It could buffer several songs in advance, for example. Jan 04 04:54:57 The aspect of auto-synchronization of meta-data is fantastic though Jan 04 04:55:16 Random doesn't mean "random", of course. The program itself could easily predict a random playlist indefinitely. Jan 04 04:55:18 like a little cron job which did an rsync every 5 minutes Jan 04 04:56:19 The real trick to my application will be a wealth of avaialble configuration to suit as many possible preferences and environments as possible. Jan 04 04:56:38 Primarily, though, I will be assuming that anyone who uses my application will have unlimited data. Jan 04 04:56:52 yeah thats kinda important for a platform like this Jan 04 04:57:23 The US actually has a great data network, and fair pricing, so this will suit a wide audience at a minimum. Jan 04 04:57:38 Sorry, net drops a bunch. Jan 04 04:58:03 I just plain don't find that to be true. What carrier do you have? Jan 04 04:58:25 I mean, the reason i just dropped from the channel Jan 04 04:58:30 I rely critically on my phone's data connection. Last two times I went to Portland I didn't even know the address of the place I was staying. Looked it up on my phone when I got there. Jan 04 04:58:35 and mapped it. Jan 04 04:58:43 Oh, your home network connection :) Jan 04 04:58:49 I'm on irssi via ssh Jan 04 04:58:55 for some reason the ssh drops every 20 minutes Jan 04 04:59:51 Really? Do you have a little appliance router somewhere between you and the ssh server? Jan 04 05:00:08 * rwhitby is jealous of unlimited data plans - in Australia it's 2.5c per Kb. Jan 04 05:00:10 If so, I'd check the conntrack table size (and limit). Jan 04 05:00:17 It could be an old router dieing Jan 04 05:00:23 or it could be my isp being really crappy Jan 04 05:00:53 Some Linux routers bundled with home DSL and cable connections contain firmware which has absurd conntrack defaults which frequently fill up and "quickly" time out. Jan 04 05:01:00 Causes all sorts of headaches. Jan 04 05:01:09 this is a 5 year old linksys Jan 04 05:01:47 Run bittorrent or anything? That will trivially fill the table and cause those problems. Jan 04 05:01:54 ssh and pidgin Jan 04 05:02:03 well then that's probably not your issue :) Jan 04 05:02:31 anyway, old appliance routers really suck. Jan 04 05:02:33 My 2 KB per minute is a real tax on modern broadband =P Jan 04 05:02:58 i ssh home and use irssi all day at work, btw. Jan 04 05:03:48 i run openwrt on my router, though :) Jan 04 05:04:45 I mean, call me a hypocrit for running gentoo; but at some point I'de like to kick back and enjoy the fact that computers have been around for 20 years and just accept that some things 'work' without seriuos tinkering :) Jan 04 05:05:34 Humans have been around for at least 10,000 years and they're as difficult as ever. Jan 04 05:05:43 Computers, frankly, are making much more impressive strides ;) Jan 04 05:06:22 Not by themselves though Jan 04 05:06:57 anyway, i just finally got this Observable set up working how I want so I'm going to finish up my stupid little Klondike game. Jan 04 05:07:13 im almsot done with this messenger finally =P Jan 04 05:10:00 I find it hard to go back and cleanup though Jan 04 05:10:09 Its so much more interesting to explore new things, like content providers etc. Jan 04 05:10:15 me too. my RSS reader has lots of work to do but i'll probably never do it. Jan 04 05:10:43 i generally am ambitious enough to finish up projects and keep maintenance going, but that one was just a toy so i don't care. **** BEGIN LOGGING AT Fri Jan 04 05:20:12 2008 Jan 04 05:44:26 * billmeltsner reads the terms and conditions and gets a sinking feeling Jan 04 05:44:36 well now I'm sad. Jan 04 05:44:38 billmeltsner: thank you. Jan 04 05:45:09 in fact I'm sad for two reasons Jan 04 05:45:45 one reason is the nature of the T&C seems to be against open source Jan 04 05:46:08 the other is that I appear to be doubly disqualified Jan 04 05:46:10 yup, exactly. Jan 04 05:46:19 how are you specifically disqualified? Jan 04 05:46:23 1) I'm not of legal age in my country of residence Jan 04 05:46:38 I could theoretically get around that by submitting under a family member's name Jan 04 05:46:39 but Jan 04 05:46:42 then we hit Jan 04 05:46:51 2) My mother works for Google as a search analyst Jan 04 05:47:07 meaning no one in my immediate family can submit Jan 04 05:47:19 ouch. Jan 04 05:47:35 this is a dratworthy situation Jan 04 05:48:10 >:( Jan 04 05:48:33 how old are you, btw? Jan 04 05:48:39 16. Jan 04 05:48:43 17 in 1.5 months Jan 04 05:48:54 i'm not disqualified, but i am disenchanted. Jan 04 05:49:39 the team-related rules are disappointing, especially the part about not changing the team after submission Jan 04 05:49:51 the T&C pretty clearly spells out that open source projects will not work. Jan 04 05:50:01 jasta: how so? Jan 04 05:50:16 the T&C is structured in a way that no open source project would be compatible with (a preset, static number of contributors). Jan 04 05:50:22 once a team has registered, the team may not add, remove, or substitute member or otherwise change the composition of the team for the duration of the Challenge. Jan 04 05:50:30 http://code.google.com/android/adc-submit/tandc.html Jan 04 05:50:58 billmeltsner: i suspect that you could register under 1 individual and somehow "promise" your contributors gifts distributed on your own. Jan 04 05:51:01 but that would just be a nightmare. Jan 04 05:51:13 yeah, that would be troublesome. Jan 04 05:51:19 you could also form a business entity, theoretically Jan 04 05:51:29 something no open source project lead is ever going to want to deal with Jan 04 05:51:33 precisely Jan 04 05:51:44 and it creates a weird work environment for contributors who are not specifically named on the project. Jan 04 05:51:52 have a team of one (you) that accepts, reviews, and applies patches from your users (including your other team members) Jan 04 05:52:04 also, the bit about copyright disputes doesn't look good for open projects. Jan 04 05:52:28 well, the copyright disputes I can understand Jan 04 05:52:44 Google doesn't want to get involved in individual contestants' affairs Jan 04 05:52:50 i suppose, but i expected google to throw a bone and offer some type of discovery process. Jan 04 05:52:58 that'd be nice, certainly Jan 04 05:53:43 I'm not sure they want big open source projects competing for the challenge Jan 04 05:53:53 so if you suspect a winning project may have illegally copied portions of your project you could at least challenge their award grant and get google to give you some time to prove that they have done so. Jan 04 05:54:14 jasta: The points you make are all valid. However I think they're intentional Jan 04 05:54:16 hey... if any of you have comments about the new submission process.. please email me them... I'll compile the most common questions/concerns/comments on my zdnet blog Jan 04 05:55:32 zgold: I suppose, but I remain disappointed. I will still participate, but under new guidelines. I will start my project and remain entirely closed until the Mar 3, after the deadline for submissions. Jan 04 05:55:38 s/the // Jan 04 05:56:25 in the likely event that my project doesn't even qualify, i can then enjoy all the usual openness and just forget about all this fud. Jan 04 05:56:27 jasta: I have a feeling thats exactly what they want Jan 04 05:57:08 otherwise, i'll have to manage some nightmare, but at least i can guarantee the project can't be simply usurped for profit. Jan 04 05:57:15 yeah, I got the HALP FUD feeling too Jan 04 05:57:19 if anything, my contributors would get screwed :P Jan 04 05:57:55 halp? Jan 04 05:58:12 s/halp/help Jan 04 05:58:15 / Jan 04 05:59:29 anyway, back to implementing onMeasure and onLayout for my card stack view. these methods are the worst man :) Jan 04 05:59:38 Shweet!! Jan 04 05:59:44 heh Jan 04 05:59:49 Can now add/edit/remove accounts form my messenger Jan 04 06:00:15 billmeltsner: i had to decompile LinearLayout.class to even figure out how. Jan 04 06:00:21 * billmeltsner winces Jan 04 06:00:30 but at least i did that a while ago hehe Jan 04 06:00:32 I'm running the andoid emulator in fedora and I can't see the whole screen of the emulator on top of that its not letting me move it up, the top toolbar is stopping it, anyone had this issue? Jan 04 06:00:49 yeah, I've found jad very useful as far as figuring out the way things work Jan 04 06:01:05 Matrix9: no, but try running with -noskin or -skin hvga-p (lowercase) Jan 04 06:09:18 woot, confirmed. Editing/deleting/adding accounts = working. Schweet. Jan 04 06:16:52 jasta, thanks, I kinda wish I could run it with the skin, its wierd, it shows up fine in my Windows envirnoment but not in linux -- another question is do you know how to toggle the toolbar visiblity in eclipse? mine isn't showing up in fedora Jan 04 06:36:42 my helloworld says textview cannot be resolved? Incorrect reference? Jan 04 06:36:49 Matrix9: nope, but i'm guessing that all of this is because your resolution is way too low. Jan 04 06:37:33 jasta, My monitor is on 1024x758 its only 17" CRT anything higher its hard to see Jan 04 06:39:05 well, OK, but folks are making the assumption that your resolution is larger in order to effectively utilize certain tools. Jan 04 06:39:40 for example, i run 3360x1050. Jan 04 06:41:19 jasta, that's crazy, what is your monitor size? Jan 04 06:41:48 i have 2 22" flat planels. Jan 04 06:42:00 I run 2560x1600 Jan 04 06:42:03 on one monitor :) Jan 04 06:42:33 yeah, but with a DPI so high that it will probably make your eyes bleed :) Jan 04 06:42:54 it's a 30" so it's ok :) Jan 04 06:43:11 that's what you need to work comfortably on Android's source code ;-) Jan 04 06:44:15 i actually prefer my 2 22"'s. i typically work peripherally. Jan 04 06:44:36 this summer I had a 30" and a 24" to work with at the office Jan 04 06:44:38 *that* was nice :) Jan 04 06:44:39 lots of side-by-side full-heighted terminal windows. Jan 04 06:45:12 so far my android development experience has been one somewhat narrow eclipse window and many vim terminals. Jan 04 06:45:27 and frankly, i'm at my wit's end with eclipse. ready to go back to ant and vim for android. Jan 04 06:45:42 I use IntellIJ Jan 04 06:45:45 eclipse problems? welcome to the club. Jan 04 06:46:16 i don't have any problems with it, per se. i just disagree with it, philosophically. Jan 04 06:46:29 jasta: You seem to disagree a lot ;-) Jan 04 06:47:11 Anyway, good night guys Jan 04 06:47:17 and good luck if you plan to enter the contest Jan 04 06:47:25 otherwise, fuck off? :) Jan 04 06:47:43 ...he seemed to say. Jan 04 06:48:03 jasta: otherwise, have fun Jan 04 06:48:20 * jasta nods Jan 04 06:48:55 see ya tomorrow. Jan 04 06:52:28 Tomorrow is gonna be a fun day of working with GridView ^^ Jan 04 06:53:00 tomorrow i get to blow off work early. going snowboarding tomorrow too. Jan 04 06:53:05 gonna be a great weekend :) Jan 04 06:53:42 lucky you! Jan 04 06:54:16 i'm going to tahoe at the end of the month, too ;) Jan 04 06:58:14 how do you zoom in and out on the map program in android? scrolling mousewheel doesn't seem to work very well Jan 04 06:58:29 probably 1 and 3, or g and t. Jan 04 07:02:26 thanks, the g t works much better Jan 04 07:03:50 is there any webpage that mentions the keyboard options? like what is the keyboard option for menu? Jan 04 07:07:23 this is wierd, can't even get helloworld working, instead i changed it to hello matrix, and for whatever reason it keeps saying hello world from initial copy Jan 04 07:09:02 how do you get the url address bar in the browser? Jan 04 07:10:09 never mind, you have to hit menu and then goto Jan 04 07:23:41 back, sorry wandered off Jan 04 07:24:02 it keeps "saying" it, as in, writes that string in the UI when launched? Jan 04 07:24:07 if so, that is because of the layout XML file. Jan 04 07:24:11 and strings XML file Jan 04 07:24:36 just tinker for a bit and dive into the docs. lots of your initial questions can be answered pretty easily Jan 04 08:09:15 hmm, i wonder if clipToPadding() controls taht implicit listview margin? Jan 04 08:18:59 nah, doesnt seem like it. Jan 04 10:11:21 where the hell am i gonna find a good set of card images for this game. Jan 04 10:11:22 hmm Jan 04 10:11:40 i guess i could technically draw them. Jan 04 10:11:44 using built-in fonts and shit. Jan 04 10:32:11 scan a deck of cards? Jan 04 10:33:54 i tried stealing stuff from other projects but quickly realized that the design of card decks for large displays or print is much different than you want for such a small display Jan 04 10:34:08 i looked at how the deck for my windows mobile phone was designed and decided it might be best just to draw it myself Jan 04 10:34:35 it doesn't even use graphics for J, Q, K, etc. Jan 04 10:34:49 and it uses a constant number of suit decorations (2) for each card, regardless. Jan 04 10:50:32 actually drew something myself that i kind of like :) Jan 04 11:14:09 * jasta 's head explodes trying to understand FontMetrics Jan 04 11:23:53 howdy Jan 04 11:58:29 god damnit, why can only adults earn money :-/ Jan 04 14:36:47 it's always painful to get started again after a long pause Jan 04 14:39:51 I wonder if an apk can access itself... Jan 04 14:43:42 davidw: sounds dirty Jan 04 14:45:56 sometimes dirty things make for cool hacks;-) Jan 04 15:55:37 Howdy folks. Jan 04 15:56:03 howdy Jan 04 15:56:18 When I try and run my project from eclipse, I'm getting this error: [2008-01-04 15:55:04 - FileList] Could not find /bin/FileList.apk! Jan 04 15:56:52 i'm not sure why its looking for /bin/FileList.apk, and I'm not sure how to fix it. Jan 04 16:01:15 Anyone have any ideas? Jan 04 16:50:45 wow, i'm so tired i can't get my contacts in Jan 04 16:51:02 damn you Android ;P Jan 04 16:51:28 haha Jan 04 16:51:53 i have to go without sleep in order for that to happen to me. Jan 04 16:53:23 anyone hoping to participate to win some cash? Jan 04 16:54:18 not I Jan 04 16:55:40 I wouldn't mind some cash Jan 04 16:56:16 I want to monetize Hecl in some way... but it's got to stay open source Jan 04 17:05:45 hrm Jan 04 17:05:54 how do I pass 'stuff' to a new activity? Jan 04 17:06:47 bundle data with the intent Jan 04 17:23:43 Lede, with the url crap? Jan 04 17:23:56 hello android-dev Jan 04 17:24:11 anybody can help out with a view and xml question? Jan 04 17:24:16 davidw: no, with putExtra() Jan 04 17:24:55 aha! score, that's what I wanted Jan 04 17:26:54 does anybody know how to return an XML view within a BaseAdapter being extended Jan 04 17:27:04 and not a java class Jan 04 17:27:18 or maybe create a java class from an XML Jan 04 17:27:22 acsia: You need to use the ViewInflate class Jan 04 17:27:45 ok that sounds interesting let me play around Jan 04 17:27:46 thx Jan 04 17:32:29 it did the trick thanks romainguy Jan 04 17:52:09 morrildl: your blog post made me look up "Iron Chef" episodes :D Jan 04 17:52:23 Hey rwhitby, only 76 users? Check your bots ;) Jan 04 17:52:30 Lede: haha, nice Jan 04 17:52:44 I still remember the Bobby Flay Iron Chef episode Jan 04 17:52:52 not the Iron Chef America knockoff Jan 04 17:53:03 the original Iron Chef where Bobby Flay caused an international incident Jan 04 17:53:17 i'm watching one about sushi right now (japense iron chef) Jan 04 17:53:25 very nice :) Jan 04 17:59:15 "Parcel: unable to marshal value"...what's that about? Jan 04 18:02:22 morrildl, do you know if it's possible for an .apk to access itself? Jan 04 18:02:31 hi Jan 04 18:03:03 * rzr just posted http://bugs.debian.org/459219 Jan 04 18:03:38 davidw: the Parcel error probably means you put a non-Parcelable object into something that ultimately went through the Parcelable API Jan 04 18:04:03 davidw: if you used a Bundle and put an Object (as opposed to a primitive like String/int/etc.) that is a common result Jan 04 18:04:11 davidw: I don't know what you mean by "access itself" Jan 04 18:08:26 morrildl, access itself as a file Jan 04 18:08:48 The bits of the .apk files are in /data/app/.apk Jan 04 18:09:00 rzr, cool! Jan 04 18:09:16 you're welcoem Jan 04 18:09:19 me Jan 04 18:09:27 I can't remember offhand whether a typical app can access those files though Jan 04 18:09:35 davidw: what are you trying to accomplish? Jan 04 18:10:18 morrildl, idle speculation as to whether I could replicate an app on the phone, perhaps changing the script it contains Jan 04 18:10:40 davidw: yeah, I think our preferred interface to that kind of thing would be the Package Manager Jan 04 18:10:49 That API is kind of basic at the moment Jan 04 18:11:03 Let me know if there are any operations you think should be added to it Jan 04 18:11:36 ok... right now it's not a pressing concern, but I'll see if I can play with it some in the future Jan 04 18:13:50 morrildl, so there's no way to send anything besides primitive types through the Parcelable API? Jan 04 18:14:28 davidw: you can define your own classes as Parcelable Jan 04 18:14:40 You should check out the docs for Services for how to do that Jan 04 18:15:08 In general though, Bundles (as used by Activities) are intended to be used for primitive types only, to keep overhead low Jan 04 18:15:22 for Services though, e.g. for method calls to Services, you can define your own Parcelable classes Jan 04 18:18:42 hrm hrm hrm....ok Jan 04 18:40:23 morrildl: is it planned to allow asynchronous communication from services? i know that it is possible right now but is not well supported by the AIDL parser. Jan 04 18:43:45 jasta: what do you mean? that's basically what it does now Jan 04 18:45:16 i mean to allow the service to send messages to bound clients without being prompted. Jan 04 18:45:29 so that the client could have callback hooks into the services behaviour. Jan 04 18:45:53 it seems the services that Google has implemented have this functionality, but it is a mystery how they got it. Jan 04 18:46:06 "prompted"? Jan 04 18:46:10 I'm still not following Jan 04 18:46:34 Can you give me an example of how you'd like it to work? Jan 04 18:46:59 imagine i want a service that will perform some lengthy operation and report its progress (as progress is made) to clients that are bound to it (via bindService). Jan 04 18:47:49 this would require the service to be able to send messages to the client that are not in direct response to some request. otherwise, the client would need to poll the service periodically asking "what's your progress?", which would be silly. Jan 04 18:48:29 ah Jan 04 18:49:22 there is already clearly a two-way IPC channel set up, so there is no fundamental issue present. Jan 04 18:49:40 it just seems like the Binder implementation and/or AIDL parser is arbitrarily limited. Jan 04 18:50:35 as i said, someone on android-dev has posted a way to accomplish such a thing, but it is very clumsy and limited in its own way. it also side-steps the AIDL parser entirely. Jan 04 18:54:22 jasta: ah yes Jan 04 18:55:27 yes, that is a known to-do? Jan 04 18:58:25 no you can do it today Jan 04 18:58:38 there are some convenience classes that will be in the next SDK Jan 04 18:58:51 I am currently sorting out what the convenience classes are vs. what you have today Jan 04 18:59:07 with the AIDL parser? Jan 04 18:59:24 no, this doesn't really have anything to do with AIDL Jan 04 18:59:32 really? Jan 04 18:59:46 but the implementation is using the Binder, right? Jan 04 19:01:08 hey Jan 04 19:07:12 jasta: Jan 04 19:07:14 http://code.google.com/android/samples/ApiDemos/src/com/google/android/samples/app/RemoteServiceBinding.html Jan 04 19:07:44 That is the current RemoteService sample Jan 04 19:08:11 Dianne actually updated it to include a callback sample, so that'll be in the next SDK Jan 04 19:08:23 but generally you should be able to do it today, and it looks like this: Jan 04 19:08:43 private IRemoteServiceCallback mCallback = new IRemoteServiceCallback.Stub() { Jan 04 19:08:45 public void valueChanged(int value) { Jan 04 19:08:47 mHandler.sendMessage(mHandler.obtainMessage(BUMP_MSG, value, 0)); Jan 04 19:08:48 } Jan 04 19:08:50 }; Jan 04 19:09:08 that is, there's an interface defined in your service for the callback Jan 04 19:09:26 Your service itself would keep a list of those callbacks Jan 04 19:09:48 the only snafu is that you have to handle the case where processes die Jan 04 19:10:20 mService.unregisterCallback(mCallback); Jan 04 19:10:28 you register/unregister them right on the Service handle Jan 04 19:11:12 and the system handles the rest Jan 04 19:11:49 It actually can get slightly messy dealing with Service lifecycles and so on Jan 04 19:11:53 the basic premise works Jan 04 19:12:10 The convenience classes coming in the new release basically handle much of the lifecycle stuff for you Jan 04 19:16:39 ok, nice. Jan 04 19:16:49 this will let me finish my RSS reader service finally. Jan 04 19:18:41 oh, uhm, i drew up some images for my solitaire suite :) Jan 04 19:19:28 hehe, decided it'd be easier to just draw them myself. i'm curious, though, if it would be better to actually custom draw the cards using a simple card stock and suit emblems. Jan 04 19:19:41 rather than draw them ahead of time and include each card as a separate png. Jan 04 19:20:04 I have public domain card images. Jan 04 19:20:07 i'm leaning toward a custom drawing mechanism, i think. Jan 04 19:20:10 Hi there Jan 04 19:20:26 Are there any devices that run android? Jan 04 19:20:35 absentia: really, that would be well suited for a mobile device? i found that just taking card images and scaling them did not work well. Jan 04 19:20:41 dergringo: yes, but you can't buy any of them. Jan 04 19:21:00 jasta: What about the Neo 1973 ? Jan 04 19:21:06 dergringo: it cannot currently run Android. Jan 04 19:21:20 here are the ones that I used with Qt for my zaurus . Jan 04 19:21:25 dergringo: see the many threads on android-internals. Jan 04 19:21:28 designed to work on 320x200 or 640x480 screen (portrait or landscape) Jan 04 19:21:53 http://www.spy.org/tmp/poker2.png Jan 04 19:22:06 jasta: Are there any plans for supported devices? I mean when will we be ble to buy such a phone? Jan 04 19:22:31 absentia: this wouldn't work for a solitaire game, which has to scale the images much smaller than this. Jan 04 19:23:04 you do it by chopping the number and the suit just below the number ... so Jan 04 19:23:06 9 Jan 04 19:23:11 * Jan 04 19:23:25 for 9 of "suite" * ... it can get like 16x32 or something. Jan 04 19:23:27 dergringo: in the second half of 2008, but please read the information available online. Jan 04 19:23:28 On what devices are you developing? Jan 04 19:23:35 dergringo: the emulator Jan 04 19:24:12 oh but in the official video by google android seems to run on a real device Jan 04 19:24:13 absentia: yeah, that's how i am doing it. i just drew a simple back-drop and custom draw the card using the suit emblem and single letter representing rank. Jan 04 19:24:16 look at the one in the upper left -- Jc 6c 3d 7c 8h ... imagine chopped off just below the suit.... Jan 04 19:24:24 yup Jan 04 19:24:31 that's about as small as you can get -- and it scales.. Jan 04 19:24:31 actually i was drawing like "K [heart]" on the top and "[heart] K" on the bottom. nothing else on the card. Jan 04 19:24:58 I've seen that too Jan 04 19:25:07 and it looks great, actually. my current mobile phone has a solitaire game that is drawn like that. Jan 04 19:25:15 think it was on a palm pilot Jan 04 19:25:18 and i added some fancy looking gradient :) Jan 04 19:26:02 Hmm ok one last question. Is there a platform for android apps. So that I can look for existing apps. Jan 04 19:26:05 it really didn't take long. Jan 04 19:26:42 dergringo: what existing apps were you looking for? the platform has been publicly available for maybe a month now? Jan 04 19:26:57 dergringo, there are some sites out there. You might start with google.com Jan 04 19:27:52 Well I am looking for a platform like openmoko offers: http://projects.openmoko.org/ Jan 04 19:28:27 hi Jan 04 19:28:50 dergringo: OpenMoko has third party software and runs on consumer hardware. Android is not nearly that mature yet. Jan 04 19:28:56 I am trying to catch an incoming call and show caller phone number Jan 04 19:29:22 dpino: replacing the incoming call activity? Jan 04 19:29:31 catching an incoming call is Ok through a PhoneStateIntentReceiver Jan 04 19:29:44 well, in the end I would like that Jan 04 19:29:58 my intentreceiver triggers when a call comes up Jan 04 19:30:07 both are triggered, but so far Jan 04 19:30:15 I will be happy getting the callers number Jan 04 19:30:28 i don't know, but i bet it's in the intent bundle. Jan 04 19:30:28 I saw under telephone package Jan 04 19:30:51 there is a CalleInfo class Jan 04 19:30:59 Mhhh all third party have to be written in java? :( Jan 04 19:31:23 dpino: look at Intent#getExtras(), you might find what you're after. Jan 04 19:31:43 ok, I will take a look at that Jan 04 19:31:51 dergringo: Primarilly, yes. Jan 04 19:31:57 I just know I need a telephony.Connection object and I am done Jan 04 19:32:11 dergringo: Please, read the online documentation and FAQs. Your questions are getting irritating. Jan 04 19:32:29 I just read it but I can't believe it! Jan 04 19:32:33 dpino: I actually don't know, though, so maybe don't listen to me :) Jan 04 19:32:50 dergringo: Right, but we're not interested in what you believe. Jan 04 19:33:00 anyway I ll try that ;-) Jan 04 19:33:24 dergringo, you can write apps in Hecl, too Jan 04 19:34:49 and you can write in any language that is glued to the surfaceflinger. currently, and principally, that is java. Jan 04 19:34:55 by the way, jasta, do you how in case of having to intentreceivers that are trigger on the same event, how can define priorities or so... Jan 04 19:35:28 I am a little bit confused at this, what happen if two or more activities are triggered in response to the same event? Jan 04 19:35:48 Hecl is a Java implementation. But thanks. It seems that Android is not the platform I am looking for (I know that you don't care about). I'll have a look at it in half a year. Good luck. Bye Jan 04 19:38:39 ehehhe "this isn't the platform you're looking for" Jan 04 19:38:49 "this isn't the platform we're looking for" Jan 04 19:41:37 Once I install the app onto the emulator via adb directly, how do I actually run it? Jan 04 19:43:19 emulator -Xdescriptor:MyApp.jad Jan 04 19:43:41 or just do it through the wtk (ktoolbar) Jan 04 19:44:11 I always hit the back backback button until I get to the top.. then adb in.. then select down on the applications.. .until I see my app icon, etc. Jan 04 19:44:16 I don't use the homekey Jan 04 19:45:05 wtk? Jan 04 19:45:25 wireless toolkit Jan 04 19:45:27 Normally i just run it through the eclipse plugin, but I can't figure out where to put the sdcard.img in. Jan 04 19:45:30 the sun wireless toolkit Jan 04 19:45:35 oh. you're eclipse Jan 04 19:45:40 can't help ya there :) Jan 04 19:45:57 <- publicly anti-IDE Jan 04 19:46:27 I'm just not a java develpoer... i started playing with it to play with android, so I followed the path of least resistance. Jan 04 19:46:46 right on right on Jan 04 19:46:58 ya.. ignore the wtk thing, and my emulator answer Jan 04 19:47:01 oh well... i'll screw with it later I guess. Thanks anyways. I'm going home. Jan 04 19:47:06 i thought i was answering a question in #j2me Jan 04 19:47:08 maaaaah bad Jan 04 19:47:12 :) Jan 04 19:47:20 ha. Jan 04 19:47:24 ooops Jan 04 19:47:29 later. Jan 04 20:18:53 What is the accepted way to save data when switching back and fourth between 2 activities? Jan 04 20:19:14 one of them is going to be constantly started and finish()ed so that one needs some mechanism to save Jan 04 20:48:32 zgold: onFreeze(Bundle) Jan 04 20:52:18 Is that bundle going to be stored even if finish() or onDestroy() is called/ Jan 04 20:52:29 as in that activity is popped off the stack Jan 04 20:54:08 Hmm, im reading the docs. That state apparently comesb ack in onCreate too. Cool. Jan 04 20:57:00 i'm so tired that i think it might actually be dangerous driving home Jan 04 21:12:01 morrildl: do you know why Bundle.getAsMap is deprecated? Jan 04 21:13:05 zgold: because getAsMap returns a Map, not a typesafe map object Jan 04 21:13:21 that allows you to put arbitrary Objects into the Map, which is unsupported Jan 04 21:13:41 basically it's misleading Jan 04 21:13:55 getAsMap() implies that you can put any old object at all into Bundle, which isn't true Jan 04 21:13:58 How then can we get a keyset? Jan 04 21:14:06 er Jan 04 21:14:07 Which is the only reason i want getAsMap Jan 04 21:14:09 there's no keyset? Jan 04 21:14:21 Of a bundle? Jan 04 21:14:37 I'm in a situation where I dont know the keys ahead of time. Jan 04 21:14:37 yes Jan 04 21:14:44 * morrildl entered that bug loooooooooooong ago :) Jan 04 21:14:54 Oh, its a bud? Jan 04 21:14:57 bug* Jan 04 21:15:04 well, technically it's a feature request Jan 04 21:15:08 but yeah I entered it quite some time ago Jan 04 21:15:19 Ah okay. So i'm safe to use getAsMap() for that now, and change it over sometime in the future Jan 04 21:15:29 if it works, yeah Jan 04 21:15:35 It does indeed work, cool. Jan 04 21:15:39 okay Jan 04 21:15:48 I'll go hunt down that bug and harass people about it Jan 04 21:15:56 Do you know if its O(1), as in its just returning the internal representation, or if its an inefficient process Jan 04 21:16:13 morrildl: thanks :) Jan 04 21:16:13 don't know, let me check the source Jan 04 21:16:25 My guess is it probably just creates a HashMap and returns it Jan 04 21:16:35 so it'll do whatever the standard implementation does Jan 04 21:16:42 (which is to say, whatever Harmony does) Jan 04 21:17:05 Whats Harmony? Jan 04 21:17:37 zgold: the Apache Harmony project Jan 04 21:17:56 oh, right ":) Jan 04 21:17:59 it's a project under the Apache Foundation to implement the standard Java classpath classes under the Apache 2.0 license Jan 04 21:18:10 Most of Android's core classes are based on Harmony Jan 04 21:18:26 I think i recall hearing about that ;) Jan 04 21:18:55 public Set keySet() { Jan 04 21:18:56 unparcel(); Jan 04 21:18:58 return mMap.keySet(); Jan 04 21:19:00 } Jan 04 21:19:07 mMap is a HashMap Jan 04 21:19:30 so yes, it will be O(whatever Harmony is) Jan 04 21:19:49 I mean, the keySet() call likely wont be difficult, but the getAsMap() is what im curious about Jan 04 21:20:00 oh wait Jan 04 21:20:04 hahaha Jan 04 21:20:11 no that's the ketSet() method ON Bundle Jan 04 21:20:15 but I'm looking at current source Jan 04 21:20:16 O_o Jan 04 21:20:19 its private? Jan 04 21:20:20 not the public M3 Jan 04 21:20:22 right Jan 04 21:20:25 this will be in the next SDK Jan 04 21:20:29 Awesome. Jan 04 21:20:31 so yeah you're safe Jan 04 21:20:41 Will make a note to switch over on next update Jan 04 21:20:42 BUG_STATUS: FixedNotRelease :) Jan 04 21:20:50 Perfect! Jan 04 21:21:21 many thanks :) Jan 04 21:22:23 is the sdk source publically available? Jan 04 21:22:44 ah Jan 04 21:22:52 "...that it will be open source in the future" Jan 04 21:23:15 right Jan 04 21:27:47 asf +1 Jan 04 21:29:56 morrildl: onFreeze() isn't called when you hit the back button? Jan 04 21:30:06 zgold: it should be Jan 04 21:30:24 The android app model still feels kind of weird to me Jan 04 21:30:27 I have a breakpoint set :/ Jan 04 21:30:43 not being hit, and the bundle isnt being saved (eg its not doing what it should be) Jan 04 21:31:07 zgold, try a Log.v("foo", "bar"); Jan 04 21:31:20 Yeah that was my next test Jan 04 21:31:28 hmm Jan 04 21:31:50 will also test with finish() Jan 04 21:32:21 100% certainty that onFreeze(Bundle outBundle) is not being called when i hti the back button Jan 04 21:32:37 also not called when i call finish() Jan 04 21:33:11 And im looking at the lifecycle, I agree it should be Jan 04 21:35:54 If i hit the home button though it IS called Jan 04 21:39:31 zgold, I get the same thing Jan 04 21:39:51 the 'activities' are actually what I find sort of weird about the whole thing Jan 04 21:41:44 morrildl: bug or intended? Jan 04 21:57:09 hrmph... Jan 04 22:04:00 zgold: sorry, back Jan 04 22:04:25 zgold: onFreeze() is for when an application is being suspended Jan 04 22:04:36 this is a different concept than when an application is explicitly terminated by the user Jan 04 22:05:28 finish() is your way of saying you're finished Jan 04 22:05:46 this is an explicit termination, and your Activity is immediately shut down, not suspended Jan 04 22:05:53 hence onFreeze() is never called Jan 04 22:06:06 the Back button is also currently considered an explicit termination, and not a suspension Jan 04 22:06:55 In other words, Android has a browser-like Back button, but Android has no concept of a browser-like Forward button Jan 04 22:09:47 what's the best strategy when you have complex state that you can't really freeze? just finish() and be done with it? Jan 04 22:11:03 "I'm sorry Dave, I can't let you do that" Jan 04 22:23:10 now I recall why I embarked on this... Jan 04 22:25:04 I wanted to have a per-screen menu Jan 04 22:31:52 * davidw sleep Jan 04 22:38:18 "I'm sorry Dave, I can't let you do that" <- haha, nice one Jan 05 00:54:54 interesting. Jan 05 00:55:09 apparently my mother actually quit her job at google months ago and I somehow never found out... Jan 05 00:56:34 lol Jan 05 00:57:06 well, at least I'm only disqualified once instead of twice now. Jan 05 01:00:49 that's the shits Jan 05 02:36:08 Theres no way to on demand freeze your own activity then, is there? Jan 05 02:57:16 Can anyone help me get a remote service working? **** ENDING LOGGING AT Sat Jan 05 02:59:57 2008