MikeK's software notebook

MikeK's software notebook

What you will find

This used to be the place where I wrote stuff I was thinking about while working on the Mozilla project.

Maybe in the near future I'll start to update it again as I'm involved in a couple of new open-source projects - updates pending...

Is it wrong to make a profit on the work of others?

I wonderPosted by Mike Kristoffersen 13 Jul, 2010 11:30:47
Український переклад

The open web app store idea got some attention at the Mozilla Summit. I blogged about the idea of anyone being able to create sites to "sell" applications created by others, fortunately it seems like that is also what Pascal had in mind (correct me if I got it wrong).

I don't think there is a big opposition to let the creators of web apps earn money on their creations - what could be discussed is whether or not the store should be able to take a piece of the cake, and if the creator should have a saying as to what price the end user pays, I'll get back to this in a moment as that is what this blog post is mainly about.

First of all I would like to note that as there are hardly any borders on the Internet I don't believe that any ideas about having different prices or release dates on different markets is something that belongs in the current world.

What I do believe is that the price of the same product can be different depending on which store you buy it in and I think it is fair that the store charges for its service.

If I create some application I should of cause be able to decide the price of the application, meaning I should be able to say how I want to be compensated for someone else to use my creation, I can set the price, I can choose that I don't want any compensation, that I want one dollar, or that I want a trillion billion dollars for it.

The big question is now, after I have sold the application to a third party (think the store), should I still be able to decide what price the third party takes, if the product is resold? Personally I would be pretty annoyed if I bought a TV set and the producer of that TV set could decide what price I could resell it for, say Sony said that I can't resell my Sony TV for any price less than what I paid for it originally, or if the previous owner of my house prevented me for selling my house for more than what I originally paid.

I think the same goes for software, if I create a store of web apps, I should be able to sell the applications for less than what I pay for them, I might want to draw traffic to my store by having discounts, or I might charge an overprice for extra service, or to cover the cost of advertising to draw people to my store.

I fully understand that if I create an application and say I sell it for 99 cents, then I might feel cheated if I see a store being able to sell it for 10 dollars, but that is the world we live in, and competition between the stores will hopefully keep the prices down, when anyone is able to create a store and set the prices - If I go to a store and pay 10x the price that I later find the same product for in another store, then the store that charge 10x the price lost me as a costumer for the future.

My point is that if the stores can see a business case in selling apps, then we will have much more choice (one store can offer a money back guarantee and another one can have an offer of the week to draw customers in).

In the real world price fixation and exclusive stores rarely benefits the consumer.

Anyone should be able to setup a store and sell whatever applications they like, as long as the original creator of the application gets the compensation that they want.

  • Comments(0)//developer.mikek.dk/#post56

An open, open web app store

I wonderPosted by Mike Kristoffersen 08 Jul, 2010 02:46:03
I have just been to the talk about an open web app store, interesting and yes we need something way for the users and the developers to meet, and maybe for a small fee make their exchange.

Now the question in the session was if Mozilla in some way should be involved in creating such a beast. Yes, I think we should help to promote the exchange off apps - but should it be in some kind of store? - The problem with creating such a thing, in my eyes, is that its like saying there should only be one search engine, and it should be the creators of that engine that should decide how the individual apps are judged.

Now you could say that it is free for anyone to create their own app store - but that gives the problem that my small and unknown store might not attract the developers - like you would have multiple search engines, each searching in its own set of pages - wouldn't it be better to create some kind of protocol, so I, as a developer can host the app where I want to - could even be on my own server - and then the stores could pick the apps up from whatever place they wanted?

Wouldn't it be nice that if I found a cool app, I could write about in a blog post - and "sell" it from the blog post, so the people that was reading it, could just - with a single click - buy it from within my post - I could link to it from my facebook wall, and my friends could buy it from within facebook? - how the technicalities of micro payments should be handled can be discussed, but it should be possible to integrate into the server that is hosting the app, by letting that communicate with the server that is hosting the selling page, or the server dealing with the payment... many people know more about how to make this secure for both seller and buyer than me :)

Or maybe it is just a dream that this could be possible?

  • Comments(3)//developer.mikek.dk/#post55

Posts and relevance

I wonderPosted by Mike Kristoffersen 28 Aug, 2009 02:35:08
Why are you reading this blog post? - Is it because you know that it's the best use of your time, because you hope it will be entertaining or do you have to read it to see if it contains important information?

I hope that this particular post holds a view on an issue that others might find interesting, thats why I'm writing it, but whether that information is interesting to especially you, my dear reader, as an individual, that is another question, and one that I can't answer and is one of the topics I will try to cover.

My point is that with this blog as with the many others on the net the content and relevance varies a lot - I sometimes write a blog post if I get a link error when building Firefox and tell how I resolved it - I can see on the search strings that hits the blog and the feedback I get that some people are actually being helped by this. But does that make it relevant enough to make noise of it on planet.mozilla.org ?

Actually I blog'ed for a while without attempting to be on planet mozilla with it, because I felt it was irrelevant to most of the readers - I mean, what is the likelihood that you have a link error, and look at planet mozilla trying to resolve it? - you are much more likely to hit google with the error message and try to solve the question in that way.

If you look at this blog post, what is the chance that you google to learn about my opinion on how information is flowing in Mozilla? - pretty low I guess... as... I mean, why would you search for such a thing? My point being that where the link error is clearly something you search for (or pull) when you have the need, a post like this needs to be pushed more or less direct to reach its intended target audience.

If I were a close friend to every human in the universe I would of cause know who would be interested in this blog entry, and I could send them a mail with a link and ask them to have a look - but to be honest, I don't even know every human in the Mozilla community, and I would never be able to know the exact audience that would gain anything from reading these lines.

So we have RSS feeds and planet mozilla to give people an option to filter and read for them selves what they find interesting, which I guess is kind of better than nothing - but not ideal, as there is just too much information of limited relevance. (Not in the sense that most posts are bad or irrelevant in them self, the vast majority clearly have a purpose, have relevance and many are well written (and illustrated) - it's just that not everything has the same relevance for everyone.)

What I think could be beneficial would be an edited version of planet mozilla, where the individual posts were grouped and prioritized like in a newspaper style, with "hot" and community wide important stuff (like a new firefox release) on the front page described by a few lines - it should have a nice layout with new important stuff at the top, a short description and then a link to the real "content" (really, look at online newspapers, and you'll know what I'm talking about). Related posts should link to one another - might even have a "other people who looked at this post also looked at" like some Internet shops or auction sites have.

Yes, this would mean that there would be an entity whose function it would be to judge importance of one post to the other - I don't see anything wrong with that, if I lost trust in the judging entity I could just switch to a native feed of "latest" post giving me what planet mozilla is today - I'm not talking about an entity that would be able to censor anything but illegal stuff - the task should be to group, organize and prioritize.

Who knows there might even be someone out there that could automate this, so articles... sorry... blog posts would be prioritized after how many times they were shown, and it was the readers who grouped the items, by checking flags or something...

The whole idea would be to make it more easy, for the majority of readers, at a glance to see if there is something important going on in the community.

If we imagine such a system being build, it might even be possible to extend it with what we have in the news-groups today. As an example, how many people know that we now have a common coding-standard, across modules in Mozilla - that all new code must have a 2 space indent, and a max line with of 80? (with the usual, keep the style in the file you are editing, but if you re-factor or create new stuff, it is no longer up to the module to decide the indentation).

The setting of the indentation was hidden inside a thread somewhere in the newsgroups with a title that indicated it was about whether or not we should have a common coding standard. Now assume I didn't care about coding standards - why would I do anything with that thread than mark it as read? - how would I know that we have a common coding standard, and as important how would I know what it was?

I'm far from reading all newsgroup post or blog posts that are being made in the Mozilla world - I'm at best skimming the titles if something catches my eyes, but I don't have time to read all of it, nor keeping an eye out for discussions on IRC - I don't have time to do that if I'm going to do some actual work too. But if we had a page I could go to in the morning, and see what topics and discussion that were hot, if I could click on "development news", if it was in blinking red that the coding standard was (about) to be changed I think we would all save time, and more importantly generally be more up to date with the stuff that was important for us as individuals in the community as there would be a single entry point into the information.

  • Comments(5)//developer.mikek.dk/#post48

The Mozilla coding standard – Entry 1

I wonderPosted by Mike Kristoffersen 27 Jul, 2009 17:27:58
The most explicit Mozilla coding standard I have been able to find is called the coding style guide and is found here: https://developer.mozilla.org/En/Developer_Guide/Coding_Style

It is however apparently not complete, and its more respected by some than others – I'll come back with generic examples of this in coming posts.

Rather than just point my fingers at what I think is wrong I have chosen to attempt to start a debate of what we want to accomplish with our coding standard – because this is not clear to me at the moment and I think we need a debate on it. When we start to have a common understanding of why we want it, we can write this as the introduction to the coding standard, and we can go into a discussion of the individual rules and recommendations.

My primary reason for doing it this way is that, as long as we don't have a well defined purpose with the coding standard it is more a question of who likes what or randomly joins a discussion, rather than a judgment of whether a given rule/goal will bring us closer to the overall goal.

Some example goals could be (note, these goals are examples, they might, or might not be what I think should be our goals, nor are they all the goals I could think of):

1a) Make code execute as fast as possible
1b) Make code easy to maintain
1c) Make code easy to write
1d) Make code look esthetically pleasing

It is my strong opinion that the overall goals for a coding standard shouldn't be concrete things like:

2a) To have a common naming convention
2b) To keep code complexity down (for any of the ways to measure complexity)
2c) Make code compile as fast as possible
2d) Automate as much as possible since these are ways to accomplish overall

goals, like “2a) To have a common naming convention” could be a way to get “1b) Make code easy to maintain” but it isn't a goal in it self.

I have cross posted this to both my blog (developer.mikek.dk) and mozilla.dev.platform to maximize exposure – discussions are welcome in both forums, but I recommend we keep it to the newsgroup for now – I'll try to keep a summary on the wiki at https://wiki.mozilla.org/Purpose_of_coding_standard

  • Comments(0)//developer.mikek.dk/#post46

Can we do more than Fennec to broaden our market, to accomplish our goal about an open WEB and one that it accessible to all?

I wonderPosted by Mike Kristoffersen 30 Apr, 2009 22:15:26

Here I'm thinking about the large population in developing countries that do not have computers and definitively not wired Internet connections.

If you go to the Mozilla homepage and try to find out what Mozilla is, then it's about “...improving the way people everywhere experience the Internet”, now if a significant part of the world community don't have access to computers, what can we do about it – I would claim that we can give them access to the Internet trough their mobile phones.

Some might ask if they have mobile coverage in undeveloped areas, and the answer is, that yes, it is much more likely that they have mobile coverage than wire-based coverage, simply because it is cheaper to create a mobile network than a wired one – in a wired one you have to physically connect each node with a wire, in a mobile network you only have to connect the base stations in the cells, which you might also do with wireless technology, leaving a power source as the only thing that might require some sort of existing infrastructure – this might be solved by generators, batteries, solar cells etc.

The next thing that might be relevant to ask is, if people can't read will they then have any benefit of Internet access? - First of all, it is not everybody that lives in undeveloped areas that can't read, and secondly, there are content types that could be highly useful even for those that don't have the ability to read – like farmers could benefit from a graphics based weather forecast, or they might see a locus warning forecast as highly valuable. More long valued audio content like educational or political could also be seen as valuable.

Now it would be a challenge to create a browser that didn't require any form of written interaction, but I'm sure that it can be done, creating a web without written words would also be a challenge, but, again I'm sure that it can all be done and it would make us really change the world!

The handsets that are available to people in developing countries are probably be very cheap and hence low on features and certainly they don't have lots of processing power nor memory – there have even been talks about creating phones without displays both for this market and for use-once-then-throw-away-when-your-battery-goes-dead-or-you-have-used-the-prepaid-amount phones for more developed areas – this would require some kind of audio-only browser which could give a similar web experience as people that don't have the ability to see the display on a normal computer has today. The main difference here being that the input method would be very different, as the target market might not have the ability to write – the most obvious solutions here are speech recognition and spoken menus.

We might not be ready to jump into development of the web-experience or the browser technology as described in this post, but I hope that more people will start to wonder how the content and the browser experience could be for these markets, this is where the important development needs to take place – the things that can be discussed later, is how do we make the software fit in very limited flash and volatile memory.

  • Comments(0)//developer.mikek.dk/#post37