Archive for c++

KDE4 su Mac OS X

Konqueror on MacOSX

It can be REAL!
After the sufficient, but instable, KDE3 compiled on Mac OSX, seems that KDE4’s developers are working to run it on Mac OS X.

This is possible because Trolltech have released many months ago QT4 for Mac OS X: a very powerfull, smart and fast C++ Framework… integrated with Aqua.

Continue…

Put this post/page on your Social Bookmarking System

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • YahooMyWeb
  • Ma.gnolia
  • blogmarks
  • BlinkList
  • co.mments
  • Shadows
  • Furl
  • Digg
  • Google
  • Live
  • Reddit
  • Slashdot

GLS^3

Imagine an Integrated Desktop Search Engine that re-index every work you write, every file you create, every “content”… as you do that things… in a very discreet way.
Every developer will thinks it’s a very difficult “mission”, it isn’t? ;)

Ok, but take a look here:

The GNU/Linux Semantic Storage System (GLS³) is a solution designed to facilitate the management and retrieval of your data. It is a solution that distances you from thinking about Where you store your data to What your data is. With GLS³, you can organize and retrieve your data based on their semantics, based on What they mean to you, and not based on their hierarchical location.

GLS³ is an open source semantic storage solution for GNU/Linux that indexes your data, extracts from it metadata and relevant information, allows you to organize it using queries and tags, an API to allow Developers to integrate searching and organization capabilities in their application, an extensible plugin-based Type System, shared schemas between applications through an API, a pseudo file system for backward compatibility, a web interface, As-You-Type searching and more.

I suggest also to take a look to the published demo-videos: these are very interesting and… pregnant!

Continue…

Put this post/page on your Social Bookmarking System

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • YahooMyWeb
  • Ma.gnolia
  • blogmarks
  • BlinkList
  • co.mments
  • Shadows
  • Furl
  • Digg
  • Google
  • Live
  • Reddit
  • Slashdot

XGL: OpenGL sempre più prepotentemente sui nostri Desktop

XGL: tutti ne stanno parlando ultimamente. Ci sono articoli in ogni dove su XGL ma… che é?
Prendiamo da Wikipedia:

Xgl is an X server architecture, started by David Reveman, layered on top of OpenGL via glitz. Some say that it is seen as the future of the X.Org Server, but some disagree because it requires a 3D graphics card. Although most PCs are nowadays shipped with such a card, most vendors (most notably NVIDIA and ATI Technologies) don’t provide open source drivers for their cards, which do not work on all computer architectures supported by the X.Org Server.

As of January 2006, it is still at an early stage in development and a number of important pieces are still missing, but progressed well in 2005. Its source was opened up on January 2, 2006 [1] [2], and included in freedesktop.org, along with major restructuring to allow wider range of supported display drivers. X server backends used by Xgl include Xglx and Xegl. In February 2006 the server gained wide publicity after a public display where the Novell desktop team could demonstrate a desktop with much eye-candy such as translucent windows and a rotating 3D desktop. The eye-candy effects are implemented in a compositing window manager called Compiz [3].


Quindi, per farla breve, questo XGL é una implementazione di XServer (che trova la sua prima embrionale realizzazione in Xglx) e che si basa, per ora, sull’uso di X.Org come backend preesistente. Novell ha sviluppato, in concomitanza, un nuovo Window Manager/Compositing Manager chiamato Compiz che potrebbe (il condizionale é d’obbligo) entrare a far parte del progetto Gnome e, forse/addirittura, soppiantare Metacity. Il condizionale é d’obbligo perché:

  1. Non voglio essere linciato da chi ne capisce più di me in questo campo
  2. Le notizie sono ancora confuse, dato che poca gente ha già messo piede sul CVS ufficiale rilasciato da Novell
  3. Non ho tempo per mettermi con le mani nel codice personalmente
  4. Si tratta di un progetto alla versione 0.0.1 e come tale poco più che un agglomerato di API

Inoltre, esiste un progetto a mio parere ben più interessante sul lungo termine:

Xegl is the future of Xgl and the long term goal of X server development. Xegl is a server that implements the EGL API and uses Mesa-solo to provide OpenGL rendering directly to the Linux framebuffer. As of August 2005 Xegl can only be run using Radeon R200 graphics hardware and development has currently been delayed… (continua su Wikipedia)

A quanto pare il consorzio/organizzazione OpenGL si é spremuta le meningi per sviluppare uno standard, EGL appunto, su cui basare lo sviluppo di tutti i futuri Desktop-Environment, partendo dalla base stessa: il Server Grafico.

Come molti utenti, anche io storco un attimino il naso: se non disporrò di una scheda grafica 3D, presto mi ritroverò a non poter usare nulla dei nuovi programmi che verranno sviluppati per il Desktop Linux. Ma il mio storcere il naso é maggiormente rivolto a tutti quei produttori che, per un motivo o per un altro, ancora non vedono il Pinguino come un mercato per cui sviluppare driver. E sarei anche disposto ad usare un driver chiuso (come quello di Nvidia).

Ma cos’é quindi quello che sta facendo maggior scalpore tra gli utenti?
Bhé, che domande: i video no? Ne sono usciti di demo (uno l’ho appena scaricato e appena finisco di scrivere me lo vado a gustare) e devo dire che di promesse ce ne sono tante.

C’é però da sottolineare una cosa importante: TUTTI cercano di emulare o espandere i concetti che Apple propone RIGHT NOW ai suoi utenti. Ma, si deve anche aggiungere, ho visto cose davvero interessanti, come delle gustose “mescolanze” di Exposé e classico Tab-Switching. Trovate tutto nei link sotto.

Infine, una domanda: ma Novell crede proprio tanto nel Desktop Linux? Diavolo, vi rendete conto dell’enorme esborso economico che sta affrontando e delle energie (soprattutto di marketing) che sta investendo? Anche se stesse spendendo poco in denaro, un eventuale fallimento sarebbe assolutamente distruttivo, non trovate?

Chi vivrà, vedrà (e mai come ora é il caso di dirlo)…

Eccovi quindi una bella serie di link da cui attingere:

Bhè, non sono riuscito ad attendere e quindi ho visto l’ultimo video della lista prima ancora di finire di scrivere questo post e… c’é da rimanere basiti.
Ci sono finezze grafiche ed effetti che negli altri video non compaiono (forse perché di bassa qualità rispetto a questo): un esempio su tutti é l’effetto di “desaturazione” (alias, decolorazione) per le applicazioni che dovessere “non rispondere più ai comandi”. Una finezza a dir poco stupenda. Quasi quasi faccio crashare FF per il solo gusto di vederlo desaturare :D .

Ovviamente, tutti gli effetti sono SEMPRE GRADUALI: ogni transizione di colore, ogni effetto di deformazione, apparizione, scomparsa… sono tutti GRADUALI e dolci. I pop-up sono quasi “fisici” e viene voglia di toccarli, tanta é la loro “consistenza ottica”.

Xgl, é giusto concludere così, può tramutarsi davvero in una Killer-Application per il Desktop Linux ma… é inutile farsi illusioni: se non si produce software che sappia ben sfruttare tutto questo, gli effetti “spettacolosi” lasceranno il tempo che trovano.

Ora, non ci resta che aspettare (per i più pigri e/o occupati) o smanettare con il CVS (per i più intraprendenti e/o nullafacenti).

Put this post/page on your Social Bookmarking System

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • YahooMyWeb
  • Ma.gnolia
  • blogmarks
  • BlinkList
  • co.mments
  • Shadows
  • Furl
  • Digg
  • Google
  • Live
  • Reddit
  • Slashdot

C++0x, il nuovo standard C++

Avevo già letto qualcosa in proposito tempo fa: un articolo in inglese che ora non trovo più che potete trovare qui (pdf).

Per il momento è chiamato C++0x ma sarà C++09 quando l’ISO ratificherà lo standard, nel 2009; grandissime novità per gli sviluppatori di tutto il mondo.

Il lavoro per la preparazione del nuovo C++ sono arrivate ad una fase cruciale. Il comitato di standardizzazione dell’ISO spera di lanciare il nuovo standard nel 2009, inaugurando quindi il C++09. Per terminare in tempo il processo di standardizzazione il comitato ha interrotto da qualche tempo l’analisi delle nuove funzionalità focalizzandosi quindi su quelle già considerate ed approvate.

Come si sa il C++ è un linguaggio di programmazione “general-purpose” con uno sguardo alla programmazione di sistema che:

  • è un C migliore
  • supporta l’astrazione dei dati
  • supporta la programmazione orientata agli oggetti
  • supporta la programmazione generica

Per “programmazione di sistema” s’intende quell’insieme di operazioni che sono tradizionalmente correlate al sistema operativo e alle utility di base, si parla quindi di kernel, device driver, utility di sistema, networking, sistemi di elaborazione testi, compilatori, una miscela di grafica e GUI, database, motori di rendering per videogiochi, CAD/CAM, sistemi di telecomunicazioni, ecc..

Il C++0x non apporta sconvolgimenti all’attuale paradigma di programmazione del C++, non sono state infatti intaccate le peculiarità che hanno fatto del C++ “il” linguaggio di programmazione, come non sono stati posti limiti alla compatibilità tra C e C++; non sono stati neanche introdotti paradigmi completamente nuovi ed estranei agli attuali programmatori C++.

Tra gli scopi principali del C++0x ci sono:

  • far diventare il C++ un migliore linguaggio per la programmazione di sistema e la creazione di librerie
  • far diventare il C++ un linguaggio più semplice da insegnare e da imparare

Il comitato di standardizzazione si sta focalizzando su:

  • fornire stabilità e compatibilità con il C++98 e, ove possibile, con il C
  • preferire librerie standard alle estensioni di linguaggio
  • applicare cambiamenti solo nel modo con il quale sarebbero applicate dagli utenti
  • preferire la generalizzazione alla specializzazione
  • indirizzare il C++ sia agli esperti, sia ai novizi
  • aumentare la sicurezza
  • migliorare le performance e la possibilità di interfacciarsi direttamente all’hardware
  • adattarsi al mondo reale

Questa è solo un’estrema sintesi del futuro C++; lo stesso Bjarne Stroustrup (”l’inventore” del C++) è parte integrante del processo di standardizzazione.

Source, Neden.it, che ha preso quasi sicuramente spunto da questa analisi approfondita e dettagliata (in inglese, consigliatissima la lettura).

Qui invece potete trovare una presentazione di Stroustrup sulle “linee guida” del nuovo linguaggio.

Put this post/page on your Social Bookmarking System

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • YahooMyWeb
  • Ma.gnolia
  • blogmarks
  • BlinkList
  • co.mments
  • Shadows
  • Furl
  • Digg
  • Google
  • Live
  • Reddit
  • Slashdot

KDE 4 will run Dashboard Widgets

KDE logo
It’s easy to understand how: WebKit and KHTML use the same core (now they aren’t still together).

But, what about Cocoa-Based widgets? :?:

From Zack Rusin’s blog:

I finally got most the implementation of the HTML Canvas element for KHTML finished. It’s in the kdelibs-js branch in SVN. After George/Maks merge their other changes we’ll merge it to HEAD. I’m planning to add full OSX Dashboard compatibility layer for Plasma (hence why I’ve spent most of the day yesterday on implementing the Canvas element)…

In that post, there are other interesting things like a “desktop layer” in KDE4 that make available some amazing effects, like a “water-like surface” over the desktop; or some usage of XGL accelleration.

Source, MelaBlog.
Other links on Neminis.org about this.

Put this post/page on your Social Bookmarking System

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • YahooMyWeb
  • Ma.gnolia
  • blogmarks
  • BlinkList
  • co.mments
  • Shadows
  • Furl
  • Digg
  • Google
  • Live
  • Reddit
  • Slashdot

Embedding Python in your C programs

The language of choice for large, high-performance applications in Linux is almost always C, or somewhat less often C++. Both are powerful languages that allow you to create high-performance natively compiled programs. However, they are not languages that lend themselves to runtime flexibility. Once a C/C++ application is compiled, its code is pretty much static. At times, that can be a real hindrance. For example, if you want to allow users of a program to create plugins easily that extend the application’s functionality, you have to deal with complex dynamic linking issues that can cause no end of headaches. Additionally, your users will have to know C/C++ in order to extend the application, which severely limits the number of people capable of writing extensions.

A much better solution is to provide your users with a scripting language they can use to extend your application. With a scripting language, you will tend to have much more runtime flexibility, as well as shorter development times and a lower learning curve that will extend the base of users capable of creating extensions.

Unfortunately, creating a scripting language is very much a nontrivial task that easily could become a major portion of your program. Fortunately, you don’t need to create a scripting language. With Python, you can embed the interpreter directly into your application and expose the full power and flexibility of Python without adding very much code at all to your application.

E VERY VERY INTERESTING howto: here.
Thanks much too much to William Nagel.

Put this post/page on your Social Bookmarking System

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • YahooMyWeb
  • Ma.gnolia
  • blogmarks
  • BlinkList
  • co.mments
  • Shadows
  • Furl
  • Digg
  • Google
  • Live
  • Reddit
  • Slashdot