Get Ubuntu Get Ubuntu

Download Ubuntu now for free, request a free CD or buy it on DVD or CD

Get Support Get Support

Free documentation and community support, or buy professional support

Get Involved Get Involved

Share technical know-how with other users, or help to promote Ubuntu

Get Developing Get Developing

Share your development expertise and help shape the future of Ubuntu

User login

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
1 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Navigation

Who's new

  • mayonks
  • naiimullah
  • iwe
  • bizkut

Who's online

There are currently 0 users and 1 guest online.

Subscribe to Ubuntu Malaysia by e-mail

Delivered by FeedBurner

Search

Google Chrome

bizkut's picture

Several groups I'm in insist on using LinkedIn for discussions,
instead of a mailing list. No idea why -- it's so much harder to use
-- but for some reason that's where the community went.

Which is fine except for happens just about every time I try to view
a discussion:
I get a notice of a thread that sounds interesting, click on the link
to view it, read the first posting, hit the space bar to scroll down
... whoops! Focus was in that silly search field at the top right of the page,
so it won't scroll.

It's even more fun if I've already scrolled down a bit with the
mousewheel -- in that case, hitting spacebar jumps back up to the
top of the page, losing any context I have as well as making me
click in the page before I can actually scroll.

Setting focus to search fields is a good thing on some pages.
Google does it, which makes terrific sense -- if you go to
google.com, your main purpose is to type something in that search box.

It doesn't, however, make sense on a page whose purpose is to
let people read through a long discussion thread.

Since I never use that search field anyway, though, I came up with
a solution using Firefox's user css.
It seems there's no way to make an input field un-focusable or
read-only using pure CSS (of course, you could use Javascript and
Greasemonkey for that); but as long as you don't need to use it,
you can make it disappear entirely.

Add this line to chrome/userContent.css inside your Firefox profile
(create it if it doesn't already exist):

form#global-search span#autocomplete-container input#main-search-box {
  visibility:hidden;
}

Then restart Firefox and load a discussion page.
The search box should be hidden,
and spacebar should scroll the page just like it does on most web pages.

Of course, this will need to be updated the next time
LinkedIn changes their page layout. And it's vaguely possible that
somewhere else on the web is a page with that hierarchy of element names.
But that's easy enough to fix: run a View Page Source
on the LinkedIn page and add another level or two to the CSS rule.
The concept is the important thing.



Original Source: http://shallowsky.com/blog/tech/web/linked-scrolling.html
bizkut's picture


...Ubuntu One...Google Chrome OS? Won't work, for me at least :(
Look at this : Download Rate 224 B/s - 13 days 8 hours 39 minutes 14 seconds remaining!
For some reason my ISP is going from bad to worst, on the good time I get 20 kbps download rate but it has been downhill this week.
So for those with fast Internet, be thankful :)

keyword : cloud computing fail


Original Source: http://ubuntu.igameilive.com/2009/11/this-is-why-cloud-computing-will-fail.html
bizkut's picture

Firefox statistics in Greece since March 1st 2010 (BrowserChoice day)

Since the start of 2010, Firefox and Internet Explorer were more or less head to head in Greece at about 44% each.

Since the start of March 2010, Firefox increased the gains compared to Internet Explorer.

The peak half-way in the graph corresponds to the Greek Orthodox Easter vacation period.

The graph depicts the weekly browser statistics in Greece from February 2010 up to the end of May 2010.

Daily browser statistics in Greece for 2010

The daily statistics have a peculiar pattern. During weekends, the usage stats for Firefox are shot up while Internet Explorer shows a significant dip.

However, during the weekdays the stats for the two main browsers are balanced out. This pattern (which is replicated in most European countries), shows that a significant number of people at work are forced to use Internet Explorer. It is easy to identify country-wide strikes through the disruptions in this pattern.

The graph depicts the daily browser statistics in Greece for May 2010.

Browser statistics for Greece, during the first half of 2010.

Firefox increased the market share to almost 2% since the start of 2010.

At the same time, Internet Explorer lost close to 5% of market share.

Apart from Firefox, Chrome was a big benefactor of market share, increasing to almost 9%.

The graph depicts the monthly browser statistics for Greece, for the first five months of 2010.

The Greek localisation of Mozilla Firefox is maintained by Kostas Papadimas.

What is the case with other countries? Did BrowserChoice have an effect to other European countries?

Related posts:

  1. Firefox 3 statistics, and the Greek language Firefox 3 was released on the 17th June, 2008 and...
  2. Firefox και Ελλάδα Τα πιο πρόσφατα στατιστικά χρήσης λογισμικού περιήγησης ιστοσελίδων (web...
  3. ΝΑΙ! Mozilla Firefox No1 στην Ελλάδα! Μιλήσαμε πρόσφατα για τα στατιστικά χρήσης του Firefox στην Ελλάδα....



Original Source: http://simos.info/blog/archives/1124
bizkut's picture

On January 26, Rick Spencer, Canonical’s Desktop Manager, announced via the ubuntu-desktop mailing list that Ubuntu 10.04 would be switching to Yahoo as it’s default search provider inside Firefox. In this email Rick expressed the following:

…I am writing to apprise you of two small but important changes coming to Firefox in Lucid. …Change #1 In Lucid, the default home page will respect the search provider settings you have set in the “Chrome”….Change #2 is changing the default search provider in Firefox to Yahoo! …Why? I am pursuing this change because Canonical has negotiated a revenue sharing deal with Yahoo! and this revenue will help Canonical to provide developers and resources to continue the open development of Ubuntu and the Ubuntu Platform. ~Per Rick Spencer

Then yesterday, April 7, Rick Spencer announced via the ubuntu-desktop mailing list that Ubuntu 10.04 would be switching back to Google as the default search provider.

Each release we determine the best default web browser and the best default search engine for Ubuntu. When choosing the best default search provider, we consider factors such as user experience, user preferences, and costs and benefits for Ubuntu and the browsers and other projects that make up Ubuntu. Up until Ubuntu 9.10 these defaults have always been Firefox and Google. Earlier in the 10.04 cycle I announced that we would be changing the default search provider to Yahoo!, and we implemented that change for several milestones. However, for the final release, we will use Google as the default provider. I have asked the Ubuntu Desktop team to change the default back to Google as soon as reasonably possible, but certainly by final freeze on April 15th. It was not our intention to “flap” between providers, but the underlying circumstances can change unpredictably. In this case, choosing Google will be familiar to everybody upgrading from 9.10 to 10.04 and the change will only be visible to those who have been part of the development cycle for 10.04. Cheers, Rick ~Rick Spencer

What the announcement doesn’t say is will it be Firefox or Chrome? The announcement only says Google! Yet hints at Firefox so who knows. Whether it was revenue, community outcry, costs and benefits or if the choice was as simple as “eeny, meeny, miny, moe” one thing is for sure — Ubuntu 10.04, Lucid Lynx is on target to be an amazing LTS release.

(Originally posted on ubuntu-user.com in You-In-Ubuntu 08/04/2010 9:45 am)



Original Source: http://akgraner.com/?p=226
bizkut's picture

Mozilla along with Mahiti organised a Mozilla Developer Day at NIMS, Bangalore at JRD Tata Auditorium. For people who want to know about the event via tweets please check the hashtag #mozdevday on Twitter

Introduction

As per the schedule, the event was supposed to kick-start at 9:30AM in the morning. After getting up in the morning and beating all the traffic as travelling 33KMs, I finally reached NIAS Campus at 11AM. After getting the badges, feedback-form and other delegate stuff, I went inside the auditorium to see what’s cooking inside.

Web Standards

Speaker: Arun Ranganathan

When I entered Arun was speaking on Web Standards. I think I missed the drum-beat part of his presentation as I was late. Abhishek Mishra and Rohan Prabhu had reached at 10AM itself and were a part of the audience from the very beginning.

Arun gave us a presentation on

  • Geolocation based services for pictures.
  • Font-face support in Firefox and other HTML5 based controls.
  • API for drag-and-drop
  • 2D support in Firefox. He showed us a Mario kind of game made using Canvas.
  • 3D support in Firefox using WebGL
  • Accelerometer support for Firefox. He showed a game which we can play by tilting our devices (Mobile/Laptop)
  • Video support in Firefox using HTML5

Arun even showed us how powerful video tag is on Firefox. We can embed a text inside a video, or even a video inside a video. Don’t believe? Have a look at the page where Arun pointed us to visit

Web.Next

Speaker: Seth Bindernagel

Seth is the localisation Director at Mozilla. He was speaking on what we can expect next from Firefox. His presentation covered mainly:

  • Out of Process Plugins
  • Improved cold startup time
  • Personas
  • Extension Manager
  • Weave

Seth discussed a bit on how Flash crashed are a big headache for the web. The next Firefox will have these plugins running as separate processes, so that the crash effects can be isolated.

For people who actually want to see how Flash crashes on the browser and how easy it is to make Flash go bonkers, just visit this site http://flashcrash.dempsky.org/

Seth also gave a lot of time on Weave and how useful it can be for a person to sync his preferences on the cloud. For privacy fanatics, he explicitly stated that all the data is encrypted at client side and then sent on the Mozilla servers. People can even run their own Weave servers.

Mozilla Labs

Speaker: Ragavan Srinivasan

Ragavan came on the stage to  present Mozilla Labs and what all they develop apart from the browser. The products which come out of the lab are Weave, Bespin and Jetpack.

Broken Sites

Speaker: Arun Ranganathan

If you visit MS Ramiah Institute of Technology’s Student Information System or FYJC’s site using a non-IE browser, then you can experience the over-smartness of the super intellectual web-masters behind the site. FYJC takes the situation to extreme levels.

Arun explained how we are supposed to report these broken sites using Firefox itself or using Mozilla Bugzilla. When using bugzilla, the explanation needed to be very exhaustive. He even asked us to tag such reports with “India” so that Arun can personally hunt down such sites.

Hack Session

Speaker: Arun Ranganathan

Arun recorded a video using a camera. Then he transferred it to his MacBook which was in MP4 format. He created a small page using HTML5 video element and opened it in Firefox,Safari and Chrome. The video which was recorded showed up properly in Chrome and Safari and not in Firefox. This was posed as a question. Many hands went up, with the first answer being the correct one. Yes. Firefox wants the web to be free and doesn’t want to license proprietary codecs for the web.

The million dollar question remains – How to convert H.264 videos to open format. Arun introduced us to a Firefox Addon named Firefogg. This converts the video to ogg which can be now played using Firefox and Chrome. Safari doesn’t want to support ogg.

I know I made no reference to Mahiti’s speech and Praneesh’s too. The post would be just too long.

Finally I would like to thank Mahiti and CIS-India for organising the event, providing free WiFi and arranging Lunch, tea and T-shirts and badges.



Original Source: http://manishtech.wordpress.com/2010/02/28/mozilla-developer-day-bangalore-27th-february-2010/
bizkut's picture

The Chromium web browser has just recently had some wicked cool improvements for Linux!

  • First of all they have some very cool bling on the new tab page working (see in video)
  • The Chromium theme now can use the GTK theme as a base (this is really good, see screenshot)
  • And More!!

See the screenshots and video below for a better understanding of the points above (and how Chromium is not quite working with Dark themes yet :-] )

Before | After

 



Original Source: http://whyareyoureadingthisurl.wordpress.com/2009/07/12/chromium-updates/
bizkut's picture

Disclaimer: If you are reading this via PlanetPlanet or a non-javascript aggregator, please visit the real page to read more

You know, we are living in a world of SOA. And even if we don’t like the new world order of the web, sometimes it can make our lifes easier.

We think that, right?

Right now I’m working on the re-implementation on my DjangoFAIed project. Which means, I’m in need of a separation between shiny new bling bling named web frontend and boring looking jsonrpc or xmlrpc for the web backend.

As you know, I’m working with Django for the daily system development, so here I’m in love with Django and RPC4Django.

The good thing about RPC4Django is that it gives me an easy way to provide two RPC types but only writing one backend.

So, having this in place, and doing some xmlrpc calls from the FAI side of life, I just need to find a way to deal with the web frontend.

So, here we are, my high rated topic: XMLHttpRequests, Javascript and Browsers, and what are they supporting.

There are at least 4 browsers I would care about:

  1. Firefox >= 3.5
  2. Google Chrome
  3. IE8
  4. Safari

No. 1 is my choice when developing some bling bling, No. 2 comes to my mind if I want to have a fast Javascript Execution time, No. 3 and No. 4, oh well, I use FF and Chrome even on windows, and I never had to do anything with Apple ;)

Creating our testbed

Now, let’s setup a testbed for the application. Let’s assume:

  1. http://testrpc/ -> this is the domain where Django lives. It’s setup and runs like a charm
  2. http://testhtml/ -> this is where our test web application is living. It consits right now of one web page, named index.html
  3. For doing some simple javascript work we are using jQuery delivered by the google cdn
  4. Our webserver is Apache 2.2.x
  5. We are using WSGI as gateway to our application (mod_wsgi)

Now, I hope you have a django installation (I’m already using 1.2 beta) and installed RPC4Django. Create a new django application and add to the __init__.py file these methods:

1
2
3
4
5
6
# Create your views here.
from rpc4django import rpcmethod

@rpcmethod(name="hello_world",signature=['string'])
def helloworld():
    return "Hello World"

This is how we define a new xmlrpc/jsonrpc call which just returns “Hello World”.

Now add to your djangoproject urls.py this endpoint for our RPC calls:

(r'^RPC2/$', 'rpc4django.views.serve_rpc_request')

and add your new application and the rpc4django application to your settings.INSTALLED_APPS.

Setup your apache installation to serve your application, don’t forget your wsgi_handler.py.

Now, if we start a browser and enter “http://testrpc/RPC2/” into the location bar, you will get something like this:

(Picture taken from: David Fischer RPC4Django)

To test if our application is working just create this little xmlrpc client app:

1
2
3
4
5
6
#!/usr/bin/python
import xmlrpclib

if __name__=="__main__":
    proxy = xmlrpclib.ServerProxy("http://testrpc/RPC2/")
    print proxy.hello_world()

It should print out “Hello World”.

Creating the web frontend

As said before, we are using jQuery as DOM library to make our lifes easier, regarding Events and Ajax things.

Let’s see how this goes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<html><head><title>testhtml</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script> <script src="json2.js"></script>
<script>// < ![CDATA[
(function($){
// jsonRPC taken from http://plugins.jquery.com/project/jsonRpc (C) by <a href="http://veged.ya.ru/">Sergey Berezhnoy
$.jsonRpc = $.jsonRpc || function(options) {
    options.type = options.type || 'GET';
    var ajaxOptions = {
        contentType: 'application/json',
        dataType: options.type == 'GET' ? 'jsonp' : 'json',
        processData: options.type == 'GET'
    };

    var data = {
        version: options.version || '1.0',
        method: options.method || 'system.listMethods',
        params: options.params || [],
        id: options.id || "djangorpc"
    };
    $.each(data, function(i){ delete options[i] });

    function send() {
        options.data = JSON.stringify(data);
        if (options.type == 'GET') options.data = {json: options.data};
        $.ajax($.extend(ajaxOptions, options));
    }

    if (typeof JSON == 'undefined') {
        $.getScript('http://www.json.org/json2.js', function(){ send() });    } else {
        send();
    }
    return $;
};

})(jQuery);
// ]]></script>
<script type="text/javascript">// < ![CDATA[
   $(document).ready(function() {
       $("#testOutput").bind("click",function() {
           var me=this;
           $.jsonRpc({
               type:"POST",
               url:"http://testrpc/RPC2/",
               method:"hello_world",
               dataType:"json",
               success: function(data) {
                    $(me).html(data.result);
               },
               error:function(xhrReq,statusbar,foo) {
                    console.log(xhrReq.responseText);
                   console.log(foo);
                   console.log(statusbar);
                   console.log("hello error");
               }
           })
       });
   });
// ]]></script>
<body>
<div id="testOutput">click here</div>
</body>
</head></html>

This page includes the jQuery Script from the Google API CDN, you need to get the json2.js from http://www.json.org/
and put it in your documentroot or in your directory where the html file is saved.
When you point your browser now to this page, and you click with your mouse on “click here”, the javascript fires an click event, and inside this click event, it starts to make a Ajax Request against our rpc django app.
The result of this ajax request should be, that the content of the “<DIV> with the ID of “#testOutput will change its content and displays “Hello World”.

“Oh, but you can’t do XMLHttpRequests across different domains! It will fail, and you should know about the same origin policy !” you will say now, and you are right.
But, thanks to the “Web Applications Working Group” we have something new: CORS or simply named: Cross Origin Resource Sharing.

Cross Origin Resource Sharing – CORS

What is “CORS”? you will ask now. The working draft abstracts it like this:

This document defines a mechanism to enable client-side cross-origin requests. Specifications that want to enable cross-origin requests in an API they define can use the algorithms defined by this specification. If such an API is used on http://example.org resources, a resource on http://hello-world.example can opt in using the mechanism described by this specification (e.g., specifying Access-Control-Allow-Origin: http://example.org as response header), which would allow that resource to be fetched cross-origin from http://example.org.

(from: Cross-Origin Resource Sharing, W3C Working Draft 17 March 2009

This really sounds important, right? What it just says is, that now it’s possible to make Cross Site XMLHttpRequests under special cicumstancas.
What we just need to know is that Mozilla implemented this feature already in all Firefox Browsers >= 3.5.
Mozilla calls it “HTTP access control“.

Now, you will bring this example to work when you enable mod_header of your apache installation and add to your test virtualhost something like this:

1
2
3
4
5
6
7
<virtualhost *:80>
    Header set Access-Control-Allow-Origin "*"
    DocumentRoot /whereever/that/is/
    ServerName testrpc
    AddDefaultCharset utf-8
    <some more config statements about wsgi and your django application>
</some></virtualhost>

Pay a bit of attention to the “Header” line. What it will do is easy: It will spit out a new Access-Control-Allow-Origin Header, which is set for anybody to make cross site XHR requests to your site.
It’s just like a bit when you tell Adobe Flash Crossdomain.xml to ‘allow-from-domain “*”‘. Different names, same result.

Now, restart your apache server and try the demo page again, now it should work like a charm. The contents of the div will change to “Hello World” and we are done.

Are we really done?

Oh well, not quite done. Now we need to test this positive result in another browser, let’s choose Google Chrome.

To make a long story short, somehow this example doesn’t work, but regarding all the postings on the fantastic lazyweb, Google Chrome does support CORS!
Well, not really. It does support this feature under special circumstancas. This document tells us more.

Regular web pages can use the XMLHttpRequest object to send and receive data from remote servers,
but they’re limited by the same origin policy.
Extensions aren’t so limited. An extension can talk to remote servers outside of its origin, as
long as it first requests cross-origin permissions.

(taken from: Google Chrome Extentions: Cross-Origin XMLHttpRequest)

There is another explanation.

Content scripts are JavaScript files that run in the context of web pages. By using the standard Document Object Model (DOM), they can read details of the web pages the browser visits, or make changes to them.
Here are some examples of what content scripts can do:

  • Find unlinked URLs in web pages and convert them into hyperlinks
  • Increase the font size to make text more legible
  • Find and process microformat data in the DOM

However, content scripts have some limitations. They cannot:

  • Use chrome.* APIs (except for parts of chrome.extension)
  • Use variables or functions defined by their extension’s pages
  • Use variables or functions defined by web pages or by other content scripts
  • Make cross-site XMLHttpRequests

(taken from: Google Chrome Extentions: Content Scripts)

Now what?

Now we have a good, fast and cool browser named Chrome, and it does not work as expected.
It should support this out of the box, and it should work like Mozillas implementation.
There are discussions in the background, regarding Greasemonkey and CORS.

Honestly, I’m writing “intranet” applications, I don’t want to use CORS in external applications. But regarding the CORS specification, I do like the way how this goes.
No need anymore to do cross site XHR via iframe (which works, but is actually painful). Furthermore, it can be a nice standard.
What we need to avoid is that really good browsers like Mozilla FF and Googles Chrome are doing what we always hated about MS: Going two different ways.

I also don’t want to write two or three different JS implementation to do the one thing. I really don’t want to support more then one browsers javascript implementation.
So, how can I get this to work without doing the old painful “iframe” way, and without writing a google extention?



Original Source: http://feedproxy.google.com/~r/ubuntu/DmuX/~3/uLS3prIQYKM/cross-origin-resource-sharing-in-firefox-3-5-and-google-chrome-fail
bizkut's picture

I really like Google Chrome or Chromium when it comes to get the best performance out of a outdated computer. With Firefox the fan of my notebook gets pretty fast pretty noisy. With Chromium pages load faster and without much strain on the cpu.

But I dearly miss my beloved Firefox extensions. One of them ist PwdHash. With PwdHash you can give every website a secure and unique password. You don’t need a password manager or tricks to remember your complicated password. PwdHash creates a hashed password out of a master password and the URL of the webpage. This way you have unique and save passwords for every site you login. The extension makes the transition from master password plus URL to the hashed password smooth and easy.

I didn’t bother to find a PwdHash-extension for Chromium, but by pure luck I stumbled upon the site of the pwdhash Extension for Google Chrome. It’s easy to install that extension, but Chromium looses the plugin every time you restart the browser.

To install it permanently you’ve got to download the archive, extract the .tar.gz file [1] and start Google Chrome or Chromium. After the browser showed up you enter the line…

chrome://extensions/

as URL [2]. Inside the extension manager click on “Pack extension” [3] and choose the folder you just extracted from the downloaded archive [4]…

Install PwdHash inside Chromium

Install PwdHash inside Chromium

You should get a message, that a file called pwdhash-chrome.crx has been created. This is your packaged extension. Go again into Chromium and enter “\” on Linux or “C:” on Windows to get into the file browser mode of Chromium. Navigate to the pwdhash-chrome.crx and click on the file to install the extension permanently.

A short note to all the fans of Microsoft Windows… The current version of Google Chrome doesn’t support extensions yet. You need the development version called Chromium. To update Google Chrome go to dev.chromium.org and click under “Subscribing to a channel” on the “Dev channel”. This way you will update Chrome to the current developer edition.

Well, if you read until this point and if you’re to lasy to build PwdHash for Chromium by yourself, you can download my pwdhash-chrome.crx. Just fire up Chromium, go to my blog and click on the link. Chromium will download the extension and install PwdHash for Chromium.



Original Source: http://linuxundich.de/en/ubuntu/sichere-passworter-pwdhash-google-chrome-chromium/
bizkut's picture

Recently Apple launched the Ipad (could you possibly have missed this?) and now rumors says that Google is working on a tablet PC too. On the Google site The Chromium Projects you can see visual explorations of how a Chrome OS tablet UI might look on actual hardware. The site has a strip of photos of the concept which is a lot similar to an Ipad.

Google's Tablet PC will naturally run its own operating system, Chrome, which implies that the web browser is in focus, and that all applications available from the web. The video below demonstrates how Google envisions that this new gadget will work.



Original Source: http://anotherubuntu.blogspot.com/2010/02/google-pad.html
bizkut's picture

Warning: Do not install Chrome as root as suggested below… installing as root was only a quick hack when installing as a regular user failed! Please read - http://community.livejournal.com/evan_tech/271230.html?view=1741182

This post is almost a month late! I’ve not been that up to date with news from Google lately but by chance saw an [...]



Original Source: http://hygen.net/blog/?p=829