Posts Tagged ‘Google’

Motorola Mobility’s Ninja HTML5 framework, that was unveiled mid-2012, however without new references since many months, was replaced by Google Web Designer, an Adobe Edge/Apple iAd Producer like HTML5 ads builder, then with limited scope (no more a rich internet applications builder). The Montage HTML5 framework (that was the basis for Ninja HTML5) is still available (open source).

We can find more details in this greatly written article, that underlines that there isn’t any HTML5 web applications solution (framework and builder) available (GWT is old, not HTML5 focused and no more driven by Google), only basic tools and low level frameworks (jQuery, angularJS, BackboneJS, Twitter Bootstrap).

We can however still use Cappuccino and Apple’s XCode/Interface Builder to build applications such as or (using Direct2CP’s solution mda approach allowed building these easily even without IB).

In fact all single page/anonymous div based frameworks can easily use HTML5 features when required, by extending existing components. That is adding/generating new doms elements (and/or new css values) to components. Cappuccino still uses CSS3 for Popover and other areas, while Direct2CP components wrap HTML5 audio and video tags (also use CSS3 animations) and new upload features.

Then a whole new HTML5 framework would not provide more (as many features aren’t HTML5 specific), at least a true HTML5 framework would be replacing all anonymous divs by WebGL elements (that is wrapping these in components) for rendering (HTML5 also provides features that aren’t display related, like storage).

Google about french press copyrights

Posted: October 19, 2012 in Apple
Tags: , , ,

Google provided details about its position on french’s law proposal that would tax search engines and aggregators sites that use press articles extracts/references.

Back in 2006-2007, Cjed Home site toped a pagerank value of 4, with up to 8000 visits a month and 250 visits a day at best. A year later (September, 2008) this new cjedaudio wordpress blog (intended to test WordPress solution, that is really great – really skilled UI designers, not lile Google’s ones) quickly reached a pagerank value of 3 (and 5000 visits a month after only 3 months).

Since 2010 there were somewhat less visits, notably as I didn’t hilighted anymore (or rarely did) posts with images (it makes a huge difference from what I’ve learnt since the original site launch in 2005, however I decided not to add pictures when not really relevant).

The main site pagerank was down to 3, despite the followers remaining strong (more than 150 visits a day, and 100 to 150 visits a day for this blog). It also corresponds to the start of articles against Google’s interests.

This month, while number of visits remaining the same (and even being greater on some days with more than 200 visits), the pagerank was down to 2, both on the blog and on the main site !

Then thank you Google. Would I then have to do as our governement ?

Update : it seems that many bloggers are experiencing this pagerank penalty.

Google : minimalist UI

Posted: December 8, 2011 in IT/Dev
Tags: , ,

Google just released Gmail’s new UI, that isn’t appealing (no real design, minimalist huge toy like buttons, restricted list size due to too taller lines, unlogical use of red color for text and New message button on the left, that isn’t pleasant and might prevent users from clicking on it).

And this blue banner at to get people using Google Plus. Is there other design than big squares and blue/white/red colors at Google ?

Google : antitrust request by EU

Posted: December 3, 2011 in Apple
Tags: , ,

The European Union filled a request against Google about antitrust issues, finally :

The internet search engine provides two types of results when people run searches on its engine: (i) unpaid search results, also known as “natural” or “algorithmic” search results, and (ii) third party advertisements shown at the top and at the right hand side of the search results page, also known as “paid search results” or “sponsored links”. The alleged abuses concern both unpaid and paid search results.

After all, what did Google brought to people ?
– a search engine full of unwanted/commercial links (with opaque ranking system and ads revenues management), that is harder and harder to use
– Google Maps and Google Earth : very useful ideas, however not the only ones now
– Android : not even at iOS5/iPhone 5 level after 5 years, despite Google’s CEO being at Apple’s board at its launch time
– GWT : still limited experience due to Google’s lack of experience in UI design
– Gmail : now not better than any other free mail system, and did exit beta status more than 10 years after launch, while Chrome still reached 10 non beta versions in two years only
– hard disks prices drop due to huge units volume used by its datacenters, also leading to un-ecofriendly power resources requirements and polluting.

Then Steve Jobs’s advice to Google to focus on its core/experienced areas was right.

WebKit / Cappuccino / Google

Posted: August 25, 2011 in IT/Dev
Tags: , ,

WebKit framework, derived from KHTML and having initiated many of HTML5 features (thanks to iPhone’s WebKit implementation, that was also allowed by Core Animation), was launched 10 years ago by Apple. The first verison of Safari was released later in 2003, and the project became open source in 2005 (Google contributed, and it has been used by Nokia, Adobe and Palm/HP).

Creator of Cappuccino worked at Apple in the initial development team for iPhone’s WebKit version (the most impressive from 2007 to 2009). Google may then be interested by 280 North, that was bought by Motorola a year ago, and is now owned by Android/GWT editor.

While Google I/O ended (we can find a live coverage of the keynote here), and that Google stated “If we did not act, we faced a draconian future where one man, one phone, one carrier was the future. That’s a future we don’t want.” (in the same manner they had said that we shouldn’t prevent them from using our personnal data if we haven’t anything – faulty – to hide), here are some facts to consider :

– the unveiled WebM codec is only a slight evolution derived form VP8 and OggVorbis, and is still far from H264 in terms off efficiency (closer to BaseLine profile, and far from Main and High profiles) and encoding speed, do no provides yet hardware accelerating. And more important, it is reported that it may face lawsuits from MPEG LA about patents infrigments on H264.

– Nexus One launch was a commercial failure. Newly presented Google TV shouldn’t do better than the orignal (AppleTV).

– Chrome Store seems (from first screenshots at least) even less elegant than Microsoft’s one…

– FTC will investigate about personnal Wifi data collecting by Google during Street View data acquiring process (Google recognized publicly its fault, however they may not think it is just ok then).

-In another story (automated/batch books scanning without asking for rights owners agreement) Google still had tried to force the way through (same with Youtube, majors had finally to conclude deals, after videos had been put online without legal checking).

– AdSense revenues redistribution by Google is opaque (no way to verify given numbers – same known problem as with artits royalties), the algorithm is proprietary (not public) and indeed presented as no perfect (can be usefull). Relegatations may be more frequent than thought, while more and more companies are paying to appear in early search results. Then relevance of search is suffering, and by the end liberty, as all that don’t appear at the expected/deserved rank (or is too far) simply do not exist…

On the Apple side we have a company that always followed traditional market rules (while having succeeded to revolution the way of buying music, and now applications and entertainment – and it may be just a start) : owners rights protection through DRM (asked by the majors), protection of creators revenues (AppStore), polished products and softwares (while Google provides – for free – beta softwares, and even recently some in research stage).

Then Apple brings elegant/polished experience/UI, ensures a robust solution (iTunes), while Google don’t want to accept any responsability, as with an amateurish company (or worse, some that is above the laws).

What if Apple will restore the power balance, by using Microsoft’s Bing for search, and providing ads revenues through iAds. These are probably the reasons of Google’s anticipated attack, that lacks subtely, in the same way as Adobe’s poorly reasoned answer. After all, nobody seemed offended 15 years ago when Microsoft put pressure on developers to invest on MFC Api, that did hurt Mac platform. To remember, Adobe created Photoshop and Illustrator on Mac exclusively in early 90s – because such application couldn’t be achieved using Windows 3.x.

Since the starting of the crisi between Apple and Google (whose Android and more recently Nexus – in contradiction with their implicit non-competing agreements -, leaded to Apple being angry – what is understandable considering Google was among its board of directors these lastest 3 years-, and to an indirect threat through sueing HTC about Apple’s patents), and more recently Google’s help provided to Adobe (integration of Flash into Chrome – that is the opposite of Google’s commitment to HTML5/WebKit, and so a threat to Apple), things go faster and faster :
Apple just stated through the iPhone OS4 license that non-natives applications (that is those using a compiler to transform code that do not rely on Apple’s SDK APIs into binary) will be excluded from AppStore :

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

To remember Adobe did success recently going through Flash ban on iPhone, by using a compiler, that indeed will be provided as part of Flash CS5 in a few days…

Most of editors of non natives solutions (Unity, Corona, Appcelerator Titanium) don’t seem too much scared (they have the required skills to adapt to the new rules, or some tricks), as we can read at Corona’s blog (whose solution still produces a compliant XCode/Objective-C application through a compilation step – contrary to Adobe’s producing a binary).
For fake developers that were used to make fast porting without much implication nor care (this lack of Cocoa concepts use leaded to deceiving results, and typically to dispoasble/event targeted applications), the required changes will be more costly. However this cleanup will benefit the platform in the long run, and ensure better software quality !

Finally, as some say (see an interview of Backelite by Macgeneration), those that don’t want to make efforts to adapt to the target platform / Cocoa concepts (that is in the end very productive once the first step succeeded) may better go back to their less evolved langugages and non elegant solutions.

Apple’s strategy (that can now be deployed thanks to the amount of iPhone/Cocoa developers), alongwith the new idAd solution (based on HTML5), is a final no go for Flash on iPhone, notably Flash ads and associated revenues. Not only Adobe has to loose, Google also is threatened, as this market could generate billions of $ per year.

In reaction to this announce, a Google employee just (that is in a non official way) stated that HTML5 might not replace Flash in ads companies. However this is without considering the new framework that Apple is likely to unveil soon to create these contents (some ADLib derived one, with a web image and video editor, featuring a timeline ?) For other areas (RDA applications) there is still Cappuccino and Atlas.

Note : through AppleInsider we learn that another reason for the new SDK restriction could be related to iPhone OS4 multitasking compliance…

Google Chrome OSX beta : Intel only

Posted: December 10, 2009 in Apple
Tags: , , , ,

Google Chrome first official beta is now available on OSX, however only for Intel macs : there will probably never be a ppc port, since the best part of chrome (the javascript engine) is built for the intel instruction set, not the PPC instruction set. porting the javascript engine is a huge undertaking

It is really deceiving, as all G4 (and G5) would have been able to run Chrome : users reported it being even more optimized (memory and GPU usage) than Safari 4.

Google Chrome Frame : HTML5 in IE

Posted: September 23, 2009 in IT/Dev
Tags: , , ,

Google presented Chrome Frame, a plugin for IE that allows to route HTML and javascript rendering management to WebKit and V8 (embedded in the plugin). However for it to be used the pages have to be modified (a meta tag has to be added). But we can suppose there will be few pages to modify initially.
It will allow to keep IE (no other choice in most of big companies), however installing a new plugin isn’t really faster than installing the full Chrome or Safari. Moreover, as the plugin manages rendering, previous reasons for using IE won’t be relevant anymore (except the need for ActiveX support, and if we consider the original IE engine will be used for most sites). This is then a transient solution, in order to deploy some HTML5 applications, waiting for Microsoft to catch up.

Apple valued more than Google

Posted: July 24, 2009 in Apple
Tags: , , , ,

After having announced record results (with a gross margin of 36 percents), Apple’s value now exceeds Google’s one (140 billions $ vs 135). We are waiting for next generation of Intel processors that will bring the new AVX vector engine, in order to finally get the audio (and video) processing power that have still been provided by Motorola G4’s Altivec for 10 years. I was present at its launch during the 1999 keynote at Paris’s Palais des Sports (Apple and Bungie also unveiled during the show the first video of Halo… that was planned for mac only – that was before Microsoft acquired Bungie) !

Here are some limitations to consider when we plan using AppEngine. They are most likely due to clouds constraints and consistent performance concern. We can read a compatibility list of various J2EE frameworks and supported Java APIs.

1000 files limit
Each application is limited to 1000 files. Then when using Cappuccino we have to use Press tool (with flatten option – to be tested with 0.71 version as it was broken in 0.70 beta) or remove the .j files (keep only the .sj). For CP2JavaWS, images resources from unused components were also removed (load time should be however better using Press).
As the concept of physical machine is gone with clouds computing, we cannot write in files, and we can only read files in WEB-INF (or accessibles through the classloader).

1000 results limit / limited offset for requests
For performance concerns, requests results are limited to 1000 records. Moreover the offset cannot be higher (requests return 0 records when the offset reaches the 1000th position). Then we cannot browse a thousands of lines table with limit(offset, count) if not using a filter/condition.
We could still add a criteria on the index to fetch records in multiple parts (for each thousand step). However this would only work if we are sorting by the index (wouldn’t work if sorting by another column). It is the same if using two requests (one for retrievinig the indexes and another using selection where index in (index range) limit count), as the first request result will be limited. Same problem if we use a temporary sort table (the result from the select request used to retrieve the data to insert is limited), moreover that solution requires to compute again the temporary table if the sort criteria (or condition criterias) vary.
One solution would be to define a special key (see Python section Queries on Keys, _key_), in memory managed and without read limit (same section for Java/JDO doesn’t however include these informations). It would require to be able to modify dynamically this key (as it depends from the sort column), or to define for each sort column an additional column (setted alongwith each insert), composed with the sort column value and index value. We could then add to the request a _key_>previous limit value criteria (value of the composite column fot the last element retrieved during the last 1000 elements fetch). Adding a criteria on the primary key wouldn’t work if using another sort column, as the criteria applies before sorting (that problem is worked around if the criteria uses the composite column that corresponds to the sort column).
We can however assume that search criterias have to be refined/tighten if more than 1000 results are expected.

Mapping limitation / caches synchronization
Hibernate isn’t supported as it instancies statically a UUID generator, using inetAddress class (is among the restricted/unsupported APIs by AppEngine, as well as other machine related instructions : threads, etc.) Then a modified version of an Hibernate class is provided in CP2JavaWS (uses code from JUG framework instead).
The demo of CP2JavaWS uses an HSQLDB in-memory database to easier the example install (no databse server to create), and table and initial data are created at launch time (from a context listener). The values of the third column (age) are generated randomly, in order to allow testing of sort feature. Then these values can change depending the timeframe we access the application (as these values are in memory, they are different from an application instance to another). That isn’t a problem however for that demo (no persistance required).
We could configure an url to a database server, however it would have to be hosted elsewhere (if not datastore). And we cannot also use a local file to persist the database (only read allowed).

The main concern is memory synchronization between cloud nodes (application instances), as mapping solutions use two objects caches. The first level cache (one per persistanceManager/MappingSession – typically per user session) allows to compare a working object copy with the corresponding original (fieldLocking), and second level cache (one per persistanceManagerFactory/SessionFactory) allows to compare orignal object from persistanceManagers with current corresponding objects in the central cache (that is necessary for optimistic locking. Direct access – back door – to the database without passing through the persistanceManagerFactory – that is generally retrieved from JNDI – is forbidden, in order to keep integrity).

The GAE datastore is based on the DataNucleus mapping framework (implements JDO and JPA). By default the level 2 cache is off in DataNucleus, however by activating it (through settings) we can choose among various implementations : EHCache, Oracle Coherence, memcached, etc. In that list only Oracle Coherence and memcached allow work in a distributed environment (second level cache replication) – also the case for more recent versions of EHCache. Thanks to the plugin architecture in DataNucleus we can develop extensions to use another cache framework that manages distributed mode : JBoss cache, OSCache, Terracotta, etc.
The Google datastore uses a proprietary implementation of JCache specification (JSR107) to allow a distributed mode, and manages replication automatically. DataNucleus provides a manual API to manage datastores replication (for example the JDOReplicationManager to synchronize PersistanceManagerFactory). The AppEngine SDK also provides Memcache APIs, to manage (manually) replication of custom objects if needed.

Replacing DataNucleus with Hibernate (can use distributed caches like JBossCache, OSCache, Coherence and more recent versions of EHCache) in a GAE application would require to have hooks into the replication process (synchronize the HibernateSessionFactory). The distributed caches configuration (static) would however require to know exactly the nodes hosts, and GAE doesn’t provide such information.

Finally we are tied with the Google datastore, with the following restrictions (do not come from Datanucleus limitations) : no aggregate requests, no polymorphic requests, limited filters, limited joins, limited many-to-many relations support, etc.
As BigTable isn’t relational, JDO looks interesting as it isn’t restricted to relational datastores (contrary to JPA). DataNucleus manages various datastore types, and an extension (plugin) to BigTable had to be developed by Google (notably to manage access through JPA interface). Despite the GAE datastore being at a higher level of abstraction than BigTable, some limitations seem directly tied with that implementation choice, whose goal is to provide consistent response time whatever the request (thus the above limitations).

No support for SOAP webservices
This shouldn’t be a problem as recent RDA solutions (GWT and Cappuccino/CP2JavaWS) use JSON (enhanced with proprietary fields).

Inter-applications communication
Applications have to use URL Fetch APIs from AppEngine SDK to communicate.

Tools and WTP integration
The Eclipse plugin allows to create a web project (with AppEngine webapp configuration file, and required jars – have to be added manually to the buildpath), but doesn’t provide integration with WTP (and no mean to stop the AppEngine server once stared – have to use WTP stop button). We can in fact deploy an AppEngine project from a WTP project, by renaming WebContent to war, and by adding the appengine-web.xml file to WEB-INF folder of the WTP project. However we then haven’t support for classes enhancement (required for the datastore JDO and JPA implementations). We could probably add this automatic task by adding the appropriate builder in the .project file.
The enhancement step required for the mapping adds to the previous constraint of client code generation if using GWT. Some JDO solutions like LIDO still allowed to remove the enhancement step if needed (leading however to some performance hit as expected).