french english

RSS 1.0 
 
 Login 
 Password 
 Sign in 
 
06-30-08 / 11:57 PM : ArsTechnica : about Cappuccino (cjed)
ArsTechnica provides an article about Cappuccino. We find here an Objective-J code sample compared with its Objective-C counterpart... syntax is identical (except the * for pointers isn't required anymore and CP classes name prefix replaces NS prefix). We learn that the Objective-J interpreter that generates javascript is abstract in a such a way that it can ensure independance from the underlying implementation technology :
AppKit does generate DOM elements, but, in many ways, the DOM is just an implementation detail for us. If tomorrow every browser implemented SVG, and we thought Cappuccino should really run on SVG, we could rip out the guts and replace some of the code in AppKit and suddenly every app on top of Cappuccino would be running on top of SVG.

As there isn't any server-side compilation step required (contrary to GWT) it can not only provide a faster development cycle (They make a change, hit refresh, and see it on the screen), but it will also allow in the future accessibility (that is access to system features, when browsers will have evolved - that is for sure if we look backward and consider the many new extensions and plugins), what is impossible from bytecode generated on the server side (GWT case).

The preprocessor performances doesn't seem to be a problem if we dig in the article and in the even more useful comments :
the company [280 North] has a tool "to preprocess Objective-J code ahead of time, so you save client side execution and load time.
like WebKit's use of the SquirrelFish interpreter, the extra time required to preprocess before the app starts running becomes less and less of an issue.
Preloading images is a good idea, and something we've discussed. We want to come up with a generic solution for it, though, and we simply haven't had the time to do that yet. We will definitely tackle that problem at some point.
Sending bytecode to the client won't gain you that much if you're using gzip compression.
Besides, with offline support like what google gears allows, you're downloading the app once, and then running it from local storage (unless updates are made). This makes rich web apps feasible even on dial-up, because you have to incur the download cost just once.
Throughout the course of building Cappuccino and 280 Slides we've frequently come up with ways that give us anywhere from 2x to 10x performance gains. We released 280 Slides because we felt the performance was adequate (in fact, it loads faster than both PowerPoint and Keynote on my mac), but we're always looking into ways to make it faster.

All that has been made by 3 guys only (engineers working at Apple) ! The framework is being polished before the public release (open source) : we reimplemented AppKit, Foundation, CoreGraphics, and parts of CoreAnimation.
 Post a comment
06-29-08 / 04:15 PM : MacOSX : 4% of internet visitors, 4x Linux (cjed)
From a study of XiTiMonitor made from January, 1, 2007 to April, 30, 2008, we learn that MacOSX internet visitors share reached 4% (average on 170 222 sites), that is 4 times more than Linux visitors (1%), and still far from Windows (94,5% for all versions). Moreover the number of Intel macs, higher than PPC computers since November, 2007, is growing more and more, with less PPC machines each month (partly due - but not entirerly - to machine replacement, so globally Intel mac sales - from Windows switchers - are going stronger).

The OSX marketshare should continue to grow and reach quickly 5%. Ahead some treshold (that has to be determined, probably a bit more than 10%), the switch rate could become really higher (mass effect).
And the study also counted surfers from work, so as most companies are using PCs, the percent of OSX users at home should be even greater.
 1 comment
06-28-08 / 12:59 AM : iPhone SDK beta 8 (cjed)
A new beta (8) of the iPhone SDK has been released. So the final version will be available a bit later than expected, probably just before the availibility of the 3G iPhone (mid July).
 Post a comment
06-26-08 / 01:21 AM : WebKit : Objective-C call from javascript (cjed)
Apple Objective-C WebKit framework (open source, and used as the Safari rendering engine) allows to call Objective-C objects from javascript. To achieve this goal these are wrapped in a WebScriptObject. This object ensures types conversions between the two languages (javascript numbers <--> NSNumber, etc.).
But you have to be warned that as expected, it is only possible from a Cocoa application context (that is MacOSX only), as the WebScriptObject has to be retrieved from a (Cocoa) WebView (by sending it the windowScriptObject message and then by binding in this object the Objective-C objects to keys, in order to make them accessible from javascript functions).
So this is only useful for Cocoa applications that use script plugins, and that must talk with these. This is the same principle as JavaBridge (now deprecated) or Objective-C call from Python and Ruby.
We can also do the opposite way, ie calling javascript (or any other scripting language) from Objective-C.
We can read an article about these features on the site vacuous virtuoso, and grab an example on Apple ADC site.
 Post a comment
06-26-08 / 12:52 AM : Cappuccino sources (cjed)
The site carsonified provides in an article about Cappuccino and SproutCore links to some of Cappuccino sources (javascript) : the Objective-J runtime, a main, a derived controller implementation. However most are missing : referenced AppKit.j and Foundation.j (Objective-J counterparts of Cocoa frameworks).
But these sources parts sizes still show the huge job that has been done. Not surprising that the framework isn't yet available on the 280 North site ten days after the open sourcing announce. Perhaps Apple got them in the meantime (theses guys are Apple engineers).
 Post a comment
06-24-08 / 12:56 AM : Snow Leopard : resolution independence (cjed)
Resolution independance should finally be activated in Snow Leopard. We expected it for a Leopard update (as for QuartzGL activation, that was previously named Quartz 2D Extreme in Tiger).
 Post a comment
06-21-08 / 01:55 PM : iPhone 3G / Orange contract : expensive ? (cjed)
We are expecting from Orange pricings of the iPhone3G 8Gb starting 99 euros. As for the iPhone 1 Orange asked subscription to an iPhone specific contract, between 49 and 149 euros, the device price with a two years contract is 408 euros min (49-32 * 24 if you had previously a 32 euros monthly fee) ! So it is higher than the price without subscription (about 400 euros), and even more considering that the 99$ price will probably require the most costly contract (that leads to 500 euros).
 Post a comment
06-21-08 / 01:43 PM : iPhone SDK beta7 (cjed)
The iPhone SDK beta7 was released June, 11, but it is now stil better to wait for the final version, due in one or two weeks (before the iPhone 3G release, July, 11, worldwide, and July, 17 in France).
 Post a comment
06-20-08 / 12:08 AM : Ajaxian : Cappuccino / Objective-J (cjed)
Ajaxian provides a presentation of 280North's Cappuccino framework (see also the stunning 280slides application demo) :
I really like these guys. A couple of them worked on cool products at Apple, and it turns out that they started the language and runtime work back at school.
Objective-J is the language that takes JavaScript and makes it Objective (as Obj-C did to C). Lots of square brackets. When the browser gets served .j files, it preprocesses them on the fly. This means that you can do things like, use standard JavaScript in places.
Cappuccino is the port of the Cocoa framework.
The guys talk a little about the toolchain an why they did this, and even how it enables future cool things such as generating a native Mac application from the same code.


Cappuccino will soon be available as open source on that site.
Through the comments (where some unwise people - or really impressed/jealous - are jumping against Objective-C to mislead the readers) we can find interesting complementary informations :
JavaScript does not have any way of writing applications today in the same way mature platforms like Cocoa do. Cappuccino provides you with very high level features like copy-paste (of anything), undo and redo, document management and archiving, vector graphics and animation, etc etc.

What else ?
 Post a comment
06-19-08 / 11:46 PM : First thought about SproutCore (cjed)
Here is what we can say about SproutCore after having read the first tutorials :

- there isn't any tool (no source editor, nor Wysiwyg designer), but Interface Builder will perhaps be added later (after all GWT doesn't provide any tool). Required directories and start files are created through command line, and it is based on Ruby scripting language.

- pages (views) are .rhtml (use the Erubis templating framework, based on Ruby). Here we define dynamic tags (labels, controls) through scriptlets <%= %>.

- 1st main feature, bindings : we can bind the value of a label to an object property (defined on Javascript classes),or bind action controls (buttons, etc.) to action methods.
If such property value (of Controller or Model object) changes (through Firefox debugger) the values are updated in the browser view. The objects are alive on the client side, as in a runtime. The bindings allow low coupling (no code modification). The approach is very different from common tags systems (Struts, JSF...) : with these, once the HTML response is computed (tags are rendered) in the server side and that the response has been sent back to the client, the displayed values can't change.

- 2nd main feature, observers (KVO : key value observer) : methods from the controller object can be triggered from properties values change events (allows such a notification center). This possibility was the key to strong features/code simplification (and code reduction) in Cocoa.

- the controller class is defined easily through an anonymous constructor (create method), where actions and notification (observers) methods are put (also properties, but they should be put instead in a Model class). The purpose it to develop quickly, with limiting the amount of required code and instanciating. The Javascript used is of high level (object oriented, with getters and setters) and tasks management APIs (timers, etc.) are provided (for example a private _timer property is included by default in controller objects, that allow easy management of basic cases).

There isn't any transformation step as it is required with GWT (hurts the development cycle) and coding is the fastest possible, with the fewest required instructions. Server side services (webservices) calls are made using JSON-RPC (as with GWT or WebObjects Java Swing rich clients), that is RPC with a particular syntax (different from XML-RPC).
Then it is possible to call server code (backend) written with any technology : Java, PHP, etc.

We can however expect Apple's YellowBox (full Cocoa with Objective-C) on Windows in the next (or two) year, as a response to Adobe AIR or Microsoft. Meanwhile some possibilities are available to add audio/video capabilities to SproutCore : new HTML5 video tags, QuickTime X that is part of Snow Leopard (could be a response to Adobe Flash, as QuickTime still allow to create full interactive applications in a single .mov container).
We are also expecting the merge with the Cappuccino framework, that provides a true Cocoa porting to javascript, and an extension (runtime) to javascript (Objective-J) - as Objective-C extended standard C -, that allows to call these objects (a live compilation step occurs, that produces basic javascript, but this happens transparently at runtime, contrary to GWT explicit compilation).
 Post a comment
06-19-08 / 11:03 PM : All about Apple JavaBridge from 1999 (cjed)
In an article from Stepwise as old as 1999 (!) we discover how Apple's JavaBridge - recently deprecated - works. It used mainly proxies, created using JNI. When we know reliability problems with this technology (an exception raised in the target language - here a Cocoa classe method call - leads to the kill of the caller - ie Java program/JVM), without mentioning expected performances hit, we understand why Apple made that choice (appart from strategic reasons). Even IBM announced that it plans to remove JNI APIs support from Websphere, as in that area problems can lead to the death of the whole application server (launched through the JVM).
The full rewrite of Cocoa in Java would be too much long (and costly), being finally limited by Java runtime restrictions, and Apple hopes it can bring developers to Objective-C thanks to the iphone SDK and its new frameworks (UIKit - a special version of AppKit -, and Cocoa Touch).
 Post a comment
06-16-08 / 11:03 PM : SproutCore : Cocoa for the web (cjed)
While some expected a Cocoa port to Java, it seems Apple choosed the GWT way, in better. First informations about that from the past WWDC2008 week emerged today :
Apple presented SproutCore, a Javascript framework inspired by the MVC design pattern, that have been integrated, enhanced by some concepts from Cocoa as bindings/property value changes, and optimized in speed.
This is the framework used to develop the MobileMe software suite, and it is open source (MIT licence).
Site officiel

Meanwhile Apple is optimizing Javascript for Safari 4, through SquirrelFish, a just in time engine (Firefox4 will use such system), that will bring 50% performances gain at least.
 Post a comment
06-15-08 / 11:07 PM : EFIX / YellowBox : a true mac or nothing (cjed)
EFIX announces for June, 23, an USB dongle that allows to install OSX on every PC. This hack, besides being illegal (and will probably be left inoperant by every Apple OSX update), seems far from perfect : problem with sound management or networking. The best PC (in terms of value/price ratio) is indeed the MacPro, that runs perfectly OSX and Windows.
Furthermore, even if Apple would unveil Cocoa for Windows (Yellow Box 2), its iLife applications would certainly not be part of it, as they are the reason why people buy a mac. The OSX versions of these applications, even compiled for Intel, wouldn't run on the Windows Yellow Box, as for example access to the graphical context (specific graphicsPort method) does call a low level instruction thas is different on OSX and Windows (so the applications have to be recompiled). Then all is done to lock the perfect and full Cocoa experience to Apple mac computers.

This doesn't prevent however Cocoa for Windows (and Linux) for entreprise rich client layer, but Apple won't give its appealing applications. The iTunes and QuickTime case is different, as it is the required platform to promote the ipod and sell medias online.
 Post a comment
06-14-08 / 12:00 AM : Apple / rich client : nib2Ajax transform tool ? (cjed)
With its new (but not free) MobileMe service, Apple provides Ajax rich client applications that look far more advanced than Google ones, and whose user interface and feel is really close to standalone Cocoa versions... there is even a CoverFlow like effect.

Then does Apple have a framework like GWT, to create Ajax applications (with perhaps also transformation of APIs from high level frameworks like CoreAnimation, besides IB) ? The transformer would work from a .nib archive (serialized Cocoa objects) made with Interface Builder. As the (suspended... or perhaps now at Apple) open source project nib4j allowed to generate a Java Swing client application from a .nib... Interface Builder would then be the central piece of client applications development, for various targets : HTML+javascript (Ajax), Cocoa/Yellow Box 2, or the (upcoming ?) Apple RCP (based on Cocoa and providing facilities for calling webservices ?). About nib4j (stopped suddendly... despites even Apple mentionned it in its ADC notes about useful dev tools. It wasn't free for commercial use, and a demo version - PPC only at this time - can be found here) :
Design Java Swing-based UIs with Apple's Interface Builder :
nib4j is a simple but powerfull Java library that permits the use of Apple's Interface Builder to design Swing-based user interfaces. It creates Swing menus, frames and dialogs from Carbon nib files and provides a complete separation of UI and application code. The new version supports the creation of cross-platform UIs with use of JGoodies Forms. With the nib4j Viewer you can try out your Swing interfaces without writing any code and do a cross-platform test showing different Look & Feels. nib4j is completely free for non-commercial use. A developer license is US$ 169.

More details here :
* Include Carbon nib files in your cross-platform Swing applications
* Use "nib4j Viewer" for trying out your cross-platform UI without
writing any code
* Test your cross-platform UI with different Look & Feels
* Support for about 30 different UI controls
* Easiest application integration with just a few lines of code
* Complete separation of UI and application code
* Automatically generate Java classes with "nib4j Viewer"
* Support for absolute and relative positioning/sizing of the UI
controls
* Support for a grid-based cross-platform layout using JGoodies Forms
* Embed your own customized components in the generated Swing UI
* Use real floating palette windows inside your Mac OS X Swing
applications
* Create group boxes with the original Mac OS X 10.3 style
* Support for internationalization and localization
* Define a custom focus cycle order within Interface Builder
 Post a comment
06-10-08 / 10:58 PM : Snow Leopard : Grand Central, OpenCL, ZFS and UB ? (cjed)
Snow Leopard is announced for June, 2009. It brings the Grand Central technology that allows to easily develop applications that benefit from multiples processors cores, OpenCL (Open Computing Language, C language that is presented as an open standard) to use the GPU for all other general purpose tasks of applications (Apple is said to be far more advanced than NVidia's CUDA in that area). The 64 bits gives access to 16Tb memory. Finally MacOSX 10.6 will include QuickTime X (optimized) and Safari 4 (50% faster in javascript).
It seems, through screenshots from the preview version released to developers, that system applications are still universal binary, so working on PowerPC (we hope this will be the same in the final version, in fact it couldn't change, or at least only G5s - 64 bits - will be supported). There is however hope for 32 bits processors (G4, Core Duo) as the System Preferences screenshot shows a mode (32 bits here), that can lead to think that Apple kept the two - transparent - execution modes - 32 bits and 64 bits (such Leopard feature that Windows users envy). The announce of greatly reduced installation size of the new OS is however a hint that it would be Intel only (despite being possible to only install the code for a target architecture).

About Snow Leopard Server, it will bring the ZFS (128 bits) filesystem in read and write.

Snow Leopard has been presented as the foundation for the next era of MacOSX for years (1000 new features since 2000 for the first era). We can then expect a MacOSX 11 following Snow Leopard, that will unveil a brand new Touch interface (so this explains why Leopard was only a taste of Core Animation and Touch technology).
 Post a comment
06-09-08 / 10:35 PM : iPhone 3G (cjed)
Apple presented iPhone 3G (also includes a GPS, used notably by Google Maps). The back is now in black plastic, the edges are thinner, the battery life has been improved, and finally the audio quality is said to be better (also now uses a standard headphone plug), but still no video (only a 2 megapixels camera). All that for only half the previous price (199$ for 8Gb, 299$ for 16Gb) ! A new synch system, MobileMe, was presented : it allows, through a rich web interface to manage mails, addresses, agenda, photos, documents (as Google tools).
On the games side, Pangea Software demoed iPhone versions of Enigmo and Cro-Mag Rally.
 Post a comment
06-09-08 / 06:24 PM : YellowBox 2 / Apple WO Rich Client Platform ? (cjed)
We should know in about one hour (WWDC2008 keynote from Steve Jobs) if Cocoa is coming fully on Windows (Yellow Box 2), and if Apple will also use it as a (multi-OS) Rich Client Platform for webservices based applications (in replacement or addition to WebObjects client side - actually HTML and proprietary tags).

About the first point, it is clear that the Yellow Box coming to Windows is still on the way (the procedural Core Foundation APIs are used by the Windows Safari), but we can expect the full Cocoa object framework (Foundation Kit, AppKit). Launched (then suspended in profit of the transitional Carbon APIs) 10 years ago (98), the Yellow Box (at that time based on OpenStep frameworks - Cocoa in substance) could be out in a new version (Yellow Box 2... as Objective-C 2 was introduced two years ago), based on Cocoa new APIs that have been added since 2000. Apple stated that Cocoa is the target environment for future mac applications (Adobe still uses it for its new image editing software, and Snow Leopard will remove most of the remaining Carbon code by Cocoa), and the iPhone SDK in someway promoted Cocoa through the Cocoa Touch framework.
In the Cocoa Programming book (2002), graphics APIs chapters, we learn that specific handlers (C functions pointers to proprietary external functions) are present (since 2001 so !) to allow using another graphical context than the MacOSX one if needed...

About web oriented entreprise applications, we know that Apple must state on the future (renewal) of WebObjects, and recent rumors of a WO staff cut could simply be aimed to hide a strong announcement, as Apple likes such surprises (secret Windows version of OSX that have been maintained for 7 years before launch). Besides Objective-C 2 that was out two years ago (added notably a Garbage Collector... to lure Java developers ?), we find a stronger clue : the Java bridge was recently deprecated, so WebObjects applications that used Java as their language won't be supported anymore (won't benefit from new APIs). But why risk to loose this market (and face angry developers) for no reason ? Or perhaps there is something fare more interesting coming instead.

Apple could leave the server side (WebServices : services development in Java on Eclipse, deployment on IBM servers, etc.), a domain where J2EE is richer and seems to have succeded connectors and archives specifications, etc.), and focus on the client side, a domain where needs have evolved (business desktop, access to OS specific functions, etc.), where the actual solution are multiples (RCP, Swing, GWT, Flex) but where none is really satisfying (limited, not robust and note secure javascript for GWT, not good locking Swing nor elegant APIs and visual editor, limited access to OS functions from Java, not so fexible RCP deployment with same limitations that Java/Swing, JVM/black box like execution in Flex - why not put a full application in a QuickTime moov conatiner, available since 14 years ?).

Apple would come at point with an Apple Rich Client Platform, based on the Yellow Box 2. This is to wonder if they had planned this rich client UI come back... at least the timing and conditions are perfect. The iphone in fact got its specific UI framework, the UIKit (light version of AppKit, aimed at managing UI constraints of handled devices)... why not an Apple RCP Kit ? It would be the response to Microsoft Silverlight that has been coming for some years (XAML and Windows basic .NET framework now required in the OS). s
 4 comment
06-07-08 / 11:06 PM : Apple / Nvidia CUDA (cjed)
Apple, that will focus on performances improvements in Leopard Snow (expected early 2009), would be interested in using the Nvidia CUDA language, that allows to program a GPU as if it were a general purpose processor, and then use it for common applications (GPU calculations are far more less precise than CPU ones, as they are only targeted to screen displaying, not values reuse).
 Post a comment
06-05-08 / 12:49 AM : MacOSX 10.6 Snow Leopard (cjed)
ArsTechnica predicts that during the WWDC (next week) Apple will present an early version of MacOSX 10.6, whose code name would be Snow Leopard. Then the new OS would be principally enhancements (in speed and stability), would be rewritten in Cocoa (notably getting rid of the UI Carbon code), will take a lot more profit from 64 bits, and should only run on Intel macs (to simplify the developers work) ! To remember some previously Carbon only APIs are now available in Cocoa, wich is the target development environment.
Owners of G4 macs will then be "left in the snow"...
 Post a comment