while blogging about DVCS (Mercurial and Git) inside Eclipse using Plug-Ins (EGit and HgEclipse) I noticed some problems – thanks to the teams of EGit and HgEclipse I had to update some of my blog entries
Here are some of the issues fixed:
EGit
Now you don’t have to enter pathes to repositories manually, because there’s a [...]
Just a short one to all my Eclipse compatriots out there. It looks like EclipseCon is a no go for me this year. Boo hoo. :( So for any beers I promised to buy (I especially feel indebted to the Dash build team) I'll have to give you a rain-check. And for those who offered, don't worry, I'll take you up on it next year. Apologies are also due to the event staff for my having to pull a planned talk, but I hope that gives someone else an opportunity to show something cool. I've never been to an Eclipse Con, and am not a huge convention gower in general, but this one looks to have a lot of really interesting new technology (not to mention politics!)I'm really happy that so much effort is put into making materials available online for those of us who will be following things virtually. Speaking of, as we all look for ways to reduce our carbon output, and there are many people who find it too expensive or too far to travel, it would be great to begin thinking about supporting distance interaction with sessions. It could add a lot to the proceedings, though of course the organizers would have to think about how to do that without having a negative impact on overall revenue. For one thing, fees from any new virtual attendees would have to balance out any cannibalization of live attendees. Hmm, that didn't come out right somehow... "Brains..they eat brains.." Anyway, I think you know what I mean so hopefully this post won't be worrying to anyone planning on attending. OK, that was a weird segue. So anyway... I'll be looking forward to viewing the online presentations for B3 and E4, two technologies that will play a critical role in the future of Eclipse. And I recommend to everyone to take a close look at two of my favorites, GEF3D and EEF. Finally, if you haven't been exposed to XPand, XText and the rest of the Modeling TMF and M2T technologies, don't miss those presentations. We don't all fully appreciate it yet, but code generation and other model-driven approaches are going to be important -- I think core -- technologies in the future. If you've used them, you'll know what I mean, but if you haven't I think you'll be really impressed by the amount of thoughtfulness and creativity that has gone into them and excited by the possibilities they offer. For all things AMP related, I'll just have to make some more screencasts.-Miles
2010-03-12T22:01:00Z
http://milesparker.blogspot.com/2010/03/see-you-all-at-eclipsecon-2011.html
Miles Parker
noreply@blogger.com
Now that the committer Board rep voting is over and before the results are known1, I thought I'd ask: why isn't the voting open and transparent? Eclipse is an open source community [1]; committer elections are open and transparent [2]; nothing in the Bylaws requires secrecy [3]; the Foundation staff can see the election results; so why are the committer Board rep elections secret from the committer community?One thing the Bylaws do specify, but because the elections are secret most committers don't realize, is that I get a more powerful vote than does Jeff McAffer, and both of us get a more powerful vote than John Arthorne. This doesn't make sense to me. Why should I, a very small-time committer [4] have 15x the vote that hard-working Jeff has? Or 200x the vote that mega-contributor John has?This vote power discrepancy is because "Committer Members who are employed by the same organization shall have only one (1) collective vote with respect to election of the Committer Directors..." [3]. I suspect that this clause was put in to prevent the original single large contributor (IBM) from electing all IBM committer reps, but there are other, better ways to prevent that undesirable result. For example, the Bylaws could allow each committer a single full-strength vote, but constrain the election so that no more than one victor can be from any single member company.Giving John 1/200th of a vote and Jeff 1/15th of vote and myself one entire vote is not the meritocracy that Eclipse strives to be. If anything, John and Jeff should, by the merit of their contributions, have 50 votes to my one vote.P.S. What's more, with this odd voting system, it's possible for the winners to have less than 10% of the popular vote. Consider the approximately 400 voters: 40 independents @ 1 vote each, 200 IBMers = 1 combined vote, and 160 committers across 29 other member companies = 29 votes, for a total of 70 votes. If 36 of the independents vote for Candidate X, then X will win irrespective of votes from member companies. 36 votes out of 400 total is a mere 9%.1 I write this post-voting, pre-results so that it can be solely a question about the elections and not, regardless of the results, seen as arguing about, or attempting to influence, the results. Modulo the odd vote-strength issues described herein, we committers will have elected a good group of Board reps and I know they will work hard to represent all committers.
Momentum is building around documentation best-practices at Eclipse. EGit, Eclipse's Git integration project, recently became the latest project to adopt a crowdsourcing approach to documentation, and is reaping the benefits: in one day they've already seen the contribution of Git for Eclipse Users from Alex Blewitt.They are able to do this by taking advantage a new feature of the latest Mylyn WikiText, which can generate Eclipse help directly from a wiki. While it was possible to process individual pages before, now Mylyn WikiText makes it easy to process multiple wiki pages at once while automatically downloading images, maintaining page cross-references, and building a unified table of contents.You can learn more about crowdsourcing documentation at EclipseCon 2010, where Chris Aniszczyk and I are co-presenting Documentation: Single-Sourcing, Crowd-Sourcing And Other Voodoo. If you can't wait two weeks, you can find out how they're doing it at EGit from their contributor guide.
Finally we have a nice time tracking plugin which addresses the broken promises of Mylyn and Eclipse Udage Data Collector to show user information about his use of the IDE.
Rabbit is an Eclipse plug-in that is designed to help you answer these questions. Whenever you want to, just open the "Rabbit" view and see the data collected in a graphically useful way. You can even select the time period for the data to be displayed, currently, it can tell you the following:
Commands: how often you use each commands, do you know which is your favorite?
Editors and Views: time spent using different tool within Eclipse
Perspectives: time spent using different perspectives
Sessions: time spent using Eclipse
Resources: time spent working on difference resources such as files/projects
The only thing I miss from this plugin is information about time spent within Mylyn tasks and resources/files within given task. If you like the idea, please favorite this issue.
2010-03-12T16:09:32Z
Eugene Kuleshov
For those who don’t know, the Eclipse Platform freezes its APIs soon with the release of Eclipse 3.6 M6… a great time to start targeting Eclipse if you’re planning to ship a product on the Eclipse Helios release (or a great time to start bribing platform committers for API changes). At this point, API won’t [...]
This is a response to Chris Aniszczyk’s post “Eclipse and Academia“.
I’m glad he raises the issue of academia producing cool stuff vs. consuming Eclipse in class, which seems to be better supported.
Clearly, Object Teams is one of the projects that has crossed the line between both worlds, so let my try to summarize the experience [...]
The Eclipse plugin creation wizard allows to create OSGi bundles or Eclipse plugins.
The most notable difference is that the PDE plugin editor does not show the extension tab.
I recently wanted to use an plugin extension in a project which I initially created based on OSGi; therefore I wanted to enable the “Extension” and [...]
Do you know that adding a new field to an interface or adding a new non-default constructor to a class can break the binary compatibility of your API? There are so many other things like these that can possibly break the compatibility. Either you can spend a lot of your time reviewing all the new added/modified API for breaking changes (before that, you need to spend more amount of time in finding them) or simply use PDE's API tooling to do it for you as you develop.
The tutorial gives an introduction about what API Tooling is and how to setup and use for you project. Click here to read the API Tooling Tutorial.
From Eclipse Tips
Like the tip? Subscribe via RSS or Email or Twitter
Looks like I lost two posts when they moved my blog between servers! I am going to post these back here. For this specific one, if you answered prior that you would like this can you please do it again. There was a request for what customers would want such a thing.
One of the biggest [...]
I gave a talk at the Java User Group Karlsruhe last week on best and worst practices using OSGi for building business applications (thanks to David for inviting me). You can get the slides from the user group or directly here:OSGi Best and Worst Practices (pdf)Thanks again for joining! The room was full of people and I especially enjoyed all the great questions and discussions during and after the talk. Thanks again, it was a pleasure to be a guest at the event!
Today's eGit/Git chatter in twitter started with some discussion brought up by Wayne Beaton today on the Architecture Council call. When is a good time to move off of CVS/SVN to a git hosted repository at eclipse? Some say when the eGit plugin is as good as the CVS plugin. However, I think that is a little short sighted, and my thoughts while they may be controversial on the matter, are this:Require all projects to move off CVS and SVN before they release next year (note I didn't say Helios).Require it as part of next years release train.The following projects should be the first to migrate early due to the size and popularity: e4, Eclipse Platform, JDT, PDE, Modeling, CDT, and Web Tools Platforms.Require that by next year all build systems have Git support if they don't already. Yes this means make Athena, Buckminster, B3, Maven/Tych, PDE Build, and the eclipse base builder able to work reliably and efficiently with git.My reasoning is simply this. If there is no set date when CVS and SVN will be decommissioned at eclipse, there is little incentive for projects to migrate off of what they have now. The eclipse network engineers are stressed thing as it is, so why add having to maintain 3 version control systems to that list.Also, the only way to get eGit up to what some people expect, is to make us eat or own dog food. I still contend that one of the reasons that the CVS/JDT/PDE are so good in eclipse, is the fact that the developers had to use their own tools.I'm not expecting this stance to be popular, and I totally expect there to be pain points, but the reality is that projects will stay in their comfort zone until the very last minute. If we can get more projects migrating sooner rather than later, then we can help get the pain points addressed. If say, July 1, 2010 projects started their migration...say those planning to be on next years release train...you have a year of good concentrated effort to help improve eGit and get the most critical pieces developed and working.The eclipse community comes together when it is in the common interest, what could be more common than making dvcs as easy as possible for an eclispe developer/committer to use?
Oh this is awesome… Eclipse is trending on Twitter.
On top of that, we’re nestled next to Chuck Norris! It’s good to be next to Chuck.
Ok, maybe it’s not the “Eclipse” I want it to be… but let’s consider it practice for when EclipseCon rolls around.
On March 22, I will be presenting my revised edition of the Eclipse Development Process to the Eclipse Board of Directors for their approval. I’ve been discussing the upcoming changes in this blog, and in a handful of bug reports, so I’m pretty comfortable with the ideas. But like many things in life, the delivery [...]
We are ready for Round 2 of feedback on an updated Eclipse Logo. We have narrowed the options to four different concepts.
As a reminder, the purpose of this exercise is to see if we can find ways to modernize and update the existing Eclipse logo. We are not looking to create an entirely new logo. [...]
I wanted to drop an outlook email to my RCP application and as always I asked google to help me. You don't find much on this, an older post washttp://www.eclipse.org/forums/index.php?t=msg&&th=147516&goto=464661That got me startet. The damn it didn't work, I asked on the forum again and the answer made confusion even greater:http://www.eclipse.org/forums/index.php?t=rview&goto=519397#msg_519397gladly my wife gladly does some more windows thingy's with c# and with her help and a c# example i found out that i have to make an os call to get the type of the transfer that may change with every boot.public static int registerType() { // Look name up in the registry // If name is not in registry, add it and return assigned value. // If name already exists in registry, return its assigned value TCHAR chFormatName = new TCHAR(0, "FileContents", true); return OS.RegisterClipboardFormat(chFormatName); }Then at least the stuff from the first post started to do something, i could get an IStorage and enumerate over the STATSTG'spublic Object nativeToJava(TransferData transferData) { IDataObject idata = new IDataObject(transferData.pIDataObject); idata.AddRef(); FORMATETC formatetc = new FORMATETC(); STGMEDIUM stgmedium = new STGMEDIUM(); formatetc.cfFormat = type; formatetc.lindex = 0; formatetc.ptd = 0; formatetc.tymed = 4 | 8 | 1; formatetc.dwAspect = COM.DVASPECT_CONTENT; transferData.result = getData(idata, formatetc, stgmedium); idata.Release(); if (transferData.result != COM.S_OK) { System.out.println("Fehler" + transferData.result); return null; } if ((stgmedium.tymed & 8) == 8) { // IStorage IStorage storage = new IStorage(stgmedium.unionField); storage.AddRef(); long[] x = new long[1]; long ret = storage.EnumElements(0, 0, 0, x); IEnumSTATSTG enumSTATSTG = new IEnumSTATSTG(x[0]); enumSTATSTG.AddRef(); STATSTG[] data = new STATSTG[0]; // Loop over enumerator long rgelt = OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, STATSTG.sizeof); int[] pceltFetched = new int[1]; enumSTATSTG.Reset(); while (enumSTATSTG.Next(1, rgelt, pceltFetched) == COM.S_OK && pceltFetched[0] == 1) { STATSTG statstg = new STATSTG(); COM.MoveMemory(statstg, rgelt, STATSTG.sizeof); STATSTG[] newData = new STATSTG[data.length + 1]; System.arraycopy(data, 0, newData, 0, data.length); newData[data.length] = statstg; data = newData; } OS.GlobalFree(rgelt); enumSTATSTG.Release(); // do something with STATSTG[]but i still did not know what the heck to do with these objects. I started to search again and finally found an example in the eclipse OleClient:private byte[] readStream(IStorage storage, String stream) { boolean success = false; long[] address = new long[1]; // Look for a CONTENTS stream if (storage.OpenStream(stream, 0, COM.STGM_DIRECT | COM.STGM_READ | COM.STGM_SHARE_EXCLUSIVE, 0, address) == COM.S_OK) { IStream tempContents = new IStream(address[0]); tempContents.AddRef(); try { ByteArrayOutputStream w = new ByteArrayOutputStream(); int increment = 1024 * 4; long pv = COM.CoTaskMemAlloc(increment); int[] pcbWritten = new int[1]; while (tempContents.Read(pv, increment, pcbWritten) == COM.S_OK && pcbWritten[0] > 0) { byte[] buffer = new byte[pcbWritten[0]]; OS.MoveMemory(buffer, pv, pcbWritten[0]); w.write(buffer); success = true; } COM.CoTaskMemFree(pv); w.close(); return w.toByteArray(); } catch (IOException err) { } finally { tempContents.Release(); } } return null; }now with that I can read Streams from the IStorage. What streams there are is in the STATSTG's// do something with STATSTG[] Map result = new HashMap(); for (STATSTG s : data) { String stream = getString(s.pwcsName); result.put(stream, readStream(storage, stream)); } storage.Release(); return result;There we are. The IStorage contains the data in the .msg Format that I return in some strange way via the Map. I don't know how to get the .msg in one piece, but at least with some informations fromhttp://www.fileformat.info/format/outlookmsg/I can now extract the contents of the message and push it to jackrabbit ;) The code in these examples is for x86_64, you may need some ints for the adresses on 32bit windows.
I have recently fed up with the broken dependencies and potential boot problems after ever every update and decided to give Ubuntu a try – an action that was long awaiting on my to do list.
Although this does not mean I dumped Fedora – as I have been involved with Fedora every since the Fedora [...]
Just read this on the BIRT blog, looks pretty cool. There is a native iPhone application for BIRT content.
technorati tags: BIRT, lotus notes
You're a computer science or engineer student, you love open source and would like to be involved in one of the greatest OSS project of all times ? You're lucky, the Google Summer of Code 2010 is starting and is a perfect moment to join the Eclipse community.If you're a commiter you can throw your idea on the wiki page, if you're a student contact the development team or provide your own ideas.I provided a few of idea, here are those who got most of the votes at Obeo :EMF Shell, This one is geekish : providing an environement with "shell like" commands to manipulate models. One would expect wc to count model elements, grep to filter models elements, cd to move within models, ls, sed to substitute, and all the other commands which could be useful in this context.Haven't you ever dreamed to filter the opened view of your e4 modeled workbench using grep ?Now that SWT-QT seems to be a reality, I can't prevent myself to dream about a GEF port on QT. QT has amazing graphical capabilities and provide the best performances on every platform around there. GEF is great, but is it ready for next gen graphical modelers ?Go and have a look on the demos. That could be a game changer for graphical modeling let's call it CuteGEF :)Of course Modeling in general, EMF Compare and Amalgam topics are on the wiki page, you have plenty of subjects to choose from !Please, if you're a student and are interested in participating to the GSOC, do not wait ! Work with the projects to prepare your application !