View Full Version : FusionEdit v0.1
I've only posted a couple times during build season and I've been pretty inactive on Chief Delphi during off season, but bear with me.
SVN was really difficult for my team last year, even though we used a decent utility. We were constantly resolving conflicts, waiting on other people to finish building, and trying to tell SVN that we actually didn't want to resolve conflicts in the .MSW file. :(
Anyway, a couple months ago I decided to start coding a free alternative to the MPLAB IDE, called FusionEdit. The killer app would be a sweet SVN system that allows multiple users to work simultaneously on the same file, letting them see each other type in real-time.
Now, several months later, the first beta is done. No real-time typing, but it's getting close.
Attached is the installer, which includes documentation in the start menu folder. Let me know what you guys think! :D
[edit] Application requires .NET Framework 2.0 (http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en) or higher.
Matt Krass
14-11-2006, 14:17
Also, there's a freely available collaborative editor called Gobby here: http://darcs.0x539.de/trac/obby/cgi-bin/trac.cgi
It's supposedly very good, I haven't tried it yet, I plan to tonight.
EHaskins
14-11-2006, 14:28
You beat me to it! :D
I started working on something similar a few months ago!
http://www.chiefdelphi.com/forums/showthread.php?t=45934&highlight=first+IDE
Would you be willing to let me see a copy of the source?
Sure thing, I don't want to release the source publicly quite yet, it's just a wee bit ugly. :) If you want to PM me your email address, I can send it to you. I'd put it up on a free host, but I'm having problems with my internet filter. :(
EHaskins
14-11-2006, 14:42
If you need a place to host it I can get some space on my teams site.
X-Istence
14-11-2006, 15:30
If you want a good colloborative editor get yourself some macs, and use SubEthaEdit. Realtime live editing using the standard Bonjour network. It is an awesome application, that has access permissions and other such things, it can be hosted as a general server, and then let other people access it. Then when it is saved, one can script it using Apple Script to auto check the new source code into svn, and then you can check outa copy on a windows machine with MPLab and compile it.
Also, tell SVN to just ignore certain files. With SVNTortoise you can do this easily. It will from then on not care if a file has been changed or not.
I haven't used it yet, but from the looks of it, nicely done. These are the exact features I am looking for. Thanks.
bear24rw
14-11-2006, 15:50
Can you post a screen shot?
@X-Istence: I realize there are more than one collaborative IDEs available. The idea was to write an IDE specifically for FIRST that other people can modify and/or make suggestions. With this post, I wanted to introduce the idea and open the floor to suggestions.
EHaskins
14-11-2006, 16:06
This thread has some good ideas.
http://www.chiefdelphi.com/forums/showthread.php?t=45934
This has some other info that could be helpful.
http://www.chiefdelphi.com/forums/showthread.php?t=45814
Tom Bottiglieri
14-11-2006, 16:38
Awesome!
Make it work like this http://www.sourceinsight.com/ and you will have a great product!
bear24rw
14-11-2006, 16:58
You should try to figure out how to make collapsable regions.. Like in Visual Studio
Collapsible regions and syntax highlighting are on my to-do. :)
I forgot about SourceForge, which my filter doesn't block. I'm waiting approval of the project right now.
@bear24w: jpg attachments are limited to 100 kb, so it's low quality, but you get the idea. ;)
EHaskins
14-11-2006, 18:49
Sure thing, I don't want to release the source publicly quite yet, it's just a wee bit ugly. :) If you want to PM me your email address, I can send it to you. I'd put it up on a free host, but I'm having problems with my internet filter. :(
Your code isn't that ugly. It has a few bugs, but not bad. I may be able to help with syntax highlighting. That is one of the things I was able to make work with my FRC IDE. :D
I think it might be beneficial if we join forces to try to get a working version of this as soon as possible. :D
You beat me to it! :D
I started working on something similar a few months ago!
http://www.chiefdelphi.com/forums/showthread.php?t=45934&highlight=first+IDE
Would you be willing to let me see a copy of the source?
Oops i knew there was something I was supposed to be working on
I would also like to help out with the project some. either when you have it on sourceforge or if you could email me w/ with(just send a PM and ill send you my email)
bear24rw
14-11-2006, 22:19
Collapsible regions and syntax highlighting are on my to-do. :)
I forgot about SourceForge, which my filter doesn't block. I'm waiting approval of the project right now.
@bear24w: jpg attachments are limited to 100 kb, so it's low quality, but you get the idea. ;)
Oh wow, that looks really clean and really nice.. if you can get customizable syntax highlighting and collapsable regions i will defiently being looking into using this
Being a .Net programmer myself I would defiently like to see a sourceforge project go up!
Awsome job
EHaskins
14-11-2006, 22:57
The code is very clean, but could use some more comments. :)
As soon as the SourceForge site is up, I'll let you guys know and you can join. I know three other people on my team who might be willing to help out as well.
EHaskins, would you allow me to see some of your code?
EHaskins
14-11-2006, 23:57
I'm not at the computer with that code and I'll be out of town for about a week, but, I don't have any problem with that. :)
Sorry I can't get it to you faster.
Hi,
I'm glad that you are undertaking the work to get a quality IDE working for FIRST. However, I'm confused about a couple of things.
Why are you writing an entirely new program when you could create scripts or plugins for one of the incredibly functional editors already out there? (VIM, EMACS, Eclipse, jEdit etc.) Not that I have a big problem with another editor, but it seems like you're reinventing the wheel a little bit here.
Also, why .NET? That leaves out a significant userbase of Linux and Mac users. Then these users will have to duplicate the fine work you're doing on the Windows platform if they want similar functionality. See the problem?
Again, please take these as suggestions, not angry demands.
EHaskins
16-11-2006, 00:19
Hi,
I'm glad that you are undertaking the work to get a quality IDE working for FIRST. However, I'm confused about a couple of things.
Why are you writing an entirely new program when you could create scripts or plugins for one of the incredibly functional editors already out there? (VIM, EMACS, Eclipse, jEdit etc.) Not that I have a big problem with another editor, but it seems like you're reinventing the wheel a little bit here.
Also, why .NET? That leaves out a significant userbase of Linux and Mac users. Then these users will have to duplicate the fine work you're doing on the Windows platform if they want similar functionality. See the problem?
Again, please take these as suggestions, not angry demands.
What else are we going to do during the 10 months out of the year we're not building a robot?d :D
But, really I think the ide a behind this and other projects similar us that the technology er're using for FIRST has been stolen from other purposes. We should have an all in one soultion for programming, downloading, SVN, and any other things I can't think of right now.
As for using .NET .net is fast, easy, and the people who are using linux or Mac for programming are the people who have akready used another IDE, and won't change anyway.
Hypothetically (of course), the Mono project will allow you to run this on Linux. It doesn't because he uses a Window Form control which isn't supported yet, but I'm planning on trying to port this to GTK# at some point.
Good work, E. :D
I used .NET mostly because it's really easy to create great interfaces. Visual C# is just drag-n-drop. Also, I had just learned the basics of C# and wanted to test my knowledge on a real project. .NET isn't the best choice, but if I chose Java or some other multi-platform language, it probably wouldn't be where it is right now.
I see what you mean about reinventing the wheel. I'll be completely honest and say the thought of writing scripts or plugins for another editor never entered my mind. I just saw a need for a FIRST-only IDE, and started writing one. Maybe a little rash, but we'll see. :D
Hope that answers your question.
I used .NET mostly because it's really easy to create great interfaces. Visual C# is just drag-n-drop. Also, I had just learned the basics of C# and wanted to test my knowledge on a real project. .NET isn't the best choice, but if I chose Java or some other multi-platform language, it probably wouldn't be where it is right now.
I see what you mean about reinventing the wheel. I'll be completely honest and say the thought of writing scripts or plugins for another editor never entered my mind. I just saw a need for a FIRST-only IDE, and started writing one. Maybe a little rash, but we'll see. :D
Hope that answers your question.
Yes that does answer my question.
Thanks for your reply.
Astronouth7303
16-11-2006, 20:19
But, really I think the ide a behind this and other projects similar us that the technology er're using for FIRST has been stolen from other purposes. We should have an all in one soultion for programming, downloading, SVN, and any other things I can't think of right now.
How about a distribution of Eclipse that includes the CDT, the MCC18 toolchain, the PIC C highlighting/indexing extensions, Subclipse, pyctools, and other stuff I can't think of right now? (Plus downloads for python, mcc18 wine wrappers, and win32 make.)
I'm going to be up-front with this: You can't top Eclipse. Between the code completion, going-to-definitions-of-functions, automatic compilation, managed make & multiple targets, plug-in architecture, projects, versioning, and broad user base (not to mention IBM), beating it is somewhere between hard and a miracle.
Any home-brewed IDE I'm going to be skeptical of. (Take that as a challenge.)
BTW, how much would it cost to produce 1200 CDs?
1200 CDs? About $200. Why?
Shinigami2057
16-11-2006, 20:43
I think it would be a great idea if we started a development team to write a fully open-source toolchain for the FIRST competition - with your IDE, my program loader (which will be very easy to integrate into your idea, the code is designed to be used as a shared library), and some other useful collaboration tools (I agree that svn is a little overboard for most team's programming groups, too much work).
This may sound a little insane, but I've been more and more interested in writing a free software compiler for the FRC. It would take a hell of a lot of research and work, and probably wouldn't be usable for this year's competition, but it would be a great learning experience for anyone willing to help out and would greatly benefit the competition in general, IMHO.
In my opinion, we should try to centralize all these small programming projects for FIRST to encourage collaboration and making better and more robust tools for the competition. :)
I think it would be a great idea if we started a development team to write a fully open-source toolchain for the FIRST competition - with your IDE, my program loader (which will be very easy to integrate into your idea, the code is designed to be used as a shared library), and some other useful collaboration tools (I agree that svn is a little overboard for most team's programming groups, too much work).
This may sound a little insane, but I've been more and more interested in writing a free software compiler for the FRC. It would take a hell of a lot of research and work, and probably wouldn't be usable for this year's competition, but it would be a great learning experience for anyone willing to help out and would greatly benefit the competition in general, IMHO.
In my opinion, we should try to centralize all these small programming projects for FIRST to encourage collaboration and making better and more robust tools for the competition. :)
Yes, I agree with you that a open-source workflow would be ideal here. I personally am not pleased with the open-source-hostile actions FIRST has been taking.
As for your compiler idea, that sounds insanely hard, but if you want to, go for it. This project (http://gputils.sourceforge.net/) might be useful. Also, you might want to go look what the gcc people are doing. Its possible they are planning on a compiler for Microchip stuff, or they might have some discussions about it (I haven't looked yet).
Astronouth7303
16-11-2006, 22:15
1200 CDs? About $200. Why?
I was thinking of coming up with such a package and sending one to every team. (Too late for the KOP?)
I was thinking of coming up with such a package and sending one to every team. (Too late for the KOP?)
Why not just make it available for download? A lot less work for you, and just as convenient for all of us :)
You may want to upload this to FIRST Software Repository (http://www.frcsoft.com/) when it is all finished.
Astronouth7303
17-11-2006, 18:42
Why not just make it available for download? A lot less work for you, and just as convenient for all of us :)
I thought I might save teams (and the servers) the 100~150MB download. And by putting it in the kit, teams are more likely to use it.
I was thinking of coming up with such a package and sending one to every team. (Too late for the KOP?)
The thing is i dont think it would get used by to many teams. However if we made a Live CD with all the files we needed then that would be perfect. Boot the CD, load your code from a USB drive, write, compile, load onto robot, save the code, log off. The end. And it would work nice and smooth. I have worked alot with Slax, a live cd based off of Slackware. If someone is interested maybe ill start that project.
I thought I might save teams (and the servers) the 100~150MB download. And by putting it in the kit, teams are more likely to use it.
100MB! I had no idea it was that big. But that still only takes a couple minutes to download, and you can host it for free at a place like Sourceforge.
And if you wanted to put it in the kit, that would require all sorts of approval from the higher-ups, and it would have to work perfectly or near-perfectly, unless you want hundreds of emails/forum posts complaining about how it won't work for whatever reason.
I thought I might save teams (and the servers) the 100~150MB download. And by putting it in the kit, teams are more likely to use it.Uh... It's only around 1.5MB. :)
Uh... It's only around 1.5MB. :)
I think he is talking about having Eclipse in the kit with pycloader and the eclipse plugin. Eclipse is like 120mb iirc.
Alright, the SourceForge site is up!
Website: http://fusionedit.sourceforge.net
SourceForge Project site: http://sourceforge.net/projects/fusionedit
Alright, the SourceForge site is up!
Website: http://fusionedit.sourceforge.net
SourceForge Project site: http://sourceforge.net/projects/fusionedit
Glad to see you released it under the GPL! I'm trying it now and will let you know what I think.
One small problem - you need to distribute the GPL with the source code.
Glad to see you released it under the GPL! I'm trying it now and will let you know what I think.
One small problem - you need to distribute the GPL with the source code.
Fixed. Thanks for pointing this out. :o
EHaskins
26-11-2006, 12:32
So I went to test the program some more, and it wouldn't run. :ahh:
I went and tried to run it from source so I could find the problem, and I found that when the code tried to find my computers IP it found "::1". I can ping this address, but the software throws an incompatible IP address exception.
Is this a firewall problem?
EDIT: Exception data.
System.Net.Sockets.SocketException was unhandled
Message="An address incompatible with the requested protocol was used"
Source="System"
ErrorCode=10047
NativeErrorCode=10047
StackTrace:
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at FusionEdit.FusionServer.Initialize() in C:\Documents and Settings\Eric Haskins\Desktop\Source\Source\FusionServer.cs:line 59
at FusionEdit.FusionServerForm..ctor(String[] Arguments) in C:\Documents and Settings\Eric Haskins\Desktop\Source\Source\FusionServerForm.cs: line 38
at FusionEdit.StartupForm.ServerButton_Click(Object sender, EventArgs arguments) in C:\Documents and Settings\Eric Haskins\Desktop\Source\Source\StartupForm.cs:line 55
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.SendMessa ge(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.Control.ReflectMessageInterna l(IntPtr hWnd, Message& m)
at System.Windows.Forms.Control.WmCommand(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
at System.Windows.Forms.ContainerControl.WndProc(Mess age& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.CallWindo wProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.NativeWindow.DefWndProc(Messa ge& m)
at System.Windows.Forms.Control.DefWndProc(Message& m)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchM essageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager. System.Windows.Forms.UnsafeNativeMethods.IMsoCompo nentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.Run MessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.Run MessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at FusionEdit.Startup.Main(String[] Arguments) in C:\Documents and Settings\Eric Haskins\Desktop\Source\Source\Startup.cs:line 21
at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.Run UsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context( Object state)
at System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Astronouth7303
26-11-2006, 21:13
So I went to test the program some more, and it wouldn't run. :ahh:
I went and tried to run it from source so I could find the problem, and I found that when the code tried to find my computers IP it found "::1". I can ping this address, but the software throws an incompatible IP address exception.
Is this a firewall problem?
Probably not. "::1" is the IPv6 (http://en.wikipedia.org/wiki/IPv6) equivalent of 127.0.0.1. The software is most likely expecting a IPv4 address (although I'm surprised it can't handle IPv6 addresses if windows does).
EHaskins
26-11-2006, 21:21
When I looked at the code I found that I was getting an array of IP addresses, and the code only tried to use the first one. I rewrote the code so if the first one fails then it looks to next, then the next, ect.
The IPv4 vs. IPv6 incompatibility could be the problem, but I know I made it work so its ok for now. :rolleyes:
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.