924 lines
74 KiB
Plaintext
924 lines
74 KiB
Plaintext
|
|
Episode: 358
|
||
|
|
Title: HPR0358: Libre Planet 2009 Part 4
|
||
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0358/hpr0358.mp3
|
||
|
|
Transcribed: 2025-10-07 18:51:37
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
Mm.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
.
|
||
|
|
that is, you know, taking the web by storm and I'm the little guy trying to stop that
|
||
|
|
tide. So the first thing I think that we have to do, as principle, is be pragmatic. We're
|
||
|
|
doing this now in 2009. We need to really not think about what's going to be the all-singing
|
||
|
|
all-dancing, perfect network services. We need to use existing technologies, use the structure
|
||
|
|
of the internet as it exists right now. This doesn't mean that we can't think down the
|
||
|
|
road to ubiquitous computing systems that are universally addressable and real peer-to-peer
|
||
|
|
systems, things like that. But I think that we need to build the kind of systems that work
|
||
|
|
today. And that means that we need to be building around a hot and spoke architecture. This
|
||
|
|
is, you know, client server architectures. We need to build our system like this. The
|
||
|
|
fact is that most desktop laptops, personal computers, don't have a universal permanent
|
||
|
|
address. Because no one using their computer in here has a universal permanent address right
|
||
|
|
now. Most servers do, which means that they are reachable 24-7 and our client machines,
|
||
|
|
the personal machines are not. And this is not entirely true, this is not perfectly true,
|
||
|
|
but it's mostly true. An example that I use, here actually uses the email, probably everybody,
|
||
|
|
right? Okay, who has their own email server? Okay, so who has their email SMTP delivered
|
||
|
|
directly to their personal computer? Really? So you have a, wow, I'm impressed, actually.
|
||
|
|
I think that very, very two people do that. Most of us, if I'm out or pop, we use a hub
|
||
|
|
and spoke system. So it's pretty unusual that we see direct SMTP delivery. I think it's
|
||
|
|
possible, but I think that we're really going to see more hub spoke architectures. That's
|
||
|
|
the way it's really got to be for now. Finally, I think that provide a third principle is that
|
||
|
|
when we're providing services, we need to use the web. I know that seems kind of strange,
|
||
|
|
but there are people who are thinking outside that box and I think we need to kind of focus on it.
|
||
|
|
It works. It's scale. It's rich. It's got a good UI. It's ubiquitous. It's very easy to work
|
||
|
|
with. Very smart people continue to work on making it better. And it also makes the cost of
|
||
|
|
adoption about three to four orders of magnitude easier. People just don't have to install as much
|
||
|
|
software. They have to navigate to a web page. So it's considerably easier for people to use.
|
||
|
|
Fourth principle that I think is going to be very important is to use a free software license
|
||
|
|
that supports network services. And principally right now, that's the aferro general public
|
||
|
|
license, AGPL V3. I use it for Leconica. The key part of this license is that it, excuse me,
|
||
|
|
keep out of this license. It requires redistribution of source if people make a service available.
|
||
|
|
And that means that it becomes viral even for users of services. I think that making the software
|
||
|
|
license easily visible in your software will let it be well-known, put it in the photo of every web
|
||
|
|
page if you can, really kind of forwards the value of the licensing. It gives people awareness
|
||
|
|
over their rights. As a fifth principle, I think that it's important to build in licensing,
|
||
|
|
data licensing, content licensing to your software as early as possible. With Leconica, we built in
|
||
|
|
licensing for on a site-wide basis from the get-go, from the first launch. I also think it's a good
|
||
|
|
idea to use a free culture license by default. We use the Creative Commons attribution license 3.0
|
||
|
|
as the default. When you install our software, unless you fiddle with something, the stuff coming out
|
||
|
|
is going to be CC by. I think that's great. And I think that's a really good idea to do.
|
||
|
|
Leaving it up to users as a, you know, all rights reserved is the default and then they have to
|
||
|
|
choose another license means that, you know, your adoption of that is going to drop down really far.
|
||
|
|
I think that it's important to let give people choice if they want to change the way from a free
|
||
|
|
culture license, or if they want to use a different free culture license from the one that you have,
|
||
|
|
let users or service providers kick those, but use a free culture license by default.
|
||
|
|
I think an important part of providing a free network service is to use DNS,
|
||
|
|
use domain names as part of identity, especially using urls if you can.
|
||
|
|
Examples here is email addresses, xmpp. These are ways that we use, we distribute systems,
|
||
|
|
we let people be part of a federated network and we use the domain naming system as the names
|
||
|
|
facing for that. Trying to build something else or something different or something new that
|
||
|
|
does it differently and have a registry somewhere. Is a lot of work, it's totally unnecessary,
|
||
|
|
people understand domain names, they will make it work. Open ID, urls is another one here,
|
||
|
|
and blogs is a great example. People really understand that they own the domain for their blog.
|
||
|
|
So there's that. Speaking of distributed identity, I think it's important to build in
|
||
|
|
distribution early. This is something that and providing links between instances very early on.
|
||
|
|
If you're just software, these are my newly announced principles. If your software has any
|
||
|
|
social aspect, you should build in support for distributed sociality early on. Distributed
|
||
|
|
sociality meaning that I'm on one server, you're on a separate server, we can communicate,
|
||
|
|
we can have a relationship that's expressed on both sides of our servers. I can operate on objects
|
||
|
|
like images or text or whatever, on your server and vice versa. So if software has
|
||
|
|
a social aspect, it should be distributed and all software has a social aspect. So all software
|
||
|
|
should support distributed sociality. Two important technologies here are open ID and
|
||
|
|
open ID is an authentication, distributed authentication protocol, OAuth is a distributed
|
||
|
|
authorization protocol. Both are really interesting and really should be the first thing you go
|
||
|
|
to if you're thinking about distributed sociality. On that note, kind of going to be the way that
|
||
|
|
things go through this whole talk is like after I just said that, support up in standards. I think
|
||
|
|
this seems like something very simple that a lot of us understand is important, but it makes it
|
||
|
|
really easy for people to build free software, compatible free software for your software. So if you
|
||
|
|
support an open standard for authentication, if you support an open standard for producing data
|
||
|
|
feeds, if you support open standards for lots of things, that means that other people can use
|
||
|
|
standards and create cool software and become part of an ecosystem. Another thing that's important
|
||
|
|
there is being semantic. And the semantic web is this kind of, especially on the web, it's kind of
|
||
|
|
gotten this reputation for being this egghead idea that nobody really uses. And being a roomful
|
||
|
|
of eggheads, we probably all think that that's okay. But I think semantic, the semantic web is a huge
|
||
|
|
democratizing force on the web. It means that we put a lot of smarts that we already know about
|
||
|
|
already into our data and that means that our software doesn't have to be very smart. Smart
|
||
|
|
software tends to be proprietary software, patented software, it tends to be protected by trade
|
||
|
|
secrets. Really smart software is why say Google is so important and why other kinds of search
|
||
|
|
engines are so good is because they've got really smart software. But that makes it really hard
|
||
|
|
to build a competitor to Google because you have to have the same kind of smart software.
|
||
|
|
On the subject of Google is that I think that web software needs to be, if you are building web
|
||
|
|
software for free network services, you need to really think about how your software looks to
|
||
|
|
search engines. This sounds kind of sleazy, nobody likes these terms, search engine marketing,
|
||
|
|
SEO, but they are what gets people to see your software, what gets people to see the content
|
||
|
|
that's in your software, and it gets more people to use your software. People will use your software
|
||
|
|
if it will mean that they will get better at Google rankings. They will like that. They will take
|
||
|
|
that if you hide all your pages behind weird earls or require some kind of login to get things or
|
||
|
|
you don't let search engine robots find your pages or things like that, that's going to mean that
|
||
|
|
people won't want to use your software. So make your software SEM savvy that makes people like it,
|
||
|
|
makes robots like it. There are some really nice tools that you can build site maps, ping servers,
|
||
|
|
need to, one of the great things about making your websites SEM savvy is that it also means that
|
||
|
|
other third party tools can access the site better too. Another issue that came up for me
|
||
|
|
very early with Leconica was that we were going into places where there weren't existing open
|
||
|
|
standards and weren't existing protocols. So I had to create a protocol for distributed micro
|
||
|
|
blogging, called open micro blogging 0.1. It's not brilliant, it's very simple, it doesn't cover
|
||
|
|
the whole problem space but it's enough to get things going. It's enough to get people interested
|
||
|
|
and involved and kind of establish the framework. What we've actually done with open micro blogging
|
||
|
|
is I didn't know 0.1 version which was about six months ago when we launched Identica and we're
|
||
|
|
going to be launching 0.2 version that has had the input of various other micro blogging implementers
|
||
|
|
which means that we got something out there and then it was enough to make a stake in the ground
|
||
|
|
and get us moving forward. So I'm really happy about that. Probably the big achievement there is
|
||
|
|
Google's micro blogging engine Jakub is going to be supporting open micro blogging in its next
|
||
|
|
version. It's just been released into open source and we're going to be having an open federated
|
||
|
|
network of Jakub and Leconica instances. So that's going to be really huge. But that's there.
|
||
|
|
I think another thing that's important and this is something that we really fall down on
|
||
|
|
with free software for web services is supporting a range of usage. This means that
|
||
|
|
where we usually do find is like download the software and install it on your server and you'll
|
||
|
|
be fine. That's great. Well that is only one kind of user. There are other kinds of users.
|
||
|
|
There are going to be people who want to have a hosted service that is they don't want to download
|
||
|
|
the software and install it on their servers. They want to run it on your server. We should be
|
||
|
|
reaching those people. And we also should be reaching people who just want an individual account
|
||
|
|
on a single instance of the software. So this is one of the things that we're doing with
|
||
|
|
Identica. We're going to have a hosted service that we're going to launch in April. We also
|
||
|
|
have a major service which is the Identica service that we use for individuals who want an
|
||
|
|
individual account. So we're just reaching across that spectrum. That's not something that's easy
|
||
|
|
to do with other kinds of web software. And that's where I think we really need to do a better job,
|
||
|
|
whether it's a nonprofit or commercial entity that's providing those services, whether it's
|
||
|
|
exactly the development group or if it's an associated group, I think bright with Drupal is
|
||
|
|
a good example there. But making sure that these options are available, finding someone who
|
||
|
|
does who will provide those services really important. Another thing that I think is important for
|
||
|
|
network services is building to scale. And when people talk about scaling, they always talk about
|
||
|
|
this like really big end of the scale. That end of the scale is these are like number of users
|
||
|
|
at the top and then kind of what kind of installation we're talking about on the bottom. You know,
|
||
|
|
with like one to ten users, you can have a small installation of most kinds of software on commodity
|
||
|
|
web hosting. You know, you can just go to GoDaddy and get like they're $2.95 on web hosting. You can
|
||
|
|
go to, as you get larger, you really have to go to least servers, virtual servers, that kind of thing,
|
||
|
|
you know, with 100 up to like 10,000 users, you know, which is kind of the medium-sized website.
|
||
|
|
I think I need to really large installations. These are on servers of people own or else they have
|
||
|
|
a very big account for these servers, you know, 10 to the fifth up to 10 to the eighth, which is really,
|
||
|
|
that's about the size of Yahoo, you know, that's the most user biggest user basis that we're talking
|
||
|
|
about. And we have to build software that goes up and down the scale, right? Most of the installations
|
||
|
|
will be out of those small installations. But these big ones are going to probably reach the
|
||
|
|
most users. And I don't know about the middle there. So each one is important. Concentrating on
|
||
|
|
one part of the scale and ignoring the other parts of the scale, I think is a really big mistake.
|
||
|
|
And I think that we need to be able to reach everywhere on that scale. One thing that's been
|
||
|
|
very important for me, one of the things that I've really understood as I build free network
|
||
|
|
services is the importance of making big data dumps. Give people all the data, make a big tarp
|
||
|
|
all of everything that you can, all your public data, and make it easily downloadable. I think this
|
||
|
|
is one of the reasons that Wikipedia is, it seems strange, but it's one of the great things about
|
||
|
|
Wikipedia is that you can get all of Wikipedia. It's a, it's like a 20 gig download, I think, but what?
|
||
|
|
That's just like a tarp like that. Really? Yeah. All of it to the wall of history. Yeah, yeah.
|
||
|
|
So it's huge, it's huge, you know. Images are another two and a half tarp like that.
|
||
|
|
Okay. But also making a dump available to people that they're on private data. So these are things
|
||
|
|
that I'm working to build into Leconica. They're not actually there yet, but things that have
|
||
|
|
proved very important for other services that I've seen. Feds are also hugely important
|
||
|
|
and something that we have to be important. So feeds should be available to
|
||
|
|
by default to downstream users. You should, when we build software, we should really put that
|
||
|
|
into the software is like, you know, putting those feeds out there. And we should also work
|
||
|
|
hard to find the aggregators who are going to use these feeds for searching, for directories,
|
||
|
|
for archives, all the things that would use those data, make sure those, those are going out.
|
||
|
|
When people download and install the software, it should be integrated into a,
|
||
|
|
an ecology of feed consumption already. I think that new free network services
|
||
|
|
are really needs to support each other. I think that there are some great free network services
|
||
|
|
out there already. A lot of stuff in the geospatial, a lot of open street maps, for example.
|
||
|
|
Geonames is a really cool geolocation, free network service. Search Wikipedia, I think, is probably
|
||
|
|
getting to be, their data is not entirely free, which is kind of not a good idea, but they do have
|
||
|
|
a lot of data that's pretty free. And starting to encourage other free network services is
|
||
|
|
really important. Obviously, identical would go up here too, if I wasn't to humble to put it
|
||
|
|
actually on that list. But we all move faster if we're encouraging each other and we're using
|
||
|
|
each other. We also, you know, someone using identical who goes, who does a search for a location
|
||
|
|
and gets to open street maps is now introduced to a new free network service that they didn't know
|
||
|
|
about and that they can participate in. And you can also depend on these other free network
|
||
|
|
services to advance your own functionality. But I also think that it's important to engage with
|
||
|
|
existing proprietary services. The fact is, today, in the world of free network services, it's like
|
||
|
|
1989 in the world of free software, right? We've got like EMAX and GDB and that's it, you know?
|
||
|
|
We just, we don't have a full software stack for free network services. You cannot live your
|
||
|
|
entire online life with free network services unless you live a very limited online life, right?
|
||
|
|
If you want to debug and edit stuff in EMAX. So, and just like with the earliest free software,
|
||
|
|
we have to live in the ecology that exists right now. And if we don't, so you have to install on
|
||
|
|
the proprietary unices that exist with the early free software. Now we need to engage with
|
||
|
|
the proprietary services that exist right now. That's where people are. That's the environment we
|
||
|
|
have right now. And I know that's not always the nicest thing to think about. And I know that
|
||
|
|
there are probably people in the room who've never had to live in a time where you didn't have an
|
||
|
|
entirely free free software desktop system. But trust those of us who lived in the year 1999,
|
||
|
|
it was it was a hard world, but we made it through, you know? And we have to do that right now with
|
||
|
|
non-free network services. So another thing that's really important for free network
|
||
|
|
services is making it easy to share source. And it doesn't have to be hard to do this. Again,
|
||
|
|
building this directly into the into the software is important. Building in source links
|
||
|
|
have easy ways for users of a service to find the source. And also, if there's a plug-ins,
|
||
|
|
themes, anything like that that's built into the software, make links to those too. Mediawiki does
|
||
|
|
this really nicely. And it's one of the things that I think is really great. One thing that is not
|
||
|
|
easy to do is if the software has actually been modified, but there's no like tarball or anything,
|
||
|
|
to actually slurp that source out, that's a little trickier. I haven't seen anyone do that yet.
|
||
|
|
I'm not sure if that's actually even that necessary. One part about being part of a free
|
||
|
|
networking, free software networking, excuse me, free network services and ecology is providing
|
||
|
|
remote access. So a remote API's, simulate third-party development, they mean that your software,
|
||
|
|
your service could be part of match-ups where someone could take, you know, identical,
|
||
|
|
identical micro-blogging notices and place them on an open-street map to map, nifty, things
|
||
|
|
like that. It also allows providing your remote API to means that people can use your software from
|
||
|
|
non-brows or environments like desktop clients, laptop clients, mobile clients. We use a remote API
|
||
|
|
for identical that we borrowed in Toto from Twitter. So we've used the exact same API that they
|
||
|
|
have, which means that we have a lot of support from third-party developers, which means that more
|
||
|
|
people are using our software or service. Additionally, we provide a plug-in system and I think the
|
||
|
|
most successful web software is really those that provide server-sized plug-ins. They stimulate
|
||
|
|
contribution. They let people get involved without actually having to touch the core code. They make
|
||
|
|
it easy to integrate with other services that may not be appropriate to build into the core code,
|
||
|
|
but you can build them into a plug-in. They also let people take your software and start
|
||
|
|
integrating into their existing systems. So it's a great way to give people a reason to install
|
||
|
|
your software. Theaving and skins, I know this may seem strange, but I think it's a hugely
|
||
|
|
important thing to get adoption of software for free network services. People really like good,
|
||
|
|
lucky websites and this is a big part of their first sniff of a website is how good it looks,
|
||
|
|
how rounded are the corners and how fancy is the color theme, right? And all that kind of stuff.
|
||
|
|
And if it does not look good, they will make a gut response and be out of there in less than a second,
|
||
|
|
like literally less than a second. The site owners also, people who are providing services
|
||
|
|
want to provide some kind of branding, put their mark on the site, they want to make it look like
|
||
|
|
it's theirs. So it's important to support theming skins. Using template engines, I think is
|
||
|
|
kind of overused, but I think definitely CSS can make things very charming and well done if you've
|
||
|
|
got very simple HTML output. Another thing that I think that we have a huge advantage on
|
||
|
|
as people who are developing free network services is being international. The web,
|
||
|
|
business world, especially in North America, still thinks primarily in English. Actually,
|
||
|
|
still thinks primarily in terms of the San Francisco Bay area and occasionally thinks outside
|
||
|
|
there to the rest of California. But the idea that there are another 7 billion people in the world
|
||
|
|
who might want to use some software kind of stumps a lot of people with Silicon Valley,
|
||
|
|
which is great because that means we can go in there and provide services to them.
|
||
|
|
And those people around the world are looking for ways to participate in web culture,
|
||
|
|
in a social web, and in a web culture that cuts them out linguistically, we can provide the
|
||
|
|
tools to integrate them back in. Not only that, but there are great translation resources out there.
|
||
|
|
There are people out there who speak to Lugu or Bulkarian, and all they do is look for free software
|
||
|
|
projects to contribute translations to. Advocates for their language and they want to see those
|
||
|
|
translations happen, and they just come out of the woodwork looking for ways to do that. And then
|
||
|
|
all of a sudden, you know, we've got the Twitter that speaks Ukrainian, and people who in the Ukraine
|
||
|
|
can either go to Twitter where they have an option to speak in Spanish or in Japanese or English,
|
||
|
|
or they can go to Identica where they can actually speak in Ukrainian and get UI in Ukrainian.
|
||
|
|
This is something that in the free software world, we have total advantage on and we need to
|
||
|
|
capitalize on it. I also think using Wikis for documentation is really good to capitalize on
|
||
|
|
those translation resources too. Finally, I think this is kind of finally. I might have a
|
||
|
|
couple more. It's really easy to use network services. It's really easy. People who are used to
|
||
|
|
using browsers can use these proprietary non-free services really quickly. Signing up for Facebook
|
||
|
|
is really easy, and we need to make our free network services very, very easy too. We need to make
|
||
|
|
installation of free software on websites very easy. As easy as we can, we should make setting up
|
||
|
|
an account on an existing server cheap, at least, or free of possible, free of charge,
|
||
|
|
and setting up an instance on a hosted service should be really easy too. These are things that
|
||
|
|
just a matter of like one or two clicks can be the difference between, you know, 10% of people
|
||
|
|
actually going through and creating account versus like 70%. So this is something that we
|
||
|
|
really have to concentrate on. Concentrate on that UI and concentrate on the UI both for admins
|
||
|
|
and for, excuse me, both for service providers and for end users. Here is probably my most
|
||
|
|
controversial slide, I think, is that I really think that using PHP and minuscule for new
|
||
|
|
software for, thanks. New software for free network services is really important. I think that
|
||
|
|
PHP, the LAMP stack is really the, the, the posics of C and posics of free network services
|
||
|
|
that it's entirely possible to build web software with practically any programming language
|
||
|
|
under the sun. Just like it was pretty much easy to build software for unix-like systems
|
||
|
|
in pretty much any, any, a programming language under the sun. However, what really succeeded in
|
||
|
|
the free software world was C software, stuff written in C. And I think that that is what we're
|
||
|
|
going to see happen with, with PHP and my SQL, actually what we have seen happen with PHP and
|
||
|
|
my SQL. The most successful free software project, free software for, for the web is PHP and
|
||
|
|
my SQL and you really need to think hard if you're going to try to build something in another
|
||
|
|
programming language that you really want mass adoption of. So, and, and one of the big reasons for
|
||
|
|
that I, I point out here is that crappy 295, you know, commodity hosting system that people
|
||
|
|
can install your software, it almost always runs PHP and my SQL, it really rarely runs C side
|
||
|
|
and Scala and, you know, all that, all that really cool stuff. If you don't agree with this,
|
||
|
|
if you think that this is wrong, make a change, you know, there are some really cool platforms
|
||
|
|
coming out that, that mean that people can get that same kind of hosting and, and, and deploy
|
||
|
|
new free software that's written in other programming languages. And I think that this is,
|
||
|
|
is something that people need to, to do if they care about programming languages.
|
||
|
|
For the ways to, for the things that if you're interested in seeing a free network service
|
||
|
|
ecology develop and, and become the, what's available on the world, feel free to contact me
|
||
|
|
because I'm really used to, this stuff boosts that, that's my email address, that's my
|
||
|
|
Identica account, but also we've started this blog and Wiki called Autonomous and Autonomous.us,
|
||
|
|
and, and that's a good place that we really want to see become a Nexus Point for, for development
|
||
|
|
of these free network services. And, I think that's it, that's it, come on. So, thanks.
|
||
|
|
So, I think I have a little more than five minutes, and so I'd love to take some questions from
|
||
|
|
the audience. You, sir. I'm just wondering about awkward, sort of bottlenecks and choke points
|
||
|
|
that you see in the larger networking space. Like, what do you solve this problem? What other kinds
|
||
|
|
of major problems need you to address before anything else? So, I think that we have a lot,
|
||
|
|
I actually have a, I started a wish list on Autonomous and it's, it's kind of awesome.
|
||
|
|
For, where, what kind of software that we want to see develop, things like bookmark sharing,
|
||
|
|
photo sharing, general purpose, social networking, a lot of Facebook, general purpose, news,
|
||
|
|
systems, all I did. Basically, just go to like, you know, if you go to like any list of the hot
|
||
|
|
100 websites, you know, just like go down there and say like, okay, let's replace that, let's
|
||
|
|
get rid of that. Okay, let's replace that. You know, there is a lot of web infrastructure, a lot of
|
||
|
|
web services that we need to start challenging with free software alternatives. And those are
|
||
|
|
something that I really think are big. Quick follow up to that is, I'm building some of these,
|
||
|
|
that's why I'm asking. Good to do that. If I do this, I'm not planning to use PHP, actually,
|
||
|
|
and I'm just wondering, why do you think that's true? Is it because of the server architecture
|
||
|
|
and the hosting services that's going to screw me because I'm planning to be radically distributed
|
||
|
|
and peer-to-peer anyway? So, yeah, yeah. So, I think it's primarily the hosting. I think the fact
|
||
|
|
that people can get hosting with PHP and MySQL, very cheaply, very easily, means that the adoption
|
||
|
|
of PHP and MySQL web software is just, you know, probably like an order magnitude to a couple
|
||
|
|
of order magnitudes compared to other stuff. You know, WordPress versus Blossom, you know, and it's
|
||
|
|
just like a hundred times more. So, if what you want to do is create something that is a distributed
|
||
|
|
worldwide challenger to an existing network service, then you need to not go for the niche
|
||
|
|
audience, you need to go for the mass audience. And the mass audience is PHP and MySQL.
|
||
|
|
Yeah, another question.
|
||
|
|
Yeah, I'll, yeah, no, it's you. So, go.
|
||
|
|
So, I know they're good and easy to do better apps like you're talking about are really attractive
|
||
|
|
to the really on Rails community and the help platform. So, that's a good way to talk about
|
||
|
|
using a factory and PHP, I'm saying everybody can summarize all that.
|
||
|
|
Well, a lot of them are on Unreal and Ruby. Yeah.
|
||
|
|
It should be, as a movement, as a group, which you have left, I'm trying to promote
|
||
|
|
that they keep their apps pre-stopper, they can use the ppl and so on.
|
||
|
|
A lot of times, you don't see a lot of pre-stopper foundations.
|
||
|
|
Have people with those contents that are more on-chain with this?
|
||
|
|
Yeah. So, all right. So, I think, you know, when you talk to people who make web services,
|
||
|
|
they'll be like, God, we love open-source software. It's awesome. You know, we love building
|
||
|
|
our proprietary services on top of this open-source software. You know, it's so great.
|
||
|
|
And that's why I think it has happened a lot with Ruby and Ruby on Rails.
|
||
|
|
It's a great platform. The people who work on that core stuff are great.
|
||
|
|
I cannot name a popular piece of free software that is based on Ruby on Rails.
|
||
|
|
Can somebody else? Anybody? I mean, I can't. I can't think of one.
|
||
|
|
Like, I can't think of a Drupal that's written in Ruby on Rails.
|
||
|
|
That community is not generating... What's that?
|
||
|
|
There we go. Or a whip. Yeah, yeah. Right on. The good one. Okay. Cool.
|
||
|
|
Do you think that's cultural that Ruby does following to do something about the brand-new it?
|
||
|
|
Because that was guaranteed by the core. The policy needs to be very tough to set stuff.
|
||
|
|
Yeah. I don't know. I don't know why that's happening. How much is it... How much is it the deployment?
|
||
|
|
How much is it... The stuff that is getting written is not building the
|
||
|
|
contributor communities that are necessary to have a healthy free software community.
|
||
|
|
I'm not sure. I have nothing. I'm definitely not a PHP advocate or bigot.
|
||
|
|
I just happen to think that it's the easiest platform to build on right now.
|
||
|
|
And if someone thinks that they can get... If someone writes a really great Facebook replacement
|
||
|
|
in Ruby on Rails, awesome. You know, great. And if they don't, you know, then we need to think of something else.
|
||
|
|
Yeah, Bradley. I don't play with my wife often, but I have to play with my wife.
|
||
|
|
I have to be my scavenger when I don't write that for them. Oh, really?
|
||
|
|
Yeah, so it's with your fault. The argument she was making was that Twitter has won.
|
||
|
|
And she kind of had a point, which is why we argued.
|
||
|
|
And it's why people start working out in Twitter, because I have been pushing my
|
||
|
|
dynamic statements through Twitter. And what she was arguing, they can realize that it's time for us
|
||
|
|
of the Twitter group to ask if I do that. So, to what extent do you think we need to refuse to
|
||
|
|
cooperate? Because you're cooperating with Twitter. They're not cooperating with you.
|
||
|
|
Yeah. So, to what extent do you think that just refuse to cooperate? That's why I can do what I can
|
||
|
|
turn off the push group because they won't give us access once we hear the microphone.
|
||
|
|
Yeah, I think it's a really, I think it's a really interesting question. I'm not sure.
|
||
|
|
So, when people tell me this and tell me in terms of like, this is why I should quit working
|
||
|
|
on the conical and identical, because Twitter has won. People are going to be speaking on this
|
||
|
|
with Twitter. Yeah. Yeah. I think that it's with Twitter in particular. I think that that's
|
||
|
|
totally premature. Twitter has 5 million users. There are 1.4 billion people on the internet today.
|
||
|
|
There are another 1 billion people who have mobile phone access, which is one of the key
|
||
|
|
usage of micro-blogging. And so, that 5 million people is 5 million influential people.
|
||
|
|
It's a lot of, you know, web people, an awful lot of people in the San Francisco Bay area,
|
||
|
|
once again, funny how that happens. But it's a, it's not game over yet. You know, it's not game
|
||
|
|
over anymore than like, blogging was over in 2000 when, when blogger.com launched.
|
||
|
|
Open software stack on mobile phones?
|
||
|
|
I think you've achieved long maybe, but in the city, there's not a lot of
|
||
|
|
that other billion people? Yeah. That billion people that don't have web access?
|
||
|
|
That's a good question.
|
||
|
|
Oh, ones that do have a web access, but only on their phones?
|
||
|
|
Well, for a day, access, which is even worse, right? Because then it's completely
|
||
|
|
free traffic and mobile. Companies like for key and mobile phones are kind of against the internet.
|
||
|
|
Right. So, yeah. So, should we have free phones?
|
||
|
|
Yes. We should have free software phones that are freely, that can freely connect to a free
|
||
|
|
internet. That's absolutely the case. That, and that is going to be great for free network services,
|
||
|
|
too. But can we have free network services without having those free phones, or can we work
|
||
|
|
in tandem on that? Do we have to wait for free phones before we can have free network services?
|
||
|
|
I don't feel like we have to wait. I think we have to be working on this problem right now.
|
||
|
|
Back to your question. Should we, should we boycott Twitter? Should we boycott Facebook? Should we boycott
|
||
|
|
Google? Sorry, dude.
|
||
|
|
I think that we're, it's a hard time to do that. I think it's a hard time to ask people to do that.
|
||
|
|
I don't think that saying that I think it's a good time to be raising the issues, you know,
|
||
|
|
and saying there's a proprietary, your entire sociality, the events that you go to,
|
||
|
|
your friendships, the people you connect to, your mom, your, your high school buddies,
|
||
|
|
right. All that information is owned by a proprietary company in Palo Alto, California,
|
||
|
|
and they can deny you access to it in a second. And you need to think about that. And you
|
||
|
|
need to think about what your level of control is and what's really important. And if you don't have
|
||
|
|
that level of control, you need to get a little bit scared. And I think people do get a little bit
|
||
|
|
scared when like Facebook changed their EULA, and Facebook had to back down, which was great.
|
||
|
|
I think that if, yeah, yeah, right, right. But I think that activating people in that way is
|
||
|
|
something that's going to be a little bit more gradual. I just don't feel like we're in a place.
|
||
|
|
I think we can encourage people to use free network services. I think that telling people you
|
||
|
|
cannot, yeah, time to go. I think it might not be time to say don't use not free network services
|
||
|
|
100%. Anyways, thanks everybody. So we have a break now for 15 minutes. And we have some
|
||
|
|
snacks outside. There is a key signing. That's going to a GPG key signing would be by the registration
|
||
|
|
table. Basically, on the weekend, they actually said I was going to do a bunch of talk on
|
||
|
|
reverse engineering, but unless people really want to see lots of boring color-coded hex dumps,
|
||
|
|
I was really going to do a talk on Ganesh itself in the project.
|
||
|
|
Can you do more? Try that. No, I'm just talking, oh, test one.
|
||
|
|
I'll just try and talk really, really loud, I guess. But anyway, yeah, my reverse engineering talk
|
||
|
|
is unfortunately like an entire afternoon's tutorial. And I thought I'd spare you guys the
|
||
|
|
boredom of reading hex dumps, although it is kind of fun when you get really into it. So,
|
||
|
|
anyway, yeah, I'm going to talk about Ganesh, the GNU flash player, which fun enough somebody once
|
||
|
|
did a vote and said we have the worst name of a GNU project they had ever heard of. I don't know
|
||
|
|
why, but the rest of us kind of like it. I work for OpenMedia now, which is a nonprofit I found
|
||
|
|
it several years ago. And we're actually at 501c6, sort of a trade organization based in Colorado,
|
||
|
|
legal nonprofit. We have a team spread out, I think at last count over about 9 or 10 different
|
||
|
|
countries working on a lot of our software. And I used to say we raised funds for OpenMedia
|
||
|
|
related projects, but the last three months it's been more like we attempt to raise funds.
|
||
|
|
I don't know if anybody here is running a nonprofit, but it's a really bad economy for
|
||
|
|
sponsorships for free software projects. And we're about to announce a big legal project working
|
||
|
|
with patents around multimedia codex and stuff that I'll talk about in a little bit as I get into it.
|
||
|
|
And anybody can ask questions at any time, because this isn't so much as I talk,
|
||
|
|
is a bunch of slides and you can interrupt me and distract me all you want.
|
||
|
|
So can we donate to OpenMedia now, like give you money?
|
||
|
|
Yes. All right. We have to take free beer, misogies, and this up.
|
||
|
|
I was in New York about three days ago and saw something called FHGML, which translates,
|
||
|
|
sort of high level HTML directly into clash. I'm wondering if you know those guys,
|
||
|
|
because it's kind of interesting how there's stuff translated to you instead.
|
||
|
|
No, but since we interpret Flash, you know, Swift format, we won't care, because when we say it,
|
||
|
|
it's already down to the Swift. And so I'll talk more about codex later. So right now,
|
||
|
|
for the last four and a half years, we've been sort of funding and sponsoring several projects.
|
||
|
|
Kind of one of our goals in OpenMedia, who cares anyway. One of the goals in OpenMedia now is that
|
||
|
|
we believe really strongly in patent-free multimedia codex. And then the big problem is that there's
|
||
|
|
not really a complete infrastructure for using things like Vorbiz. So if you wanted to create a
|
||
|
|
video in FHGML, edit it and put it on your website. You can kind of do it now if you're a geek,
|
||
|
|
but most normal people, it's pretty daunting. And so one of our goals was to develop the sort of,
|
||
|
|
you know, creation ends, server-side and client-side for multimedia, you know, web. I'm not going to
|
||
|
|
use the 2.0 thing because it makes me sick. But so we work a lot on Ganesh, which is our client-side
|
||
|
|
for displaying Flash, of course, you know, Adobe Plug and Compatible. I just two weeks ago,
|
||
|
|
released Signal, which is a Adobe Compatible Media Server that also speaks Flash and a couple
|
||
|
|
of other protocols. And Ming, which is sort of a Flash compiler type of creation environment that,
|
||
|
|
as of last week, somebody's putting a GUI on. So we're working now on graphical IDEs for Flash
|
||
|
|
programmers, which should be fun. Primarily, you want to orient it towards educational games.
|
||
|
|
I figured I'd throw this one up. Everybody goes, how do you wind up working on, you know,
|
||
|
|
free software projects sometimes? I mean, I remember when I first started on GCC, I needed a
|
||
|
|
free compiler and couldn't afford to pay $9,000 a seat. So Ganesh's first platform, believe it or
|
||
|
|
not, was my stereo. One day I got a phone call from an old friend of mine and John Gilmore,
|
||
|
|
and he had some company that wanted to do a Flash-based user interface. At the time, I hadn't quite
|
||
|
|
realized this five years ago, but since now, it turns out that the main use of Ganesh is not
|
||
|
|
on a web browser. It's actually a user interface for set tops and embedded devices that runs in a
|
||
|
|
raw framework with that X11 that happens to know how to do a video. So anyway, I spent about six
|
||
|
|
months on this originally. I looked around for existing projects, you know, the next thing about
|
||
|
|
the sort of free software world is a lot of times we all build on the work of others. And so
|
||
|
|
sometimes when we're asked to start a new project and don't have a whole lot of time, you really
|
||
|
|
need to depend and build on the work of others. So I found this one project that was the beginning
|
||
|
|
of a Flash player, talked to the developer, he had kind of abandoned it, and became a pretty
|
||
|
|
active developer on it, ported it, and bang, there was the user interface for my stereo system.
|
||
|
|
There's a nice box, they make these stereo's for high-end houses and stuff. This particular
|
||
|
|
box has got a 600 gigabyte hard drive with about 2,500 gradeful dead bootlegs I think on it.
|
||
|
|
It's the gradeful dead box. But it's amazing what people could start it. And when I did this,
|
||
|
|
I didn't really think about it, and I'll get into it more, but I did a project and wrote a little
|
||
|
|
Flash player and then forgot about it, and then a while later it kind of came back to me.
|
||
|
|
Is it? Oh good, and I can talk a little quieter. So basically, some people say like, why Flash?
|
||
|
|
I mean, one of the problems is that myself and actually nobody on the Ganesh team,
|
||
|
|
none of us had ever installed the Adobe plugin, because I just don't like binary blobs really.
|
||
|
|
So one of the funny things we had is like, why Flash? Well, in the earlier days of the internet,
|
||
|
|
nobody really cared. And even up until the early parts of 2000s and stuff, you could pretty
|
||
|
|
much navigate the web pretty decently without a Flash plugin. But what we started to see was a lot
|
||
|
|
of problems. People were starting to use Flash for menus, not instead of image maps. People were
|
||
|
|
using Flash in a lot of ways that wasn't like video or animation. I mean, Flash is a graphics
|
||
|
|
programming language. And so what was happening was that basic functionality on some sites,
|
||
|
|
login pages, menus, all that kind of stuff, were becoming so Flash-based that I'd go to a
|
||
|
|
website and it'd be a big gray box, you know. That was kind of getting irritating. Then it started
|
||
|
|
happening more and more and more. Then this crazy thing called YouTube came out and, oh my god,
|
||
|
|
suddenly Flash has been adopted, you know, worldwide for streaming video applications. Maybe good,
|
||
|
|
because Silverlight, I hear sucks. And I think for Silverlight, you have to download binary blob
|
||
|
|
codecs for Microsoft still. So, which is good. And that's one case I hope that us in Adobe
|
||
|
|
survive the onslaught of Microsoft there. And then the other thing was that Flash is also heavily
|
||
|
|
used for educational applications and gaming, which I never really thought of until I got involved
|
||
|
|
at the O L P C project. So in some ways people go, well, you know, what do we care about Flash?
|
||
|
|
I mean, you know, big deal. It's like, you know, graphics and mostly ads. Like when I first got
|
||
|
|
Ganesh running as a web browser plugin, I realized that the internet had been taken over by, you know,
|
||
|
|
basically real estate agent who all use like Flash 5 that runs in anything, you know. And it's like
|
||
|
|
the whole size of your browser blinking. I'm like, oh, that was in a state. Maybe I should kill this
|
||
|
|
project now. But the part of the problem was that as time went on, when you don't have a Flash
|
||
|
|
plugin, you start to become in an inability to navigate the internet. I mean, a lot of us that
|
||
|
|
aren't in the binary blob start finding that we're left out, you know. And it was kind of a drag to
|
||
|
|
sort of, you know, just web things pretty cool. You know, Shrekbeats used to net in the old days.
|
||
|
|
And suddenly it was becoming harder and harder to deal with the internet. So that was kind of
|
||
|
|
an interesting. I know at one point the FSF had a campaign on don't use Flash. Didn't work
|
||
|
|
too good, obviously. I mean, everything's worth it. I'm a big believer in the futile gesture. But
|
||
|
|
we just did not get people to stop adopting Flash. And so at that point, you know, you kind of need
|
||
|
|
your own Flash player. I don't know if anybody hears into, you know, 64-bit systems. But, yeah, me too.
|
||
|
|
The Adobe player, I think they just got 64-bit released in Alpha a couple like a month or so ago,
|
||
|
|
finally. They probably would be reading the Ganesh code. And the other thing is their Linux support
|
||
|
|
in the Adobe player pretty much sucks from what everybody tells me. Not being actually loud will run it.
|
||
|
|
I can't tell you. But everybody else tells me that it's bad. It crashes. It hangs firefox.
|
||
|
|
It does all this crazy stuff. I can see why I haven't worked on Flash for all these years.
|
||
|
|
And then the other problem, too, is it really? I mean, Adobe Flash really only runs on
|
||
|
|
little Indian 32-bit Intel machines, basically, which I mean, I don't know about you guys. But I
|
||
|
|
actually work at a lot of other weird machines, everything from my canyons and MIPS and power PCs
|
||
|
|
and arms. And I always thought one of the beauties of FreeSoftware is you can make it run on anything
|
||
|
|
if you just got a little bit of time and motivation. And so, basically, it's like, you know, what can we do
|
||
|
|
about this problem? So, you know, basically, we just want to talk about sort of network services.
|
||
|
|
Don't use Flash on your websites. And this is from a guy who writes a flash player. We should
|
||
|
|
really not be looking for more ways to pervert our websites with Flash because it's just going to
|
||
|
|
eat your CPU. And when I got a website and their front page is just a gigantic Flash movie at,
|
||
|
|
you know, 800 by 600. I'll go to another website. Forget that one. Another thing is we encourage
|
||
|
|
people that do have to, you know, that are actually sort of on the provider end of the business.
|
||
|
|
If you're working on a website that's got some Flash content, test it with Ganesh. The guys
|
||
|
|
are daily emotion. Test with Ganesh all the time. And so, everything they do works with Ganesh.
|
||
|
|
Same thing for YouTube. We work with the YouTube guys. And so, you know, sites that work with us
|
||
|
|
work a lot better for everybody. I would think another thing is if you encounter a business website,
|
||
|
|
if you go to this, have you send a letter to the company or send them an email saying,
|
||
|
|
gee, I'd really love to do business with you, but your website is too flash-heavy. I want
|
||
|
|
plain text or I want paper graphics that work with anything, not something that requires people to
|
||
|
|
try to get a plugin. It's funny. We had one of our developers fixed a bunch of bugs in Ganesh
|
||
|
|
a couple years ago, merely because of his bank adopted Flash-based banking software.
|
||
|
|
You can use some Vizortrag. I'm just going to make this up. Vizortrag likes switching languages
|
||
|
|
to say on your browser, I don't want Flash. And at least people could provide
|
||
|
|
in their site two ways of doing site navigation. I guess, but I'm not a website guy, so.
|
||
|
|
I also help in the meantime of all people who have finite block trouble,
|
||
|
|
or maybe we have specifying, I'm not hiding this to Flash. Please give me your alternate version.
|
||
|
|
Yeah. And I really like the people that say skip this, or alternate menus, site maps are great.
|
||
|
|
I like a lot of that stuff, but not all website maintainers and designers actually pay attention
|
||
|
|
even to their user base, much less normal people. And then our solution, of course, to this
|
||
|
|
whole problem was sometimes when you get really, really frustrated and pissed off, the best thing
|
||
|
|
is to write code. A lot of code. Fast. Well, we didn't go that fast. So anyway, Ganesh is a
|
||
|
|
funny little project. As I said, we started in 2004 for a user interface for a stereo system.
|
||
|
|
And then I forgot about it. I was a consulting at the time. It was a project. Big deal. Did that
|
||
|
|
project did another one. One day, funny enough, when I was packing to go down the Katrina,
|
||
|
|
to do relief work for Katrina, I got this phone call from John Gilmore and he goes, you know,
|
||
|
|
didn't you write a Flash player last year? And I'm like, well, yeah, big deal. And he goes,
|
||
|
|
we need a free Flash plug in. Here's why. And I got the whole brain dump from John, you know. And
|
||
|
|
I'm like, interesting. I'll let you know whenever I get back. So five months later, I got back,
|
||
|
|
and basically called up John and said, yeah, I'm broke. I'll go do that.
|
||
|
|
He made a very small donation, but it's okay. You know, fed the kids and that was cool. And so I
|
||
|
|
started, that's basically when we started Ganesh project. And because I had based on another
|
||
|
|
older open source project, I talked to the maintainer. And he had the classic example. He goes,
|
||
|
|
please fork my project, which I think was slightly unusual because I don't want to do bug reports.
|
||
|
|
I got a nice job that I like. Just just change the name and do something else. And so I'm like,
|
||
|
|
oh, my God, John. He said, this is great, but we need a name. John's like, oh, call it Ganesh.
|
||
|
|
I'm like, great. I hate picking project names. And then basically, I got launched into
|
||
|
|
trying, I mean, I'm a compiler debugger guy. So then I got launched into trying to reverse
|
||
|
|
engineer how you do plugins for Firefox. Boy, that was really fun for guy with out of graphics
|
||
|
|
background. But eventually, in beating through massive amounts of incredibly out-of-date documentation,
|
||
|
|
reading source codes, wonderful, actually. I actually got Ganesh running as a Firefox plugin in 2006,
|
||
|
|
which was pretty cool, I thought, because I wasn't sure I was actually going to get it to work
|
||
|
|
at one point. And we got it all working. And that was pretty neat. Oh, boy, big mistake. We got
|
||
|
|
lots of attention. Lots of attention means lots of bug reports. But bug reports are all good,
|
||
|
|
so it doesn't matter. So that was pretty cool. So at that point, I suddenly had a flash plug
|
||
|
|
into my browser to watch all the ads. That was great, sort of. So then we decided, you know, we
|
||
|
|
hadn't really done enough by polluting the Firefox world with making all the flash ads actually
|
||
|
|
work in their browser. So then we decided to screw up conqueror by giving it flash plug-in support
|
||
|
|
as well. So now this way, KDE and Genome desktop people can have the full beauty of the internet
|
||
|
|
advertising at full force. But this is why we all run adblock, right? So anyway, so we got that
|
||
|
|
running as a sort of K-parts type plugin. So you can kind of plug in Ganesh's widgets and
|
||
|
|
Genome and KDE and all this weird perverted gunk. Then we got YouTube working. There's a, I think,
|
||
|
|
a letter. I think it's Peter put it out a couple years ago about, you know, oh, Ganesh needs new
|
||
|
|
help to get YouTube working. We got it working two weeks later. But that was actually really interesting
|
||
|
|
because I can't tell you how many bug reports I get. YouTube doesn't work. All because we can't
|
||
|
|
ship a proprietary codec. But it's pretty funny because when we got YouTube working in Ganesh,
|
||
|
|
instantly we became Ganesh, the YouTube player. Nobody even talks about flash, swift animations,
|
||
|
|
educational software. Flash doesn't seem to exist for most people, but YouTube. It's amazing.
|
||
|
|
And I never actually been to YouTube. I don't even own a television. I went to YouTube and
|
||
|
|
I'm like, oh my god, what an amazing thing. That's been so much time watching crappy YouTube videos.
|
||
|
|
It's harder than debugging at Hexthomps, I tell you. So since basically we got the project started,
|
||
|
|
we became a high priority project to the FSA. It was kind of a pseudo-empty slot. They had GPL
|
||
|
|
flash up there. But when I announced Ganesh, all the GPL flash people quit their project and
|
||
|
|
joined the Ganesh team and actually is still the Ganesh team. So we just sort of switched high
|
||
|
|
priority flash projects because we had a lot. Well, I'd written an Act Better VM than they had,
|
||
|
|
so it worked out that way. One of the nice things, as I'll mention it, being a talk on high priority
|
||
|
|
projects is it really does help being on the project list. It's not like you're going to make
|
||
|
|
you a zillionaire or whatever, but a lot of the developers are motivated to do what they think
|
||
|
|
is good for the community and they're willing to let the FSA say, hey, we think you should go do
|
||
|
|
this. It's good for the community. So it's been really helpful to have that support because
|
||
|
|
having enough developers when you're doing a gigantic project like a flash player,
|
||
|
|
it's a lot of work. And so I hate to say it. A lot of bodies is actually useful. We don't have a lot
|
||
|
|
of bodies, but we have more than me, which is really nice. I've started a few other GPL projects
|
||
|
|
and gotten zero developers and never had posts on the email list. So it's kind of nice to be on a
|
||
|
|
project. It's actually got a pretty active, you know, kind of vibrant community and stuff.
|
||
|
|
We're now, I think, we're running on something like 40 or 50 different computer systems now,
|
||
|
|
almost every GNU Linux and BSD distribution on the planet, ships can hash,
|
||
|
|
so does open solaris, hikus, syllable, OS2, and a bunch of other weird machines. And then I created
|
||
|
|
open media now, mostly so people could give us money because it turns out there's this interesting
|
||
|
|
concept when you actually can help pay your developer something. They work all the time.
|
||
|
|
And they're wise. Don't scream at them because they're actually helping pay the bills. And some,
|
||
|
|
I'm a big believer that trying to help fund free software projects is a really good thing.
|
||
|
|
Is that like, so how many of those distributions that are distributing GNAC are distributing
|
||
|
|
none of them? Zero. Big problem. I'd get probably several hundred bug reports every week that
|
||
|
|
YouTube doesn't work all because they haven't loaded a single codec package called ffmpeg.
|
||
|
|
Drives me crazy, but that's slight. But I'll get into that more too. So I think we've created
|
||
|
|
open media now, which as I said, was a nonprofit because at one point, we had no way to actually
|
||
|
|
take money or equipment from everybody. And people that really want to help you but happen to have
|
||
|
|
these thing called businesses around them have to be able to write, not necessarily write stuff off.
|
||
|
|
They have to say, we know that to these guys, and here's their website and their PO box,
|
||
|
|
so we create our own nonprofit mostly just because, I don't know, we just decided to create our
|
||
|
|
own nonprofit as opposed to running it under somebody else's banner and stuff. And it's been
|
||
|
|
interesting running a nonprofit, but you know, whatever. And we then basically then been putting
|
||
|
|
a lot of our time in the continuing to a reverse engineer the Adobe technology. And I don't think
|
||
|
|
I can use a protocol analysis term for a binary file format though, but so I use reverse engineering
|
||
|
|
and we don't just assemble executables because that's tacky and cheating anyway, no fun.
|
||
|
|
That's what I told it. The first time I ever line up to Adobe, they asked me all these weird
|
||
|
|
questions about, you know, Ganesh and I thought I was basically, you know, taking their player apart.
|
||
|
|
I'm like, why don't I want to re-implement your crappy flash player code?
|
||
|
|
I said, VMs of VM, we can do a better job, we're free software, you know, we're free to do what we
|
||
|
|
want actually. So one of the funny things about Ganesh is as I said, most of the Ganesh usage actually
|
||
|
|
isn't really so much as a web browser plugin, which is good because I'd be buried in 10,000 YouTube
|
||
|
|
bugs every day. And I'm actually a long time embedded systems programmer. I've been doing embedded
|
||
|
|
systems work pretty much since the 70s and I like small devices and I worked at signal support
|
||
|
|
for most of that whole run. And so I spent a lot of time playing with like weird, funky hardware.
|
||
|
|
So I like that stuff. It's kind of fun for me. So anyway, I got really into a crazy urge if
|
||
|
|
you used to go putting Ganesh to anything that would show up in my house. So this was a small
|
||
|
|
collection of some of the crazy stuff I put in Ganesh to in a couple of week period. The XR
|
||
|
|
doesn't count in the middle, but there's two shrubs areses in there. Nokia phone, Intel classmate,
|
||
|
|
Pepperpad. I don't know. It was just kind of fun. OpenMoco ports, Nokia 770 at the time,
|
||
|
|
Internet tablet, PlayStation 3 port because we run them power, we run 64 bit on power PCs and
|
||
|
|
big Indian mode. And that was actually pretty fun because I like playing with hardware. And so
|
||
|
|
and this has actually been mostly people using Ganesh. We have a bunch of companies in Hong Kong and
|
||
|
|
Taiwan that ship Ganesh is their main media player. There's a whole lot of people in sort of an
|
||
|
|
r market space. This is more like what we work on. Not the web browser, thank God. Because the web
|
||
|
|
2.0 is boring. Still using reverse engineering. This will probably be my only reverse engineering
|
||
|
|
slide unless people want me to launch into my other talk later. Basically, if we're going to
|
||
|
|
really reverse engineer something, don't do an FFM peg. Do it legally so other people can actually
|
||
|
|
redistribute it. Or it's not really worth the effort. I'm a big believer in doing it legally.
|
||
|
|
Talk to the lawyers first. It's a good idea. You know, once you're in trouble, it's like getting
|
||
|
|
a speeding ticket. You know, it's like you can't do much about it. So it's just better to avoid
|
||
|
|
trouble by being really careful. And I think I've memorized every legal reverse engineering clause
|
||
|
|
in the DMCA. Thanks to the EFF and stuff. If you happen to see software with a really crazy
|
||
|
|
yula, the flash license had a clause that forbid reverse engineering flash players if you
|
||
|
|
installed their plug-in. If you read their action script specifications or the Adobe documentation
|
||
|
|
manuals, you are forbidden from working on flash players. They recently removed this requirement
|
||
|
|
after four years of me bugging them about it, which is pretty amazing. But yeah, if you have a
|
||
|
|
really weird yula and it has clauses in it, you don't like, don't sign it, don't use the software.
|
||
|
|
The other big key thing is you have to use publicly available documentation. In the flash world,
|
||
|
|
this was actually pretty easy because a lot of the documentation was based on ECMO 262, same as
|
||
|
|
JavaScript. I mean, Adobe uses the Mozilla JavaScript engine for a long time. That's why they
|
||
|
|
rewrote it and gave it back and called a Tamron. And so we basically used ECMO 262 for our class
|
||
|
|
library specifications. And then our volunteer community would run test cases with the Adobe player,
|
||
|
|
tell us how it was supposed to work and we would just go back and forth until we had it exactly
|
||
|
|
right. And in the beginning, it was very slow that way. But over time, we got to know it all so well
|
||
|
|
that we haven't even barely even looked at documentation anymore. And then last year, after several
|
||
|
|
years of us lobbying Adobe, they released all their specifications and dropped their licensing
|
||
|
|
clause. So I'll give them a little bit of credit there, luckily. The other thing is if you're
|
||
|
|
actually going to use proprietary software, you have to legally obtain it. So for instance,
|
||
|
|
some of my reverse engineering, like network protocols, I've had to sniff the network connection.
|
||
|
|
But hey, I've got older kids who run Adobe Flash so they can like pass their college tests.
|
||
|
|
I can't make my kids fun at a college, you know. So I can that say, oh, my son's visiting,
|
||
|
|
gee, I can have him like good to these five URLs where I sniff the network connection and get all
|
||
|
|
the data that I need. You've got to love having kids. But the whole point is, yeah, I should tell
|
||
|
|
you another, when my kids first went to college, they're like, dad, you forgot to tell us about
|
||
|
|
Windows thing. Everybody thinks we're weird. Growing up in a house full of Unix machines.
|
||
|
|
But anyway, so yeah, if you're going to reverse engineer proprietary software,
|
||
|
|
get it legally. I'm like, I can't emphasize it. When you do these things legally, you can keep
|
||
|
|
doing it. If you don't do it legally, people make you stop. Making you stop is also called
|
||
|
|
court jail and big fines, none of which is good. And then the final part is really funny.
|
||
|
|
Last week, the top manager, Adobe, actually announced for the first time publicly ever, I've
|
||
|
|
been bugging about this for a long time, that Ganesh is a legal implementation of open specifications.
|
||
|
|
I was blown away because now I'm not so worried about being sued anymore. And Silverlight's been
|
||
|
|
very useful for getting Adobe to be friendly. Ganesh has got a whole bunch of different features
|
||
|
|
that aren't quite exactly like some of the Adobe ones. One of the big fun things about Ganesh is,
|
||
|
|
since it was originally written as a user interface, it runs standalone. That's how it was designed.
|
||
|
|
You know, the plugin was kind of an afterthought. And so most of the people using Ganesh love the fact
|
||
|
|
that they can run it from the command line, run custom flash movies that's like their advertising
|
||
|
|
sign or whatever else it is. And so an ability to run standalone unlike Adobe has been very, very
|
||
|
|
useful to us. And we plug in pretty much any Mozilla-derived browser from Firefox to 105
|
||
|
|
up to Firefox 3.1, Conqueror and KDE 3.4, Embedded Conqueror, which was a pain,
|
||
|
|
bunches of other weird browsers. It seemed like every browser these days is actually
|
||
|
|
implementing NPAPI, even WebKit is. So we've been actually supporting pretty much every browser
|
||
|
|
around. And lately we've fixed the support so that some of the weird browsers work pretty good,
|
||
|
|
not weird, I mean, but some of the icecat, ice weasels, all the weird little variations,
|
||
|
|
install things subtly, subtly differently. So we've been putting a lot of work in the making
|
||
|
|
sure Ganesh installs and works with all the other browsers. Streaming video, Ganesh supports streaming
|
||
|
|
video, big deal YouTube, but it's really popular, it turns out. Another big thing about Ganesh that
|
||
|
|
Adobe never did is we actually have multiple renderers. We support OpenGL, which if you're on a
|
||
|
|
small cell phone platform, they often have OpenGL along with like a 400 megahertz processor.
|
||
|
|
And so you actually need to be able to kind of delegate a lot of your processing to the graphics
|
||
|
|
processor, just so that your little 400 megahertz chip can do full software, you know, what else
|
||
|
|
it's doing. I mean, it's hard working on slow hardware, so having OpenGL back ends is very useful.
|
||
|
|
We also support a thing called anti-grain AGG, although I think that's going to go away and be
|
||
|
|
replaced by another vector library soon, because AGG is kind of the guy got a commercial job and
|
||
|
|
it's kind of stopped being maintained. And we use that as sort of a 100% pure software rendering
|
||
|
|
solution for people that don't have OpenGL support. And we support Cairo, but it's really,
|
||
|
|
really swell. So someday Cairo will catch up and maybe we'll use it more of it. Right now,
|
||
|
|
it's not very good. We don't want to work with network security. When I first got Ganesh
|
||
|
|
without working network connection, I discovered that most flash movies install 3, 4, 5,
|
||
|
|
6 other flash movies from other websites, and because it's being loaded by the flash player,
|
||
|
|
you never see it. You know, your monitor light goes on. Well, there's network traffic, you know.
|
||
|
|
So when I got networks working, I was blown away. It turns out that Adobe has hacks in their SDK,
|
||
|
|
where every time you play the flash movie, it'll register a hit on somebody's website in their
|
||
|
|
access log, so you can count how many times your movie was played. Lots of little weird stuff like that.
|
||
|
|
This got me really worried. So one of the nice things we've done in Ganesh is we pay a lot more
|
||
|
|
attention to security. The Adobe flash player is full of security bugs. It's not this talk, but it's,
|
||
|
|
I wouldn't use it for banking software. It would scare the crap out of me. But anyway, other people
|
||
|
|
do. So we've had a lot of attention with privacy, white lists and black lists. If you don't have,
|
||
|
|
you know, ad block or flash block installed, you can do a black list of sites you don't like, and
|
||
|
|
you never load flash content from them. It's a great way to get rid of the trackers watching you,
|
||
|
|
we print out every network connection so you can see what's going on. We save everything that's
|
||
|
|
loaded the disk as an option if you want so you can see what was going on. We're pretty crazy about
|
||
|
|
it, but security is really, really important. I think the free software community pays more
|
||
|
|
attention to security and privacy of individuals and any of these big commercial companies.
|
||
|
|
And it's important. We're also extensible. Adobe flash has these big class libraries,
|
||
|
|
which are cold, but if you want to do anything outside the class library, you then have to write
|
||
|
|
everything and, you know, action script and byte code interpreted. So, Ganesh actually supports writing
|
||
|
|
wrappers for any development library on your system. So much like Pearl and Python and stuff,
|
||
|
|
write thin wrappers for every development library on your GNU Linux platform. Ganesh does that too.
|
||
|
|
So we have things like direct my SQL support, direct raw network support, support for remote
|
||
|
|
control devices. So when you're using your set top box, you can grab a remote control and it
|
||
|
|
just works in Ganesh like a mouse. So we're pretty much write wrappers for everything. Debus,
|
||
|
|
I wrote wrappers once for GTK. So I could program GTK in action script because I don't have the Adobe
|
||
|
|
SDK. It's kind of fun. You can actually, we turn action script in a general purpose scripting
|
||
|
|
language. It's got really good graphics support, which is kind of neat. In addition to that,
|
||
|
|
then we also support a thing called XML messaging, which Adobe's had for a while. For instance,
|
||
|
|
the stereo that I used, the flash movie because flash runs in a sandbox, you click, you know,
|
||
|
|
play. It can't really do anything. It can't talk to the hardware, although Ganesh can,
|
||
|
|
but the Adobe player can't. So what you do is now you pick a body that sends an XML message,
|
||
|
|
things happen. So the ability to have an XML-based networking scheme lets you do pretty nice
|
||
|
|
complicated protocols and all sorts of other kind of fancy stuff. And finally, we're really big
|
||
|
|
fans of patent-free codecs. If you go to internet archive and you have Ganesh, you'll get
|
||
|
|
the aura instead of MPEG, stuff like that. We're big fans of making the whole sort of patent-free
|
||
|
|
codec infrastructure actually work. So this is another tough one. Compatibility of Ganesh,
|
||
|
|
it changes daily, but not heavily. So I'll make the attempt here. Primarily, we're originally
|
||
|
|
a Flash7 project, but Flash7 is kind of old now. So we actually last year released the original
|
||
|
|
beginning of a Flash9 support, which is good because YouTube and everybody else is now using
|
||
|
|
Adobe Flash support and things like that. So we have Flash9 support good, but we don't have all
|
||
|
|
the class libraries. So that's kind of our next part is the work on that. We've got about 80% of
|
||
|
|
the up-to-action, up-to-flash9 libraries implemented, but with Flash9, they created a Flash
|
||
|
|
library, you know, five times the size. It's crazy. But luckily ActionScript 3 is like ActionScript 2.
|
||
|
|
They completely changed all the binary bindings in the interfaces and gunk. But we figured all that out
|
||
|
|
and got it working in an experimental branch. And the next Ganesh release all have pretty good
|
||
|
|
Flash9 support, we believe. I wish I got 10 minutes. I'll start going faster. We're really portable.
|
||
|
|
We're really in the portability. So I won't bother to read this whole slide, but we run on a lot of
|
||
|
|
different stuff. That's half the fun because free software should run anywhere you need it to.
|
||
|
|
And we even run on that Windows thing. A lot of weird operating systems I never heard of. We're
|
||
|
|
really in the performance because we believe that's one spot where Adobe is completely blown it.
|
||
|
|
So we support both the X video extension for scaling if your hardware supports it like on the
|
||
|
|
OOPC. So we can do like full, 19 by 1200 full-screen resolution about 10, 12% CPU load. Let's see
|
||
|
|
Adobe do that. We use MIT shared memory extension. So your average Flash rendering and stuff
|
||
|
|
typically is a good 10, 15, 20% lower than the Adobe player on the same hardware. I don't run
|
||
|
|
Adobe so I can't give you numbers other than the ones people give me. And we're doing a lot of
|
||
|
|
work now with variations on supporting hardware based audio and video decoding, mostly for the
|
||
|
|
sort of embedded market. So basically Ganesh is written in C++. I think we're one of the few
|
||
|
|
GNU projects that is actually in C++ base. The original project I worked on was written in C++,
|
||
|
|
so I didn't really decide. I just used it, but I like C++ so who cares. We use Boost instead of
|
||
|
|
Glib for threads and portable data types. A lot of that stuff. We use both GStreamer or FFM
|
||
|
|
Peg. We're big on internal APIs. We support a lot of weird stuff. And FFM Peg's got better
|
||
|
|
performance, but most of the distributions build it with GStreamer support. We use lib
|
||
|
|
curl for networking, although I'm about to replace that. And we support GNU and KDE pretty much natively.
|
||
|
|
The extensions and stuff like I said, we can write extensions for pretty much any development
|
||
|
|
library on your computer. It makes Flash an actual decent programming language with lots of
|
||
|
|
eye candy and removing objects and stuff. I'll throw this one into it. So we're big in the testing.
|
||
|
|
Among other things, I was the author at the Ganesh Ganesh Regression Testing format. So I'm really
|
||
|
|
big in the Regression Testing like a maniac. We have something like 35,000 test cases or huge
|
||
|
|
believers in test cases. We're big in the build bot and things like that. We use a lot of other
|
||
|
|
tools because there's several now sort of free Flash compilers around. We actually run our test
|
||
|
|
suites through every other Flash compiler we can find. We maintain Ming, but we use M task and
|
||
|
|
Hacks and Swift Mill. And Swift Tools, two weeks ago, released an ActionScript 3 compiler,
|
||
|
|
which is going to be very, very useful to us. You talk about projects helping each other.
|
||
|
|
They saw we need an ActionScript 3 compiler and they cranked it out in a month. It was wonderful.
|
||
|
|
We have a pretty good size build farm and stuff because we like to run a lot of machines,
|
||
|
|
so you got to do it all the time. I'll put in a little blurb for build bot, another GPL project.
|
||
|
|
If you got a bunch of different machines or supporting a lot of different configurations,
|
||
|
|
build bot basically builds, you know, one config two hours later builds a different
|
||
|
|
configuration and just works its way through all the computations until it's done and gives you
|
||
|
|
little charts that you can check. I really like build bot, although it's a little flaky sometimes,
|
||
|
|
but mostly works good. So our current focuses right now are improving our Flash9 library
|
||
|
|
and support. We're doing a lot of work on that. We've reversed engineered the RTMP network
|
||
|
|
protocols, Adobe uses and the BBC iPlayer uses and it's kind of what all the proprietary companies
|
||
|
|
like to use. We now have an implementation both client and server side that's about to get released.
|
||
|
|
We're more in the better performance, like I said, like hardware video acceleration decoding.
|
||
|
|
And we're actually now working on Flashbased video conferencing applications on topic
|
||
|
|
and action on our media server. I'll briefly mention this. I just relieved an alpha of
|
||
|
|
signal like two weeks ago. And signal is a media server that happens to be a clone of the Adobe
|
||
|
|
media server, which means it speaks Flash. Most of the video conferencing works by actually sending
|
||
|
|
Flash to the server and executing it like a CGI bin kind of thing in a sandbox and stuff.
|
||
|
|
And so we're actually working on, you know, the full media server and stuff like that that supports
|
||
|
|
patent-free codex as well as proprietary ones. It already handles a half dozen different protocols.
|
||
|
|
Lots of other stuff I'm adding support for actually PHP and Python CGI bins within the media
|
||
|
|
server so you can do really cool stuff. Like you can send it Python code and execute it in the
|
||
|
|
server in a sandbox, not having to have it pre-installed, which is kind of a cool feature that Adobe
|
||
|
|
actually did. And it's really in heavy development and anybody who wants to work on media servers,
|
||
|
|
I would love to have some more volunteer help because it's been kind of a solo project for me lately.
|
||
|
|
This one started out of the lab. One of the big things is we did a lot of work on the LPC,
|
||
|
|
which is what brought along these issues with multimedia codex because we started shipping
|
||
|
|
exos all over the planet. Everybody said, but YouTube doesn't work because they couldn't ship
|
||
|
|
the stupid codec, which I think is in another slide here in a second. But that was actually a fun
|
||
|
|
project to Nicholas Rowan that I think he started it at once, but he basically killed his own
|
||
|
|
project as far as I can tell. So codex. So Flash right now is his MP3 MP4 Nelly Moser and
|
||
|
|
Sorenson, FLV, which YouTube uses is just a container format. It's not really a codec. We also
|
||
|
|
support, you know, Speaks, Varbus, Fiora, and then we're going to be using kelp for our video
|
||
|
|
conferencing support instead of Nelly Moser. And then the big thing is that we had an
|
||
|
|
inability to redistribute Ganesh on anybody's machines. And so I just literally a few days ago
|
||
|
|
created a new website with John Gilmer called codecpatents.org. And we're actually launching a
|
||
|
|
campaign to do legal, clean room implementations for proprietary codex. I think it's got to happen.
|
||
|
|
So anybody who's got a little time, what we'd like to do is, well, one thing we could do some
|
||
|
|
system in help on codecpatents.org, but there's a lot of research that needs to be done by the
|
||
|
|
community for prior art. We saw how powerful Groclaw was and we wanted to do the same thing with
|
||
|
|
multimedia codex because as you get into the patents, they're bogus. A lot of them. Nobody's just
|
||
|
|
ever bothered to do anything about it because they're scared to death. It's a little more complicated
|
||
|
|
than that. Oh, great. More than a little more complicated. But people just,
|
||
|
|
oh, I don't cost you $600 million. I'm like, yeah, we might as well get started now.
|
||
|
|
As Jeremy said, we're a non-profit. What are we going to do? Get sued.
|
||
|
|
They can have my old Toyota truck, you know? So when people ask how they can help,
|
||
|
|
the Ganesh project is interesting. We actually have a lot of non-engineers on the Ganesh project.
|
||
|
|
It's one of the fun things of doing free software is the community of active people that are doing
|
||
|
|
documentation translations. We're really big in translating and supporting multiple languages
|
||
|
|
because it's important and stuff like that. So we're really big in the translation. So if you speak
|
||
|
|
a language that we're not supporting right now, please send us a translation for Ganesh,
|
||
|
|
that way all the error messages show up and you can actually read them. We do a lot of testing
|
||
|
|
and feedback from people because they run the Adobe Player and we can't. And so without our volunteers
|
||
|
|
running the Adobe Player saying, oh, and this with Ganesh, I had a pink border, but with Adobe,
|
||
|
|
I had a red border. We go, oh, thank you, you know? And so without people testing us with the Adobe
|
||
|
|
Player compatibility, we would not be making much progress. This is where volunteers are so wonderful.
|
||
|
|
Good bug reports. They do a lot with us. We can't run the Adobe Player. So they say, well, the Adobe
|
||
|
|
does this, Ganesh does this. Good bug reports are really useful, even if you get thousands of them
|
||
|
|
other than the YouTube one. For help, please make a better project and we want a better project
|
||
|
|
and more stable and all that. Documentation writing and updating. I wrote a user manual,
|
||
|
|
a tutorial on a reference manual. Nobody's ever touched its sense. I think it needs to be updated.
|
||
|
|
Do you run your, do you run test that compare the equivalent of NAC and Adobe Grand Flap?
|
||
|
|
Well, we can't exactly.
|
||
|
|
What makes you want me to run a build bot that runs by?
|
||
|
|
Well, the problem though is we can talk about this later, but it's really hard to test a graphical
|
||
|
|
application. And so most of our tests are much more unit level and integration level than they
|
||
|
|
are actually at the top level because, you know, to x11, Flash is just a big bit now. It can't tell
|
||
|
|
where there's a button. It can't tell anything. And I've been doing some work on trying to work
|
||
|
|
around this problem, but don't have a good solution yet. But, so volunteers running Adobe
|
||
|
|
Player by hand is our automation and they're very useful to us.
|
||
|
|
So I was going to say, I believe one of the problems is that the development license on the player
|
||
|
|
could just be as a surrograsse of what we will know if we have run it personally.
|
||
|
|
That could be.
|
||
|
|
Yeah, if he's never seen it.
|
||
|
|
I don't know, you're done.
|
||
|
|
When I have a client, I think you're great, it's definitely us.
|
||
|
|
So.
|
||
|
|
And then of course, anybody who plays with build bot, I'm really sick of being our build bot
|
||
|
|
build farm maintainer, so I'm dying for a volunteer. I'm just sick of it. I just did
|
||
|
|
the release, which was like, you know, three weeks of build farm hacking. And basically,
|
||
|
|
here's a bunch of different resources URLs for getting more information on Gnash, of course.
|
||
|
|
Gnashdev.org is our big developer site where much of the technical detail is.
|
||
|
|
Get Gnash.org, our build farm hanks out, devs, rpms, binary, tarballs,
|
||
|
|
and source snapshots every night, if it works. OpenMediaNow.org is our nonprofit.
|
||
|
|
If you want to give us 10 or 15 cents or a free six pack or something.
|
||
|
|
And of course, the pound Gnash channel on free note is a pretty much a great spot for
|
||
|
|
kind of front end technical support.
|
||
|
|
So anybody got more questions?
|
||
|
|
Well, Adobe's ad feature to the official platform pretty rapidly.
|
||
|
|
I wouldn't put it that way, but yeah.
|
||
|
|
We're definitely catching up because most of their features are actually not truly
|
||
|
|
re-implementations or format changes. They're often stuff that we actually already implemented.
|
||
|
|
They added a high quality video support for YouTube. We had had it for a year already.
|
||
|
|
We couldn't figure out what the big deal was. So who's chasing who?
|
||
|
|
Somebody just suggested a sound by on the IRC.
|
||
|
|
Flashgate done till Gnash walled run.
|
||
|
|
I was just going to suggest something. I'm sure some of the truth is you already thought of this,
|
||
|
|
but if you use part of the thing from the closing codex project or some of the other projects,
|
||
|
|
you can take a small amount and fire a few professional search engine optimization people
|
||
|
|
to try to make Gnash come up just as often as a flash in a lot of people's Google searches.
|
||
|
|
Because this is really fabulous.
|
||
|
|
I've known about it for a long time. I wasn't paying attention to it.
|
||
|
|
I mean, the biggest problem is that the URLs for Flash Content and almost every web page on the
|
||
|
|
planet have the macro media and Adobe URL embedded in it as an attribute. And unfortunately,
|
||
|
|
there's millions and millions of those and that's it.
|
||
|
|
What I really want to see is have icecat look for www.macramedia.com.
|
||
|
|
And instead of going to their plugin page, send you to get Gnash to get it. Gnash XPI for $1000.
|
||
|
|
That should be possible with icecat, I would help.
|
||
|
|
What do you know if I thought to play in that? Because that numerically, for a lot of sites,
|
||
|
|
it's a free software project. We can all do with it what we want. We take contributions.
|
||
|
|
Thank you very much.
|
||
|
|
Thank you for listening to Hack or Public Radio. HPR is sponsored by tarot.net.
|
||
|
|
So head on over to CARO.nc for all of our team.
|