Filed under: development

Interns to me

Today I got emails from our spaniard college where we finally got the documents to work upon the internships in Europe. We won't be offering payment unfortunately but they will surely be able to be part of the efforts happening in OpenOffice.org as they are starting to generate some code. These students will be able to build and provide documentation on it. Also some will need to be able to code some mid-size code to have an acknowledgement of their program. 

For exmaple:

  • Core developers will first need to compile and run OOo from current source. From then they will need to learn about services and interfaces and optimize some parts of the OpenOffice.org suite. Some goals can include - improve the Draw interface, improvde the way calc functions get built, a GUI way to design dialogs for Java, a Python framework for UNO with more RAD driven code.
  • Extension development will focus on create new extensions as well as improve some of the ones available. Several projects such as digital signature extensions, improved GUI and instant signature for some specific devices. 

These efforts would be need to start getting accumulated until we can have a productive suite. I was pleased that the spaniard university will assign as much as 6 students per profile (would need to verify) but the skillset will be great for them and for us as well. If the students don't acomplish their goals, it would still serve for their knowledge of the software as well as me. Working together will allow the patches to be commited and also tested and quality approved in one sole package.

Monkeying around the line of hard and dynamic code

So a few months back I had a discussion about the difference of using the 3rd party binding across dynamic languages. This is nothing new, and there has been quite a few of these bridges. However I am not sure how much has these been taking up.

The conversation was a comparison between using C# or other languages like Ruby for .NET. Granted that this was not really a .NET conversation but rather on the options in coding under the same API or VM. The JAVA version of the conversation would have been between things like using Java to use JVM or using something like JRuby or the more rooted language Groovy.

So after this conversation I went to understand the question better. Is really a whole new language needed to use an API? Should we just start becoming language driven as opposed of API/VM driven? After all given the options out there, these seem like a viable option.

So I have two different roads, one was making easy things (dynamic approach) to hard languages (JAVA), and using hard languages on toolkits that are usually develop with dynamic languages (GTK). So I took a look at some of the following implementations:

  • Using Jython with SWING
  • Groovy cookbook and hello world
  • Gnome-Java
  • GTK in C
  • PyGTK

So here are some snippets about how to use Jython with SWING (Java GUI Toolkit).

from javax.swing import JFrame

JFrame('Hello, World!', defaultCloseOperation=JFrame.EXIT_ON_CLOSE, size=(300, 300), locationRelativeTo=None).setVisible(True)

This simple two line code will generate already a window, label and action.

The next example is the opposite, and doing a Toolkit like GTK in Java language:

package button;

import org.gnome.gdk.Event;
import org.gnome.gtk.Button;
import org.gnome.gtk.Gtk;
import org.gnome.gtk.Label;
import org.gnome.gtk.VBox;
import org.gnome.gtk.VBox;
import org.gnome.gtk.Widget;
import org.gnome.gtk.Window;

public class ExamplePressMe
{
public static void main(String[] args) {
final Window w;
final VBox x;
final Label l;
final Button b;


Gtk.init(args);

w = new Window();
x = new VBox(false,3);
l = new Label("Go ahead:\nMake my day");
x.add(l);
b = new Button("Press me!");
x.add(b);

b.connect(new Button.Clicked() {
public void onClicked(Button source) {
System.out.println("I was clicked: " + b.getLabel());
}
});
w.add(x);
w.setTitle("Hello World");
w.showAll();
w.connect(new Widnow.DeleteEvent() {
public boolean onDeleteEvent(Widget source, Event event) {
Gtk.mainQuit();
return false;
}
});

Gtk.main();
}
}

Pardon my verbosity but half is becaus of JAVA and half is because of GTK. However we can see here that is just a matter of declaring variables classes and execution. Now we move to the C version:

#include <gtk/gtk.h>

static void hello( GtkWidget *widget, gpointer data ) {
g_print ("Hello World\n");
}

static gboolean delete_event ( GtkWidget *widget, GdkEvent *event, gpointer data ) {
g_print ("delete event occurred\n");
return TRUE;
}

static void destroy ( GtkWidget *widget, gpointer data ) {
gtk_main_quit();
}

int main( int argc, char *argv[] ) {
GtkWidget *window;
GtkWidget *button;

gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "delete-event", G_CALLBACK (delete_event), NULL);
g_signal_connect (window, "destroy", G_CALLBACK (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello GTK+");
g_signal_connect (button, "clicked", G_CALLBACK (hello), NULL);
g_signal_connect (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window);
gtk_main ();

return 0;
}

 

Frameworks, link share and entrepreneurial investments

So since I have been living here in Cancun I have been involved with this developers meetup where we talk and share impressions and comments around development topics. Things like frameworks, languages, best practices and also just have fun with new applications and discoveries. All these took part on last meetup we had yesterday.

The atendee list was small even if many more verified their assistance. A total of four developers gather, most of them I already knew from previous sessions however a new face showed up to this meetup. Some great applications where shared during our meetup including an application similar to the Illumination software creator, which generate applications for Linux, Windows, OSX, Iphone, Andorid and so on, but a new one called Titanium. The whole toolkit is based on Javascript and then generated into the native language. Quite similar to the Illumination software except is a pygtk generation and flex.

Other topics were circulating including the troubleshooting of a JQuery module for the use inside a site. While some hacking was going on an interesting discussion which I decided to record about the differences between the frameworks and MVC model versus the traditional way of developing web applications.

The discussion was pretty interesting and the comments about Python vs PHP and how MVC can be applied to certain applications. There was also some link sharing including Woopra, an alternative to Google Analytics. Rescuetime.com which acts as a monitor of your time spent in at the workstation and teach you how to save time between the applications you are working at.

There was a small discussion about hosting services and cloud services versus VPS and smaller shared accounts, on price point and also cloud services. From local backup to Carbonite and similar cloud services which I am not very found off. My philosophy on using linux for example has changed the way I percieved hardware and when making a selection on netbooks or laptops I just see a shell to my information that lives on different devices as opposed on planning and saving for just 1 expensive piece of tech.

The last part of the meetup was quite interesting, we change scenery and went to a Wings Army which was a good time to throw some food. We were able to talk about the business side of entrepreneurship. We went from venture capitals in Mexico to a directory of south california investments. He told me his experience with government funding and how corruption brought the whole thing down. Something unfortunately very common in the government.

Eventually going back to stories about how to look for greener pastures and try to refocus the strategy and how to avoid huge ammount of paperwork to get by the funding of the solution. I shared my personal strong critics to the Mexican 'investors' being completely missplaced as far as what market capitalization vs monetization and growth. As many would notice, Google, twitter, and even Facebook, monetization was always pushed further and delayed as much as possible, even now at 50+ billion dollars there still not substantial monetization yet investment is now pouring from every angle.

Organizing for the new year the FLOSS way

So a good Free Software new year wishes is to start organizing Free software events for this year. There are several events where we can put our community on the map. Each year events such as Document Freedom Day, Software Freedom Day, FLISOL and the multiple FLOSS applications events. My initial thought is to cover them via streaming, the multiple talks in different places and countries makes me impossible to look this as a phisical thing but more as a broadcasting thing. Tunning in on a specific hour to a on-going talk about the relevant event seems like the best thing to start going at it.

Things like an on-going IRC channel for the different "ES" regions that can just connect during that day and have a distributed conversation about the events seems like the best idea. However organizing small events is also something I would like to get involved and see what can be done in that area as well as get involved with networking of geeks in my local area.

Some of the issues is that I am new to the area, also my geek friends are increasing but not at the rate that I would have expect at first. So I would like to have a stronger social network that come together into making more geeky things through the network. Also having some more spare change wouldn't hurt. Being able to access to university resources, tackle on innovation from a larger userbase like maybe a school or medium company that can get involved into providing a cookout or a location that we can all collaborate on making it better. This remind me of a place like LinuxCabal where in Guadalajara was very very active, this gave us a great position where we can all geekout.

I guess my larger goal is to have that people and have that place to geekout and strenght the geek metropolitan network. Till next time, these events will tell if I made it or not.

Development models on social FLOSS

Listening to TLLTS they presented a developer that is a dentist. He also had a great horror story on vertical software providers that keep their costumers hijacked. The story basically mentions on how the administration of the office relies 100% on these software to archieve their patient data, yet they are locked out of their data.

Once that is on however, there are some cool stuff on ways communities could organized themselves and foster their own tools. What we basically need is a better structured developer enterprise that can focus on the development on custom software. Software that won't break the Bank of their costumers and that caan help the floss development as a whole.

Of course we really need to understand that these acceptance could also lead to much clash between the quality of service and the closlack of understanding of the client or against the IT policies.

I wonder if we could recreate the early environment when IT industry started making inroads and became a multy billion dollar business. Basically develop a sustainable model to foster development across companies but also get the target needs from these vertical markets. Get access to VC capital, hire programmers and specialists and run with that. Finally to have the channels and marketing techniques to push their products to foreign industries.

BizDev Reloaded

BizDev was a great idea that became a project but went stalled for a while. Having taken over the BizDev Project and showing the potential to the corporations on including OpenOffice.org in their strategy is clearly something that will start to develop the market interest. One of the main things is reportrait OpenOffice.org as a platform. thanks to the provement of OpenOffice.org industry acceptance. The idea of the development of applications whenever they are within OpenOffice.org, extensions or 3rd party products that connect to the application. OpenOffice.org as a platform can get the industry intterested and with a more clear view from the profitability model. Other ideas like a marketplace is also a great idea on the backburner on having a collection of companies showing up on the OpenOffice.org and having the community seal of approval. BizDev will definetly change for the best once that the communication start stearing up and the ideas become faster to implement.

OOo 3.0 is out

In the middle of OOo launch we now have a 3rd release of OOo. For us at OOoES it means the start of new adventures including a OOo 3.0, open for business, e-learning platform and other things that bring more visitors to the site, and give them something to do. Aditionally we are going social, now you can contact multiple OOo community members from around the web thanks to Gtalk gadgets. Probably next month we can go live with this things. Multimedia is another thing we want to launch including more videos and media that you can learn, promote, and present. Right now we are experiencing a huge demand and the site will be restored soon. However having a more AJAXy site might also put the spotlight back into the OOoES site as a framework to work with. Now that 3.0 is out we can start thinking about also some kind of exchange for the multiple OOo tools and utilities.