00:00.13 | f00f- | why not just use broadcast intents for async? |
00:00.46 | jasta | because then you could not control which binder end-point is woken up for certain events. |
00:01.41 | jasta | which, if any. |
00:02.13 | f00f- | i just have a common IntentReceiver that i plug in to any Activity that needs to listen to events, i think it works |
00:02.27 | jasta | yes, of course it works. |
00:02.52 | jasta | it's also very inefficient depending on the nature of the events being received. |
00:03.40 | f00f- | there should be a very lightweight message bus for android |
00:03.51 | jasta | there is |
00:04.11 | jasta | it's called OpenBinder, it's implemented in the Linux kernel, and it's used for all Android IPC, including your broadcast intents. |
00:04.55 | jasta | that is what i meant earlier by "which binder end-point" |
00:05.16 | jasta | if you broadcast an intent, all registered receivers will have to wake up, receive the message from the bus, and possibly act on it, or possibly ignore it. |
00:05.39 | jasta | if, instead, you implement a service with listeners, only those endpoints actually registered to listen for events will be woken up for them. |
00:05.41 | f00f- | you can set which activity receives which intent in your manifest, right? |
00:06.05 | jasta | Yes, but you can't set which activity receives which intent *WHEN*. |
00:06.29 | zhobbs | you can if you register them on the fly |
00:06.33 | jasta | your design may need to evolve to the point that there is a general class of events that happen, but different parts of your application are interested in specifically different events. |
00:06.42 | f00f- | as in, which order? |
00:07.16 | jasta | f00f-: No, as in, based on the data contained in the event. |
00:07.51 | jasta | For example, let's imagine you had a service that managed downloading files for you. It could operate entirely in the background, but an activity could pop in and "check up on" all downloads, certain downloads, etc. |
00:08.16 | zhobbs | When using async service interface every now and then I don't get the event when called and I get "ERROR/JavaBinder(1335): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)" |
00:08.17 | jasta | Let's say you had one app that wanted to show FTP downloads, and another that shows only HTTP downloads (not useful, of course) |
00:08.54 | jasta | With broadcast intents, both activities would need to be woken up for download state changes, with no run-time interface to control what they are interested in from the service. |
00:09.32 | f00f- | both would get it because they're both in the same package, right? |
00:09.47 | jasta | Well, because they're both listening, yes. |
00:10.06 | f00f- | ah ok |
00:10.09 | jasta | In this way, you are wasting resources by waking up an application that doesn't even care about the data it's being woken up for. |
00:10.35 | jasta | Likewise, what if the activity isn't running? The intent receiver will still get constantly woken up when downloads progress, despite the user not being in a position to observe that data. |
00:11.24 | jasta | Whereas if you implemented more direct, interface-driven communication, you could have much more scalable control over this type of behaviour. Plus, it's more logical, and easier to work with. |
00:12.31 | f00f- | true, although basically i'm just sending a few integer values across |
00:12.49 | *** join/#android rch850 (n=rch850@c220090.ppp.asahi-net.or.jp) |
00:12.55 | jasta | right, but i would argue to you then: what is the advantage of an intentreceiver over a service with an interface attached? |
00:13.15 | f00f- | nothing, just less code and thus less complexity |
00:13.24 | jasta | the disavdvantages are clear, and they lock your design into a very crude relationship. |
00:13.30 | jasta | what makes it less complex? |
00:13.37 | f00f- | so what you're saying is to use a observer |
00:14.11 | jasta | yes, however i think your assertion about complexity is flawed. |
00:14.34 | f00f- | well i thought you need a ServiceConnection from each Activity to pass data long then? |
00:14.47 | f00f- | what kind of Observer are you speaking of? |
00:14.50 | jasta | actually, the interface-driven architecture you get from services is far simpler to understand. the relationship much more closely matches the local semantics of program progression. |
00:15.08 | jasta | whereas an intent is moved sort of magically from one program to another, not directly attached to anything meaningful. |
00:15.12 | jasta | or logically associated with it. |
00:15.54 | jasta | f00f-: you would need a service connection to synchronize delivery of messages to your service, but the ServiceConnection class is an extremely simple abstraction of that. |
00:16.10 | jasta | the kind of observer i'm referring to is merely the observer pattern found elsewhere in OO programming. |
00:16.38 | jasta | MyService obj = MyService.Stub.asInterface(binder); // or whatever, can't remember the code exactly |
00:17.04 | jasta | obj.setOnSomeStupidEventListener(new OnSomeStupidEventeListener.Stub() { ... }); |
00:17.51 | f00f- | okay, so whew, so we're not polling here |
00:17.51 | jasta | and in your activity's onStop you'd just unset your listener and call unbindService() so that the service is allowed to disentangle. |
00:18.18 | jasta | f00f-: No, this is not much different than any other type of observer. This is why the interface-driven service approach is so superior. |
00:18.26 | jasta | It's much more natural for the flow of both components, the service and activity. |
00:19.47 | jasta | I actually don't see where you believe this is "more complex". Perhaps you have just not bothered with the idea of it? |
00:20.14 | f00f- | well it's just more 'code' |
00:20.15 | f00f- | :) |
00:20.21 | f00f- | things that can go wrong |
00:20.23 | jasta | Hardly |
00:20.41 | f00f- | no i agree, but i think all of this should be implicitly enabled |
00:20.52 | f00f- | a lightweight message bus |
00:21.08 | f00f- | this.sendIntent(Activity1.class, bleh); |
00:21.11 | jasta | it is implicitly enabled, why do you not believe it is? |
00:21.23 | f00f- | well i need to setup a service connection, etc. |
00:21.25 | jasta | don't you see the obvious problem with that sort of usage? |
00:21.51 | jasta | f00f-: Because it's IPC. Stop being dense. You can't just poof a process into existence out of thin air. |
00:22.24 | f00f- | if it's not active it shoulnd't be sent |
00:22.28 | f00f- | could add a boolean to that signature |
00:22.32 | f00f- | to control it |
00:22.45 | f00f- | just an idea! |
00:23.48 | jasta | It's a very incomplete thought, f00f-. If you filled out all the design flaws you've ignored, you'd arrive yourself at precisely how android has implemented services. |
00:24.41 | jasta | So, instead of a 1-liner, you get a robust, efficient, reliable system that is both logically well organized, easy to understand, and in no way "magical". |
00:25.34 | jasta | And satisfies the requirement quite nicely of a persistent message bus across process boundaries. |
00:26.08 | f00f- | i guess you're right. i'm underthinking it a bit. |
00:26.31 | jasta | you're also hassling over what, 40 lines of code? |
00:26.51 | jasta | and how that is such a great burden to you that you have no choice but to ignore it |
00:27.16 | f00f- | well besides it being a copy and paste operation if you have many activities, there's nothing else :) |
00:27.46 | jasta | hardly, most of the implementation headache is contained neatly in the service itself. |
00:27.51 | jasta | not in the activities that use it. |
00:28.44 | jasta | i am telling you this as someone who has extensively leveraged a robust service-oriented system atop android. android has done this part unimaginably well, especially by contrast to every other mobile platform i've seen. |
00:29.19 | f00f- | other mobile platforms have barely done it |
00:29.47 | jasta | oh no, they have tried. they've just done it very poorly, and with little regard for efficiency. |
00:32.49 | jasta | now, with all my praise, i am ready to smash android on the street as a result of this fucking debugger problem i've just encountered |
00:33.10 | f00f- | LOL |
00:33.27 | jasta | i *need* to debug this code, and everytime i try, the process fucking segfaults. |
00:33.29 | *** join/#android matt_c (n=mcroydon@137.147.45.66.cm.sunflower.com) |
00:33.46 | jasta | i can't really even printf debug it. it's in a separately distributed jar file independent of android. |
00:34.46 | jasta | the debugger lets me attach and walk around, but if i attempt to display any local variables, it crashes the process instantly |
00:36.08 | zhobbs | _avatar: were you polling your MediaPlayer with getCurrentPosition() or anything? |
00:38.22 | zhobbs | _avatar: I'm thinking that getCurrentPosition() during a prepare() crashes app...not sure though, but I put a isPlaying() check in before getCurrentPosition and I'm getting better stabilty |
00:38.36 | _avatar | nope, wasn't calling getCurrentPosition() |
00:39.14 | zhobbs | yeah, could just be one of those times where it's working and I can't get it to crash |
00:40.14 | _avatar | hmm, let me know if that solves the problem. my bug may be caused by creating more than one instance of the MediaPlayer... you said you recycle a single instance, right? |
00:40.23 | zhobbs | yeah |
00:40.32 | zhobbs | just .reset() and then set new data source |
00:40.55 | _avatar | perhaps I should give that a shot |
00:41.06 | zhobbs | hasn't crashed in a while after I added that check...so that may have been my problem |
00:43.03 | _avatar | do you ever call .release()? |
00:43.33 | zhobbs | in onDestroy() |
00:44.38 | _avatar | ok, thanks. wondering if you were calling it before reset() |
00:47.02 | *** join/#android dims (n=dims@c-66-31-154-33.hsd1.ma.comcast.net) |
00:54.00 | _avatar | zhobbs: recycling a single MediaPlayer instance seems to solve the hard crashing, but MediaPlayer.setDataSource() still throws IOExceptions sometimes. so a step in the right direction, at least |
01:04.36 | zhobbs | _avatar: yeah, I got a random IOException a little while ago...has only happened once for me |
01:05.07 | _avatar | are you playing local files or streaming them over http? |
01:06.44 | *** join/#android inZane-_ (i=nemo@dslb-084-058-046-040.pools.arcor-ip.net) |
01:06.52 | zhobbs | local |
01:07.55 | _avatar | hrm. do you have an OnErrorListener? sometimes mine is called with what=1, extra=0 |
01:08.08 | _avatar | just wondering if you've ever seen that |
01:08.14 | zhobbs | no, haven't been using OnErrorListener |
01:09.02 | _avatar | k |
01:12.01 | jasta | _avatar: it means UNKNOWN error :) |
01:12.15 | jasta | thats what "what=1" is defined as. |
01:12.43 | _avatar | ah, ok. thanks. :) |
01:12.53 | zhobbs | so now you can fix it |
01:12.59 | _avatar | haha |
01:15.11 | _avatar | i guess now would be a good time to learn more about services, and just hope MediaPlayer is fixed soon |
01:24.49 | *** join/#android yakischloba (n=jake@c-24-17-53-185.hsd1.mn.comcast.net) |
01:24.59 | *** join/#android BlackBsd (n=brian@72.168.193.117) |
01:50.52 | *** join/#android Kriyasurfer (n=Akashakr@c-67-166-227-32.hsd1.ga.comcast.net) |
01:55.57 | raidfive | how do I call a method in one activity from another activity? |
01:56.31 | raidfive | I'm not sure how to get a reference to the previous activity after calling startSubActivity() |
02:00.29 | raidfive | hmm, getParent() ... imagine that :P |
02:05.16 | *** join/#android pombreda (n=pombreda@c-67-180-198-25.hsd1.ca.comcast.net) |
02:09.28 | *** join/#android tmcneal (n=asdf@pool-151-199-245-93.phil.east.verizon.net) |
02:14.33 | *** join/#android Dan_U (n=Dan@70-41-192-219.cust.wildblue.net) |
02:26.18 | *** join/#android chaosvoyager (n=Miranda@pool-72-80-180-212.nycmny.fios.verizon.net) |
02:38.29 | raidfive | hmm, I don't think getParent() works in this context |
02:38.51 | *** join/#android Dralspire (n=dralspir@199-96.126-70.tampabay.res.rr.com) |
02:45.16 | *** join/#android TimRiker (n=timr@rikers.org) |
02:45.53 | *** join/#android TimRiker (n=timr@rikers.org) |
02:59.26 | *** join/#android The_PHP_Jedi (n=ThePHPJe@65-23-223-80.prtc.net) |
03:10.16 | *** join/#android eton (n=eton@ppp-58-8-8-200.revip2.asianet.co.th) |
03:16.49 | *** join/#android rch850 (n=rch850@c220090.ppp.asahi-net.or.jp) |
03:26.52 | *** join/#android jtoy (n=jtoy@121.32.170.145) |
03:36.25 | *** join/#android rch850 (n=rch850@c220090.ppp.asahi-net.or.jp) |
03:53.55 | *** join/#android Dan_U (n=Dan@70-41-192-219.cust.wildblue.net) |
04:13.38 | rhett | is there a calendar app? |
04:16.49 | *** join/#android pombreda (n=pombreda@c-67-180-198-25.hsd1.ca.comcast.net) |
04:27.37 | *** join/#android muthu (n=sara@59.92.50.250) |
04:29.59 | *** join/#android donnatn (i=PPCGeeks@c-68-53-210-211.hsd1.tn.comcast.net) |
04:53.13 | *** join/#android mrspoons (n=root@c-98-226-6-195.hsd1.il.comcast.net) |
04:59.12 | *** join/#android muth1 (n=sara@59.92.50.191) |
05:12.41 | *** join/#android mrspoons_ (n=root@c-98-226-6-195.hsd1.il.comcast.net) |
05:25.26 | jtoy | is there? |
05:25.39 | chaosvoyager | eh? |
07:02.07 | rhett | hey, anyone up? |
07:02.12 | jasta | yup |
07:10.19 | rhett | hey jasta ok, i'm going whole hog on this android app now, got about 3 weeks for the prize :) |
07:10.44 | rhett | do you happen to know anything about calendars or charts? |
07:11.00 | jasta | well, i know *something*. |
07:11.02 | rhett | i know there are google web calendars and charts already |
07:11.16 | rhett | i mean, are there any widgets for the android platform yet, or conventions? |
07:11.28 | rhett | man, this skypop youtube video looks pretty neat |
07:11.48 | jasta | not that i know of. |
07:12.04 | rhett | there is the calendar widget that comes in the apidemo |
07:12.13 | jasta | yeah, but it's nothing special |
07:22.15 | rhett | hmm i tuses java.util.Calendar |
07:24.01 | rhett | oh ok, and the android.app.DatePickerDialog |
07:25.37 | *** part/#android chaosvoyager (n=Miranda@pool-72-80-180-212.nycmny.fios.verizon.net) |
07:33.47 | *** join/#android f00f- (i=f00f@virusexperts.com) |
07:51.28 | *** join/#android mickrob1 (n=mickrobk@c-76-25-207-221.hsd1.co.comcast.net) |
07:54.23 | jasta | hmm, i just realized this won't work because android's DOM parser still doesn't support CDATASection. |
07:54.57 | jasta | so, i'm gonna have to finally do the hard job of converting my entire SyncML implementation to WBXML. |
08:15.38 | f00f- | why does Location not provide for input in long's such as megadegrees? |
09:05.18 | f00f- | seems inefficient since map ovelrays require integers |
09:05.29 | f00f- | so there is an unnecessary conversion from double/float |
09:05.41 | f00f- | especially when calculation distance between 2 Location objects |
09:06.05 | f00f- | basically i need a WGS84 (or equivalent, i dont care too much about accuracy) method for calculating distance |
09:06.19 | f00f- | i was thinking cartesian distance formula |
09:06.32 | f00f- | assume the earth is flat |
09:06.39 | f00f- | the only distances i care about are: |
09:06.46 | f00f- | 1) if you're cloes it should be within 10 meters |
09:06.56 | f00f- | 2) if you're far, it can be within +/- 10km or so |
09:07.13 | f00f- | close as in 0 to 100 km |
09:07.20 | f00f- | far as in > 100 km |
09:07.21 | f00f- | ideas? |
09:18.51 | *** join/#android Zoolooc (n=fredsiba@nrbg-4dbfbc1f.pool.einsundeins.de) |
09:24.23 | *** join/#android Yeggstry (n=mind@217.41.251.16) |
09:27.46 | *** join/#android eton_ (n=eton@ppp-58-8-11-248.revip2.asianet.co.th) |
09:31.14 | *** join/#android jtoy (n=jtoy@74.85.13.60) |
09:32.47 | *** join/#android Yeggstry (n=mind@217.41.251.16) |
09:36.25 | *** join/#android haavi (i=haavi@c83-254-99-178.bredband.comhem.se) |
10:21.05 | *** join/#android Mathiasdm (n=Mathias@vpnc230.ugent.be) |
10:28.15 | rhett | anyone know about using charts in android? Like jfreechart? |
10:50.47 | *** join/#android dims (n=dims@c-66-31-154-33.hsd1.ma.comcast.net) |
11:22.00 | *** join/#android eton (n=eton@ppp-58-8-13-67.revip2.asianet.co.th) |
11:23.25 | *** join/#android ArteK (n=ArteK@82.177.19.205) |
11:31.23 | *** join/#android tmarble (n=tmarble@user-38q4et6.cable.mindspring.com) |
11:33.42 | *** join/#android acsia (n=acsia@host86-161-119-76.range86-161.btcentralplus.com) |
12:04.30 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
12:10.40 | *** join/#android matt_c (n=mcroydon@137.147.45.66.cm.sunflower.com) |
12:14.30 | *** join/#android aksyn_ (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
12:17.13 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
12:26.15 | *** join/#android aksyn_ (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
12:27.09 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
12:30.09 | *** join/#android aksyn_ (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
12:33.36 | rhett | hey, anyone around? |
13:03.07 | *** join/#android krau (n=cktakaha@189.70.14.252) |
13:17.10 | *** join/#android nemik_ (n=cyanact@c-67-173-76-34.hsd1.il.comcast.net) |
13:21.44 | *** join/#android matt_c (n=mcroydon@137.147.45.66.cm.sunflower.com) |
13:24.17 | *** join/#android yakischloba (n=jake@c-24-17-53-185.hsd1.mn.comcast.net) |
14:04.13 | *** join/#android aksyn_ (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
14:10.20 | *** join/#android mike1o (n=mike@82.58.120.121) |
14:40.01 | *** join/#android ArteK (n=ArteK@82.177.19.205) |
14:40.33 | *** join/#android krau (n=cktakaha@189.70.14.252) |
14:42.07 | *** join/#android matt_c (n=mcroydon@gozur.sunflowerbroadband.com) |
14:51.23 | *** join/#android TimRiker (n=timr@70.1.135.7) |
15:02.57 | *** join/#android d3ce1t (n=srg@144.Red-88-2-126.staticIP.rima-tde.net) |
15:04.36 | *** join/#android yakischloba (n=jake@rnkfoods.com) |
15:05.43 | *** join/#android mihoshi (n=Tylor@unas-226.interra.ru) |
15:07.39 | jasta | hmm, interesting. my app ran out of memory. |
15:12.54 | mike1o | alzeimer? :) |
15:32.03 | *** join/#android jasonchen (n=chatzill@nat/google/x-b3796d5dc1ee4a7d) |
15:45.20 | *** join/#android chumphries (n=chumphri@labs.niroze.net) |
16:08.29 | *** join/#android Raven-coda (n=wtg@64.50.35.215) |
16:21.45 | jasta | mike1o: i'm not sure at all how this happened. there should not be the possibility of a persistent reference in this code |
16:21.48 | jasta | maybe a dalvik bug? |
16:24.26 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
16:37.35 | *** join/#android pandora-- (n=neil@66.238.50.126.ptr.us.xo.net) |
16:37.41 | *** join/#android muthu (n=sara@59.92.1.158) |
16:45.29 | *** join/#android yakischloba (n=jake@rnkfoods.com) |
16:49.38 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
16:53.02 | *** join/#android haavi (i=haavi@c83-254-99-178.bredband.comhem.se) |
17:09.09 | *** join/#android aksyn_ (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
17:09.46 | *** join/#android soulreaper (i=soul@p4FCE634F.dip.t-dialin.net) |
17:30.11 | *** join/#android The_PHP_Jedi (n=ThePHPJe@65-23-223-80.prtc.net) |
17:33.11 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
17:45.59 | *** join/#android mypapit (n=mypapit@pdpc/supporter/active/mypapit) |
17:46.13 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
18:02.47 | *** join/#android aksyn_ (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
18:08.19 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
18:19.19 | muthu | http://www.newsvisual.com/newsvisual/2008/03/personal-conn-2.html |
18:31.37 | jasta | that would be evil. |
18:32.25 | jasta | muthu: the first paragraph of this article suggests to me that these people don't have any idea what they're talking about. |
18:32.55 | benley | yeah, appears to be nonsense to me too |
18:33.21 | jasta | we all know that Google doesn't want to be bed partners with any wireless carrier. That's in direct opposition to their plan. |
18:34.03 | jasta | Google clearly doesn't want to launch Android ruthlessly tethered to a particular carrier like Apple did (whethery they wanted to or not). |
18:35.43 | jasta | whether* |
18:40.23 | jasta | whoa, i just plugged in this new laptop and the connection to the socket sparked like nothing i'd ever seen before |
18:40.32 | jasta | it was alarming |
18:45.43 | muthu | hey jasta |
18:49.43 | *** join/#android mypapit_ (n=mypapit@237.32.50.60.kmr04-home.tm.net.my) |
19:32.43 | jasta | muthu: hi :) |
19:33.57 | *** part/#android muthu (n=sara@59.92.1.158) |
19:34.21 | *** join/#android muthu (n=sara@59.92.1.158) |
19:34.33 | muthu | enjoying your weekend? |
19:34.37 | jasta | sure, it's ok |
19:34.40 | jasta | just got off work |
19:34.50 | jasta | for good friday |
19:34.56 | muthu | cool |
19:35.16 | jasta | now i have the unfortunate task of debugging what appears to be a very large memory leak. |
19:35.26 | muthu | oops |
19:35.39 | jasta | and, i have to finally implement my stupid SyncML library using WBXML |
19:35.42 | muthu | have fun! |
19:35.59 | muthu | then its time for me to go to bed, i guess.. |
19:36.04 | muthu | good night buddy |
19:36.31 | *** part/#android muthu (n=sara@59.92.1.158) |
19:43.52 | *** join/#android tlockney (n=tlockney@71-36-97-199.ptld.qwest.net) |
19:44.14 | *** join/#android tlockney (n=tlockney@71-36-97-199.ptld.qwest.net) |
19:55.21 | jasta | wonders if the sqlite3 format is portable |
20:00.14 | B0jangles | What do you mean by portable? |
20:00.25 | B0jangles | It's LGPL, if I remember correctly |
20:01.02 | *** join/#android Kriyasurfer (n=Akashakr@dsl027-162-152.atl1.dsl.speakeasy.net) |
20:02.47 | zhobbs | jasta: I've used a local sqlite3 db and loaded it up in android |
20:02.55 | zhobbs | jasta: haven't tried the other way though |
20:03.30 | B0jangles | ph |
20:03.32 | B0jangles | oh |
20:04.48 | *** join/#android cancer (i=cancer@125.99.201.245) |
20:05.41 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
20:05.43 | cancer | hi guys i need some sample code to test in android any help? but not in beginners level |
20:06.05 | jasta | please be more specific |
20:07.27 | cancer | im just a beginner in android still im learning android api but i need to see its power so i need a sample code to test it |
20:07.31 | cancer | something in pro level |
20:07.45 | zhobbs | Not really sure what's out there yet |
20:08.37 | *** join/#android Dan_U (n=Dan@70-41-192-219.cust.wildblue.net) |
20:09.01 | jasta | cancer: uhh, so you want to see "professional" code written against Android? do you suppose that any commercially developed code for Android is open source at the moment? |
20:09.30 | jasta | Also, what does "pro" really mean to you? Commercial or simply non-trivial? If the latter, you can find quite a bit of it. |
20:09.30 | cancer | not sure |
20:09.59 | cancer | 'pro' i mean something far from hello world |
20:10.02 | zhobbs | cancer: don't think there's anything yet, your best bet might be some of the svn repos of the projects at code.google.com or helloandroid.com/apps |
20:10.14 | jasta | cancer: That isn't what "pro" means; please adjust your vocabulary. That said, it exists. |
20:10.54 | jasta | But none of it is released for mass consumption. Development of non-trivial applications takes much more time than that. |
20:11.16 | jasta | Also, you won't find the source code to many folks' Android Developer Challenge projects yet, as they are keeping them closed source until at least round 1 has ended. |
20:11.22 | *** join/#android mickrobk (n=mmm@ucb-np1-103.colorado.edu) |
20:11.39 | cancer | oh thats ok |
20:13.09 | jasta | Why are you interested in this anyway? |
20:13.20 | jasta | If you are attempting to learn Android, starting with well established code will not get you very far. |
20:15.08 | cancer | no just to see wats android is capable of |
20:15.31 | zhobbs | cancer: keep an eye out after april 14 |
20:15.46 | jasta | Android is one of the most flexible mobile platforms that has ever been released. Trust us, it can do a lot. |
20:16.30 | jasta | What code is available for it now, while it is not even commercially launched, is not a good example of what it can do. |
20:16.36 | cancer | y after 14th??? |
20:16.44 | jasta | cancer: The android developer challenge first round deadline is Apr 14. |
20:17.37 | jasta | many folks will be releasing their applications publicly then, and google will be choosing winners after that. |
20:17.57 | cancer | oh for the round challenge eh |
20:18.35 | jasta | For example, I am working on an application which will permit you to seamlessly access your home media collection (music, for example) through your phone and integrate social services like last.fm to enhance the player experience further. |
20:21.35 | jasta | Android, for the most part, has not gotten in my way at all. However, it still has bugs and quirks currently, which are being actively fixed. |
20:21.53 | *** join/#android TimRiker (n=timr@pdpc/supporter/bronze/TimRiker) |
20:24.23 | *** join/#android aksyn (n=aksyn@cp1242056-a.schoo1.lb.home.nl) |
20:30.08 | *** join/#android racarter (n=racarter@cpe-74-73-15-80.nyc.res.rr.com) |
20:30.28 | racarter | whoa... it exists |
20:30.43 | jasta | what exists? |
20:30.46 | jerkface03 | it! |
20:30.54 | jasta | the segway? :) |
20:31.00 | jasta | or segue |
20:31.04 | jasta | the IT :) |
20:31.26 | racarter | yeah.. anyway |
20:31.38 | *** join/#android dsm (n=dsm@65.205.207.145) |
20:31.51 | racarter | does this room discuss google android? |
20:31.59 | jerkface03 | yep |
20:32.09 | racarter | or is it some kind of c3po chat or something |
20:32.19 | jerkface03 | beep boop boop |
20:32.19 | proq | racarter: no, this is androi fanboi. discussion is elsewhere |
20:32.37 | proq | *android |
20:32.43 | jasta | racarter: Android is a mobile operating system being developed by Google and partners. |
20:33.04 | donomo | android is also fluent in more than five million forms of communication. oh dear oh dear |
20:33.30 | racarter | ok good then my question is can i install android on my iphone? |
20:33.37 | racarter | and have it work |
20:33.49 | jasta | no, you cannot. |
20:34.00 | jasta | Android is not an application for an existing platform, it is a platform. |
20:34.27 | proq | racarter: you can install android on some zauruses, and a very limited set of other hardware |
20:35.03 | jasta | And even then, you will not like the experience you find. Much work would be required to develop it into a useful device. |
20:35.13 | zhobbs | no phones though :( |
20:36.26 | jasta | racarter: Android's current target audience is exclusively developers. All others can happily ignore it until commercial handsets are launched at the end of 2008 and into 2009. |
20:36.32 | racarter | is the problem just lack of drivers? |
20:36.45 | zhobbs | lack of source |
20:36.49 | racarter | commercial handsets produced by whom? |
20:37.01 | jasta | racarter: HTC, Samsung, Motorola, and LG. |
20:37.24 | jasta | racarter: Refer to the Open Handset Alliance web site for more details on Android's commercial interest. |
20:37.30 | racarter | android is using a linux kernel, is it possible to install android on a pc? |
20:37.46 | jasta | racarter: No, because Android is built for a particular ARM processor, of which your PC does not have. |
20:37.50 | zhobbs | only arm binaries are available |
20:38.31 | racarter | hmm.. the source is available right? can it be compiled for another processor? say intel? |
20:38.32 | jasta | Of course, the emulator is how we all interact with the platform, which can run on many platforms. |
20:38.41 | f00f- | which ARM ? |
20:38.53 | jasta | racarter: No, Android is marketed as open source, but that code is being reserved for the official launch. |
20:39.02 | zhobbs | 5 I think |
20:39.04 | jasta | Currently only the kernel and webkit are open sourced. |
20:39.06 | racarter | wtf |
20:39.28 | racarter | that's nonsense the source should be available |
20:39.38 | zhobbs | I agree, it wouldn't hurt anything |
20:40.05 | racarter | hmm.. is google a friend of open source? |
20:40.11 | racarter | why is google making an os anyway? |
20:40.23 | jasta | racarter: The reason they have withheld the source seems sensible, at least to me. |
20:40.29 | f00f- | isn't it obvious? |
20:40.32 | jasta | I disagree with it, and I don't like it, but I can see where they are coming from. |
20:40.58 | jasta | They don't want to deal with the marketing fiasco that would ensue. Lots of folks would have Android running on commercially available devices and would be "showing off" a very incomplete, embarrassingly buggy product. |
20:41.06 | racarter | webkit.. is there a different rendering engine for mozilla? |
20:41.11 | jasta | racarter: Yes. |
20:41.45 | racarter | jasta, i don't think i agree with that logic |
20:41.58 | jasta | racarter: I don't agree with it either, but I do understand it. |
20:42.05 | jasta | and I can appreciate their reasoning. |
20:42.56 | jasta | ever since Android was announced, Google has been struggling with the public relations aspect as news media is perpetually misunderstanding what exactly they mean by a "release". |
20:43.17 | zhobbs | jasta: never thought about people runnning the current buggy platofrm on their phones and Android getting a bad wrap |
20:43.33 | jasta | Like I said, Google's intentions are clear: they want developers paying attention, and end users going the hell away :) |
20:45.03 | jasta | zhobbs: And they would. I, for one, would not want to use an Android phone in its current state. |
20:45.08 | racarter | why do they want developers? they have plenty of their own im sure |
20:45.36 | racarter | what does iphone use, just a normal mac os x / bsd kernel |
20:45.38 | racarter | ? |
20:45.53 | B0jangles | racarter: more or less, I think |
20:45.55 | jasta | racarter: Because Google is hoping to spur innovation through Android in what is currently a very dim and bleek mobile industry. |
20:46.23 | jasta | And to do that, developers must be enticed to experiment, learn, and develop for the platform. |
20:46.28 | B0jangles | racarter: porting osx applications to it seems to be fairly tribial |
20:46.38 | B0jangles | s/tribial/trivial/ |
20:46.52 | racarter | why android? why not develop for another platform? |
20:46.54 | B0jangles | woh |
20:47.05 | jasta | racarter: This is the reasoning they have created the Android Developer Challenge. They are hoping to throw some money behind the problem and ensure that developers pay attention. |
20:47.33 | B0jangles | blah blah blah typa blah blah |
20:47.39 | B0jangles | s/typa/typo/ |
20:47.45 | jasta | racarter: I can only answer for myself personally, but other mobile platforms are notoriously restricted, clumsy, poorly developed, etc. Developer is hard and slow. |
20:47.47 | B0jangles | That's friggin' amazing |
20:48.04 | B0jangles | jasta: J2ME is a PITA |
20:48.04 | jasta | Development* |
20:48.32 | B0jangles | what else can infobot do? |
20:48.40 | jasta | racarter: Specifically comparing Android to Palm's ACCESS platform, Nokia s60, Windows Mobile, etc. Android is a dream by contrast. |
20:48.50 | jasta | B0jangles: Other than a simple perl one-liner? Probably little else. |
20:49.23 | racarter | ok.. i can ssh into my iphone.. i think you can run python and ruby scripts etc |
20:49.37 | B0jangles | s/[a-z]/[A-Z]/ |
20:49.43 | racarter | the android platform is nice but can it be bypassed to run normal apps |
20:49.45 | aksyn | racarter: and perl :) |
20:49.46 | jasta | racarter: I doubt that very much. Apple has placed in their licensing of the SDK that you can't develop a scripting language. |
20:50.25 | jasta | racarter: Android is not unlike other smart phone platforms in that sense. |
20:50.58 | jasta | For example, I could go install Windows, buy Visual Studio, and develop, release and even sell my Windows Mobile applications as much as I wish. |
20:51.20 | jasta | The difference here is that Android is well-designed, sensible, and powerful. Windows Mobile is a kludgey piece of shit. |
20:51.33 | racarter | i think i want a linux os on my phone |
20:52.15 | jasta | racarter: Well, that's fine, but that is not at the forefront of what Android is attempting to accomplish. |
20:52.40 | jasta | Linux was surely chosen simply because it was the most sensible place to start building a new mobile OS. It's free, can be stripped down, reasonably efficient, easy to develop against, etc. |
20:52.49 | racarter | but, if android is installed on my phone, can i still ssh into it and do linux stuff? |
20:52.55 | B0jangles | don't forget the fun penguin |
20:53.06 | jasta | racarter: That depends entirely. We've been having this discussion quite a bit lately. |
20:53.24 | racarter | we? |
20:53.35 | jasta | For example, what if there is no shell on Android? And no command-line tools installed? |
20:53.40 | B0jangles | you can ssh into an iPhone, it would seem reasonable that you could ssh into an Android phone if somebody writes/ports an sshd |
20:53.48 | *** join/#android tlockney (n=tlockney@71-36-97-199.ptld.qwest.net) |
20:53.55 | jasta | So you could port one, and port busybox and some other tools. And then you could write an SSH server in Java or whatever. |
20:54.03 | jasta | And then you could install that stuff painstakingly. |
20:54.08 | jasta | And then what? Has that helped you do anything? |
20:54.24 | B0jangles | I like having sshd on my iTouch |
20:54.32 | B0jangles | So, yes, it would be a good thing to have |
20:54.41 | jasta | Right, but aside from being a tinkering geek, what does it really provide? |
20:55.03 | B0jangles | I suppose you've got me there |
20:55.32 | B0jangles | Well, if somebody wrote a user-friendly application, one could wirelessly sync their MP3 collection |
20:55.52 | jasta | I, for example, run OpenWRT on all my routers because I adore the flexibility of iptables, tcpdump/tshark, etc. They are powerful, elegant tools that help me run my network the way that I want and with little fuss. |
20:56.17 | jasta | And I think OpenWRT is a nicely developed mini distribution, with a good package management utility, etc. |
20:56.39 | B0jangles | Like, you could have an aTunes application that wirelessly synced your songs over ssh |
20:56.51 | B0jangles | Assuming your phone is also a media player |
20:57.06 | jasta | But do I think that there is similar value in hacking my cell phone? Well, no. I am excited to see what other hackers come up with, but until then, I can imagine no useful reason to hack an Android phone. |
20:57.22 | jasta | B0jangles: I am developing an application natively for Android that wirelessly syncs your songs. |
20:57.36 | B0jangles | cool |
20:57.53 | jasta | It will be a lot better than a kludgy rsync/ssh mix (which wouldn't work for shit anyway because you only have as much space as your storage card provides) |
20:58.11 | jasta | That's I suppose my point. Mobile phones are very much so about the direct human interface. |
20:58.21 | B0jangles | how would your solution get around storage? |
20:58.39 | jasta | B0jangles: It uses the card as a cache only, and downloads actual content on demand (but synchronizes meta data passively) |
20:58.46 | B0jangles | ah |
20:58.59 | jasta | My point is, Android is sure to be very flexible and people will do lots of cool hacking on it. |
20:59.11 | jasta | Will much of that be interesting at the kernel level? Highly unlikely. |
20:59.27 | jasta | That said, Google's decision to use Linux excites me very much in another way. |
20:59.36 | B0jangles | sexually? |
20:59.52 | racarter | oh dear |
20:59.53 | jasta | With the OHA, Google has ensured that we will see a new era of stable, robust Linux kernel drivers for advanced, modern cell phone chips. |
21:00.11 | B0jangles | aye |
21:00.42 | jasta | With this, I could imagine hobbyist folks doing all sorts of exciting things by purchasing an OEM chip from say TI or Intel, putting it on a small board and installing it in their car or something to have an Internet jukebox type thing. |
21:00.56 | jasta | They could buy a family plan or whatever, and get unlimited data, then go to down :) |
21:01.00 | jasta | go to town* |
21:01.30 | jasta | and you wouldn't need to mess with hacking an Android phone at all, which would be sort of stupid. You'd take the much smaller chip, the wealth of available Linux drivers, combine them to create your own very cool set up. |
21:02.28 | jasta | Currently, Linux has very poor support for wireless devices. Android is going to be a very strong force to change that, and is quite probably entirely unintentional. |
21:03.11 | jasta | That said, do I care if I have ssh running on my phone? No, not at all. Do I like that Android uses Linux, is open source, and is very flexible to develop against? Yes, very much so. |
21:03.37 | B0jangles | so if there was an installer application that had 'sshd listed, you |
21:03.42 | B0jangles | wouldn't click on it? |
21:03.54 | *** join/#android krau (n=cktakaha@189.70.14.252) |
21:04.17 | jasta | Probably not for any other reason than to debug some broken thing I wrote. |
21:05.00 | B0jangles | for that reason alone it would be worth having |
21:05.20 | jasta | I suppose, but I would say it is very unlikely that I will ever want to debug an actual phone. |
21:05.27 | B0jangles | shit, just to run 'top' to see that the IRC application you installed is the thing that's draining your battery... |
21:05.29 | racarter | is this an acurate statement.. google android is an development framework that wraps an underlying linux kernel? |
21:05.40 | jasta | There is a reason why emulators exist for nearly every mobile platform. Developing on real hardware is frustrating. |
21:06.08 | B0jangles | jasta: yeah, but before you release something, you have to test it on hardware first |
21:06.29 | jasta | racarter: More or less, yes. Instead, I would call it an application stack, which suggests the layering of the Linux kernel, other open source components, and the Android framework as written by Google and friends. |
21:06.53 | jasta | B0jangles: Yeah, and if the emulator is worth a damn, it will work perfectly when I do. |
21:07.02 | B0jangles | good luck with that ;-) |
21:07.14 | jasta | The emulator isn't just some silly trick. It emulates an ARMv5 processor and boots Android precisely as it is to be on a real phone. |
21:07.34 | jasta | Any difference between the two would be attributes to a bug in QEMU. |
21:07.45 | jasta | attributed* |
21:07.47 | B0jangles | Yeah, the Sun J2ME emulator is supposed to work too, but then you test your app on a phone, and it doesn't work... |
21:08.14 | jasta | That said, if I was a retarded monkey, I might find lots of race conditions and other concurrency nasties when moving to real hardware. |
21:08.43 | jasta | But I am not a retarded monkey, and I can manage the complexity of concurrency just fine. |
21:08.52 | B0jangles | Carmack said it best "Write once, run anywhere? Ha! Ha ha ha ha h ah ah a!" |
21:09.03 | jasta | B0jangles: That is because the J2ME emulator is not worth a damn. And also because J2ME is a miserable platform. |
21:09.14 | jasta | B0jangles: Yes, and that is how good developers actually work in practice. |
21:09.27 | jasta | Instead of retarded monkeys, as I previously mentioned. |
21:09.28 | B0jangles | jasta: agreed. but we have yet to see if the the Android emulator is any better |
21:10.02 | jasta | B0jangles: That's not true. The Android emulator is simply QEMU. We know that QEMU is quite good. |
21:10.20 | B0jangles | I hope so |
21:11.46 | jasta | Well, I have used QEMU quite a lot for many other projects. I applaud Android for using it for the basis of their SDK. |
21:12.21 | jasta | It would be stupid for them to have written something custom for Android. |
21:31.12 | *** join/#android Kriyasurfer (n=Akashakr@dsl027-162-152.atl1.dsl.speakeasy.net) |
21:38.58 | proq | jasta: google didn't write android per se. google acquired android from two very smart developers |
21:39.22 | proq | racarter: yeah, I feel your pain. I asked the same question here a few days ago |
21:39.28 | *** part/#android bluerive1 (n=qtameic@setnip01.ericsson.net) |
21:40.16 | proq | racarter: the thing is, there are many many tools on android already. and if the phones on which android exists are geeky enough, people will port more tools to android |
21:41.03 | jasta | proq: Will you be one such person porting tools? |
21:41.08 | proq | racarter: or the opposite will happen. they will port their tools to java or ajax applications |
21:41.23 | proq | jasta: I have written an emacs client in ajax, yes |
21:41.52 | jasta | Huh? Why? |
21:42.03 | proq | because emacs is my OS of choice |
21:42.22 | jasta | but why write a web frontend to it? |
21:42.43 | proq | google has a similar approach. one of their summer of code projects is to write a javascript implementation over elisp |
21:42.55 | proq | jasta: well that's top sekrit |
21:43.17 | *** join/#android B0jangles (n=tomadmin@c-98-226-6-195.hsd1.il.comcast.net) |
21:43.32 | proq | it isn't a frontend either. the entire app is in ajax |
21:43.51 | proq | with the exception of persisting data |
21:43.56 | B0jangles | what is |
21:43.57 | B0jangles | ? |
21:44.04 | jasta | That doesn't make any sense to me. |
21:44.06 | proq | an emacs client I'm working on |
21:44.11 | jasta | What does such a thing help you do? |
21:44.17 | B0jangles | you're writing an emacs client in AJAX? |
21:44.32 | proq | wrote, actually. it's on the shelf atm |
21:44.38 | B0jangles | huh |
21:44.56 | romainguy_ | proq: jasta: google didn't write android per se. google acquired android from two very smart developers << ah :) |
21:45.22 | jasta | romainguy_: ? |
21:46.00 | romainguy_ | jasta: assertions about what's going on are just interesting :) |
21:46.08 | jasta | proq is right about that, though. i should adjust my comments :) |
21:47.32 | jasta | romainguy_: So, does Dalvik have any pointy GC anomalies I should know about? Because my program's heap size keeps growing and growing... |
21:47.44 | jasta | but iam certain that there are no persistent references to the objects causing it to grow so fast |
21:47.48 | romainguy_ | if your heap is growing, you're leaking |
21:48.02 | romainguy_ | anyway |
21:48.07 | romainguy_ | I'm away for a few days |
21:48.08 | jasta | Yes, but where? :) |
21:49.12 | proq | in your code :) |
21:49.25 | jasta | I actually don't think so. |
21:49.51 | jasta | I'm churning a lot of data, but it is tightly controlled in a scope that should be easily erasable. |
21:50.04 | proq | or you could be exploiting a memory leak in dalvik |
21:50.11 | jasta | That's more like what I'm thinking :) |
21:51.04 | jasta | kaboom, it finally exploded again |
21:53.01 | jasta | fires up ddms |
21:53.10 | jasta | i ahven't explored this tool much; perhaps it can help me isolate the problem. |
21:53.40 | *** join/#android parti (n=parti@77.163.25.244) |
21:58.47 | jasta | hmm, looks like it's triggered by a not so graceful allocation attempt of 115874 bytes :) |
21:59.02 | jasta | or at least, the oom killer was triggered by that |
21:59.37 | rhett | does anyone know of a charting library for android? |
21:59.48 | rhett | has anyone gotten jfreechart ported? |
22:00.18 | rhett | This is interesting, but I dont' think it's released yet http://www.youtube.com/watch?v=qZLueEEtoJ8 |
22:02.24 | rhett | proq, an emacs client in ajax? |
22:02.38 | proq | rhett: yep |
22:02.53 | rhett | is that available? |
22:03.08 | proq | rhett: no, it's not finished |
22:03.10 | rhett | what exactly is an "emacs client" compared to just emacs |
22:03.52 | proq | rhett: emacs can exist as a server or client |
22:03.59 | proq | rhett: for example, M-x server-start |
22:04.12 | rhett | what does that do? |
22:04.25 | proq | will make your emacs act as a server that handles all emacs sessions |
22:04.34 | rhett | werid |
22:04.55 | f00f- | ugh |
22:04.58 | proq | so if you svn commit, for example, it will switch to your running emacs instead of starting another instance of emacs |
22:08.34 | jasta | hmm, busybox top on android does not seem to accurately reflect process memory usage. |
22:08.44 | jasta | it shows all of the com.google.* processes for me as using 75% each |
22:09.02 | rhett | jasta, it's probably sharing resources |
22:09.45 | jasta | oh, of course |
22:10.06 | rhett | so does anyone have luck porting things like Jfreechart? It would be good if that was open |
22:10.33 | rhett | i suspose I can draw my own charts from scratch with the 2d library |
22:10.58 | f00f- | why |
22:11.11 | rhett | why, what f00f- ? |
22:37.53 | *** join/#android mickrobk (n=mmm@ucb-np1-103.colorado.edu) |
22:44.55 | *** join/#android duey (n=Nick@203.96.223.40) |
23:02.01 | *** join/#android pombred1 (n=pombreda@c-67-180-198-25.hsd1.ca.comcast.net) |
23:02.15 | *** join/#android robk (n=mmm@ucb-np1-103.colorado.edu) |
23:13.32 | *** join/#android hoopla (n=mgonzale@helios.cs.csubak.edu) |
23:33.59 | *** join/#android tmcneal (n=asdf@pool-151-199-245-93.phil.east.verizon.net) |
23:42.29 | jasta | Hmm, I think the leak is in Base64Utils.decodeBase64..... |