[sugar] what matters

2008-04-24 Thread Albert Cahalan
It's clear that we aren't all here for the same thing.
Some wish to help all kids, or poor kids, or non-Western
kids. Some wish to advance freedom of speech, freedom from
EULA slavery, or freedom to learn heretical ideas.

Some of us are, assuming good intentions, extremely innocent
regarding Microsoft. The historical record shows that those
who partner with Microsoft will be betrayed in the worst way.
Read "The Scorpion and the Frog" to understand Microsoft.

To a very limited extent, I agree with the idea that we should
not be pedantic about free software. This does not mean giving
up the battle in any way. (example: my free wireless firmware)
Of particular importance is never letting proprietary software
hold your data hostage, run outside of a sandbox, or become a
platform (API/ABI) upon which you build.

The critical things I see for a kid's laptop are:

1. All security-related code is trustworthy. This of course
means an open source OS, from kernel to web browser. It most
likely means an open source firmware and boot loader as well.
Of course, "trustworthy" is to be interpreted from the view
of the user.

2. Storage of user data in open formats is easier than storage
in closed formats. The system must not encourage lock-in.

3. The user's files are protected. Untrusted programs may
be used, with the user being certain that they can not secretly
steal or corrupt his files.

4. The browser provides strong isolation. A new security partition
is created when a URL is typed or a bookmark is invoked. A web
site in one security partition does not get any awareness of any
other security partitions, EVEN IF THEY INVOLVE THE SAME SITE.
(Maybe one wishes to have multiple accounts on a web site.)

5. The browser also strongly isolates plug-ins. It is not OK for
any random browser plug-in to have full access to the memory or
files that the browser would have access to. This sort of thing
needs to be enforced at the kernel level, via the browser causing
SE Linux to do various role transitions.

6. The user can use any normal Internet connection, anonymously.

7. The user can localize. This means more than adding language
strings to an existing locale. It means creating whole new
locales and fixing any locale-related bugs which may appear.
This obviously requires open source software.

8. There are very few hardware platforms. Ideally there would be
exactly one, but it must be expected that multiple hardware
generations will be in use. Each hardware platform gets an optimized
build that includes hardware-specific image and font sizes.
It makes a huge difference to the overall experience when all
the software can assume specific hardware. It's so many little
things, like the Ruler activity knowing how big to draw itself
and the Acoustic Measure activity having correct laptop pictures.

In practice, the above pretty much requires GPL-like licensing
and widespread hardware availability. It doesn't require flash,
python, a mesh, or even sugar.
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [patch] corrected Hardy dependencies

2008-04-24 Thread Morgan Collett
On Wed, Apr 23, 2008 at 10:01 PM, Bobby Powers <[EMAIL PROTECTED]> wrote:
> I'm running sugar-jhbuild on Ubuntu Hardy, and Tomeu's recent commit to add
> dependency files for Ubuntu is great except for 3 packages with the wrong
> names (I haven't checked Gutsy - might be the same deal there).  I've
> attached a patch - I'm new here so let me know if there is anything else I
> should do or if there is a better place to post this.

I'm still not sure whether we should list the packages we are building
as dependencies - but I've applied this to gutsy as well and pushed
it.

Thanks
Morgan
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [patch] corrected Hardy dependencies

2008-04-24 Thread Marco Pesenti Gritti
On Thu, Apr 24, 2008 at 10:17 AM, Morgan Collett
<[EMAIL PROTECTED]> wrote:
>
> On Wed, Apr 23, 2008 at 10:01 PM, Bobby Powers <[EMAIL PROTECTED]> wrote:
>  > I'm running sugar-jhbuild on Ubuntu Hardy, and Tomeu's recent commit to add
>  > dependency files for Ubuntu is great except for 3 packages with the wrong
>  > names (I haven't checked Gutsy - might be the same deal there).  I've
>  > attached a patch - I'm new here so let me know if there is anything else I
>  > should do or if there is a better place to post this.
>
>  I'm still not sure whether we should list the packages we are building
>  as dependencies - but I've applied this to gutsy as well and pushed
>  it.

The idea is that if there is a package good enough dependency in the
system, you list it so that the system one is used instead of building
it.

Marco
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Marco Pesenti Gritti
On Thu, Apr 24, 2008 at 4:24 AM, Martin Dengler
<[EMAIL PROTECTED]> wrote:
>  Should I be submitting patches that include the Makefile.am changes?
>  Or does automake magically figure that out for me somehow?
>

Nope, you have to do it manually.

Marco
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] sugar's amorphousness

2008-04-24 Thread Tomeu Vizoso
Hi,

as the paragraph below is being repeated and translated in newspapers
all around the world, and Nicholas has started sharing his opinions
with the community, I would like to ask a clarification about what he
really meant with this and how we could address those concerns.

He lamented that an overriding insistence on open-source had hampered
the XOs, saying Sugar "grew amorphously" and "didn't have a software
architect who did it in a crisp way." For instance, the laptops do not
support Flash animation, widely used on the Web.

>From http://ap.google.com/article/ALeqM5hXa0O9XLMsWfaqt-sI9FqFy2IewgD9074MH82

I guess it's too late now to ask for a rectification.

Thanks,

Tomeu
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Ad-hoc Networking

2008-04-24 Thread Morgan Collett
On Thu, Apr 24, 2008 at 1:27 AM, John Gilmore <[EMAIL PROTECTED]> wrote:
>  Take two such laptops.
>
>  Take them way out into the country so they can only communicate with
>  each other.
>
>  There are no access points.  No laptop is acting as an access point, either.
>
>  Can those two laptops communicate?  Under 802.11b/g, the answer is yes.
>  They are communicating in "ad-hoc" mode.  Each can transmit packets and
>  the other one gets the packets.  (This works for N laptops, not just two.)
>
>  The IETF "ZeroConf" protocols provide for self-assignment of IP
>  addresses in such a case.  (The same thing happens if you plug two
>  laptops together with a short Ethernet cable and no DHCP server.)
>  Once they self-assign IP addresses, the laptops can talk at an IP
>  level.  They can send unicast, multicast, and broadcast packets to
>  each other.  (If you look in the Mac Control Panel, you'll see this
>  reported as a "self-assigned IP address", with a warning that you
>  probably aren't connected to the global Internet, since most of the
>  time that was what you probably expected.)
>
>  Does the OLPC Presence Service work in such a case?

Yes, that is exactly what telepathy-salut does, using avahi. You can
also take two Nokia N800s and chat between them, or two laptops at a
conference running a telepathy-based jabber client like Empathy, and
chat between them - all ad-hoc, no infrastructure required.

Morgan
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] jhbuild changes

2008-04-24 Thread Marco Pesenti Gritti
Hello,

I landed a few sugar-jhbuild changes last weekend. Highlights:

* You are better off doing a clean checkout/build.
* We are now pulling jhbuild upstream directly instead of using an
internal copy. Misc cleanups of the scripts and of the directory
structure.
* I reworked the sanity check do be distribution specific. It should
be much easier to install the missing dependencies now because you
will get an actual list of packages to install (Ubuntu and Fedora are
supported so far). Also we can reduce the number of packages built by
specifying to use system packages for some dependencies in the sysdeps
definition.
* For distributions which are not supported yet, stuff will work as
usual, except you won't get any dependency check.
* If you want to support for a new distribution you have to add a
little logic to scripts/sysdeps.py to recognize it and a new sysdeps
definition in config/sysdeps. Should be very easy.

Marco
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] sugar's amorphousness

2008-04-24 Thread Edward Cherlin
On Thu, Apr 24, 2008 at 1:31 AM, Tomeu Vizoso <[EMAIL PROTECTED]> wrote:
> Hi,
>
>  as the paragraph below is being repeated and translated in newspapers
>  all around the world, and Nicholas has started sharing his opinions
>  with the community, I would like to ask a clarification about what he
>  really meant with this and how we could address those concerns.

Whose fault are these things? Nicholas was in charge, and if he chose
not to manage, he cannot be surprised that people used their own
judgment. None of this was kept secret from him.

>  He lamented that an overriding insistence on open-source had hampered
>  the XOs, saying Sugar "grew amorphously"

See The Cathedral and the Bazaar, by Eric Raymond, for the opposite
view of Free Software development.

>  and "didn't have a software
>  architect who did it in a crisp way."

You can't have a crisp architecture for unknown functionality. This
was a research project, not the kind of development where you know
what to do and how to do it in advance. It would be insane to suggest
that somebody could specify the software design when the most basic
properties of the hardware were unknown. Such as amounts of RAM and
flash, processor speed,
and screen resolution. All were changed in the middle of development.
Designing a radically new user interface can only be done by trying it
and making adjustments.

> For instance, the laptops do not
>  support Flash animation, widely used on the Web.

A complete non sequitur. What does omission of non-Free Flash have to
do with lack of a crisp architecture?

Presumably Nicholas has been concerned about this all through last
year, but I haven't heard that he ever communicated his concern to the
developers. Walter Bender and Ivan Krstic made their positions on FOSS
very clear, and there was no reason for the rest of us to doubt that
those were the policies until after Walter was removed from
responsibility for software, Ivan resigned, and then Walter resigned.

They can run Flash, but are not shipped with Flash pre-installed.
Gnash is included, but not the proprietary codecs that are required to
play content in specific formats. This has been discussed at length on
the devel list.

http://wiki.laptop.org/go/Flash_player
Adobe makes the official Flash plugin, but OLPC cannot ship it on the
XOs because it is legally restricted and doesn't meet the OLPC's
standards for open software.

As an individual, you can download and install the Adobe Flash plugin
to view all Flash content. For details, see Adobe Flash#Installation.

http://wiki.laptop.org/go/Gnash
The easiest way to get Flash to work with Gnash is to get developers
of the Flash content to test with Gnash. For example, a developer
might choose an open codec such as Vorbis or Theora. Streaming these
format in full screen would be as simple as a five line Gnash script.

>  From http://ap.google.com/article/ALeqM5hXa0O9XLMsWfaqt-sI9FqFy2IewgD9074MH82
>
>  I guess it's too late now to ask for a rectification.

It's never too late, but it's true that the new message will never
catch up with the old one.

>  Thanks,
>
>  Tomeu
>  ___
>  Devel mailing list
>  [EMAIL PROTECTED]
>  http://lists.laptop.org/listinfo/devel
>



-- 
Edward Cherlin
End Poverty at a Profit by teaching children business
http://www.EarthTreasury.org/
"The best way to predict the future is to invent it."--Alan Kay
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Cerebro released

2008-04-24 Thread Tomeu Vizoso
On Mon, Apr 21, 2008 at 9:41 AM, Polychronis Ypodimatopoulos
<[EMAIL PROTECTED]> wrote:
> (sorry for cross-postings)
>
>  The first release of Cerebro is out!
>
>  Cerebro basically offers scalable presence information and a simple
>  collaboration API. Features currently include:
>
>  - presence information (including distance and route) for all other
>  users in the network
>  - dynamic rate of updates based on density of neighborhood: No more than
>  1 update every 5 seconds (on average) guaranteed.
>  - mesh network extended to regular 802.11b/g devices
>  - extensible user profile including nickname, colors, keys, IP addreses,
>  picture of arbitrary size, status message etc
>  - file sharing using an efficient multicast mechanism
>  - simple collaboration mechanism through 'share', 'join', 'leave' functions
>  - simple programming API based on dbus (see examples)
>
>  http://wiki.laptop.org/go/Cerebro

Hi, what's the plan for putting this on the images?

Thanks,

Tomeu
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] This project is rolling, so should OLPC

2008-04-24 Thread Edward Cherlin
On Wed, Apr 23, 2008 at 9:58 AM, Bryan Berry <[EMAIL PROTECTED]> wrote:
> Our pilots at Bishwamitra and Bashuki schools start this Friday and I
>  couldn't be more excited.

I wish I were there.

>  I find this discussion about the future of OLPC frankly *annoying* and
>  tiresome.

Ivan and Walter found the reality far more annoying and tiresome than
our account of it is.

>  The future of OLPC isn't at 1CC. It's at pilot schools around
>  the world. It's in the hands of kids. The software and hardware on the
>  XO are at mature point where we can really see the impact on education.
>  Sugar needs a lot of work but it is functional now, thanks to the heroic
>  efforts of many on the Sugar team.

You are exactly right, and Nicholas and the naysayers are dead wrong.
I'm looking forward to the time when the kids can take over most of
the programming, most of the localization, and pretty much all of the
strategy.

>  The key question about participating in OLPC shouldn't be what
>  Negroponte or Bender are up to, it should be what Arjun Tamang uses his
>  XO for on Monday in Nepal or what Marisol Gonzalez does w/ it in rural
>  Peru.

Yes, it should be. But Nicholas doesn't see it that way, and he has
interfered quite severely in getting the work done here.

>  As Bert says, Onward. There is much work to do. Debating the future of
>  OLPC as an organization does little to advance OLPC as a global movement
>  - which it very much is.
>
>  Roll up your sleeves folks, let's make this happen.

They won't go any higher. This is a work smarter, not harder, moment.
If Nicholas is determined to pull resources off Linux development and
turn them to Windows, disaster looms for OLPC. But Sugar will be fine,
regardless, because most of the volunteers are ignoring the kerfuffle
and continuing to code, test, and tweak. I'm still recruiting
localizers and thinking about the design possibilities for textbooks
and manuals for use on a ubiquitous hardware and software platform.
And recruiting artists for one of them that I have mostly worked out.

>  Edward Cherlin: If OLPC the organization isn't meeting your needs, start
>  your own. We started our own here in Nepal and it was the best thing we
>  could have done.

That's funny. I thought that's what _I_ said, about forking Sugar.
Well, I haven't given up on Nicholas yet, so you're going to have to
either put up with it or filter it. We're not stopping the argument
until we get answers one way or another.

Walter is currently thinking about what to create and how. Mary Lou is
in the middle of Pixel Qi's A funding round with the venture
capitalists. I don't know what Ivan is doing. But I'm still here,
trying to get it through Nicholas's skull that _he_ is the problem
here. Right now he is dangerously close to, "When I want to hear
_your_ opinion, I'll *tell* it to you."

Thank you for your support.

>  --
>  Bryan W. Berry
>  Systems Engineer
>  OLE Nepal, http://www.olenepal.org
>
>  ___
>  Sugar mailing list
>  Sugar@lists.laptop.org
>  http://lists.laptop.org/listinfo/sugar
>



-- 
Edward Cherlin
End Poverty at a Profit by teaching children business
http://www.EarthTreasury.org/
"The best way to predict the future is to invent it."--Alan Kay
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Martin Dengler
Add speaker device and icon by default, as in
http://wiki.laptop.org/go/Designs/Frame#07
---
 src/hardware/hardwaremanager.py   |   28 +-
 src/model/devices/Makefile.am |4 +-
 src/model/devices/devicesmodel.py |3 +
 src/model/devices/speaker.py  |   59 +++
 src/view/devices/Makefile.am  |4 +-
 src/view/devices/speaker.py   |  113 +
 6 files changed, 207 insertions(+), 4 deletions(-)
 create mode 100644 src/model/devices/speaker.py
 create mode 100644 src/view/devices/speaker.py

diff --git a/src/hardware/hardwaremanager.py b/src/hardware/hardwaremanager.py
index 29be450..f5bb0e3 100644
--- a/src/hardware/hardwaremanager.py
+++ b/src/hardware/hardwaremanager.py
@@ -50,6 +50,13 @@ class HardwareManager(object):
 if track.flags & gst.interfaces.MIXER_TRACK_MASTER:
 self._master = track
 
+def get_mute(self):
+if not self._mixer or not self._master:
+logging.error('Cannot get the mute status')
+return False
+return self._master.flags & gst.interfaces.MIXER_TRACK_MUTE \
+ == gst.interfaces.MIXER_TRACK_MUTE
+
 def get_volume(self):
 if not self._mixer or not self._master:
 logging.error('Cannot get the volume')
@@ -57,7 +64,16 @@ class HardwareManager(object):
 
 max_volume = self._master.max_volume
 min_volume = self._master.min_volume
-volume = self._mixer.get_volume(self._master)[0]
+
+volumes = self._mixer.get_volume(self._master)
+
+#sometimes we get a spurious zero from one/more channel(s)
+nonzero_vols = [v for v in volumes if v > 0.0]
+if len(nonzero_vols) != 0 and len(nonzero_vols) != len(volumes):
+volumes = nonzero_vols
+
+#we could just pick the first channel's volume, but this converges
+volume = sum(volumes) / len(volumes)
 
 return volume * 100.0 / (max_volume - min_volume) + min_volume
 
@@ -73,10 +89,18 @@ class HardwareManager(object):
 max_volume = self._master.max_volume
 min_volume = self._master.min_volume
 
+logging.debug("setting volume: %s (%s/%s/%s)" % (volume, min_volume, 
max_volume, self._master.num_channels))
 volume = volume * (max_volume - min_volume) / 100.0 + min_volume
 volume_list = [ volume ] * self._master.num_channels
 
-self._mixer.set_volume(self._master, tuple(volume_list))
+#sometimes alsa fails to set all channels' volume, so try a few times
+last_volumes_read = [0]
+read_count = 0
+while (0 in last_volumes_read) and (read_count < 3):
+logging.debug("setting volume_list %d: %s" % (read_count, 
volume_list))
+self._mixer.set_volume(self._master, tuple(volume_list))
+last_volumes_read = self._mixer.get_volume(self._master)
+read_count += 1
 
 def set_mute(self, mute):
 if not self._mixer or not self._master:
diff --git a/src/model/devices/Makefile.am b/src/model/devices/Makefile.am
index 5440eeb..3124144 100644
--- a/src/model/devices/Makefile.am
+++ b/src/model/devices/Makefile.am
@@ -5,4 +5,6 @@ sugar_PYTHON =  \
__init__.py \
device.py   \
devicesmodel.py \
-   battery.py
+   battery.py  \
+   speaker.py
+
diff --git a/src/model/devices/devicesmodel.py 
b/src/model/devices/devicesmodel.py
index 691e19e..32c77da 100644
--- a/src/model/devices/devicesmodel.py
+++ b/src/model/devices/devicesmodel.py
@@ -23,6 +23,7 @@ from model.devices import device
 from model.devices.network import wireless
 from model.devices.network import mesh
 from model.devices import battery
+from model.devices import speaker
 from hardware import hardwaremanager
 from hardware import nmclient
 
@@ -54,6 +55,8 @@ class DevicesModel(gobject.GObject):
 for udi in hal_manager.FindDeviceByCapability('battery'):
 self.add_device(battery.Device(udi))
 
+self.add_device(speaker.Device())
+
 def _observe_network_manager(self):
 network_manager = hardwaremanager.get_network_manager()
 if not network_manager:
diff --git a/src/model/devices/speaker.py b/src/model/devices/speaker.py
new file mode 100644
index 000..d3b9967
--- /dev/null
+++ b/src/model/devices/speaker.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2008 Martin Dengler
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have 

Re: [sugar] This project is rolling, so should OLPC

2008-04-24 Thread Simon Schampijer
Bryan Berry wrote:
> Our pilots at Bishwamitra and Bashuki schools start this Friday and I
> couldn't be more excited.

This is great! Are there any blockers left on which you could use remote 
help on? Did you solve the customized build issues you had?

Best,
Simon
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] This project is rolling, so should OLPC

2008-04-24 Thread Bryan Berry
simon, thanks for your concern

fixed the customized build problems.  All ready for tomorrow. You guys
should realize that about 80% of my time is taken up by logistics.
Testing, organizing XO's, labeling them, etc. I spent 4 hours today
packing the XO's for tomorrow. ah the joy. little time left for actual
technical stuff.

w/in the next few weeks hope to figure out how edit pre-boot image using
puritan. Should be fun and under a lot less pressure then ;)


On Thu, 2008-04-24 at 15:24 +0200, Simon Schampijer wrote:
> Bryan Berry wrote:
> > Our pilots at Bishwamitra and Bashuki schools start this Friday and I
> > couldn't be more excited.
> 
> This is great! Are there any blockers left on which you could use remote 
> help on? Did you solve the customized build issues you had?
> 
> Best,
> Simon

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] This project is rolling, so should OLPC

2008-04-24 Thread Simon Schampijer
Bryan Berry wrote:
> simon, thanks for your concern
> 
> fixed the customized build problems.  All ready for tomorrow. You guys
> should realize that about 80% of my time is taken up by logistics.
> Testing, organizing XO's, labeling them, etc. I spent 4 hours today
> packing the XO's for tomorrow. ah the joy. little time left for actual
> technical stuff.

Ok I see. Happy to hear everything is in good shape :)

Enjoy the day tomorrow,
Simon


> w/in the next few weeks hope to figure out how edit pre-boot image using
> puritan. Should be fun and under a lot less pressure then ;)
> 
> 
> On Thu, 2008-04-24 at 15:24 +0200, Simon Schampijer wrote:
>> Bryan Berry wrote:
>>> Our pilots at Bishwamitra and Bashuki schools start this Friday and I
>>> couldn't be more excited.
>> This is great! Are there any blockers left on which you could use remote 
>> help on? Did you solve the customized build issues you had?
>>
>> Best,
>> Simon
> 

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] Error when building libabiword-plugins

2008-04-24 Thread Marco Pesenti Gritti
Hello,

I'm building libabiword-plugins on Fedora (soon to be) 9 and I get the
following error. libstdc++ version is 4.3.0.

Btw, can we update sugar-jhbuild to use 2.6.2? if someone can upload
tarballs on sugar.abisource.com I'll be happy to take care of jhbuild
modulesets update...

Marco


 g++ -DPACKAGE_NAME=\"abiword-plugins\"
-DPACKAGE_TARNAME=\"abiword-plugins\" -DPACKAGE_VERSION=\"2.6.0\"
"-DPACKAGE_STRING=\"abiword-plugins 2.6.0\""
-DPACKAGE_BUGREPORT=\"http://bugzilla.abisource.com/\";
-DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
-DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
-DHAVE_UNISTD_H=1 -DHAVE_STRINGS_H=1 -DPACKAGE=\"abiword-plugins\"
-DVERSION=\"2.6.0\" -DHAVE_DLFCN_H=1 -DHAVE_BOOST=
-DHAVE_BOOST_THREAD= -I. -I. -I./../../.. -I./../../../core/packet
-DDEBUG -DUT_DEBUG
-I../../../../../../libabiword-2.6.0.svn20071127/src/af/util/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/af/util/unix
-I../../../../../../libabiword-2.6.0.svn20071127/src/af/xap/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/af/ev/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/af/gr/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/text/fmt/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/text/ptbl/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/wp/impexp/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/wp/ap/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/other/spell/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/other/fribidi/xp
-I../../../../../../libabiword-2.6.0.svn20071127/src/other/ttftool/unix
-I../../../../../../libabiword-2.6.0.svn20071127/src/af/xap/unix
-I../../../../../../libabiword-2.6.0.svn20071127/src/af/ev/unix
-I../../../../../../libabiword-2.6.0.svn20071127/src/af/gr/unix
-I../../../../../../libabiword-2.6.0.svn20071127/src/text/fmt/unix
-I../../../../../../libabiword-2.6.0.svn20071127/src/wp/ap/unix
-DABI_PLUGIN_VERSION=\"2.6.0\" -DABI_PLUGIN_MAJOR=2
-DABI_PLUGIN_MINOR=6 -DABI_PLUGIN_MICRO=0 -DABI_PLUGIN_SOURCE=1
-DABICOLLAB_RECORD_ALWAYS -I/usr/include/loudmouth-1.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-DABICOLLAB_HANDLER_XMPP -I/usr/include/freetype2
-I/usr/include/fribidi -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/libgsf-1
-I/usr/include/libxml2 -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo
-I/usr/include/pango-1.0 -I/usr/include/libglade-2.0 -g -O2 -MT
XMPPUnixAccountHandler.lo -MD -MP -MF .deps/XMPPUnixAccountHandler.Tpo
-c XMPPUnixAccountHandler.cpp  -fPIC -DPIC -o
.libs/XMPPUnixAccountHandler.o
In file included from XMPPUnixAccountHandler.h:24,
 from XMPPUnixAccountHandler.cpp:20:
./../../../backends/xmpp/xp/XMPPAccountHandler.h:27: error:
'std::string' has not been declared
make[5]: *** [XMPPUnixAccountHandler.lo] Error 1
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [Community-news] on Sugar

2008-04-24 Thread Peter Krenesky
C. Scott Ananian wrote:
> On Wed, Apr 23, 2008 at 12:06 PM, Nicholas Negroponte <[EMAIL PROTECTED]> 
> wrote:
>>  For this reason, Sugar needs a wider basis, to run on more Linux platforms
>> and to run under Windows. We have been engaged in discussions with Microsoft
>> for several months, to explore a dual boot version of the XO. Some of you
>> have seen what Microsoft developed on their own for the XO. It works well
>> and now needs Sugar on top of it (so to speak).
> 
> You have been saying variations of this for a while now, but:
>  * OLPC has not hired any Windows developers
>  * OLPC has not adjusted its timeline to allow for time necessary for
> such a port.
> 
> What are we to make of this?  Are you serious about Sugar on Windows
> or not?  If you are, then you need to immediately hire *at least* 10
> windows developers to actually perform the port, and inform the
> deployment countries that we are placing a hold on new development for
> at least 6 months while the port is prepared.  And the result, of
> course, will be a new version of Sugar which is guaranteed to run *no
> better* than the one on Linux.  From an IT management perspective,
> this is madness.
> 
> If you are not serious about Sugar on Windows within the next year,
> please continue to avoid 'now' and use 'might' and 'someday' when you
> talk about it, and we'll continue to try to make Sugar-on-Linux
> achieve its potential.  I approve of keeping OLPC's options open, in
> case your current development team (myself included) cannot deliver on
> Sugar's potential, but setting vague (and demoralizing) goals for
> future development -- without actually devoting the resources to
> achieve those goals -- is madness.  You have only succeeded in
> alienating the developers you need to make Sugar-on-Linux work,
> without actually achieving any progress on Sugar-on-Windows.
>  --scott
> 


The sugar team has accomplished an amazing amount in the time they've 
spent so far.  However, there are so many features, like security, that 
were not implemented or implemented as well as they should have been. 
Several people said a lack of manpower was to blame.

If more resources are available for porting to windows, why weren't more 
developers hired for the initial work on sugar?  Is there new funding 
that is making this port possible?

What I'm having a hard time with is how this new, much greater 
commitment can be honored when the initial undertaking was understaffed. 
Sugar was _already_ an integral part of the XO and it now seems like 
it was not given the attention it deserved.

-Peter
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] Fwd: {OLPC Nepal} Re: [FOSSNepal] Re: Report: OLPC may eventually switch from Linux to Windows XP

2008-04-24 Thread Prakhar Agarwal
-- Forwarded message --
From: Bibek Paudel <[EMAIL PROTECTED]>
Date: Thu, Apr 24, 2008 at 6:18 PM
Subject: {OLPC Nepal} Re: [FOSSNepal] Re: Report: OLPC may eventually switch
from Linux to Windows XP
To: [EMAIL PROTECTED], [EMAIL PROTECTED],
[EMAIL PROTECTED]



Hi all,
While I personally think it is bad for OLPC to switch to Windows XP,
here a few observations that I have made:

1. Any development/education project meant for third world countries
is best when it is natively grown. A top down approach where some guy
in Boston teaches us how to change things in our neighbourhood is
never likely to understand and respect our situation and problems. He
has other priorities. A bottom-up approach should be devised where
grassroot organizations from different parts of the world collaborate
to form a mother organization that works in their benefit. Compare
this to Nepal's political situation where every other politician/media
claims to represent the people and be working for them. Things won't
that way in technology too.

2. Nicholas Negroponte is a man hungry of some position in history of
business and humanity, both. He thinks increasing the sales of laptops
is more important than the growing impact it is creating. Selling a
qarter of a million of laptops is a success by any means for any
profit-organization. I don't understand how it is not sufficient in
case of a first-of-its-kind project by a non-profit organization.

3. Nicholas Negroponte doesn't care. Using Windows in XOs has many
implications. Besides cost and the performance of the laptops, it
means you are forcing a company's products on all children. Compare
that to a government policy whereby it makes every school going
children mandatory to wear dresses from a certain dress-designing
company or study books from a certain publisher (eg. Ekta publishers).
Thats why we have a government book publisher and curriculum designer
in Nepal and government can't recommend any other books. I don't
understand how someone can impose the monopoly of using a
vendor-specific software on all kids. And why governments all over the
world should abide by that.

4. The issue of "amorphic" development of XO as said by Negroponte is
at best ridiculous. Having the best of the world's technology,
engineers and money at MIT, it shocks me how he allowed a project of
OLPC's scale fall at the hands of people who neither could have a good
architect for the software or the capacity to develop them
"morphically". Had he never heard of the term "software engineering"
before? Why was the decision taken in first place?

5. What are all the people spread all over supposed to make of the
recent developments? At the behest of a single man or a group of such
men, should they be forced to change their working style, philosophy
and way of seeing things?

6. I wish someone starts a fork of Sugar and everything OLPC. Why not
Walter Bender? Start a fork. Or else the people at OLPC, if you have
all the democracy and its powers, why don't you remove such people who
are moving away from the OLPC's original principles? I just hope
something of similar nature happens.

If you agree with me, please forward this message to other mailing
lists of OLPC where people are likely to respond to this issue.

Cheers !
Bibek

On Thu, Apr 24, 2008 at 5:50 PM, sarose <[EMAIL PROTECTED]> wrote:
>
>  hey dude! your grandpa is great but you know my uncle Negroponte is
>  fool nonsense because he now hate Linux.
>
>  About Ubuntu, i don't know how to pronounce it. Please teach me as
>  well.
>
>  Try a survey with your friends or co-workers around.  The answer
>  screams cries utterly. Don't forget to submit back to Uncle
>  Negroponte.
>
>  On Apr 24, 4:12 pm, Zico <[EMAIL PROTECTED]> wrote:
>
>
> > On Thu, Apr 24, 2008 at 3:42 PM, sarose <[EMAIL PROTECTED]> wrote:
>  >
>  > > yes its bad news and a good lesson for the gnome/kde that has not
come
>  > > up with user friendly UI till this date.
>  >
>  > You are very wrong, brother! Don`t you see the *blinking things* of
>  > gnome/kde? And, how do you define "friendly user interface"? What more
do
>  > you expect from Gnome/KDE? Please point out, we will be really glad to
hear
>  > that.
>  >
>  > just stop saying linux is ready for desktop.
>  >
>  > Why should we do that??
>  >
>  > > neither its ready for my
>  > > dad nor its ready for my little brother.
>  >
>  > I don`t know about your dad or younger brother, but Ubuntu is ready for
my
>  > grandfather. Now, i am teaching my grandmother to use computer ( in one
>  > word, Ubuntu ).
>  >
>  > all its ready
>  >
>  > > for is server only.
>  >
>  > Very wrong.
>  > By the way, which distro do you use?
>  >
>  > --
>  > Best,
>  > Z
>  >
>



--
Bibek Paudel.
http://blog.bibekpaudel.com.np/
==

--~--~-~--~~~---~--~~
OLPC Nepal
http://olpcnepal.org
http://wiki.olpcnepal.org
-~--~~~~--~~--~--~---




-- 
Pra

Re: [sugar] Sugar Digest, Vol 22, Issue 85

2008-04-24 Thread Horváth-Militicsi Attila
too.
>
> 2. Nicholas Negroponte is a man hungry of some position in history of
> business and humanity, both. He thinks increasing the sales of laptops
> is more important than the growing impact it is creating. Selling a
> qarter of a million of laptops is a success by any means for any
> profit-organization. I don't understand how it is not sufficient in
> case of a first-of-its-kind project by a non-profit organization.
>
> 3. Nicholas Negroponte doesn't care. Using Windows in XOs has many
> implications. Besides cost and the performance of the laptops, it
> means you are forcing a company's products on all children. Compare
> that to a government policy whereby it makes every school going
> children mandatory to wear dresses from a certain dress-designing
> company or study books from a certain publisher (eg. Ekta publishers).
> Thats why we have a government book publisher and curriculum designer
> in Nepal and government can't recommend any other books. I don't
> understand how someone can impose the monopoly of using a
> vendor-specific software on all kids. And why governments all over the
> world should abide by that.
>
> 4. The issue of "amorphic" development of XO as said by Negroponte is
> at best ridiculous. Having the best of the world's technology,
> engineers and money at MIT, it shocks me how he allowed a project of
> OLPC's scale fall at the hands of people who neither could have a good
> architect for the software or the capacity to develop them
> "morphically". Had he never heard of the term "software engineering"
> before? Why was the decision taken in first place?
>
> 5. What are all the people spread all over supposed to make of the
> recent developments? At the behest of a single man or a group of such
> men, should they be forced to change their working style, philosophy
> and way of seeing things?
>
> 6. I wish someone starts a fork of Sugar and everything OLPC. Why not
> Walter Bender? Start a fork. Or else the people at OLPC, if you have
> all the democracy and its powers, why don't you remove such people who
> are moving away from the OLPC's original principles? I just hope
> something of similar nature happens.
>
> If you agree with me, please forward this message to other mailing
> lists of OLPC where people are likely to respond to this issue.
>
> Cheers !
> Bibek
>
> On Thu, Apr 24, 2008 at 5:50 PM, sarose <[EMAIL PROTECTED]> wrote:
>>
>>  hey dude! your grandpa is great but you know my uncle Negroponte is
>>  fool nonsense because he now hate Linux.
>>
>>  About Ubuntu, i don't know how to pronounce it. Please teach me as
>>  well.
>>
>>  Try a survey with your friends or co-workers around.  The answer
>>  screams cries utterly. Don't forget to submit back to Uncle
>>  Negroponte.
>>
>>  On Apr 24, 4:12 pm, Zico <[EMAIL PROTECTED]> wrote:
>>
>>
>> > On Thu, Apr 24, 2008 at 3:42 PM, sarose <[EMAIL PROTECTED]> wrote:
>>  >
>>  > > yes its bad news and a good lesson for the gnome/kde that has not
> come
>>  > > up with user friendly UI till this date.
>>  >
>>  > You are very wrong, brother! Don`t you see the *blinking things* of
>>  > gnome/kde? And, how do you define "friendly user interface"? What more
> do
>>  > you expect from Gnome/KDE? Please point out, we will be really glad to
> hear
>>  > that.
>>  >
>>  > just stop saying linux is ready for desktop.
>>  >
>>  > Why should we do that??
>>  >
>>  > > neither its ready for my
>>  > > dad nor its ready for my little brother.
>>  >
>>  > I don`t know about your dad or younger brother, but Ubuntu is ready 
>> for
> my
>>  > grandfather. Now, i am teaching my grandmother to use computer ( in 
>> one
>>  > word, Ubuntu ).
>>  >
>>  > all its ready
>>  >
>>  > > for is server only.
>>  >
>>  > Very wrong.
>>  > By the way, which distro do you use?
>>  >
>>  > --
>>  > Best,
>>  > Z
>>  >
>>
>
>
>
> --
> Bibek Paudel.
> http://blog.bibekpaudel.com.np/
> ==
>
> --~--~-~--~~~---~--~~
> OLPC Nepal
> http://olpcnepal.org
> http://wiki.olpcnepal.org
> -~--~~~~--~~--~--~---
>
>
>
>
> -- 
> Prakhar Agarwal
> Technical Head - Library R&D Team
> 3rd Year
> B.Tech, IT
> JIIT University,Noida
> "Life is the greatest teacher"
> -- next part --
> An HTML attachment was scrubbed...
> URL: 
> http://lists.laptop.org/pipermail/sugar/attachments/20080424/2c192cf8/attachment.htm
>
> --
>
> ___
> Sugar mailing list
> Sugar@lists.laptop.org
> http://lists.laptop.org/listinfo/sugar
>
>
> End of Sugar Digest, Vol 22, Issue 85
> * 

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] {OLPC Nepal} Re: [FOSSNepal] Re: Report: OLPC may eventually switch from Linux to Windows XP

2008-04-24 Thread Ankur Sharma
-- Forwarded message --
From: Bibek Paudel <[EMAIL PROTECTED]>
Date: Thu, Apr 24, 2008 at 6:33 PM
Subject: {OLPC Nepal} Re: [FOSSNepal] Re: Report: OLPC may eventually switch
from Linux to Windows XP
To: [EMAIL PROTECTED], [EMAIL PROTECTED],
[EMAIL PROTECTED]



Hi all,
While I personally think it is bad for OLPC to switch to Windows XP,
here a few observations that I have made:

1. Any development/education project meant for third world countries
is best when it is natively grown. A top down approach where some guy
in Boston teaches us how to change things in our neighbourhood is
never likely to understand and respect our situation and problems. He
has other priorities. A bottom-up approach should be devised where
grassroot organizations from different parts of the world collaborate
to form a mother organization that works in their benefit. Compare
this to Nepal's political situation where every other politician/media
claims to represent the people and be working for them. Things won't
that way in technology too.

2. Nicholas Negroponte is a man hungry of some position in history of
business and humanity, both. He thinks increasing the sales of laptops
is more important than the growing impact it is creating. Selling a
qarter of a million of laptops is a success by any means for any
profit-organization. I don't understand how it is not sufficient in
case of a first-of-its-kind project by a non-profit organization.

3. Nicholas Negroponte doesn't care. Using Windows in XOs has many
implications. Besides cost and the performance of the laptops, it
means you are forcing a company's products on all children. Compare
that to a government policy whereby it makes every school going
children mandatory to wear dresses from a certain dress-designing
company or study books from a certain publisher (eg. Ekta publishers).
Thats why we have a government book publisher and curriculum designer
in Nepal and government can't recommend any other books. I don't
understand how someone can impose the monopoly of using a
vendor-specific software on all kids. And why governments all over the
world should abide by that.

4. The issue of "amorphic" development of XO as said by Negroponte is
at best ridiculous. Having the best of the world's technology,
engineers and money at MIT, it shocks me how he allowed a project of
OLPC's scale fall at the hands of people who neither could have a good
architect for the software or the capacity to develop them
"morphically". Had he never heard of the term "software engineering"
before? Why was the decision taken in first place?

5. What are all the people spread all over supposed to make of the
recent developments? At the behest of a single man or a group of such
men, should they be forced to change their working style, philosophy
and way of seeing things?

6. I wish someone starts a fork of Sugar and everything OLPC. Why not
Walter Bender? Start a fork. Or else the people at OLPC, if you have
all the democracy and its powers, why don't you remove such people who
are moving away from the OLPC's original principles? I just hope
something of similar nature happens.

If you agree with me, please forward this message to other mailing
lists of OLPC where people are likely to respond to this issue.

Cheers !
Bibek

On Thu, Apr 24, 2008 at 5:50 PM, sarose <[EMAIL PROTECTED]> wrote:
>
>  hey dude! your grandpa is great but you know my uncle Negroponte is
>  fool nonsense because he now hate Linux.
>
>  About Ubuntu, i don't know how to pronounce it. Please teach me as
>  well.
>
>  Try a survey with your friends or co-workers around.  The answer
>  screams cries utterly. Don't forget to submit back to Uncle
>  Negroponte.
>
>  On Apr 24, 4:12 pm, Zico <[EMAIL PROTECTED]> wrote:
>
>
> > On Thu, Apr 24, 2008 at 3:42 PM, sarose <[EMAIL PROTECTED]> wrote:
>  >
>  > > yes its bad news and a good lesson for the gnome/kde that has not
come
>  > > up with user friendly UI till this date.
>  >
>  > You are very wrong, brother! Don`t you see the *blinking things* of
>  > gnome/kde? And, how do you define "friendly user interface"? What more
do
>  > you expect from Gnome/KDE? Please point out, we will be really glad to
hear
>  > that.
>  >
>  > just stop saying linux is ready for desktop.
>  >
>  > Why should we do that??
>  >
>  > > neither its ready for my
>  > > dad nor its ready for my little brother.
>  >
>  > I don`t know about your dad or younger brother, but Ubuntu is ready for
my
>  > grandfather. Now, i am teaching my grandmother to use computer ( in one
>  > word, Ubuntu ).
>  >
>  > all its ready
>  >
>  > > for is server only.
>  >
>  > Very wrong.
>  > By the way, which distro do you use?
>  >
>  > --
>  > Best,
>  > Z
>  >
>



--
Bibek Paudel.
http://blog.bibekpaudel.com.np/
==

--~--~-~--~~~---~--~~
OLPC Nepal
http://olpcnepal.org
http://wiki.olpcnepal.org
-~--~~~~--~~--~--~---
___

Re: [sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Eben Eliason
I'll /try/ to keep my comments mostly to the UI and leave the code
review for others.  I'll also fail at that to some extent, since I
have curiosities about bits and pieces.

On Thu, Apr 24, 2008 at 7:33 AM, Martin Dengler
<[EMAIL PROTECTED]> wrote:

>  +return self._master.flags & gst.interfaces.MIXER_TRACK_MUTE \
>  + == gst.interfaces.MIXER_TRACK_MUTE

If MIXER_TRACK_MUTE is a bit mask, isn't the equality check redundant?

>  +#sometimes we get a spurious zero from one/more channel(s)
>  +#we could just pick the first channel's volume, but this converges
>  +#sometimes alsa fails to set all channels' volume, so try a few 
> times

That's all fairly ugly, huh?  Oh well.

>  +badge_name = None
...
>  +self.icon.props.badge_name = badge_name

What's the logic for leaving this in?  Is there a circumstance in
which you think we may later add a badge, because at the moment this
variable is never used.

>  +def _mute_item_text(self):
...
>  +return _(mute_item_text)

Defining this in a function seems to work OK here, but I think I also
want icons on the menu item, which also depends on the current state.
As such, it may actually be cleaner to have an _update function of
some kind which handles both text and image together, setting them
directly instead of returning a value.  I suppose you could also have
separate functions for _mute_item_text and _mute_item_icon, as
wellI'll let the others decide.

Let's use the dialog-ok and dialog-cancel icons for now, which will
match the current mockups for the mic and camera.  We can change them
easily later if we need to.

>  +mute_item_text = self._model.props.muted and 'Unmute' or 'Mute'

This is a tricky ternary stand-in.  Very clever.  Is it clear enough for others?

>  +mute_item_text += '...'

This is a bad habit that everyone seems to get into.  Cut this line.
Every menu item takes an action when clicked, and that's implicit,
making the ellipsis effectively redundant. The ellipsis should only be
used when (a) the text represents a "state of flux", eg. in the AP
palettes /while/ "Connecting..." (not on the "Connect" menu item
itself, which initiates it) or (b) The action of the menu item itself
reveals a dialog which requires further feedback before actually
initiating a "real" action.

- Eben
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Benjamin M. Schwartz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Eben Eliason wrote:
|>  +mute_item_text = self._model.props.muted and 'Unmute' or 'Mute'
|
| This is a tricky ternary stand-in.  Very clever.  Is it clear enough for
others?

If you want it on one line, I would prefer a true ternary expression (new
in 2.5):
mute_item_text = 'Unmute' if self._model.props.muted else 'Mute'

- --Ben
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIELGfUJT6e6HFtqQRAsmlAJ0UFPQhOLuWvvW7zFwR38ZjaB161ACbBhuc
9JJaPTMpBtNfOOwyzTaFv3g=
=Ot34
-END PGP SIGNATURE-
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Bert Freudenberg

On 24.04.2008, at 18:01, Eben Eliason wrote:
>
>> +mute_item_text = self._model.props.muted and 'Unmute' or  
>> 'Mute'
>
> This is a tricky ternary stand-in.  Very clever.  Is it clear enough  
> for others?


It's an abuse of Python, IMHO.


- Bert -


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] what matters

2008-04-24 Thread Sameer Verma
Albert Cahalan wrote:
> It's clear that we aren't all here for the same thing.
> Some wish to help all kids, or poor kids, or non-Western
> kids. Some wish to advance freedom of speech, freedom from
> EULA slavery, or freedom to learn heretical ideas.
>
> Some of us are, assuming good intentions, extremely innocent
> regarding Microsoft. The historical record shows that those
> who partner with Microsoft will be betrayed in the worst way.
> Read "The Scorpion and the Frog" to understand Microsoft.
>
> To a very limited extent, I agree with the idea that we should
> not be pedantic about free software. This does not mean giving
> up the battle in any way. (example: my free wireless firmware)
> Of particular importance is never letting proprietary software
> hold your data hostage, run outside of a sandbox, or become a
> platform (API/ABI) upon which you build.
>
> The critical things I see for a kid's laptop are:
>
> 1. All security-related code is trustworthy. This of course
> means an open source OS, from kernel to web browser. It most
> likely means an open source firmware and boot loader as well.
> Of course, "trustworthy" is to be interpreted from the view
> of the user.
>
> 2. Storage of user data in open formats is easier than storage
> in closed formats. The system must not encourage lock-in.
>
> 3. The user's files are protected. Untrusted programs may
> be used, with the user being certain that they can not secretly
> steal or corrupt his files.
>
> 4. The browser provides strong isolation. A new security partition
> is created when a URL is typed or a bookmark is invoked. A web
> site in one security partition does not get any awareness of any
> other security partitions, EVEN IF THEY INVOLVE THE SAME SITE.
> (Maybe one wishes to have multiple accounts on a web site.)
>
> 5. The browser also strongly isolates plug-ins. It is not OK for
> any random browser plug-in to have full access to the memory or
> files that the browser would have access to. This sort of thing
> needs to be enforced at the kernel level, via the browser causing
> SE Linux to do various role transitions.
>
> 6. The user can use any normal Internet connection, anonymously.
>
> 7. The user can localize. This means more than adding language
> strings to an existing locale. It means creating whole new
> locales and fixing any locale-related bugs which may appear.
> This obviously requires open source software.
>
> 8. There are very few hardware platforms. Ideally there would be
> exactly one, but it must be expected that multiple hardware
> generations will be in use. Each hardware platform gets an optimized
> build that includes hardware-specific image and font sizes.
> It makes a huge difference to the overall experience when all
> the software can assume specific hardware. It's so many little
> things, like the Ruler activity knowing how big to draw itself
> and the Acoustic Measure activity having correct laptop pictures.
>
> In practice, the above pretty much requires GPL-like licensing
> and widespread hardware availability. It doesn't require flash,
> python, a mesh, or even sugar.
> ___
> Devel mailing list
> [EMAIL PROTECTED]
> http://lists.laptop.org/listinfo/devel
>   
For what its worth, here's something that might help in analyzing the 
situation some more. Its an analytical approach called "mission and core 
competencies (MCC) matrix".

I do not have rights to distribute a copy of the paper, so you'll have 
to look for one in your own libraries. Here's the abstract and a link to 
details.

The MCC decision matrix:: a tool for applying strategic logic to 
everyday activity

Abstract:

Proposes the MCC decision matrix as a modern equivalent of the original 
Boston Consulting Group (BCG) portfolio matrix. Focuses on the key 
questions of mission and core competences which define the axes of the 
matrix and give it its name. Unlike the BCG matrix, the MCC matrix can 
be used to assess the relative merits of any competing claims on 
resources, not just those associated with product/ market segments or 
strategic business units. Also the validity of the matrix itself can be 
challenged and its expression modified. Claims that the matrix can be 
applied to sub-units at any level of the organization and is therefore a 
powerful tool for applying strategic logic to all types of 
resource-allocation decisions throughout an organization, ensuring their 
optimal contribution to building competitive strength. Presents a 
nine-cell directional policy matrix as an alternative form.

http://www.emeraldinsight.com/Insight/viewContentItem.do;jsessionid=4C2BD0F55E3CB5F4C4F15AD390AB6E62?contentType=Article&hdAction=lnkpdf&contentId=864777

Of course, the key dependencies are that you actually *know* what the 
mission and core competencies are.

Sameer

-- 
Dr. Sameer Verma, Ph.D.
Associate Professor of Information Systems
San Francisco State University
San Francisco CA 94132 USA
http://verma.s

Re: [sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Eben Eliason
On Thu, Apr 24, 2008 at 12:14 PM, Bert Freudenberg <[EMAIL PROTECTED]> wrote:
>
>  On 24.04.2008, at 18:01, Eben Eliason wrote:
>  >
>  >> +mute_item_text = self._model.props.muted and 'Unmute' or
>  >> 'Mute'
>  >
>  > This is a tricky ternary stand-in.  Very clever.  Is it clear enough
>  > for others?
>
>
>  It's an abuse of Python, IMHO.

Tricky and abusive often go hand in hand, and abuses of languages are
often the most interesting, though clearly not the most transparent.
=)  C, for instance, seems to taunt with all of the glorious hacks it
is capable of executing as syntactically correct code. Duff's Device
[1], anyone?  Of course, usually susceptibility to such temptations
result in a clean shot through one's own foot, with a sharp segfault
bullet or worse.

- Eben

[1] http://en.wikipedia.org/wiki/Duff's_device
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] today's sugar-dev meeting

2008-04-24 Thread Simon Schampijer
Hi everybody,

there will be no meeting today. Hope we can make it again next week.

Best,
Simon
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Martin Dengler
On Thu, Apr 24, 2008 at 12:13:19PM -0400, Benjamin M. Schwartz wrote:
> I would prefer a true ternary expression (new in 2.5):
> mute_item_text = 'Unmute' if self._model.props.muted else 'Mute'

Doh -- I forgot we're on 2.5.  Of course this is the right thing to
do.  Thanks.

> - --Ben

Martin



pgp7SSjrlo6ER.pgp
Description: PGP signature
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Martin Dengler
On Thu, Apr 24, 2008 at 12:01:52PM -0400, Eben Eliason wrote:
> I'll /try/ to keep my comments mostly to the UI and leave the code
> review for others.  I'll also fail at that to some extent, since I
> have curiosities about bits and pieces.
> 
> On Thu, Apr 24, 2008 at 7:33 AM, Martin Dengler
> <[EMAIL PROTECTED]> wrote:
> 
> >  +return self._master.flags & gst.interfaces.MIXER_TRACK_MUTE \
> >  + == gst.interfaces.MIXER_TRACK_MUTE
> 
> If MIXER_TRACK_MUTE is a bit mask, isn't the equality check redundant?

It's not a bitmask, IIUC.  So no, it's not redundant AFAICS.  But yes,
it'd read much more nicely without the equality check if it wasn't.

> >  +#sometimes we get a spurious zero from one/more channel(s)
> >  +#we could just pick the first channel's volume, but this converges
> >  +#sometimes alsa fails to set all channels' volume, so try a few 
> > times
> 
> That's all fairly ugly, huh?  Oh well.

I know!

> >  +badge_name = None
> ...
> >  +self.icon.props.badge_name = badge_name
> 
> What's the logic for leaving this in?

Hmmm...I must've missed that pylint warning.  The variable goes.

> >  +def _mute_item_text(self):
> ...
> >  +return _(mute_item_text)
> 
> Defining this in a function seems to work OK here, but I think I also
> want icons on the menu item, which also depends on the current state.
> As such, it may actually be cleaner to have an _update function of
> some kind which handles both text and image together, setting them
> directly instead of returning a value.

Agree -- I just didn't have any icons, so no use for such a function
yet.

> Let's use the dialog-ok and dialog-cancel icons for now, which will
> match the current mockups for the mic and camera.  We can change them
> easily later if we need to.

dialog-ok to go with the "Unmute" text, and -cancel to go with "Mute"?

> >  +mute_item_text = self._model.props.muted and 'Unmute' or 'Mute'
> 
> This is a tricky ternary stand-in.  Very clever.  Is it clear enough for 
> others?
> 

I'll change to the proper ternary clause as recommended by bemasc.


> >  +mute_item_text += '...'
> 
> This is a bad habit that everyone seems to get into.  Cut this line.

Sorry!  I know the rule(s) you cite, and must blame lack of sleep for
leaving this in.  I was cargo-culting "Disconnect..." from
network/wireless.py, I think.

> - Eben

Martin



pgpTWPw2nOiy6.pgp
Description: PGP signature
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Eben Eliason
On Thu, Apr 24, 2008 at 12:40 PM, Martin Dengler
<[EMAIL PROTECTED]> wrote:
> On Thu, Apr 24, 2008 at 12:01:52PM -0400, Eben Eliason wrote:
>  > I'll /try/ to keep my comments mostly to the UI and leave the code
>  > review for others.  I'll also fail at that to some extent, since I
>  > have curiosities about bits and pieces.
>  >
>  > On Thu, Apr 24, 2008 at 7:33 AM, Martin Dengler
>  > <[EMAIL PROTECTED]> wrote:
>  >
>  > >  +return self._master.flags & gst.interfaces.MIXER_TRACK_MUTE \
>  > >  + == gst.interfaces.MIXER_TRACK_MUTE
>  >
>  > If MIXER_TRACK_MUTE is a bit mask, isn't the equality check redundant?
>
>  It's not a bitmask, IIUC.  So no, it's not redundant AFAICS.  But yes,
>  it'd read much more nicely without the equality check if it wasn't.

Hmmm, but you appear to be using it as such anyway.  How else could
the boolean & be interpreted logically otherwise?  (I may very well be
missing something here.)  It was pointed out to me that one reason for
it would be to return a boolean type, instead of an int, which is a
valid assessment (I'm too familiar with C).  If that's the core
reason, however, I might find simply casting to bool clearer.

>  > Let's use the dialog-ok and dialog-cancel icons for now, which will
>  > match the current mockups for the mic and camera.  We can change them
>  > easily later if we need to.
>
>  dialog-ok to go with the "Unmute" text, and -cancel to go with "Mute"?

Yup.

>  > >  +mute_item_text += '...'
>  >
>  > This is a bad habit that everyone seems to get into.  Cut this line.
>
>  Sorry!  I know the rule(s) you cite, and must blame lack of sleep for
>  leaving this in.  I was cargo-culting "Disconnect..." from
>  network/wireless.py, I think.

Good!  I expect not to have to slap you again for this.  :-P

- Eben
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [Community-news] on Sugar

2008-04-24 Thread Kevin Cole
On Thu, Apr 24, 2008 at 10:43 AM, Peter Krenesky <[EMAIL PROTECTED]> wrote:

>  The sugar team has accomplished an amazing amount in the time they've
>  spent so far.  However, there are so many features, like security, that
>  were not implemented or implemented as well as they should have been.

Mentioning "Windows" and "security" in the same message, nay, the same
universe, is something of an oxymoron.  When even dyed in the wool
Microsoft fanboys and fangirls are abandoning Vista and begging and
pleading with Microsoft, it just doesn't seem prudent to say "Let's go
with FOSS running on top of Windows".   Though I'm a zealous supporter
of FOSS, if people were saying something like "Let's run Sugar et al
on Mac OS X" I'd be more inclined to say "Well... okay."  Before
Microsoft, the concept of infecting a document, seemed like complete
nonsense.  (WordPerfect and other word processors had macros as well.
But the macros didn't need to travel embedded in the document.)

Put another way: Assuming for a moment, that hell has frozen over, and
Microsoft has decided to play nice.  When a Fortune 500 company (or
two, or 20)  calls Bill et al and says "Holy Crap!  There's a hole in
Vista big enough to fly a starship through!" Do you think the answer
will be "Sorry.  We're working on Sugar right now." Or is the OLPC
project more likely to end up on the back burner?  Not that the FOSS
crowd are all working on the XO night and day, but my suspicion is
that the focus is a wee bit more directed.

And as I've already commented, Microsoft is a bit like Lucy Van Pelt:
"This time I promise to let you kick the football, Charlie Brown"
It's not so much a hatred of M$ as much as it's an incredible lack of
trust.  They'll need to play nice for a couple of years, minimum
before I let my guard down.  I think the reason that FOSS has grown so
much in the past several years has more to do with dissatisfaction
with proprietary software than with cost.  (I've bought and paid for
FOSS.)

-- 
 Kevin Cole | Key ID: 0xE6F332C7 (GPG/PGP)
 Gallaudet University | WWW: http://gri.gallaudet.edu/~kjcole/
 Hall Memorial Bldg S-419 | V/TTY: (202) 651-5135
 Washington, D.C. 20002-3695 | FAX: (202) 651-5746

 ". ! 1 |" -- Rene Magritte's computer
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Error when building libabiword-plugins

2008-04-24 Thread J.M. Maurer

On Thu, 2008-04-24 at 16:34 +0200, Marco Pesenti Gritti wrote:
> Hello,
> 
> I'm building libabiword-plugins on Fedora (soon to be) 9 and I get the
> following error. libstdc++ version is 4.3.0.
> 
> Btw, can we update sugar-jhbuild to use 2.6.2? if someone can upload
> tarballs on sugar.abisource.com I'll be happy to take care of jhbuild
> modulesets update...

Will do later tonight (I hope it works out of the box, because pyabiword
is a bit behind; i think everything sugar uses is up2date though).

  Marc


> Marco
> 
> 
>  g++ -DPACKAGE_NAME=\"abiword-plugins\"
> -DPACKAGE_TARNAME=\"abiword-plugins\" -DPACKAGE_VERSION=\"2.6.0\"
> "-DPACKAGE_STRING=\"abiword-plugins 2.6.0\""
> -DPACKAGE_BUGREPORT=\"http://bugzilla.abisource.com/\";
> -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
> -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
> -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
> -DHAVE_UNISTD_H=1 -DHAVE_STRINGS_H=1 -DPACKAGE=\"abiword-plugins\"
> -DVERSION=\"2.6.0\" -DHAVE_DLFCN_H=1 -DHAVE_BOOST=
> -DHAVE_BOOST_THREAD= -I. -I. -I./../../.. -I./../../../core/packet
> -DDEBUG -DUT_DEBUG
> -I../../../../../../libabiword-2.6.0.svn20071127/src/af/util/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/af/util/unix
> -I../../../../../../libabiword-2.6.0.svn20071127/src/af/xap/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/af/ev/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/af/gr/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/text/fmt/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/text/ptbl/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/wp/impexp/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/wp/ap/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/other/spell/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/other/fribidi/xp
> -I../../../../../../libabiword-2.6.0.svn20071127/src/other/ttftool/unix
> -I../../../../../../libabiword-2.6.0.svn20071127/src/af/xap/unix
> -I../../../../../../libabiword-2.6.0.svn20071127/src/af/ev/unix
> -I../../../../../../libabiword-2.6.0.svn20071127/src/af/gr/unix
> -I../../../../../../libabiword-2.6.0.svn20071127/src/text/fmt/unix
> -I../../../../../../libabiword-2.6.0.svn20071127/src/wp/ap/unix
> -DABI_PLUGIN_VERSION=\"2.6.0\" -DABI_PLUGIN_MAJOR=2
> -DABI_PLUGIN_MINOR=6 -DABI_PLUGIN_MICRO=0 -DABI_PLUGIN_SOURCE=1
> -DABICOLLAB_RECORD_ALWAYS -I/usr/include/loudmouth-1.0
> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
> -DABICOLLAB_HANDLER_XMPP -I/usr/include/freetype2
> -I/usr/include/fribidi -I/usr/include/glib-2.0
> -I/usr/lib/glib-2.0/include -I/usr/include/libgsf-1
> -I/usr/include/libxml2 -I/usr/include/gtk-2.0
> -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo
> -I/usr/include/pango-1.0 -I/usr/include/libglade-2.0 -g -O2 -MT
> XMPPUnixAccountHandler.lo -MD -MP -MF .deps/XMPPUnixAccountHandler.Tpo
> -c XMPPUnixAccountHandler.cpp  -fPIC -DPIC -o
> .libs/XMPPUnixAccountHandler.o
> In file included from XMPPUnixAccountHandler.h:24,
>  from XMPPUnixAccountHandler.cpp:20:
> ./../../../backends/xmpp/xp/XMPPAccountHandler.h:27: error:
> 'std::string' has not been declared
> make[5]: *** [XMPPUnixAccountHandler.lo] Error 1

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Martin Dengler
On Thu, Apr 24, 2008 at 12:47:11PM -0400, Eben Eliason wrote:
> On Thu, Apr 24, 2008 at 12:40 PM, Martin Dengler wrote:
> > On Thu, Apr 24, 2008 at 12:01:52PM -0400, Eben Eliason wrote:
> >  > On Thu, Apr 24, 2008 at 7:33 AM, Martin Dengler wrote:
> >  > >  +return self._master.flags & gst.interfaces.MIXER_TRACK_MUTE \
> >  > >  + == gst.interfaces.MIXER_TRACK_MUTE
> >  >
> >  > If MIXER_TRACK_MUTE is a bit mask, isn't the equality check redundant?
> >
> >  It's not a bitmask, IIUC.  So no, it's not redundant AFAICS.  But yes,
> >  it'd read much more nicely without the equality check if it wasn't.
> 
> Hmmm, but you appear to be using it as such anyway.  How else could
> the boolean & be interpreted logically otherwise?  (I may very well be
> missing something here.)

the GFlags class overrides the __and__ method...nice, eh?

>>> master.flags

>>> gst.interfaces.MIXER_TRACK_MUTE.__and__

>>> type(gst.interfaces.MIXER_TRACK_MUTE)

>>> type(gst.interfaces.MIXER_TRACK_MUTE & gst.interfaces.MIXER_TRACK_MUTE)


> - Eben

Martin


pgplSrcTMG9Dw.pgp
Description: PGP signature
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] [PATCH] Add speaker device and icon by default

2008-04-24 Thread Martin Dengler
Add speaker device and icon by default, as in
http://wiki.laptop.org/go/Designs/Frame#07
---
 src/hardware/hardwaremanager.py   |   26 -
 src/model/devices/Makefile.am |4 +-
 src/model/devices/devicesmodel.py |3 +
 src/model/devices/speaker.py  |   59 ++
 src/view/devices/Makefile.am  |4 +-
 src/view/devices/speaker.py   |  119 +
 6 files changed, 211 insertions(+), 4 deletions(-)
 create mode 100644 src/model/devices/speaker.py
 create mode 100644 src/view/devices/speaker.py

diff --git a/src/hardware/hardwaremanager.py b/src/hardware/hardwaremanager.py
index 29be450..434f481 100644
--- a/src/hardware/hardwaremanager.py
+++ b/src/hardware/hardwaremanager.py
@@ -50,6 +50,13 @@ class HardwareManager(object):
 if track.flags & gst.interfaces.MIXER_TRACK_MASTER:
 self._master = track
 
+def get_mute(self):
+if not self._mixer or not self._master:
+logging.error('Cannot get the mute status')
+return False
+return self._master.flags & gst.interfaces.MIXER_TRACK_MUTE \
+ == gst.interfaces.MIXER_TRACK_MUTE
+
 def get_volume(self):
 if not self._mixer or not self._master:
 logging.error('Cannot get the volume')
@@ -57,7 +64,16 @@ class HardwareManager(object):
 
 max_volume = self._master.max_volume
 min_volume = self._master.min_volume
-volume = self._mixer.get_volume(self._master)[0]
+
+volumes = self._mixer.get_volume(self._master)
+
+#sometimes we get a spurious zero from one/more channel(s)
+nonzero_vols = [v for v in volumes if v > 0.0]
+if len(nonzero_vols) != 0 and len(nonzero_vols) != len(volumes):
+volumes = nonzero_vols
+
+#we could just pick the first channel's volume, but this converges
+volume = sum(volumes) / len(volumes)
 
 return volume * 100.0 / (max_volume - min_volume) + min_volume
 
@@ -76,7 +92,13 @@ class HardwareManager(object):
 volume = volume * (max_volume - min_volume) / 100.0 + min_volume
 volume_list = [ volume ] * self._master.num_channels
 
-self._mixer.set_volume(self._master, tuple(volume_list))
+#sometimes alsa fails to set all channels' volume, so try a few times
+last_volumes_read = [0]
+read_count = 0
+while (0 in last_volumes_read) and (read_count < 3):
+self._mixer.set_volume(self._master, tuple(volume_list))
+last_volumes_read = self._mixer.get_volume(self._master)
+read_count += 1
 
 def set_mute(self, mute):
 if not self._mixer or not self._master:
diff --git a/src/model/devices/Makefile.am b/src/model/devices/Makefile.am
index 5440eeb..3124144 100644
--- a/src/model/devices/Makefile.am
+++ b/src/model/devices/Makefile.am
@@ -5,4 +5,6 @@ sugar_PYTHON =  \
__init__.py \
device.py   \
devicesmodel.py \
-   battery.py
+   battery.py  \
+   speaker.py
+
diff --git a/src/model/devices/devicesmodel.py 
b/src/model/devices/devicesmodel.py
index 691e19e..32c77da 100644
--- a/src/model/devices/devicesmodel.py
+++ b/src/model/devices/devicesmodel.py
@@ -23,6 +23,7 @@ from model.devices import device
 from model.devices.network import wireless
 from model.devices.network import mesh
 from model.devices import battery
+from model.devices import speaker
 from hardware import hardwaremanager
 from hardware import nmclient
 
@@ -54,6 +55,8 @@ class DevicesModel(gobject.GObject):
 for udi in hal_manager.FindDeviceByCapability('battery'):
 self.add_device(battery.Device(udi))
 
+self.add_device(speaker.Device())
+
 def _observe_network_manager(self):
 network_manager = hardwaremanager.get_network_manager()
 if not network_manager:
diff --git a/src/model/devices/speaker.py b/src/model/devices/speaker.py
new file mode 100644
index 000..d3b9967
--- /dev/null
+++ b/src/model/devices/speaker.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2008 Martin Dengler
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+import gobject
+
+from hardware import hardwaremanager
+from model.devices import device
+
+class Device(dev

[sugar] Recursive Signal Loop.

2008-04-24 Thread Eben Eliason
Hello, my name is Eben Eliason, and I have a problem...

Symptom: The keep buttons in the Journal (the stars) take 1 second or
so between being clicked and visually reflecting that change.  This
is, admittedly, a rather minor problem, but as you'll see, it spells
out a larger underlying ugliness.  I expect the feedback to be instant
both because it's better that way, and also because the identical
(well, nearly so, as shown below) favorite icons used in the list view
of the new Home already function perfectly, and quickly.

Diagnosis: Upon inspection, the KeepIcon class used in the Journal
differs from the FavoriteIcon class used in Home in one crucial way.
The former does not connect to a button-release-event at all, and
instead depends on the code which uses it to do so for it, take the
necessary actions based on the toggle, and then tell the KeepIcon
itself that it has been clicked on in order to update its internal
state and reflect that with visual changes.  This is obviously the
incorrect approach to the problem, as the KeepIcon should abide by all
the wonderful properties that makes object oriented programming
useful, manage its internal state so that, if nothing else, it remains
consistent when clicked (it's basically a checkboxa boolean
toggle), and notify anything that may happen to care about its value
when it changes.

Treatment: Take the object oriented approach above, which works nicely
in Home, and should also work nicely in the Journal.  This cleans up
the code, and allows the KeepIcon to update its internal state
immediately before emitting the signal, thus redrawing before anything
which wishes to be notified of its state has a chance to waste lots of
time, slowing feedback.

Side-effects: This is where things get ugly.  The above changes were
trivial, but they create an ugly signal loop which makes the treatment
worthless in its purest state as described above.  Here's what goes
down:

When a KeepIcon is clicked, its button-release-event handler updates
its internal state, including its keep property, which thus emits a
notify::keep signal.  The CollapsedEntry object which contains the
KeepIcon connects to this signal in order to update the value of the
keep key in the metadata of the associated JObject.  So far so good.
The DS then emits an updated signal, which includes a reference to the
JObject which has been updated.  Off in Never-Never-Land, query.py is
listening for the update signal from the DS, and the handler for this
signal replaces the JObject in its internal dict, and then emits its
own modified signal.  The listview.py connects to the modified signal,
and its handler then calls self._do_scroll, which in turn calls
self._refresh_view.  The latter of these functions takes it upon
itself to loop over all of the CollapsedEntry objects visible on
screen, updating a match for the changed JObject by setting its
corresponding jobject property.  The method responsible for handling
the setting of this jobject property within the CollapsedEntry then
reads all of the info out of the newly passed JObject, and updates the
entry as required.  This includes setting the keep property of the
KeepIcon within the entry, which cannot assume that it has previously
been set, since this is also the function that gets called to
initialize the CollapsedEntry in the first place.  This, of course,
triggers the do_set_property of the KeepIcon, which in turn emits a
notify::keep signal. Hooray.

Treatment of side-effects: Anyone know the best way to handle this
issue?  I'm fairly convinced that the fundamental changes to the
KeepIcon class suggested above are the correct approach logically and
semantically.  I'm unsure about the correct way to sever the recursive
loop, however.  Any thoughts are very much appreciated, since I've now
spent considerable time messing with an issue that I thought would
have a 10 minute fix.

- Eben

PS.  Thanks for listening!
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Recursive Signal Loop.

2008-04-24 Thread Jameson "Chema" Quinn
I may not be understanding this right, but what if the CollapsedEntry, when
it got the signal, checked if it was actually going to have to change the
jobject, and if it was already kept, it would just abort? This would quash
the signal the second time around - one step more than strictly
necessary/ideal, but I don't know how to convince gtk not to send the signal
if it was already pressed, which is what would be necessary to quash it
exactly the first time.

Either that or on this step:

and updates the
entry as required.  This includes setting the keep property

you check the keep property before you set it, and do not touch it if you
are not going to change it.


On 4/24/08, Eben Eliason <[EMAIL PROTECTED]> wrote:
>
> Hello, my name is Eben Eliason, and I have a problem...
>
> Symptom: The keep buttons in the Journal (the stars) take 1 second or
> so between being clicked and visually reflecting that change.  This
> is, admittedly, a rather minor problem, but as you'll see, it spells
> out a larger underlying ugliness.  I expect the feedback to be instant
> both because it's better that way, and also because the identical
> (well, nearly so, as shown below) favorite icons used in the list view
> of the new Home already function perfectly, and quickly.
>
> Diagnosis: Upon inspection, the KeepIcon class used in the Journal
> differs from the FavoriteIcon class used in Home in one crucial way.
> The former does not connect to a button-release-event at all, and
> instead depends on the code which uses it to do so for it, take the
> necessary actions based on the toggle, and then tell the KeepIcon
> itself that it has been clicked on in order to update its internal
> state and reflect that with visual changes.  This is obviously the
> incorrect approach to the problem, as the KeepIcon should abide by all
> the wonderful properties that makes object oriented programming
> useful, manage its internal state so that, if nothing else, it remains
> consistent when clicked (it's basically a checkboxa boolean
> toggle), and notify anything that may happen to care about its value
> when it changes.
>
> Treatment: Take the object oriented approach above, which works nicely
> in Home, and should also work nicely in the Journal.  This cleans up
> the code, and allows the KeepIcon to update its internal state
> immediately before emitting the signal, thus redrawing before anything
> which wishes to be notified of its state has a chance to waste lots of
> time, slowing feedback.
>
> Side-effects: This is where things get ugly.  The above changes were
> trivial, but they create an ugly signal loop which makes the treatment
> worthless in its purest state as described above.  Here's what goes
> down:
>
> When a KeepIcon is clicked, its button-release-event handler updates
> its internal state, including its keep property, which thus emits a
> notify::keep signal.  The CollapsedEntry object which contains the
> KeepIcon connects to this signal in order to update the value of the
> keep key in the metadata of the associated JObject.  So far so good.
> The DS then emits an updated signal, which includes a reference to the
> JObject which has been updated.  Off in Never-Never-Land, query.py is
> listening for the update signal from the DS, and the handler for this
> signal replaces the JObject in its internal dict, and then emits its
> own modified signal.  The listview.py connects to the modified signal,
> and its handler then calls self._do_scroll, which in turn calls
> self._refresh_view.  The latter of these functions takes it upon
> itself to loop over all of the CollapsedEntry objects visible on
> screen, updating a match for the changed JObject by setting its
> corresponding jobject property.  The method responsible for handling
> the setting of this jobject property within the CollapsedEntry then
> reads all of the info out of the newly passed JObject, and updates the
> entry as required.  This includes setting the keep property of the
> KeepIcon within the entry, which cannot assume that it has previously
> been set, since this is also the function that gets called to
> initialize the CollapsedEntry in the first place.  This, of course,
> triggers the do_set_property of the KeepIcon, which in turn emits a
> notify::keep signal. Hooray.
>
> Treatment of side-effects: Anyone know the best way to handle this
> issue?  I'm fairly convinced that the fundamental changes to the
> KeepIcon class suggested above are the correct approach logically and
> semantically.  I'm unsure about the correct way to sever the recursive
> loop, however.  Any thoughts are very much appreciated, since I've now
> spent considerable time messing with an issue that I thought would
> have a 10 minute fix.
>
> - Eben
>
> PS.  Thanks for listening!
> ___
> Sugar mailing list
> Sugar@lists.laptop.org
> http://lists.laptop.org/listinfo/sugar
>
___
Sugar mailing l

Re: [sugar] Recursive Signal Loop.

2008-04-24 Thread Eben Eliason
On Thu, Apr 24, 2008 at 4:47 PM, Jameson Chema Quinn
<[EMAIL PROTECTED]> wrote:
> you check the keep property before you set it, and do not touch it if you
> are not going to change it.

That does in fact sound like a reasonable way to handle it.  It
doesn't require an extra time around "the loop"it simply stops it
directly at the signal handler for the KeepIcon change event by not
overwriting with the same value.  Don't I feel stupid now

Thanks!

- Eben
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Recursive Signal Loop.

2008-04-24 Thread Joshua N Pritikin
On Thu, Apr 24, 2008 at 04:52:52PM -0400, Eben Eliason wrote:
> I guess so, but that sounds like a pretty terrible hack.  I guess I'd
> have to set a flag within CollapsedEntry upon the notify::keep
> callback, and then check for the state of that flag within the
> set_jobject method of the same class, skipping the update of the
> KeepIcon when true and setting it back to false. This is a roundabout
> way of getting at it, though, and it actually *depends* on the
> callback loop remaining intact in the future.

Yah, that's pretty horrible. I was think more along the lines of passing 
a "change-owner token" through the API somehow. Maybe you can't do that 
because the API doesn't offer a slot for user-data. (This might be a 
good thing to add in the shiny new olpcfs?)

Another idea, if you are certain you aren't going to use multiple 
threads, is to put the change-owner in a global variable.

> Otherwise, the flag would get set on the callback, and never unset, 
> such that the next time a change was indeed performed outside the UI, 
> it would think that it just took a "long time" for the loop to go 
> around.
> 
> On Thu, Apr 24, 2008 at 4:45 PM, Joshua N Pritikin <[EMAIL PROTECTED]> wrote:
> > I'm not sure if I understood the problem, but ..
> >
> >  One way to handle this is to keep track of who made the change. If the
> >  change was coming from the user then the UI is already updated and does
> >  not need to be updated. If the change is coming from the DS (not the
> >  user) then the UI does need to be updated.

-- 
Make April 15 just another day, visit http://fairtax.org
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Recursive Signal Loop.

2008-04-24 Thread Bert Freudenberg

On 24.04.2008, at 22:56, Eben Eliason wrote:

> On Thu, Apr 24, 2008 at 4:47 PM, Jameson Chema Quinn
> <[EMAIL PROTECTED]> wrote:
>> you check the keep property before you set it, and do not touch it  
>> if you
>> are not going to change it.
>
> That does in fact sound like a reasonable way to handle it.  It
> doesn't require an extra time around "the loop"it simply stops it
> directly at the signal handler for the KeepIcon change event by not
> overwriting with the same value.  Don't I feel stupid now


I'd even consider it a bug if overwriting a property with the same  
value would emit a change event - but maybe this is how the framework  
works?

- Bert -


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Error when building libabiword-plugins

2008-04-24 Thread J.M. Maurer

On Thu, 2008-04-24 at 20:00 +0200, J.M. Maurer wrote:
> On Thu, 2008-04-24 at 16:34 +0200, Marco Pesenti Gritti wrote:
> > Hello,
> > 
> > I'm building libabiword-plugins on Fedora (soon to be) 9 and I get the
> > following error. libstdc++ version is 4.3.0.
> > 
> > Btw, can we update sugar-jhbuild to use 2.6.2? if someone can upload
> > tarballs on sugar.abisource.com I'll be happy to take care of jhbuild
> > modulesets update...
> 
> Will do later tonight (I hope it works out of the box, because pyabiword
> is a bit behind; i think everything sugar uses is up2date though).

AbiWord 2.6.2 and pyabiword 0.6.1 pushed to jhbuild, 100% untested
ofcourse (well, it compiles :)

  Marc

>   Marc
> 
> 
> > Marco
> > 
> > 
> >  g++ -DPACKAGE_NAME=\"abiword-plugins\"
> > -DPACKAGE_TARNAME=\"abiword-plugins\" -DPACKAGE_VERSION=\"2.6.0\"
> > "-DPACKAGE_STRING=\"abiword-plugins 2.6.0\""
> > -DPACKAGE_BUGREPORT=\"http://bugzilla.abisource.com/\";
> > -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
> > -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
> > -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
> > -DHAVE_UNISTD_H=1 -DHAVE_STRINGS_H=1 -DPACKAGE=\"abiword-plugins\"
> > -DVERSION=\"2.6.0\" -DHAVE_DLFCN_H=1 -DHAVE_BOOST=
> > -DHAVE_BOOST_THREAD= -I. -I. -I./../../.. -I./../../../core/packet
> > -DDEBUG -DUT_DEBUG
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/af/util/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/af/util/unix
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/af/xap/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/af/ev/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/af/gr/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/text/fmt/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/text/ptbl/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/wp/impexp/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/wp/ap/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/other/spell/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/other/fribidi/xp
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/other/ttftool/unix
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/af/xap/unix
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/af/ev/unix
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/af/gr/unix
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/text/fmt/unix
> > -I../../../../../../libabiword-2.6.0.svn20071127/src/wp/ap/unix
> > -DABI_PLUGIN_VERSION=\"2.6.0\" -DABI_PLUGIN_MAJOR=2
> > -DABI_PLUGIN_MINOR=6 -DABI_PLUGIN_MICRO=0 -DABI_PLUGIN_SOURCE=1
> > -DABICOLLAB_RECORD_ALWAYS -I/usr/include/loudmouth-1.0
> > -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
> > -DABICOLLAB_HANDLER_XMPP -I/usr/include/freetype2
> > -I/usr/include/fribidi -I/usr/include/glib-2.0
> > -I/usr/lib/glib-2.0/include -I/usr/include/libgsf-1
> > -I/usr/include/libxml2 -I/usr/include/gtk-2.0
> > -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo
> > -I/usr/include/pango-1.0 -I/usr/include/libglade-2.0 -g -O2 -MT
> > XMPPUnixAccountHandler.lo -MD -MP -MF .deps/XMPPUnixAccountHandler.Tpo
> > -c XMPPUnixAccountHandler.cpp  -fPIC -DPIC -o
> > .libs/XMPPUnixAccountHandler.o
> > In file included from XMPPUnixAccountHandler.h:24,
> >  from XMPPUnixAccountHandler.cpp:20:
> > ./../../../backends/xmpp/xp/XMPPAccountHandler.h:27: error:
> > 'std::string' has not been declared
> > make[5]: *** [XMPPUnixAccountHandler.lo] Error 1
> 
> ___
> Sugar mailing list
> Sugar@lists.laptop.org
> http://lists.laptop.org/listinfo/sugar

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Recursive Signal Loop.

2008-04-24 Thread Eben Eliason
On Thu, Apr 24, 2008 at 5:25 PM, Bert Freudenberg <[EMAIL PROTECTED]> wrote:
>
>
>  On 24.04.2008, at 22:56, Eben Eliason wrote:
>
>
> > On Thu, Apr 24, 2008 at 4:47 PM, Jameson Chema Quinn
> > <[EMAIL PROTECTED]> wrote:
> >
> > > you check the keep property before you set it, and do not touch it if
> you
> > > are not going to change it.
> > >
> >
> > That does in fact sound like a reasonable way to handle it.  It
> > doesn't require an extra time around "the loop"it simply stops it
> > directly at the signal handler for the KeepIcon change event by not
> > overwriting with the same value.  Don't I feel stupid now
> >
>
>
>  I'd even consider it a bug if overwriting a property with the same value
> would emit a change event - but maybe this is how the framework works?

Good point.  That seems not to be the case.

In other news, despite the much cleaner underlying code, my initial
treatment fails to alleviate the symptom!  It appears that the redraw
doesn't happen until after all of the signal handling business has run
its course.  This includes, as mentioned in my first message,
refreshing the entire view.  I looked at this again, and there is no
check for the particular CollapsedEntry which changed at all.
Instead, it loops over each one, refreshing each by setting the
jobject property of each, which of course resets the keep icon, resets
the object icon, creates a brand new palette from scratch and attaches
it to the object icon, looks up and formats the date, reads the list
of buddies and creates their associated objects and palettes, and a
number of other smaller tasks.  That's for /each/ entry shown, all
because one toggle button was clicked!  This seems like serious
overkill, but I'm not sure if there's an obvious way to isolate the
changes.  It does seem that, if anything, either the query.py or
listview.py code should be more intelligent about determining what
changes are worth doing such comprehensive updates for.  This is not
one of them.

Tomeu, you worked on the query and list code.  Do you have any insight
into this?

- Eben
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] Organization was Re: A technical assessment of porting "Sugar" to Windows.)

2008-04-24 Thread Edward Cherlin
On Thu, Apr 24, 2008 at 2:21 PM, Mitch Bradley <[EMAIL PROTECTED]> wrote:
>  A general observation about organizational behavior:
>
>  Organizations do not act coherently to nearly the same extent as
>  individual humans.  Individuals change their minds, act in ways
>  inconsistent with their stated goals, respond to different external
>  pressures at different times, etc.  With organizations it is even worse,
>  and the larger the organization, the more complicated it becomes.
>  Organizational leadership changes, goals and external realities change,
>  internal groups vie for influence, compete with one another and work at
>  cross purposes.  Different people within the organization make
>  statements that are attributed to "the organization".
>
>  Expecting an individual to behave coherently over time is dodgy at best;
>  expecting it of an organization is almost certain to disappoint.
>
>  In the OLPC case, the leadership at the very top hasn't changed, but the
>  second tier has changed, and the situation and external pressures have
>  changed drastically.

Yes, the middle tier is now supposed to be Kim Quirk (Technology),
Robert Fadel (Administration), Charles Kane (Business Development),
and whoever replaces Walter in Deployment. Has anybody heard? The
failure to announce such things is one of my biggest complaints.

Kim and Robert are adamant about not supporting first world
deployments, although they sort of allow them. GiveMany is a joke, and
the OLPC community isn't permitted to discuss projects like Illinois
(100,000 units proposed) with the staff. I haven't talked to Charles.

That reminds me. Do we have any idea what the Boards of Director and
Advisors think about all of this?
http://laptop.org/vision/people/

Does anybody have contact information for them? I have a few e-mail
addresses. Well, I'll ask.

Dandy, Ed, Joe; Alan, Mako (all bcc) pass it on, please, and read the
thread. We think that Nicholas doesn't know what he is talking about
with this Sugar on Windows idea and dissing Open Source, that he is
and has been dangerously out of touch with staff and volunteers, and
that he is now endangering the mission.

Problems like this are supposed to be the reason for a Board of
Directors to exist in the first place, so we want to hear that Board
members are taking the issue seriously, and preferably see evidence
that you are listening to what is going on, and understand the issues.

Advisors, any assistance you can give will be appreciated. This is the
time to advise, if ever there was one.

Nicholas's post
http://www.olpcnews.com/people/negroponte/nicholas_negroponte_sugar_olpc.html

Replies and related posts

http://lists.laptop.org/pipermail/devel/2008-April/thread.html#13140
On Sugar (Development)
http://lists.laptop.org/pipermail/sugar/2008-April/thread.html#5173 On
Sugar (Sugar)
http://lists.laptop.org/pipermail/community-news/2008-April/thread.html#112
Where is Walter

http://www.olpcnews.com/people/negroponte/open_source_fundamentalists.html
http://www.olpcnews.com/people/negroponte/one_laptop_per_child_off_the_track.html
http://www.olpcnews.com/people/negroponte/negroponte_is_further_gone.html
http://www.olpcnews.com/people/leadership/walter_bender_resigned_from_olpc.html

-- 
Edward Cherlin
End Poverty at a Profit by teaching children business
http://www.EarthTreasury.org/
"The best way to predict the future is to invent it."--Alan Kay
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar