Is there a platform porting guide for Chilli Source? [closed] - open-source

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I have been planning to start porting Chilli Source to Linux but haven't found clear info on what needs to be done to port Chilli Source to a new platform.
Is there a guide for it explaining how to do it or where to look?
-Where the platform specific implementations get "selected" in the code?
-What are the bare minimum systems that a platform needs to implement and the interface they must implement?
-How to add an extra target to the project generator?
-What needs to be pre-compiled as a library and where to place them?
Basically a guide possibly with one of the existing platforms as an example would be fantastic. If not just some highlights as to where in the git repo to look for answers would be welcomed.
Thank you!

A full tutorial describing how to port the engine to other platforms is a bit beyond the scope of what can be provided here, however I can give a quick overview.
A platform backend essentially consists of:
The entry point to the application
Window creation
OpenGL context creation
An implementation of each platform specific system.
The Windows backend is a pretty good example of this: you can see the entry point to the engine in Main.cpp and the window/context creation (using SFML) in SFMLWindow.cpp.
Platform specific systems are declared abstract, requiring each platform backend to implement their own version of it. All systems are created via the Create() factory method, using the creation of the platform specific concrete system is hidden from the user. A nice clean example of this is the DialogueBoxSystem.
Only default systems require implementation on every platform - those that are created in Application::CreateDefaultSystems(). Current, this would require implementation of:
PlatformSystem
Device
Screen
FileSystem
DialogueBoxSystem
Keyboard (Only required on systems which have hardware keyboards)
PointerSystem
DeviceButtonSystem
TextEntry
The Create() factory method should return nullptr on any platform which doesn't implement the system.
Finally, you'll need to build the CSBase library for the new platform - this provides all of the third party code used by the engine: libPng, rapidxml, etc.
Hopefully that should be enough to point you in the right direction. It's also worth checking out Fzort's fork of CS which he has had running on linux: https://github.com/fzort/ChilliSource

Related

Comprehensive List of Essential Software for General Developers on Mac and PC [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
This may seem like an odd request, but as a computer science student, I'm always running into apps that make doing a development task easier than the way I was doing it before. Unfortunately, I tend to discover these apps long after doing things the hard way for far too long. I'm only on mac, but I figured I'd include both Mac and PC for future reference (if I ever have both systems).
For me, a student of C++ programming, I'm currently religiously using just a few pieces of software on Mac:
XCODE - IDE
Atom - Text Editing, HTML, and a few other things
Cyberduck - SFTP into my school's Linux system.
Terminal - (Haven't tried iTerm2 yet or any other Terminal
alternative)
Go2Shell - quick folder navigation for Terminal
What other utilitarian apps do you guys find particularly helpful for you as developers? Feel free to mention any software you may use to help your workflow.
I hope this question isn't too broad of a topic for S.O. If so, please feel free to remove it.
Also I didn't know what tag to use for this topic, so if the mods need to move this thread to a more appropriate area, that would be great.
Well, your list does not look bad at all ;)
Most developers will have a basic set of tools such as:
An IDE (Integrated development environment,e.g. phpStorm, Aptana,etc..) - where you write your code.
Various Compilers (e.g. C\CPP compiler for a C\CPP developer, or a LESS compiler for a web developer, whatever you use in your daily work) - to compile your raw code\markup into an executable\usable format.
A Debugger - to debug your code.
A Local development stack (e.g. LAMP, used mainly by web developers) - to execute your code and see how it works, debug, etc..
A Dependency management tool - optional: if you have a big project with many dependencies.
A Version control system (such as Git, SVN, etc..) - to maintain your project as a proper code repository.
An FTP client (if you upload files to a server)
That is generally what you need to write software\applications, anything in addition to that is considered helpful but you don't really need it.
There are some fancy tools for lazy people, those tools can save you some time but the huge disadvantage is when you start to rely on those tools and then you stop understanding how things actually are constructed and work - which will make the maintaining of your software a nightmare.
The best thing is to know when to use "helper" tools, but not many of them, use them only if you have to, and do not get to the situation where you rely on them - because then if they have a bug or a mysterious flaw, you will be dead in the water until the next hotfix or patch comes out.
Good luck !

Open source platform/software to develop app backend [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
We are going to develop some mobile app for one of our clients, and we are defining the technical solution for the backend server.
Basically, we need to implement a backend providing REST apis for the apps. The apps will need features such as user authentication, handling of user profiles and user contents. The backend should also expose a web administration interface and allow to manipulate some of the app contents in a CMS-like way.
My client specifically wants to avoid baas solution (like Parse), and I am trying to find some open source software able to provide some of the features out of the box, to avoid writing everything from scratch, and develop the other parts. We can use cloud services such as AWS for hosting the backend.
What existing platform/software would you advise?
Here a a few options to look into:
DreamFactory: http://www.dreamfactory.com/
Loopback: http://loopback.io/
Apache Usergrid: http://usergrid.incubator.apache.org/
BaasBox: http://www.baasbox.com/
Not sure if this answer your question. Did you come across other options?
I am currently using apache usergrid for one of my projects and consider it powerful on following areas;
Authentication & Authorization (also social login)
Activity creation and activity feeds
Asset storage (local or aws s3)
Dynamic collection creation
Search on collections and support custom query language (via elastic search)
But it doesn't support push notifications. If you need that out of the box, you may have a look at BaasBox. It seems a good alternative to usergrid.
I didn't find documentation adequate for usergrid (i mean for internals not api usage), so you have to dig source code to find out answers.
If you are developing social application (user activities, feeds, comments, likes) it is hard to update counters in a document (e.g. updating comments and likes count). It is not natively supported. You may sync increments on the same document using a queue like kafka.

Can EPL (Eclipse Public Licence) be used in commercial context? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I'm developing an application which requires a third party framework which is under an Eclipse Public Licence (EPL). The application is a server-side commercial application which will be running on my servers. The EPL software is distributed as binaries (jar files). I'm only using the packages and am not making any contribution, i.e. not making any changes to the source.
Under EPL I believe I'm not a "Contributor" nor am I making a "Contribution". But if I want to make my software available to be installed at some offsite server I'm having trouble with REQUIREMENTS of EPL:
b.iv - "states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange".
Does this mean that if I where to modify the source code of the 3rd party framework for my own purposes I would need to distribute all of my source code?
EPL is supposed to be commercially friendly but it doesn't seem that way to me.
The way that I understand your question is "If I change part of the framework, do I need to redistribute all of the source code of my application, even the parts that aren't part of the framework?". If that is the proper interpretation of your question, then no, you do not need to distribute all the code of your application.
EPL is a weak copyleft license, however it is a non-viral copyleft so it only applies to the source of what was EPL'ed, not to what you build on top of the EPL project. Thus, it does not require that you distribute the source to your application, only the changes made to the framework itself. The terms of the EPL only apply to the source of the library, not the source of your application. Your application's code will governed by its own license (as you are not redistributing it, ostensibly a simple "I own all the rights to this code" license).
Basically, as long as you are not using a library governed by a fully copyleft license, then you should be fine.
Disclaimer: I am not a lawyer. Do not take this as real legal advice.

Open source web development framework [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am a C++ developer. I want to develop a website in which I plan to put
User accounts
User groups
Alerts based on user preferences
Can anybody suggest the best open source framework that I can use to create this website. I hope that the framework would provide basic underlying infrastructer like session management etc. In short what would you suggest to create such a website?
Thanks in advance.
I'm a mainly a PHP web developper, so I will talk about php framework.
I like expressionengine as it provide a fully functional backend with user/group management and is easily extendable (a lot of plugins exists). With it you juste have to program the public interface and you can use the backend to manage stuff.
If you want to do it your own way, you can try Symfony, code igniter (expression engine is build using code igniter) or Zend Framework. Both provide similar tools (MVC, DB Abstraction, etc.)
i'm mainly a java developer, so i'll recommend you a .. Python framework ;)
for your use case, i can highly recommend Django
it has a built-in auth system which consists of:
Users
Permissions
Groups
also important for your use case: you can easily extend the built-in User model to also include the user's preferences.
it's also very easy to get started.
some other nice features:
dynamic admin interface (~ scaffolding)
flexible templating system
rapid development
it comes with an object-relational mapper in which you describe your database layout in Python code (no need to write SQL yourself)
MVC-like
open source of course
I'm fond of Catalyst, it has an excellent plugin system which includes things like Catalyst::ActionRole::ACL (which should cover your user groups requirement)
Though the framework is not actually open source, I would suggest working with the .Net framework. You don't have to shell out for Microsoft's IDE - check out Sharp Develop for instance...

Is there a tool for software engineers to track their Requirements -> Design Docs -> Source? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
So I recently finish my 3rd year software engineering project. The project was a game.
It was not easy in the least.
The most challenging project I have done.
After some reflection I noticed that the major problem our group had was:
Our SRS rarely matched our Design Diagrams
Our architecture was not well defined
And Lastly our code was in no way related to our design
In this project we were forced to use the Waterfall Process for our
RADIT( reqs, anal, design, implementation, and testing). I hated this method and want to do TDD with Agile for my 4th year project. But I am afraid that I will not be able to keep track of reqs -> design -> architecture -> test -> source. Hence I am thinking of making a tool that does this on top of git. But It would be good if there is already one for this purpose.
You could try mingle. It was built for managing agile project teams. The requirements are tracked as stories on a virtual card wall. It has SVN integration out of the box, but I think there is also a community plugin for git. There is a wiki built into it, so you can easily track requirements and the resulting architecture as you just link from your requirements into design wiki pages.
Also, academic users qualify for a free license if you plan to use Mingle for academic purposes, meaning in the classroom/lab or as part of a curriculum.
I've been working in tool support for traceability in software engineering on and off for the last fifteen years, and the best that's widely available is DOORS+SysML. They all require manual connection to be made (though you can add IDs to your code and unit tests, and get some coverage metrics back).
It's quite easy to make a simple tool which associates a specific test with a requirement ID, and then reports that requirement as tested. Similarly you can add markers to say what parts of your code map to your design elements (though that has mostly been automated by reverse engineering tools). Then you can tell whether you have markers for all your requirements and all your design elements. These are extensions to COTS UML tools, so probably not designed in quite the same spirit as git.
What no tool I'm aware of currently gives you is any means to actually determining whether the tests exercise the parts of the design which are supposed to implement the hyperlinked requirement (which is practicable, as you can log the coverage in the code which is linked to the design elements when the test is run).
There are other tools, such as CaDiZ and Cog which are theorem proving tools which can take a formal description of your requirements and annotated model of your code and verify that the model matches the specification. This works for sufficiently simple code, but is fairly time consuming (of the order of weeks for a few dozen lines of code) for post-doc level computer scientists.
None of the tools I know of integrate with git.
I remember reviewing Rational RequisitePro many moons ago, though we didn't wind up using it. IIRC, it had integration with Rational's Clear Case source control system that we were using at the time. It was kind of nifty, but way overkill for our needs.