0

OLPC プロジェクト用のソフトウェアを開発するためのオプションは何ですか? さまざまなサイトや wiki を見て、正直なところ、私はまだ完全に混乱していると言えます。それはシュガー、C++、smalltalk、または python のどれですか? ヘルプ!

ありがとう、

4

3 に答える 3

5

Faisal Anwar と JediErik は、優れたSugar Almanacを開発しました。これは、Sugar を開発するために知っておくべき多くのことをカバーしています。ライブラリの説明と、次のようなトピックのサンプル コードがあります。

  • 有効な Sugar アクティビティ バンドルの作成
  • プレゼンス、スレッド化、国際化の処理
  • Journal およびその他の Sugar 固有のシステム全体の機能とのインターフェース。
  • マウス、ビデオ、およびその他の入力の処理
于 2009-12-21T06:47:57.420 に答える
5

まず、簡単な答え: Python を使用したいので、Python プログラムを "sugarized" にしたいと考えています。

Sugar はプログラミング言語でも開発ツールキットでもありません。これは、GUI 環境と「アクティビティ」フレームワークです。子供たちが OLPC ラップトップで使用するアプリケーションは「アクティビティ」と呼ばれ、Sugar は、バージョン管理されたオブジェクト データベース (ユーザーの観点からは「ジャーナル」) に情報を保存できるように、子供たちが使用するツールの束を提供します。利用可能なアクティビティなどのリストに表示されます。

シュガー化されたアプリケーションを作成するには、python で記述します。グラフィカルな作業には pygtk や pygames API を使用し、他の Sugar サービス (ストレージ、カメラへのアクセス、マイク、非常に優れたネットワーク機能など) には Sugar API を使用します。 . また、Sugar API を使用して、プログラムを Sugar アクティビティとして使用できるようにします。

OLPC 用の C++ コードを記述できますが、Python が優先言語です。

Smalltalk に関しては、OLPC プロジェクトは Squeak 環境を提供しますが、OLPC で使用するために配布されるアクティビティを構築するためのツールとしてではなく、主に子供が Smalltalk プログラミングで遊ぶことを目的としています。そのように使用できなかったわけではありませんが (Smalltalk アプリのシュガー化は可能だと思いますが、確かではありません)、メモリを大量に消費します。Smalltalk は本質的に Python よりも多くのメモリを消費するわけではありませんが、OLPC 開発者は Python のメモリ使用を最適化するためにいくつかの巧妙な方法を実行しています。基本的に、Python インタープリターによって消費されるメモリのほぼすべてが、すべての Python ベースのアクティビティで共有されます。ミックスに Smalltalk アクティビティを追加すると、別のインタープリターを実行することになります。

http://activities.sugarlabs.orgで、(ソースコード付きの) 見るべき多くの活動を見つけることができます。OLPC 用に何かを開発する場合は、Sugarlabs アカウントを取得して、その git インフラストラクチャ ( http://git.sugarlabs.org ) を使用することを強くお勧めします。

また、Sugar 開発メーリング リストに参加することを強くお勧めします。これは主に Sugar プラットフォームの開発に関する議論を目的としていますが、質問に答えて適切なリソースを紹介してくれる非常に親切で知識豊富な人々がそこにいます。http://lists.sugarlabs.org/listinfo/sugar-devel

編集: 開始するための別の有用なリソースは次のとおりです。

http://wiki.sugarlabs.org/go/Development_Team/Quickstart

于 2009-10-18T15:16:12.563 に答える
1

スウィルデンの投稿は素晴らしいです。さらにいくつかの点を追加します。

人々は、Sugarized Squeak アクティビティの作成に成功しています (ポツダム大学のいくつかのゲームやOLE ネパールの作品を参照してください)。OLE ネパールは、Squeak 環境のラピッド プロトタイピングの側面のおかげで、ネパールの教師の希望を満たすカリキュラムを迅速に作成できると考えています。ただし、これらのアクティビティの読み込みには時間がかかると思います。Swillden が指摘するように、それらには Python の「ホーム フィールド」という利点がありません。

よほどのことがない限り、Python を使用することをお勧めしますSqueak 環境をより快適に使用できます。私が Sugar アクティビティ (Implode) を開発したときに使用したアプローチは、最初に標準デスクトップ (Windows または Ubuntu) で Python/pygtk だけを使用してアクティビティをアプリケーションとして開発し、次にそれを Sugar に移植することでした。エミュレーターに切り替えたり、「ログ」アクティビティでエラー メッセージを確認したりする必要がないため、コード/デバッグ サイクルはデスクトップの方が高速です。コードを正しく設計すれば、デスクトップと Sugar の違いのほとんどをいくつかのモジュールに分離できるため、両方の環境で開発とテストを続けることができます。pygtk アクティビティを作成しましたが、同様の方法で pygame ベースのアクティビティを作成できると思います。もちろん、アクティビティが特定の Sugar 固有の機能 (音声合成やメッシュ ネットワークなど) へのアクセスに依存している場合、このアプローチはうまく機能しない可能性があります。

C または C++ でコーディングする場合は、パフォーマンスが重要なコードであろうとレガシー コードであろうと、Python ベースのアクティビティから呼び出される Python 拡張モジュールとして記述することをお勧めします。これが、Writeアクティビティ (Abiword のラッピング) とBrowseアクティビティ (Firefox のラッピング) の実装方法だと思います。C/C++ で既存の X アプリケーションがある場合、Sugar で実行することは可能ですが ( SimCityEtoys、およびXaoSアクティビティを参照)、他の Sugar アクティビティのルック アンド フィールが欠けています。

最後に、Sugar アクティビティに特定の機能を追加する最も簡単な方法は、まずその機能を既に実行している既存のアクティビティを見つけてから、コードを読んでそれらがどのように機能したかを調べることです。Sugar システムは、まだ十分に文書化されているわけではありません。場合によっては、唯一のドキュメントがコード自体です。Swillden が指摘するように、ほとんどのアクティビティのコードは、Sugar 自体と同様に、SugarLabs git リポジトリで入手できます。

于 2009-12-14T22:09:35.150 に答える