Libre software (blog)
ContentsFriendica[edit] |
Posted by Nad on 15 September 2011 at 06:53 |
---|
This post has the following tags: Libre software
|
Friendica is a distributed social network application that is decentralised and distributed across different providers. The emphasis of the distribution is on portability, interoperability and federation capability. It contrasts with social network aggregation services, which are used to manage accounts and activities across multiple discrete social networks.
Open standards such as OAuth authorisation, OpenID authentication, OStatus federation, XRD metadata discovery, the Portable Contacts protocol, the Wave Federation Protocol, OpenSocial widget APIs, microformats like XFN and hCard, and Atom web feeds—increasingly referred to together as the Open Stack — are often cited as enabling technologies for distributed social networking. Friendica is one of the only distributed social projects which has a notion of security and privacy and access control. It isn’t an afterthought. Mistpark was designed from the ground up to support private communications. Nevertheless there are other distributed social projects. A large number of developers from around the globe are working on something known as the “Federated Social Web” – including development teams such as Status.net, Diaspora, OneSocialWeb, SocialRiver, BuddyPress. At Organic Design we're really keen to get to know Friendica more deeply as it seems to be a really viable alternative to Facebook that's set to become much more popular as Facebook gets more and more fascist. We'd like to start setting different organisations up with Friendica installations and getting them federated together to form diverse distributed groups of activity and knowledge. Our installation[edit]There's no need to go into too much detail about installation as Friendica's just a standard LAMP application installation explained in its own self-contained documentation here. but our instllation did involved a little bit of difficulty because of an URL-rewriting conflict, and the fact that we have .htaccess files disabled, so I had to add our own section in our Apache configuration instead.
Custom pages[edit]We've created a few custom pages in our Friendica site. I'm not sure what the official method of adding a domain/pagename page into the site it, but I've done it by creating a file called mod/PAGENAME.php directory with the following format (of course you replace "PAGENAME" with your desired page name):
Note that if you're HTML uses single-quotation marks, they'll need to be preceded by a backslash since the PHP string containing the HTML is delimited with single quotations. Custom messages and translation[edit]Unfortunately the internationalisation methodology they've used isn't very intuitive. Here's the process:
Note that all the message id's are actually the English strings which is very unwieldy, and also means that to make changes to existing English messages requires the initial creation of the view/en/strings.php file since the file will only exist for non-enlgish languages. For more information see /util/README in your Friendica installation. The Facebook connection[edit]I've moved this section to Friendica/Facebook connector since it was cluttering up the page a bit. Friendica plugins developed by Organic Design[edit]One important aspect of getting to know Friendica more deeply is being able to customise it beyond what it's capable of doing out of the box, so we've started learning about the two kinds of plugins, addons and modules. Addons extend the system by connecting into the various hooks provided by the software such as post-login, save-profile etc, and modules extend it by adding new functionality accessible from the first path component of the URL. Short Profile Url (has some problems currently)[edit]I'm setting up a Friendica site for a project I work with who wanted a couple of specific requirements from their social networking platform. Friendica seems to fit all their needs except for these two requirements,
I decide to give the first one a go to start with and created a small addon that accepts the basic format of URL and if there's no module of that name and there is a user of that name, it redirects the browser to that user's profile page with the profile tab selected. I used the init_1 hook (hooks listed here) which is called early on but after the database is established, to first check if the long format of URL was being requested, and if so redirect to the new short form of URL, and secondly check if the request is for the new short form, and if so, change the local properties of the $a the global App singleton to make it think it was a normal profile request. Secondly I hooked into the app_menu hook which occurrs after all the page headers have been initialised so I could populate the $a->page['htmlhead'] property with a link to a JavaScript file which uses jQuery to update all profile links in the page to the new format. The code is in our subversion repository here. this works fine for doing the short-url redirect, but has problems with the adjustment of in-page links Simple Details[edit]Another aspect required for the Friendica project we're working is to have a custom form for entering personal details into the user profile. Many groups using the software don't need all the hundred and one categories of details that come out of the box such as interests, marriage status, music or television taste and yet they often would like to go into more specific detail in some aspects such as contact methods or portfolio links. Ideally a plugin would be made which allows the site administrators to have complete control over the presentation of the users profile form, but initially I've made a simple version which allows us to create our own specific form adjustments from the plugins code. The PHP part of the code is very basic and simply hooks into app_menu to add a JavaScript file which does all the form adjustments using jQuery. The JavaScript code is here. No Email Body[edit]We want people to have to go into the site to read posts, not to just read them directly from the emailed notifications. This simple addon hooks into the notification events and clears the body part from the emailed message if the notification contains a posted item. The code is in the OD repository here. Provide Registration Reason[edit]We need an extra textbox on the registration for users requesting an account to enter their affiliation or reasons for the administrator can base their acceptance/denial of the account on. The content of this textbox needs to be included with the email sent to the administrators. Title of the box will be "Please describe your affiliation with the Mathaba community or your reasons for wishing to become a member". This has been done now, it sends a second email to admins with the users registration reason in it. Code is in the OD repo here. DRFN[edit]DFRN provides the means for people to conduct online social network activities without requiring a central website (such as MySpace, Facebook, etc.). These web companies quite literally own the personal communications and online friendships of hundreds of millions of people. Why is this a problem? Because we don’t know that these companies can be trusted to do “the right thing” with our private information – because we aren’t their customers, advertisers are their customers. Our goal is take back our personal relationships and privacy and create an open social web where our communications belong to us. The DFRN (pronounced dee-fern - Distributed Friends & Relations Network) framework provides the communication basis for a decentralised social network - where cooperating servers share information on your behalf while operating in a web of trust relationships you control. It can provide a “Facebook-like” experience without requiring a central company or server. The goal of DFRN is to provide an open and distributed social communication platform with server requirements comparable to that of a typical hosted blog. Instead of a central server, a collection of distributed 'cells' or 'nodes' are able to communicate with each other on your behalf. In recent years, the use of centralised social networks has come under a good deal of scrutiny over privacy and trust issues. The centralised model offers some technical advantages over a distributed network, but at a price of giving up personal control of private communications and data to the central provider. Zot![edit]When the team started building Friendika a year ago, there were no computer protocols for privacy-aware social networking on the web. A group of people were trying to build social networking on the "open stack" - which is a set of protocols originally conceived to add capabilities to blogs. But these didn't have any way of handling privacy. Also around that time, the Diaspora project started their own work on a privacy-aware social network and as best as can be determined - tried to find a way to secure the open stack. This protocol has never been formally published. We set out to build a privacy enhanced social network, and decided that the unique requirements of a decentralised conversational network coupled with privacy issues surrounding member profiles necessitated a new mode of privacy-enhanced communication - and hence a new protocol. We created DFRN to address the short-comings of existing systems. DFRN works well - but since we started with nothing, we over-engineered the privacy capabilities. This is OK, because it's much better to over-engineer them than to under-engineer them - as we saw happening in similar projects. But we've now had a year to work with DFRN, and we feel we can do it better. We can also do it a lot simpler - which makes it easy for other projects to integrate. Currently Friendika has communication links with many networks, but no other networks have secure communication links with Friendika. We've got a rather high barrier to entry, and that is mostly due to the difficulty in implementing the somewhat unwieldy DFRN protocol. Zot! is a streamlined privacy protocol for social networking, drawing on all the strengths of DFRN, but reduced down to the bare essentials. We still provide RINO node-node message encryption. We still provide dual authentication of every communication before it is allowed. We still provide seamless remote-login to turn decentralised server nodes into one large but private space - with your own privacy rights extended to the farthest node. It's just leaner and meaner. We're re-writing the spec at this moment and this will soon be published - and like DFRN, released publicly and given to the public domain. We feel that the ability to communicate and share privately and securely is so critical to the future of the web that nobody should ever be allowed to own it. Then we will start working on the Zot! server. See also[edit]
|
ContentsCappuccino[edit] |
Posted by Nad on 9 September 2011 at 02:21 |
---|
This post has the following tags: Libre software
|
Cappuccino is an open source application framework for developing applications that look and feel like the desktop software users are familiar with.
Cappuccino is built on top of standard web technologies like JavaScript, and it implements most of the familiar APIs from GNUstep and Apple's Cocoa frameworks. When you program in Cappuccino, you don't need to concern yourself with the complexities of traditional web technologies like HTML, CSS, or even the DOM. The unpleasantries of building complex cross browser applications are abstracted away for you. Cappuccino was implemented using a new programming language called Objective-J, which is modelled after Objective-C and built entirely on top of JavaScript. Programs written in Objective-J are interpreted in the client, so no compilation or plugins are required. Objective-J is released alongside Cappuccino in this project and under the LGPL. Designed for Applications[edit]Nobody will deny that there is a distinct difference between a web site and a desktop application. Similarly, we believe there is a big difference between a static web page and a full fledged web application. Cappuccino is designed for applications, not web pages. Instead of doing all or most of the work on the server, Cappuccino applications do as much as possible in the client. A typical application would never reload, but rather send and recieve data using traditional AJAX techniques and then present that data in the client code. 280 Slides is the first Cappuccino application, and it's a showcase of what is possible with this new framework. Instead of worrying about how to implement drag and drop, copy and paste (of text and objects), undo and redo, document saving, rich cross-browser drawing and graphics, and a slew of other features, developers are free to focus on specific problems like PowerPoint support, or Twitter integration, or whatever else makes their application unique and compelling. How does Cappuccino Compare to Other Frameworks?[edit]Cappuccino is not designed for building web sites, or making existing sites more "dynamic". We think these goals are too far removed from those of application development to be served well by a single framework. Projects like Prototype and jQuery are excellent at those tasks, but they are forced by their nature to make compromises which render them ineffective at application development. On the other end of the existing frameworks are technologies like SproutCore. While SproutCore set out with similar goals to Cappuccino, it takes a distinctly different approach. It still relies on HTML, CSS, JavaScript, Prototype, and an entirely new and unique set of APIs. It also requires special development software and a cumbersome compilation step. We think this is the wrong approach. With Cappuccino, you don't need to know HTML. You'll never write a line of CSS. You don't ever have interact with DOM. We only ask developers to learn one technology, Objective-J, and one set of APIs. Plus, these technologies are implementations of well known and well understood existing ones. Developers can leverage decades of collective experience to really accelerate the pace of building rich web applications. If you want to build a rich web application, you need to learn something new. Many people think this will be JavaScript 2, or HTML 5, or some new standard. The problem is, as we've come to realize, standards bodies work too slowly. Cappuccino works right now, not in the theoretical future. Objective-J is essentially JavaScript 2, but available today in every major browser. Because we rely on only the most essential web technologies, improvements are not limited by the pace of browser vendors and standards bodies. See also[edit]
|
ØMQ[edit] | ||||||||||||||||||
Posted by Nad on 9 September 2011 at 02:11 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
This post has the following tags: Libre software
| ||||||||||||||||||
ØMQ (ZeroMQ, 0MQ, zmq) looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry whole messages across various transports like in-process, inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fanout, pub-sub, task distribution, and request-reply. It's fast enough to be the fabric for clustered products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous message-processing tasks. It has a score of language APIs and runs on most operating systems. ØMQ is from iMatix and is LGPL open source.
Quotes[edit]
See also[edit] |
SproutCore[edit] |
Posted by Nad on 9 September 2011 at 01:55 |
---|
This post has the following tags: Libre software
|
SproutCore applications move business logic to the browser so they can respond to your users' taps and clicks immediately, avoiding an agonizing roundtrip across often intermittent network connections.
As web application users go increasingly mobile, applications can no longer depend on reliable connections to a remote server to do the heavy lifting. At the same time, web browsers continue to radically improve their ability to quickly process data and deliver polished user interfaces—a perfect opportunity to rethink the architecture of modern web applications. Building web applications with traditional web development techniques is painful. Making sure your HTML is always up-to-date is challenging, and swapping information back and forth with your server can be error-prone. There is a better way. SproutCore's robust bindings system allows you to create data-centric applications. Just describe the state of your application and how the data flows from your models to your views and let SproutCore do the rest. Semantic templates allow you to write HTML and CSS that update automatically when your models change—like magic. And an in-memory database lets you intelligently manage and query your data and synchronize with your server. SproutCore will change the way you think about building applications and surprise you with how little code you have to write. See also[edit] |
WaveMaker[edit] |
Posted by Nad on 7 September 2011 at 06:31 |
---|
This post has the following tags: Libre software
|
WaveMaker (formerly known as ActiveGrid) is an open source software development platform that automates much of the process for creating Java web and cloud applications. WaveMaker provides a visual rapid application development platform and is available as a free open source software download or as a hosted cloud development environment (aka Platform as a Service) running on Amazon EC2.
WaveMaker allows web developers to create Ajax applications. The WaveMaker framework itself integrates Spring, ACEGI, Dojo Toolkit 1.0, authentication, LDAP, ActiveDirectory and POJOs and their products include Visual Ajax Studio for Rich Internet applications development and WaveMaker Rapid Deployment Server for Java application. Applications generated by WaveMaker community edition are licensed under the Apache license. WaveMaker applications are created using the WaveMaker studio, a WYSIWYG development studio that runs in a browser and enables drag and drop development of web applications following a Model-view-controller architecture. WaveMaker supports RAD for the web, similar to what products like MS Access, PowerBuilder and Lotus Notes provided for client server computing. WaveMaker applications run in a standard Java server based on Tomcat, the Dojo Toolkit, Spring and Hibernate. Currently, it is supported on Linux, Mac and Windows. WaveMaker has also released a cloud computing version of its 4GL that runs on Amazon EC2. As an example of the level of complexity of applications that can be built using a WYSIWYG development approach for Ajax applications, the WaveMaker Studio was built using WaveMaker. WaveMaker is meant for use by web developers who prefer visual tools. See also[edit] |
KDE Plasma Desktop[edit] | |||
Posted by Nad on 26 July 2011 at 03:04 | |||
---|---|---|---|
This post has the following tags: Libre software
| |||
KDE offers an easy to understand desktop environment for your GNU/Linux or UNIX computer.
Ugly widget problem[edit]This problem is for me the main reason that I've stayed on GNOME, practically everything about KDE I prefer, but this ugly retro "Windows 3.1" widget problem that some applications seem to have is a real show-stopper for me. The strange thing is that the problem only applies to some applications. The desktop environment itself works fine, for example the window menus and task-bar menus are all fine, but some applications don't seem to be picking up on the theme preferences for some reason. You can see the difference in these two screenshots, the first shows the "Dolphin" file-viewer which is working nicely, the second is my Thunderbird email client which is using the wrong font, buttons and icons (click on the images to get the 1:1 view). See also[edit] |
ContentsGNOME[edit] |
Posted by Nad on 8 August 2008 at 08:26 |
---|
This post has the following tags: Libre software
|
GNOME 3[edit]Extensions[edit]The GNOME Shell extension design is designed to give a high degree of power to the parts of the GNOME interface managed by the shell, such as window management and application launching. It simply loads arbitrary JavaScript and CSS. This gives developers a way to make many kinds of changes and share those changes with others, without having to patch the original source code and recompile it, and somehow distribute the patched code. Extensions are listed at extensions.gnome.org and can be installed one-click style directly from the site :-) some extensions that I recommend are:
Writing extensions[edit]Create an initial working extension template using the gnome-shell-extension-tool --create-extension command, then after you change your code, you restart the Gnome shell by pressing ALT+F2, then entering r and pressing Enter. To check for errors and perform other debugging tasks, use the LookingGlass applet which can be started by pressing ALT+F2, then entering lg and pressing Enter, and escape to close it. Use the command global.log("text") in your code to output to the error console which you can view from LookingGlass in the errors tab - not that it doesn't update in real-time.
Installing on Ubuntu 12[edit]They've now made Unity the default desktop environment which many people find really horrible, to install GNOME do the following:
Then log out and select GNOME at the login prompt Adding your own apps to the search[edit]You'll need to create a .desktop file for your application in the ~/.local/share/applications directory with the name of your application as its filename. The content of the file is of the following format:
Where'd the startup applications applet go?[edit]It's still the same program which is gnome-session-properties, but for some reason there's no longer a launcher for it - you can make one using the instructions in the previous section if you like, or launch it manually from a terminal window. See also[edit] |
Why software should not have owners[edit] |
Posted by Nad on 6 July 2006 at 00:02 |
---|
This post has the following tags: Libre software
|
This document from GNU's philosophy documents by Richard Stallman is completely in alignment with the guiding philosophies of this project, so I've included it here. See www.gnu.org for original and versions other languages. --Nad 12:08, 6 Jul 2006 (NZST) This essay is published in Free Software, Free Society: The Selected Essays of Richard M. Stallman.
Source: http://www.gnu.org/philosophy/why-free.html Digital information technology contributes to the world by making it easier to copy and modify information. Computers promise to make this easier for all of us. Not everyone wants it to be easier. The system of copyright gives software programs "owners", most of whom aim to withhold software's potential benefit from the rest of the public. They would like to be the only ones who can copy and modify the software that we use. The copyright system grew up with printing - a technology for mass production copying. Copyright fit in well with this technology because it restricted only the mass producers of copies. It did not take freedom away from readers of books. An ordinary reader, who did not own a printing press, could copy books only with pen and ink, and few readers were sued for that. Digital technology is more flexible than the printing press: when information has digital form, you can easily copy it to share it with others. This very flexibility makes a bad fit with a system like copyright. That's the reason for the increasingly nasty and draconian measures now used to enforce software copyright. Consider these four practices of the Software Publishers Association (SPA):
All four practices resemble those used in the former Soviet Union, where every copying machine had a guard to prevent forbidden copying, and where individuals had to copy information secretly and pass it from hand to hand as "samizdat". There is of course a difference: the motive for information control in the Soviet Union was political; in the US the motive is profit. But it is the actions that affect us, not the motive. Any attempt to block the sharing of information, no matter why, leads to the same methods and the same harshness. Owners make several kinds of arguments for giving them the power to control how we use information:
What does society need? It needs information that is truly available to its citizens - for example, programs that people can read, fix, adapt, and improve, not just operate. But what software owners typically deliver is a black box that we can't study or change. Society also needs freedom. When a program has an owner, the users lose freedom to control part of their own lives. And above all society needs to encourage the spirit of voluntary cooperation in its citizens. When software owners tell us that helping our neighbors in a natural way is "piracy", they pollute our society's civic spirit. This is why we say that free software is a matter of freedom, not price. The economic argument for owners is erroneous, but the economic issue is real. Some people write useful software for the pleasure of writing it or for admiration and love; but if we want more software than those people write, we need to raise funds. For ten years now, free software developers have tried various methods of finding funds, with some success. There's no need to make anyone rich; the median US family income, around $35k, proves to be enough incentive for many jobs that are less satisfying than programming. For years, until a fellowship made it unnecessary, I made a living from custom enhancements of the free software I had written. Each enhancement was added to the standard released version and thus eventually became available to the general public. Clients paid me so that I would work on the enhancements they wanted, rather than on the features I would otherwise have considered highest priority. The Free Software Foundation (FSF), a tax-exempt charity for free software development, raises funds by selling GNU CD-ROMs, T-shirts, manuals, and deluxe distributions, (all of which users are free to copy and change), as well as from donations. It now has a staff of five programmers, plus three employees who handle mail orders. Some free software developers make money by selling support services. Cygnus Support, with around 50 employees [when this article was written], estimates that about 15 per cent of its staff activity is free software development - a respectable percentage for a software company. Companies including Intel, Motorola, Texas Instruments and Analog Devices have combined to fund the continued development of the free GNU compiler for the language C. Meanwhile, the GNU compiler for the Ada language is being funded by the US Air Force, which believes this is the most cost-effective way to get a high quality compiler. [Air Force funding ended some time ago; the GNU Ada Compiler is now in service, and its maintenance is funded commercially.] All these examples are small; the free software movement is still small, and still young. But the example of listener-supported radio in this country [the US] shows it's possible to support a large activity without forcing each user to pay. As a computer user today, you may find yourself using a proprietary (18k characters) program. If your friend asks to make a copy, it would be wrong to refuse. Cooperation is more important than copyright. But underground, closet cooperation does not make for a good society. A person should aspire to live an upright life openly with pride, and this means saying "No" to proprietary software. You deserve to be able to cooperate openly and freely with other people who use software. You deserve to be able to learn how the software works, and to teach your students with it. You deserve to be able to hire your favourite programmer to fix it when it breaks. You deserve free software. |
[edit] |
Posted by Rob on 22 December 2006 at 05:36 |
---|
This post has the following tags: Libre software
|
SourceForge[edit] |
Posted by Robin Patterson on 6 April 2011 at 13:31 |
---|
This post has the following tags: Libre software
|
SourceForge is a website that hosts over 100,000 Open Source projects and facilitates development of code and applications. It has well-developed forum and bug-tracking software.
Quoting from one of its infoboxes: "SourceForge.net provides a variety of services to projects, including a download mirror network, collaborative development tools (like CVS and Subversion), and tools to support discussion and support. These services are provided to projects and their end-users free-of-charge." On an average day it gets over a million downloads, not all of them for games (though it has some excellent games, such as FreeCol). External links[edit]
|