View unanswered posts | View active topics



Reply to topic  [ 100 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next
FlashDevelop Mac/Linux integration: the Bridge project 
Author Message
Admin

Joined: Wed Aug 31, 2005 7:27 am
Posts: 11661
Location: Paris, France
Hello Mac/Linux friends,

I've been busy lately working on a side project called the "FlashDevelop Bridge". I'll keep you informed in this thread and will edit this post to reflect the status of the project.

This project is not a port of FlashDevelop to Mac or Linux.
This project's goal is to improve FlashDevelop behavior when ran virtualized in a Mac or Linux host.


The main issues identified when you run FD virtualized:

1. high memory & CPU need of the virtualized Windows OS
The Flex SDK in particular consumes a lot of memory so you have to allocate a ton of your RAM to Windows.

2. slow shared disk between Mac & Win
Usually you'll want to need to keep the project on the Mac filesystem which means Windows application access the Mac drive as a network location. This is slow, in particular for compilation.
This also brings up the next issue.

3. Mac/linux filesystem synchronization problems
Mac/Linux and Windows have a different approach to filesystem changes monitoring. And it fails badly in FlashDevelop which is not notified when files in the project & classpath change: new classes don't appear in completion, IO changes in project tree do not appear without manual refresh, etc.

4. poor integration with Mac applications
- Flash IDE integration (test/build with error reporting in FlashDevelop) is important for many users.
- Also in general, not all virtualization solutions (especially the free VirtualBox) will seamlessly associate Mac applications with Windows files. Which calls the following issue.

5. inconsistencies between virtualization solutions
Tutorials to get started with Parallels, VMWare or VirtualBox are complex, not up to date and hack-ish.


Solutions offered by the Bridge:

Of course it won't be as great as a full port, but obviously a native Mac/Linux port of FlashDevelop would be very very very far from the current incarnation of FD. In the meantime, the Bridge will offer:

1. a consistent solution, compatible with Parallels, VMWare and VirtualBox
- start the bridge and enter minimum configuration to get started
- calling native Mac applications will be fully automatic and will not depend on solution-specific wrappers.
- Flash IDE integration (test/debug and error reporting in FlashDevelop) will be seamless.

2. no more filesystem problems
Filesystem monitoring runs natively in the host OS and entirely replaces Windows notifications.

3. reduced memory & CPU footprint
Flex SDK will be executed in the host OS instead of inside the virtualized Windows. You'll be fine with 512Mb allocated to your Windows system.

4. <your call>


Project status

Done:
- mapping between Win & Mac locations [1],
- calling Mac applications automatically [1],
- filesystem monitoring delegated to host [1],
- [1] configure host -> guest paths to map Windows paths to Mac paths,
- calling Flash IDE and get back error reports,
- program settings to configure all this s**t,
- nice UI for the Bridge.

In progress:
- Linux support (?),
- virtualization apps (missing Parallels).

To do:
- debugging & stress test,
- some more settings (IP, port),
- hide the bridge from the Dock,
- offload Flex SDK compilation to Mac


Contributing:

You can contribute in general even/especially if you're a Win-only user by building FD4 from SVN or installing the dev builds and controlling that everything works as expected because this bridge introduces a few core changes to allow the delegation mechanism.

If you're a Mac/Linux user and very courageous and know some C++/Qt you can build the bridge and FD4 and start using it right now.

SVN:
http://flashdevelop.googlecode.com/svn/trunk/FD4
http://flashdevelop.googlecode.com/svn/trunk/FD4/External/Tools/Bridge


Tue Nov 30, 2010 8:45 pm
Profile WWW
Member

Joined: Tue Jul 15, 2008 3:36 am
Posts: 169
Interesting :), very nice.
Looking forward to the linux one, I'll test the hell out of it, and (hopefully) help around with the Qt stuff.


Wed Dec 01, 2010 4:02 am
Profile
Member

Joined: Wed May 16, 2007 9:28 am
Posts: 20
Great news
I'm currently using flashdevelop running in virtualBox on Macosx.
Fd is even more usable using virtualisation than textmate or FlashBuilder.

But sharing folders and use Flash as an ide is more complexe .. thanks for working on this !


Thu Dec 02, 2010 9:54 pm
Profile
Member

Joined: Thu Nov 06, 2008 12:53 am
Posts: 3
Why is doing a proper port out of the question? Is FlashDevelop developed in a technology that precludes any possibility of porting the existing code over?


Thu Dec 09, 2010 10:16 pm
Profile
Member

Joined: Thu May 15, 2008 7:36 pm
Posts: 636
Location: Baltimore, MD
@IQpierce short answer: yes.
There have been multiple port attempts (I made one last year) and the sheer # of Window's specific API calls made at a low level mean that a significant amount of functionality would need to be re-written.

It's not impossible but someone would have to give up a good chunk of their time (I estimate around 6-9 months for one person spending 20 hours a week to get it where it would need to be.)

_________________
http://tronster.com


Mon Dec 13, 2010 3:11 pm
Profile WWW
Admin

Joined: Wed Aug 31, 2005 7:27 am
Posts: 11661
Location: Paris, France
Ok got a big part of the project done: the bridge is a reality.

The Mac app can be compiled and configured (it now has a decent UI), then in FD4 you'll find a Bridge plugin to enable & configure the Win side.

The very big obvious missing part of the project is Flex SDK offloading to Mac - but I'll look into it after Flex SDK handling will have been rewritten in FD4 (lots of changes coming).


Wed Dec 15, 2010 10:29 am
Profile WWW
Member

Joined: Tue Jul 15, 2008 3:36 am
Posts: 169
Hi Philippe, so I manage to build the Bridge host app, I'm on linux and just recently turn 100% Linux and using FD from VirtualBox 4.0 (Not the OSE version). So when I run I just got a window with some kind of path mapping. Since I'm new to this virtualization stuff, could somebody highlight, what is the problem with this sharing between host and guest OS ? An example of the problem maybe ?


Fri Dec 24, 2010 6:56 pm
Profile
Admin

Joined: Wed Aug 31, 2005 7:27 am
Posts: 11661
Location: Paris, France
aaulia wrote:
Hi Philippe, so I manage to build the Bridge host app, I'm on linux and just recently turn 100% Linux and using FD from VirtualBox 4.0 (Not the OSE version). So when I run I just got a window with some kind of path mapping. Since I'm new to this virtualization stuff, could somebody highlight, what is the problem with this sharing between host and guest OS ? An example of the problem maybe ?

Aside from CPU & memory usage, the most annoying issue is that Filesystem updates (ie. file change, rename, move) in the Mac/Linux drive are not notified to Windows - a simple test is to create a new folder in the project panel and see if the "New folder" appears.

To control that the brige is running as expected you should see in the bridge's status bar the number of threads & watchers active.

Other thing to test: "execute" a document in the project tree, or "explore" a directory and it should open in the host system.


Fri Dec 24, 2010 8:16 pm
Profile WWW
Member

Joined: Tue Jul 15, 2008 3:36 am
Posts: 169
Philippe wrote:
aaulia wrote:
Hi Philippe, so I manage to build the Bridge host app, I'm on linux and just recently turn 100% Linux and using FD from VirtualBox 4.0 (Not the OSE version). So when I run I just got a window with some kind of path mapping. Since I'm new to this virtualization stuff, could somebody highlight, what is the problem with this sharing between host and guest OS ? An example of the problem maybe ?

Aside from CPU & memory usage, the most annoying issue is that Filesystem updates (ie. file change, rename, move) in the Mac/Linux drive are not notified to Windows - a simple test is to create a new folder in the project panel and see if the "New folder" appears.

To control that the brige is running as expected you should see in the bridge's status bar the number of threads & watchers active.

Other thing to test: "execute" a document in the project tree, or "explore" a directory and it should open in the host system.


Okay philippe you have to guide me here, I'm confused, I made the Z:\\.FlashDevelop (".FlashDevelop" directory inside a host directory which then shared through VirtualBox and mapped as network drive Z:\ on Windows guest).

Now what ? How do I map the host directory to "local" directory ? Do I have to user ".FlashDevelop" as root folder for all shared or something ? Also what about mapped directory in the host.

OT: Can I installed FD4 side by side with FD3 ? Preferably having to Start Menu entry, does setting portable mode and editing the NSIS file (to insert different start menu entry) suffice ? Sorry I don't have much time tinkering right now TT . TT


Sat Dec 25, 2010 3:26 am
Profile
Admin

Joined: Wed Aug 31, 2005 7:27 am
Posts: 11661
Location: Paris, France
Wait aaulia, you say you compiled the bridge under Linux? Do you run Adobe Flash using wine too?

Make sure to update from SVN again and fully rebuild FD4.

Ok let's say you have:
- on Linux/Mac you are sharing: /Users/yourname/sharedDir
(note: you can share this folder with a different name than the real one)
- on Win/VirtualBox this path appears as: \\VBOXSVR\sharedDir
- which you map as Z:\ (you can choose any letter between H and Z included).

Bridge configuration:
- in the paths configuration table, enter "Z:\" in first col and "/Users/yourname/sharedDir" in second col. This let the bridge map Win and local paths.

FlashDevelop plugin 'BridgeSettings':
- enable it and check the 'Shared Drive's value ("Z:\") corresponds to your mapped drive.
- if you don't have Flash installed on the host system, set "Target Remote IDE" to false.

Now restart FD and if you open a project in a subfolder under Z:\ you should see traces in Output panel about connection and you should see a threads/watchers indicator in the Bridge status bar.

PS: yes you can have both FD3 and FD4 installed.


Sat Dec 25, 2010 7:07 pm
Profile WWW
Admin

Joined: Wed Aug 31, 2005 7:27 am
Posts: 11661
Location: Paris, France
A little status update:
I have now greatly improved the bridge, it works with VirtualBox and VMWare and implemented features seem to do a good job.

It's now time to stress-test it so I'm going to do a test build of FD4 setup and a DMG for the Bridge (maybe aaulia will share a Linux build): send me a PM if you want to test it.


Sat Dec 25, 2010 10:52 pm
Profile WWW
Member

Joined: Tue Jul 15, 2008 3:36 am
Posts: 169
Philippe wrote:
Wait aaulia, you say you compiled the bridge under Linux? Do you run Adobe Flash using wine too?

Make sure to update from SVN again and fully rebuild FD4.

Ok let's say you have:
- on Linux/Mac you are sharing: /Users/yourname/sharedDir
(note: you can share this folder with a different name than the real one)
- on Win/VirtualBox this path appears as: \\VBOXSVR\sharedDir
- which you map as Z:\ (you can choose any letter between H and Z included).

Bridge configuration:
- in the paths configuration table, enter "Z:\" in first col and "/Users/yourname/sharedDir" in second col. This let the bridge map Win and local paths.

FlashDevelop plugin 'BridgeSettings':
- enable it and check the 'Shared Drive's value ("Z:\") corresponds to your mapped drive.
- if you don't have Flash installed on the host system, set "Target Remote IDE" to false.

Now restart FD and if you open a project in a subfolder under Z:\ you should see traces in Output panel about connection and you should see a threads/watchers indicator in the Bridge status bar.

PS: yes you can have both FD3 and FD4 installed.


Yes I build the bridge on Linux (Lubuntu (Ubuntu + LXDE) 10.10), and no I don't use Wine whatsoever, I don't even install Wine :P, and I don't use Adobe Flash CS on Linux, I just use the Flex SDK

Ah so thats how it works :D, okay then I'll test again in couple of days, on my work laptop now, swamped with work >.<.

NB: I'll share my build in a couple of days, but if somebody want to build it, it's pretty easy, just install qt-sdk from the repository or just download it from Qt website and open the ".pro" file using Qt Creator, set release build and press build ;). Be warned though the sdk install is pretty big, like hundreds of MB big :D


-------------------------------------------------------------------------------------------------------------------------------------------


EDIT: So I have tested the latest build, and the Bridge seems to be working, the thread status is displayed and the watcher is working (I add and remove directory, which instantly reflected on FD). What didn't work though, is explore and execute from right click inside Project pane, this should execute and explore using the host apps am I correct ? It might work on stock Ubuntu though, I haven't tested it, since my Ubuntu is using LXDE and not GNOME.

BTW, here is my bridge release build, from r1653 (IIRC) : http://www.mediafire.com/?5x43sow25tnw5fs


Sun Dec 26, 2010 12:16 am
Profile
Member

Joined: Wed May 16, 2007 9:28 am
Posts: 20
i understand the bridge is functionnal..
could i test it ?
are there some exe + dmg available ?

thx


Thu Jan 06, 2011 3:01 pm
Profile
Admin

Joined: Wed Aug 31, 2005 7:27 am
Posts: 11661
Location: Paris, France
bigop wrote:
i understand the bridge is functionnal..
could i test it ?
are there some exe + dmg available ?

thx

We're readying a dev build & dmg - it's coming soon.


Thu Jan 06, 2011 3:13 pm
Profile WWW
Admin

Joined: Wed Aug 31, 2005 7:27 am
Posts: 11661
Location: Paris, France
aaulia wrote:
So I have tested the latest build, and the Bridge seems to be working, the thread status is displayed and the watcher is working (I add and remove directory, which instantly reflected on FD). What didn't work though, is explore and execute from right click inside Project pane, this should execute and explore using the host apps am I correct ? It might work on stock Ubuntu though, I haven't tested it, since my Ubuntu is using LXDE and not GNOME.

For Explore or Execute, Bridge is calling:
Code:
open "/path/to/document_or_folder"

Maybe this doesn't work on Linux.


Thu Jan 06, 2011 3:20 pm
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 100 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.