HNHacker News
TopNewBestAskShowJobs

babebridou

498 karma · joined April 25, 2010

Apps
submissionscomments
babebridou··on How France’s Free will reinvent mobile
> It's rather an initiative championed by very very smart people, with very decent ethics.

Let's not go there! Niel, founder of Free, did it all "for the lulz". His favourite passtime as an engineer founder is to take a market, build a 100% better product, vastly undercut the competition and watch the competition rage, killing businesses in the process. He did exactly this with all his former businesses, starting with Porn services on the Minitel, and was even sentenced to deferred jail time for misuse of company asset.

This is clearly not "decent ethics"!

babebridou··on How France’s Free will reinvent mobile
DSL Internet speed can be explained, according to my brother who lives in the US, with the way that local carriers segmented the broadband network by area. ISPs in the US, maybe in Canada too?, apparently benefit from a quasi-monopoly per location, whereas in France network access is national and guaranteed, meaning that wherever you are in the territory, you can subscribe to any DSL offer from any ISP as a form of public service.

As a result, in 2002, Free came up with their disruptive all-in-one 30€/month DSL box. The announcement single-handedly killed AOL France which was offering 45€/month for an inferior service, like the rest of the competition. The survivors had to align their prices, and there was much pain and rejoicing.

What I saw this morning could be history repeating itself. I wouldn't be surprised to see Bouygues Telecom (the "weaker" of the three legacy Mobile Carriers) shut down within months. However you put it, Free's offer is both superior on paper and cheaper than the competition.

I'm not sure about pricing of mobile plans compared to French ones, it was actually the opposite when I did a quick survey of iPhone plans comparing France's Orange to USA's AT&T offers, I saw something like a 30% cheaper phone and a 10% cheaper plan in the US than in France with napkin maths for taxes. One thing is for sure, we've had quadruple play offers for a while now, and the very low DSL price since 2002 helped a lot with the overall family budget.

babebridou··on How France’s Free will reinvent mobile
The comparison with Jobs is very far-fetched in my opinion. Niel was rude, aggressive, partisan, almost violent with his words, and was all around not a good orator.

The show was a blast nevertheless!

babebridou··on How France’s Free will reinvent mobile
Niel specifically included all protocols, NNTP, P2P, VoIP etc. when he presented the "unlimited" data plan, to contrast with the kind of data plans the other carriers provide.
babebridou··on How France’s Free will reinvent mobile
the first one is free. The others are either 2€ or 14.99€
babebridou··on How France’s Free will reinvent mobile
The first "2€" mobile plan is completely free if you are a broadband customer. This puts the family budget down to something very, very manageable. None of the plans include any sort of 12/24month lockout. Devices payment over up to 36months no additional charges.

This is aggressive, very aggressive disruption.

babebridou··on How multitasking really works on Android and iOS
Others mentioned it, "Staying alive" is indeed not regulated for services nor for activities on Android. It is however strongly recommended to make Services terminate themselves when they are done and instead use the AlarmManager service for handling periodic background tasks. The idea is that the AlarmManager syndicates all periodic tasks and performs then in batches to minimize battery consumption and maximize sleep mode.

Emphasis on "recommended"...

Anyway there are a lot of technical things to say about the Android Multitasking System. Of course, there is the whole application lifecycle thing that the article mentions, and the Service object that others mentioned, but then again your intuition is spot on: it's roughly the same mechanism on iOS and Android. The key difference for Android is that it's the exact same mechanism that is used to navigate between screens of an app and to navigate from one app to the other, and this mechanism is the Intent system. Its main problem is that it's apparently hard to vulgarize it for marketing people.

Let's look at it that way: I tell the phone "show my inbox", the phone looks up a list of apps that declared that they can "show" an "inbox", and checks if they have access to "my" inbox. Once it resolved a list of eligible applications, it executes it using the Intent as unique call parameter. If the executable is a Service, it starts code in the background. If the executable is an Activity, it brings its Screen to the front and updates its content using the Intent's parameters. In our case, it shows the inbox of the user. If the Activity was still in memory, it doesn't create a new one but rather reuses the same and just updates the content. This is essentially the system that allows the "Back" button to work seamlessly, since the history is nothing but a stack of Intent objects, each with enough information to recreate the whole screen from scratch, or just update the content back to what it was before.

The AlarmManager system I mentioned above works the same way: when you register an alarm, you put an Intent in front of a Date. When the Date comes, the Intent is fired, the OS resolves the corresponding Application, Activity or Service and starts it.

In the end, Multitasking in iOs is exactly the same as multitasking in Android, but with an added regulation on what can stay really alive and for how long - the main difference is that the whole Android OS is designed on top of a system that allows launch arguments and contexts to be stored and passed around seamlessly at high speed. The result is why the article author said "multitasks like a boss".

For the end user, the only visible difference is that Android has a Back button. Oh, and that his battery life is in the hands of app developers rather than Apple.

babebridou··on HTML5: With Great Templates Comes Great Responsivity
Well, from purely an app developer's point of view, the situation with Webviews on Android is completely opposite to the one you describe! WebViews are power hogs and unbearably slow to render anything. Their only saving grace in that respect is that they share a common WebViewCore thread to perform most of the legwork behind the scenes, so you can have plenty of these with relatively low overhead, but they truly are to be avoided at all costs if your objective as a developer is low battery consumption and a responsive/fast UI.

The main problem with most android apps is that they still include a tiny WebView just for displaying ads, carrying with it its dreadful WebViewCore Rube Goldberg machine.

I find it sad that Android App developers in general are so poor that they can't figure out a way to make their apps run faster or smoother. Native is and always has been the way to go for performance, responsiveness, UI speed and power saving on those devices.

Here's to hoping that the Android team solves the horrible performance and compatibility issues on their Webview component so I can safely go back on my words in the future.

babebridou··on HTML5: With Great Templates Comes Great Responsivity
As a dedicated Android supporter, I wonder when the Android webview system will be decent enough to actually work with that design pattern, because the premise is good. Shake a xoom a little and the css loses track whether it's in portrait or landscape.
babebridou··on Ask HN: How can I convince my co-founders not to use a LAMP stack and should I?
How do you assess the "rightness" of the platform before you even know the order of magnitude of, say, traffic or concurrent users?

I would love to rewrite my engine if it means I have a thousand times more customers than when I started. I mean, it's a win-win bet I'm willing to take: win now because I know the tools by heart, win later because I'll be making a ton of money later on and I'll be reingeneering a system I know by heart - which is so much cooler than writing fibonaccis in a language I don't know.

Chances are you're going to rewrite it all anyway for a strategic pivot, so why bother now with problems that you don't even know will ever exist? Just pick your best tool and make the most of it - premature optimization is also a form of procrastination.

babebridou··on I Think You're Fat (2007)
The question is more "what if you could talk as fast as you think?"

French stand-up artist Pierre Desproges once said "one can laugh about anything, but not with everyone."

It's the same with radical honesty. I've been able to enjoy "radically honest" types of friendships. It works, it really does, it's on a different level of enlightenment from any other kind of relationship, until someone simply refuses to communicate anymore for some reason.

It's one of those things you find out of sheer luck, and when you do, you'd better milk it for all its worth while it lasts. The closest description would be that of a jazz band improvization ("boeuf") turning music into something else entirely.

babebridou··on Should Wikipedia run ads that ask for money, or ads that make money?
This would actually be one of the better ways to do it. The link would only lead to Wikipedia donations, and the business would be essentially paying for public goodwill, a hefty sum of it.

Just imagine Coca Cola making a big donation to Wikipedia just to have its name figure on the donation ad for the "Soda" category. I'm not sure how the community would react to this, though.

babebridou··on Ask HN: Best book you read in 2011
I often got back to Playing to Win by David Sirlin - http://www.sirlin.net/ptw/

Though it's certainly aimed at competitive gaming, I also use it at times as an inspiration for my business. It helps whenever I need to take a second look and play the devil's advocate about my own decisions. Reading it also earned me an extremely effective weapon against procrastination.

babebridou··on Ask HN: Best book you read in 2011
I just finished Logicomix (got it as a Christmas gift), in French though. It's a great read for anyone looking for a refreshing take on the history of mathematics in the early 20th century.
babebridou··on IPhone share hit 36% in U.S., fell to 20% in France
I'm just implying that when the entry price of your product doubles and competition undercuts you to death, it's no surprise your market share goes down - at least in France.

I'm also implying that maybe under Apple's pressure, maybe with their cooperation, maybe against their will, the various french mobile operators settled on a common price for the iPhone that is way higher than when Orange had a monopoly, which is illegal as far as I know.

"The French market is showing increasing signs of price sensitivity" really is an euphemism for "The French see what you did there, Orange, Bouygues Telecom & SFR". Android has nothing to do with it, really.

babebridou··on IPhone share hit 36% in U.S., fell to 20% in France
"just price" indeed. In France there are incredible offers for Android phones (I got my Motorola Atrix for "free" back in september), whereas the prices of iPhones have doubled since the device opened itself to multiple operators, from 99€ for 16GB to 199€ for the same iPhone4 (with network plan) between december 2010 and december 2011.

We suffer from a strange case of illegal trust between our three main network providers (four if we include the big reseller Virgin) in France, and sadly we have a hard time to convince the authorities to act, since we don't have the concept of a class-action lawsuit in our system.

edit: typos

babebridou··on 700,000 Android devices activated each day
The current strategy for android is to keep pushing the device level up through app developers rather than through carriers. I'm now at a point where I do all my devs targetting Ice Cream Sandwich and including the compatibility packages for older versions. This does not fix all of the fragmentation you're referring to yet, but it's a very definitive step forward. Of course, this essentially means that potentially all my apps are carrying the same patch of the OS with them...

Anyway about 80% of my previous fragmentation issues were solved with ICS. The remaining 20% though, are the truly hard ones!

babebridou··on No-permission Android App Gives Remote Shell
I'm currently building an app that only uses the permission for internet access, but it's also using basic functionalities of the OS for managing specific types of public files that might be on the SDCard or not depending on the device, in my case it's pictures through the Media ContentProvider.

I'm guessing the exploit in the article is pushing this method to the next level.

babebridou··on All Programmers Are Self-Taught
This is my feeling, too. I never took any serious CS course during my studies, not more than maybe an hour a week at best on Mathlab, Caml, Prolog or Pascal, a tiny bit of assembler or LOGO, and these courses were almost always tied to other scientific disciplines, using the computer as a tool in the exact same way as we would use a ruler, an erlenmeyer or a LED.

I learned programming at work. I was working in a startup that I joined shortly after the internet bubble burst, in 2002, as their first employee. I was taught, beyond syntax and flow, to find my own "Way of the Programming Fist", as I like to name it, and more importantly to keep an open mind for other ways of programming. The key, and possibly the only lesson that is still relevant today:

"When in doubt, remember that your Way of Programming is complete, which means you can eventually build anything with it, anything. Whether you want to display a barchart from a static printer spool log or light up a bulb with a handclap, your Way of Programming can eventually do it. For every goal, there are probably faster, stronger or easier Ways, but these are never 100% better: there's always a tradeoff. For that reason you don't need to learn the other Ways - but make sure you acknowledge their existence, learn and remember these pros & cons your whole life."

You're talking about "Quality Code" - I didn't get it through people looking at my code, but through me looking at other people's code. My brains designed some abstract "compiler" of sorts, used in my very mind to parse an alien piece of source. For me, "Quality" in that domain is the amount of work I need to do to be understand the "Way of the Programming Fist" of the coder, and use it in turn for my own programs. It has a lot to do with conventions, design patterns, formatting, naming and of course the programming language's "family", whether it's procedural, functional, object-oriented or whatever.

A decade later, it feels like it's still only the beginning, but I'm now proficient enough to understand the pros and the cons of some of the various conventions, design patterns, algorithms or programming languages I've met along the way, the way they fit with various goals and requirements, I'm mature enough to make my own choices, and I actually have my own programming business.

I would absolutely describe myself as a self-taught programmer, but like the above poster said, I would have gone absolutely nowhere on my own. Programming is all about knowledge transfer - "Here's what I use to do this, and here are the benefits, here are the tradeoffs" should be every programmer's favourite sentence.

babebridou··on Famous Last Words by Bosses I've Had
"I don't understand", eh :P, well, allow me to expand then, my English level isn't good enough to get my point across in a couple sentences.

- The guy barges in uninvited as if all hell broke loose and goes directly to the tech manager instead of passing through our customer service. Bad manners.

- When I patiently and openly ask him about the nature of the issue, I expect a bug, a missing feature, an accident, something that I can fix. The only fix this guy has in mind is me firing my "incompetent" dev.

- Labelling someone in my team as incompetent, without any names, means labelling me an incompetent, regardless of whether I was in charge back then. Helping him would be equivalent to taking the blame and would put me in a position of inferiority. Over something we basically did for free as a favor. One full year ago.

Best case scenario: for a full year he was in front of his product and raging over the dev's incompetence without telling anyone => incompetent product owner

Worst case scenario: something came up in the recent past which makes our product dangerously unfit under these new conditions. The best move at this point is to ask for improvements & fixes, workarounds or alternatives, or request through the chain of command to have us all replaced if it was really that bad. He simply ignored all that and thought he would solve the situation by barking baseless insults at my face => incompetent manager.

What the guy did was the professional equivalent of Trolling. I did what I usually do, I squelched him, sent a mail to abuse@theguy.com, told my system to filter him out, and moved on.

babebridou··on Notch live coding for Ludum dare 22
To be honest I don't know either. Eclipse has always runned fine until the rare day when some plugin goes overboard and destroys all hope.

Last year for instance I've had bad issues with autocompletion on some huge classes (GLES20 I'm looking at you), but 1) that was when I was struggling on the macbook already, and 2) Someone fixed the problem somehow while I was busy downgrading to a stable version.

Eclipse kicks ass. I only said it was laggy out of mercy for the people who can't get productive with it.

babebridou··on Notch live coding for Ludum dare 22
I learned programming with Eclipse default settings and Java, on a PC with a classic AZERTY straight keyboard with 105 keys layed out in the classic way. At some point there's not debate, yeah Java is crap, yeah Eclipse is laggy, etc, but my hands, brain and code work completely in concert when all those are united and there's no question that I can get anything done much, much faster with these. I actually gave up on using a macbook after a year and a half of constant practice because it still felt far too tiring to build my android apps compared to the PC, even though it was still Java and Eclipse.

It would be the equivalent of speaking your mother language (or native tongue or first language, whatever you english-speaking people call it :P) vs speaking a language with which you're "only" fluent when you just have to express a point very fast.

I'm not saying Notch is in the same situation (or anyone else actually), just that there are reasons, beyond being able to get things done using just the available tools, to use a setup that is often seen as suboptimal.

babebridou··on Famous Last Words by Bosses I've Had
Well, as much as I agree with you from a personal perspective, I'm afraid it is part of your job to manage your boss, just like it's part of your job to build your team, build yourself, build your product, build your users and build your customers.

Anyway I walked out due to interlocutor stupidity exactly once:

    Random guy that one of ours helped (for free) a year
    before barges in and asks to talk to the manager, 
    someone points him at me.
    Guy: I *demand* to talk to you about what someone from
    your team did last year. It's bad.
    Me: Sure, I'm not familiar with the story as I took
    charge only last month, and I'm in a pinch for some 
    urgent business. Your thing looks urgent too, let's
    schedule an appointement at noon.
    Guy walks out mumbling to himself.
Noon - the following are EXACT QUOTES:

    Me : So how can we help?
    Guy : you guys did this last year. We can't use it.
    Me : what's the problem? Did something new come up?
    Guy : I think the problem is that whoever did this is
    incompetent.
    Me : woah, I didn't expect I'd have time for lunch 
    today.
    /me walks out, goes to superior, tells story, the next
    day the guy in question gets shelved.
babebridou··on Famous Last Words by Bosses I've Had
This quote from the OP hit home.

    Me:   The program was written with 3 SQL selects 
    inside a loop. It ran OK when we had 500 parts. 
    Now that we have 10,000 parts, it runs real slow.
    Boss: I don't understand.
I could say "true story" here... with a twist. Saying "I don't understand" is basic social engineering & management 101. The boss actually understood every single word and implication in that statement, he just wants to buy some time to decide silently on the best answer. Saying "I don't understand" puts the pressure on the dev who is lead to believe it's his fault and needs to think of a better description, maybe less technical and more to the point to express the problem. While the dev reformulates, the boss has finished thinking of an answer and can give it instantly. In the end, the dev has managed to express a problem with "simple" words, and the boss has proved he has great skills at solving problems once they are reported in the correct form.

I hated my boss when he did it to me, but I have to admit I used this in turn countless times when I became "the boss", to the point it's become a private joke in my former company, anyone saying "I don't understand", whatever their position, instantly got thrown balls or clips in their face.

babebridou··on Why apps are not the future
I'm definitely glad you like it, it means I'm not the only one ;) I'll see what I can do about the share button & opening the source. There's definitely tons of improvements to be made.
babebridou··on Why apps are not the future
Besides, you can put html code in textviews, webviews and their ilk, make the links clickable and the app will silently create the corresponding intents.

The only aspects I can think of right now that are lost in the translation are webpage roots and local # anchors. There might be a lot more, though.

babebridou··on Why apps are not the future
I never tested this in particular, but since it uses HttpURLConnection, the following of redirections is done under the hood - I guess it would be the same limit as the default browser?
babebridou··on Busted: BitTorrent Pirates at Sony, Universal and Fox
It is the case in France. You could see it the same way as a car insurance, you're responsible for any damage it does, except your car can be safely locked in your garage when someone else wrecks it into a porcelain store, and you can't possibly prevent it from happening nor prove that it wasn't yours.
babebridou··on Why apps are not the future
You can specify your app as a receiver for as many authorities as you'd like, by the way, or even register your own schema. You can also declare your app as a content provider, which means that your app/service becomes a data source, just as the contact list, or the photo repository, and make that data available to others, defining your own private permissions, etc.

My app FairyPreview for instance (https://market.android.com/details?id=com.fairyteller.linkpr...), is registered as an authority for the myriad link minimizers out there, so whenever you click on a minimized link in the Twitter app or anywhere apart from a browser, it will suggest my app for a faster preview instead of taking hours to load a webpage designed for a desktop browser hiding behind an unknown bit.ly link, itself disguised as a t.co, for example.

It's not perfect and it's very old, the code is from 2009, my very first attempt at playing with the cross-app link system, but it works pretty well still. I'm strongly thinking about opening the source code, since I don't make any money out of it (free, no ad, maybe 50 downloads :P), and there's plenty of improvements I'd love to do but don't have the time these days.

babebridou··on Why apps are not the future
While linking to other apps in Android is absolutely trivial and mostly painless (even considering it's java), the more tedious part is to implement the intent service itself. The "<a href=" example is the wrong one, since the call itself is practically a one-liner in java, whereas implementing the equivalent of a "Hello {{name}}, how are you since {{last-visit}}?" response would cause a hell of a lot more headache.

The API is solid though, the linking is done at a very low level, and to be honest when you get the hang of it, it's hard to let go of that awesome feature of the OS. I strongly support the use of RESTful IntentServices and ContentProviders, even if you don't open them to other apps, it's specifically the part that the Android OS got right. Opening them up for other apps to link to is a one-liner config change afterwards.

← PreviousPage 4 of 7Next →