Joined: Apr 11, 2012
Post Count: 4
Status:
Offline
Happy to join the Sweet Home 3D Group
Hello, I'm a computer science postgraduate student in Australia and just start to learn free open source project. Because I was working on Java Swing and OpenGL projects in the past years, what I really want to find is a graphical project which is active and well organised, and certainly is written in Java. Fortunately Sweet Home 3D is a perfect project for me to begin the study of open source project.
Before going too deep into the development, I have some general questions: -- After reviewing questions and problems launched in the forums, I got that the project manager is the only Java developer working on the code. But according to the member list I found from sourceforge.com, there is one or two people who takes the design work. Do they have the right to finalise the code or still only the project manager takes this job? How is it organised?
-- I found there is a CVS statistics on sourceforge.com, I also found there is a tracking system which collects plug-ins contributions and bug reports. In my past projects, the develop team only used one of the file management systems. So how do the two file management system work in the Sweet Home 3D project?
-- It is said the Sweet Home 3D project matches a case study in a French book written by the project manager. I haven't read that book, but I guess there might be some other projects described in that book. Does this project interact with any other projects?
And here are some technical questions: -- When I run the program, I found it was pretty fast to generate 3D models. Much faster than my thought compared to the experience gained from previous graphical project. So what kind of 3D techniques were used in this project?
-- When I tried to create a plug-in jar file, I didn't find the export destination directory ".eteks/sweethome3d/plugins" in the browser. I was working on Linux and I tried Ctrl+H as well as creating the directory by myself, it didn't work. However, I exported the jar file to other existing directory, and copy it to ".eteks/sweethome3d/plugins", it worked. So why I cannot see the directory in the browser?
-- And I have downloaded some plug-ins, all of these plug-ins files' names were ended with ".sh3p". I don't know how to generate this type of files. If I create a plug-in jar file and want to share with the user community in the future, is it necessary to generate the .sh3p files in advance?
Finally, I really like this program and would like to make some contributions. But as a beginner, I don't know how to do it. Maybe some translation work first? Because I come from China and I saw some of the web pages have Chinese version but most don't, especially the documents. And in the future days, after I get understanding of the code and structure, I will dedicate myself to create new plug-ins. How is it?
But according to the member list I found from sourceforge.com, there is one or two people who takes the design work. Do they have the right to finalise the code or still only the project manager takes this job? How is it organised?
artist373 and geantick, the two members you speak about, are some contributors to the 3D models. They don't design the application but designed some models to improve the small default furniture library. I'm the only committer at this time. I wouldn't mind to give the right to commit to translators so they can update directly the properties files of their language, but I don't believe they would love to do that themselves, because they are translators and not CVS experts. And that would require from me to filter CVS rights according to the language a committer is managing, a not a very exciting and time demanding task.
So how do the two file management system work in the Sweet Home 3D project?
What do yo mean by "file management system"?
It is said the Sweet Home 3D project matches a case study in a French book written by the project manager. I haven't read that book, but I guess there might be some other projects described in that book.
No, the 500 pages of the book are actually about Sweet Home 3D. Very few little examples are not relative to the project.
what kind of 3D techniques were used in this project?
The "live" 3D view is based on Java 3D library (and indirectly on OpenGL).
When I tried to create a plug-in jar file, I didn't find the export destination directory ".eteks/sweethome3d/plugins" in the browser. I was working on Linux and I tried Ctrl+H as well as creating the directory by myself, it didn't work. However, I exported the jar file to other existing directory, and copy it to ".eteks/sweethome3d/plugins", it worked. So why I cannot see the directory in the browser?
The "~/.eteks/sweethome3d/" directory and its subdirectories are created on demand when a .sh3p file or other files are imported. A .sh3p file can be imported by a simple double click but miserably file associations doesn't work that well under Linux. Maybe I should add an Import plug-in menu item somewhere in Sweet Home 3D, but would prefer to add a brand new panel in preferences dialog box able to manage all imported files in Sweet Home 3D. Meanwhile, maybe I should create all the subdirectories of ~/.eteks/sweethome3d/ that could be useful, as soon as ~/.eteks/sweethome3d/ is created (i.e. when preferences are changed or a file is saved).
And I have downloaded some plug-ins, all of these plug-ins files' names were ended with ".sh3p". I don't know how to generate this type of files. If I create a plug-in jar file and want to share with the user community in the future, is it necessary to generate the .sh3p files in advance?
As explained in the plug-in developer's guide, a .sh3p file is just a .zip file containing a ApplicationPlugin.properties file, .class files and other resource files. The main advantage of using a different extension is that you can associate in the system the .sh3p extension with Sweet Home 3D.
Finally, I really like this program and would like to make some contributions. But as a beginner, I don't know how to do it. Maybe some translation work first? Because I come from China and I saw some of the web pages have Chinese version but most don't, especially the documents. And in the future days, after I get understanding of the code and structure, I will dedicate myself to create new plug-ins. How is it?
That sounds great. What kind of Chinese can you write? Traditional or Simplified? I know that 赵斯聪, the Simplified Chinese translator is more and more busy, and he would probably welcome a rescue contributor. Starting by the translation of the user's guide would be very useful for Chinese readers, and a good way for you to learn more about Sweet Home 3D. You can also start by a more simple page like the Features page, but people don't view it as much as the user's guide. Meanwhile, explore wishlist forum and/or open features request to find some ideas for your first plug-in.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer
Joined: Apr 11, 2012
Post Count: 4
Status:
Offline
Re: Happy to join the Sweet Home 3D Group
Thanks for kind and quick answers!
Welcome to Sweet Home 3D. Your tastes in programming seem to match Sweet Home 3D requirements!
Aha, graphical program always fascinated me since I became a Java programmer. I learned painting in my childhood and was crazy on graphical design. And in the later days, I realised program can do this work much better. And now, most of my projects are relevant to graphical design.
Yes, and I forgot to mention that my real name is Zeheng Fang, a postgraduate student in The Australian National University.
I'm the only committer at this time.
Ok, I got it. So you are the only person who manage the source code.
What do yo mean by "file management system"?
Sorry, I didn't explain clearly. You use CVS as the version control system. According to the last question, only you can access CVS in this project, am I right? However, on download page, I can only see current version releases. How about past releases? Is there any file management system to control those different releases? And there is a bug tracking system on SourceForge, is it the only way of this project to track bugs?
The "live" 3D view is based on Java 3D library (and indirectly on OpenGL).
I also use Java 3D library and OpenGL stuffs in my projects, but the performance was not as good as expected. So I guess there must be some good algorithms used in this project. I'll read source code first and try to find what happened.
The "~/.eteks/sweethome3d/" directory and its subdirectories are created on demand when a .sh3p file or other files are imported. A .sh3p file can be imported by a simple double click but miserably file associations doesn't work that well under Linux.
Yes, double click didn't work on my Linux system. It was strange that I tried to create the directory, but seems the browser couldn't display hidden folders. Then I created a hidden folder with an arbitrary name by pressing the "create folder" button on the export dialogue, I saw it in the browser! There is no problem now.
Meanwhile, maybe I should create all the subdirectories of ~/.eteks/sweethome3d/ that could be useful, as soon as ~/.eteks/sweethome3d/ is created (i.e. when preferences are changed or a file is saved).
Yes, that's a good idea. I think most people will like this setting.
What kind of Chinese can you write? Traditional or Simplified?
Well, I can write both, but generally I use simplified Chinese.
I know that 赵斯聪, the Simplified Chinese translator is more and more busy, and he would probably welcome a rescue contributor. Starting by the translation of the user's guide would be very useful for Chinese readers, and a good way for you to learn more about Sweet Home 3D.
I'm pleasure to do this work. However, the translation guide only talks about texts in menus and dialogs, what should I do if I want to translate the user guide page?
France
Joined: Nov 7, 2005
Post Count: 9381
Status:
Offline
Re: Happy to join the Sweet Home 3D Group
You use CVS as the version control system. According to the last question, only you can access CVS in this project, am I right? However, on download page, I can only see current version releases. How about past releases? Is there any file management system to control those different releases?
Past releases are available from here or from CVS where each version has a tag.
And there is a bug tracking system on SourceForge, is it the only way of this project to track bugs?
Bug tracker is here, but it doesn't contain every bug I fixed, because some people reported also some bugs in this forum or by email, and when I find a bug myself, I fix it directly without reporting in the bug tracker. The most important fixed bugs are always listed in the history page.
I guess there must be some good algorithms used in this project. I'll read source code first and try to find what happened.
I'll be pleased to read your advice on this, even I'm convinced I didn't program an miracle thing (and there must be some place for optimization). Nevertheless, I regularly profile the program with jvisualvm (included in the JDK) to check if modifications didn't decrease performances too much.
Meanwhile, maybe I should create all the subdirectories of ~/.eteks/sweethome3d/ that could be useful, as soon as ~/.eteks/sweethome3d/ is created (i.e. when preferences are changed or a file is saved).
Yes, that's a good idea. I think most people will like this setting.
However, the translation guide only talks about texts in menus and dialogs, what should I do if I want to translate the user guide page?
You should simply translate the HTML page of the user's guide. I'll send it to you directly.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer
Joined: Apr 11, 2012
Post Count: 4
Status:
Offline
Re: Happy to join the Sweet Home 3D Group
Past releases are available from here or from CVS where each version has a tag.
Thanks, I found those releases now, quite many. As I know, many open source project adopt a voting system for election of project roles or information required to make something release ready. Are those past releases all stable releases? If so, how were these stable releases done in the past? Any voting system involved or any decision strategy used?
Nevertheless, I regularly profile the program with jvisualvm (included in the JDK) to check if modifications didn't decrease performances too much.
It sounds good. I rarely use jvisualvm before since my previous projects were not quite big and not for commercial purpose. Most of them did not really request high performance. Now I know it is quite useful especially in open source project.
You should simply translate the HTML page of the user's guide. I'll send it to you directly.
Well, I use Evrsoft First Page 2006 as the HTML editor. Is it fine? But I have to change "<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 ">" to "<meta http-equiv="Content-Type" content="text/html; charset=gb2312 ">", otherwise the web page will display garbled. But this might result in some clash issues with the content stored in database if "UTF-8" is used in the database. Should I do it in this way? Besides, are there any requests for the document format when I send back the HTML page? or perhaps a description? And could you tell me how to deliver the modified file once I'm done, by email?
France
Joined: Nov 7, 2005
Post Count: 9381
Status:
Offline
Re: Happy to join the Sweet Home 3D Group
Are those past releases all stable releases?
Yes, even if source releases with a version <= 0.10 exist because of the book about Swing (each version 0.1, 0.2 match an Agile scenario explained in the book). As stable, I mean it's not buggy (or contains bugs I wasn't aware of).
If so, how were these stable releases done in the past?
I just tagged Sweet Home 3D CVS repository with a tag matching the version.
Any voting system involved or any decision strategy used?
No vote is required since I'm the only developer and committer until now. SourceForge.net suggests to follow the maxim "release early, release often", but this is quite vague even if a recent article gave more information about this strategy. My current strategy would be to release a new versions 3 or 4 times a year, and trying to group changes in the user interface as much as possible in fewer sub versions, because each time I add a new word in the user interface, I have to send 14 emails (and sometimes wait for some answers during weeks) to update the 16 languages included in Sweet Home 3D. I also don't want to release too often because creating, checking, rechecking, uploading released files, updating history, publishing a new blog article is a tedious task that takes often more than 4 hours; and once you released a new version, other web sites (like app stores containing links pointing to released files) report the new version. I'm not sure these web sites as well as Sweet Home 3D users would appreciate a new version every day.
Well, I use Evrsoft First Page 2006 as the HTML editor. Is it fine?
Any editor will be ok, as long as you don't break the current presentation. You should be able to use utf-8 for Chinese too, but don't worry about this and choose the encoding you want. I'll transcode the text to utf-8 once done, whatever the encoding you used. After managing all Sweet Home 3D translations, I got used to encodings pretty well. I you wonder why utf-8, it's because it's simpler to have only one encoding for the whole web site, and only utf-8 contains the characters of the tooltip of each country associated to the flags displayed on the web site.
Could you tell me how to deliver the modified file once I'm done, by email?
Send me by email the translated HTML file once done. It will be perfect. sweethome3d.com web site pages aren't in CVS yet, but I made some small changes recently to clean the code and will publish it sooner or later.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer
Joined: Apr 11, 2012
Post Count: 4
Status:
Offline
Re: Happy to join the Sweet Home 3D Group
No vote is required since I'm the only developer and committer until now.
Yes, I get it. But how did you know a new feature was wanted if it hadn't been requested in the forum? And if user's idea differed from yours on some features, how did you handle it?
France
Joined: Nov 7, 2005
Post Count: 9381
Status:
Offline
Re: Happy to join the Sweet Home 3D Group
How did you know a new feature was wanted if it hadn't been requested in the forum?
You have to trust your intuition. Anyway in recent versions, most of the new features come from user requests posted in the forum or in SourceForge tracker.
Were these emails sent to relevant translators?
Yes, to the contributors who proposed their help to translate in their language, and to the other ones who gently answered to help wanted posts when a contributor couldn't help anymore.
I'm working on it now but might take some time since I need to attend several classes.
Take your time, nothing hurries.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer