Suggestions for porting linux application to windows [closed] - windows

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I'd like to port an application written under linux to windows. Currently I'm using Cygwin but I'm curious if there are any other options that don't force me to release my source since I'm not in the position to do so right now. Are there any other options short of having to completely re-write it or buying a license?

MinGW doesn't have as many licensing restrictions as Cygwin, but it might require more effort to get your code to run under it.

Please give us more information about your application. Simple commandline utility? Uses KDE libraries? Uses linux kernel extensions? etc etc. For internal use only? For use on corporate desktops? For use by end-users? These all will change our suggestions.
I'll also suggest using MinGW.
The basic process of porting:
Install MinGW and MSYS
Run your Makefile.
Likely you'll get an error, fix it (either by changing code or by commenting it out)
Recompile via Makefile.
Repeat 2-4 until you compile with no errors.
Then test your application, and track down any bugs you might have introduced.

I am by no means an expert. Saying that, if you're not going to release your application, I believe you can use it with GPL'd stuff internally. It is only when you started distributing your binaries that you are bound by the GPL to release your source along with the binary, or by user request. E.g. a company could modify some GPL'd source code, and use it internally so long as they don't distribute the code or application outside of the company.
So it depends on what you plan to do with your app.
You might be able to use cygwin for now just to get it to a working point, and then gradually replace pieces of the app with native windows code until you've completely de-cygwin'd it.
I know that's probably not what you're looking form, but I thought I'd throw that out there. They should have a couple law/licensing classes shoved into CS degrees these days.

There is also a commercial license for Cygwin.
http://www.redhat.com/services/custom/cygwin/

Related

How to begin with creating a fork of a software? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I need to start work on creating a fork of the open-source web browser Mozilla Firefox, but I have no idea where to start. I'd be glad if someone could point me out in the right direction. I'd really, really appreciate the help.
Also, if my question does not belong here, please point out and suggest where I should post such questions. I was browsing through the StackExchange websites, and couldn't find a viable site. I could have overlooked/been careless, so if that's the case, please point me out in the right direction.
Firstly, you should ask yourself very hard whether a fork is the best solution because it will pose many kinds of issues. Ask yourself at least the following:
Can your project be completed as an extension of the original software?
Can your project be contributed to the upstream project instead of creating a new software?
¿Does the upstream project license allows the type of fork intended? Not all types of forks are allowed depending on the license.
If after a good while you decide that a fork is the only solution, the general approach:
Find where the source code of the project lives and which version control system it uses.
Clone the repository to a local copy on your machine.
Follow the instructions (if any) to rebuild the software.
Make sure at this point that you can tweak the software and run your modified version.
Ask yourself again if you really want to do a full fork.
Review the instructions (if any) on how to package the software.
Find a place to host your modified version of the source code.
Find a way to synchronize your version with the modifications done by the upstream project. This is especially important to keep compatibility and merging bug fixes.
Firefox is a huge codebase. I don't want to discourage you but if you are not already experienced you should probably not start your own Firefox fork. My advice would be to at least create an extension first, to become more familiar with Firefox programming model on a smaller scale. Extensions can be very powerful and do a lot of things.
For the first point, the instructions on how to get the source code of Firefox can be found here: Getting Mozilla Source Code Using Mercurial.

Best practices for collaborative web development in Mac environment? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
At my current job I've been the only web developer for almost 3 years. So for that whole time I just used MAMP on my own local machine. We have a 2nd developer that will be starting pretty soon and I need to figure out the best way to set everything up so we can both work on the same project.
All of the machines at our office are connected to a Mac OS X server. Is it possible to host our web projects on the server and have them be accessible via a short url such as exampleproject.dev?
The reason I want to have our web projects reside on our server is because it is always on. So if I'm not in the office I want our other developer to be able to access our web projects.
Also, I'd like to get some kind of version control software set up. Any recommendations? Thanks!!
This is a hazard I've seen two companies fall into, and then emerge out of. Your other developer should also work locally (optionally against a common dev database though).
I would recommend putting Subversion or Git on the server. Just from personal preference and both of which work well with local environment setups, you have to push your changes into the repository before others will see them.
You can then set up an automated build system that pushes your code from your source control to the server for common viewing (if necessary).
From personal experience I would not recommend everyone developing against the same code on the same machine. People will break things and temporarily halt development for others as well as accidental code overwrites. It can't help but get ugly occasionally.
Definitely an advocate of: Work locally, commit often, but only once you're sure it's not going to blatantly break the site.
But — If you feel you still want to do the 1 dev environment at least make sure everyone is using an editor that prompts you (or updates) when someone changes the same file. As an example I use Sublime.
oh there are many ways. You could check out the thoughtbot dotfiles on github (https://github.com/thoughtbot/dotfiles) which are meant for just that or you could investigate into different setups for tmux and session sharing. I'd recommend you get yourself used to git and homebrew because that's at the base of every common shared environment on the mac.

Free SCM for Matlab 64 bit version on Windows [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
When Matlab is installed in its 64 bit version, it can use only 64 bit source control systems. Is there a source control system that's free, works with 64 bit Matlab and runs on Windows?
It can be a system that supports only one developer. It can be 32 bit itself, if it'll work. It will be installed on the same machine as the Matlab in use, which is a Win7 Ultimate x64 machine.
I'd recommend mercurial using the TortoiseHg interface. There is a 64bit windows version available for download. It includes a set of windows shell extentions so it works nicely from the explorer window.
It's easy to set up and use and it's saved me on numerous occasions. Mercurial works well with binary files so MATLAB mat files and fig files can all be placed in version control. I'd say it's essential i you're using guide. In developing GUI's with guide there have been occasions where guide has crashed and was unable to reopen the fig file again. Fortunately a quick roll back in Mercurial to the last previous working version and I was back working again.
To be honest I've never really been that impressed with MATLAB's integration with SCM, it just seems to be a tacked on option rather than integrated. Something like NetBeans shows how you can integrate SCM in the development environment. So I wouldn't try to get MATLAB "to use" SCM rather just use Mercurial (or whatever you choose) alongside MATLAB.
Oh and it's free as well.
I've been using git to track my matlab code and it's been very useful. If you do go this route, make a .gitignore file and put the following in it
*.asv
*.fig
*.mat
The reason for the first one is that you don't want to archive your autogenerated backups. Since .mat and .fig files can be large and are generally generated by your code, I don't archive them either. One exception is gui figs; I create a gui directory and put a new .gitignore file in it with
!*.fig
which tells git not to ignore .fig files in that directory
For SVN, I have written a Matlab-GUI for committing (and checking differences in) code for when I'm too lazy to launch another application to commit my changes (or for when there is no nice, free client, like on OS X).
You could do something similar for any other version control system, and then you don't need to worry about whether Matlab supports it.
You might be interested in using Subversion or Git, which are tried-and-true, general-purpose SCMs.

Do you believe the Firefox project should be forked into a developer targeted version? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I've just got this idea that there is a need for a forked version of Firefox that would provide right out of the box tools for web development. Like FireBug, YSlow, FireCookie, LiveHTTPHeaders, etc.
Maybe the fork should only include those extensions or take a further step and implement them in existing chrome.
The reason I'm thinking about this is that right now I have two Firefox profiles. A "browsing" one which has only one extension and a "development" one which has lots and lots of extensions. The advantage is obviously that the former is faster than the latter. Maybe if aimed from the beginning at developers, a forked version would bring some speed improvements and other niceties.
What do you think? Any volunteers?
Adding functionality to FireFox via extensions is IMO the reason why it is such a popular browser. If you take that freedom 'away' from people by providing them 'pre-baked' solutions, that will not be for the best.
What advantage would that give over extensions? You don't actually believe, that someone will port code to C?
I fear that pulling mentioned extensions into an official, maybe even Mozilla-branded, distribution would cause a slowdown in the development of those extensions because their authors would have to worry about coordinating their development with the provider of the browser distribution.
You can always prepare your own Firefox installator...
I think it is unnecessary to fork for that, because you can both things already - that is, have multiple profiles, and have all the developer tools as extensions.
You could even install two different profiles and run them from two different executables (portable Firefox makes this easy) allowing you to have a completely different plugin set as well as extension set for both.
Thinking about this more, I can't see how it would help.
Say you fork Firefox into a dev version, that is then used by extension developers.
But what is the target platform? The dev-platform (okay, then) or the "standard" platform -- if the latter, they aren't using it, and so dev and testing be be doubled or worse. Just imaging targetting Gnu Emacs but doing the dev in XEmacs.
Develop and test on your target platform, or face unpleasant surprises....

How would you programmatically test a file for viruses? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I want to programmatically test a file for viruses.
I'm aware of this thread, which didn't get a satisfactory answer in my opinion, but I'm not looking for an API here. Any kind of workaround to make it possible to test a file would be fine.
Of course, an API would probably be the best solution (I'm using .net on a Windows platform), but maybe it's possible to drop the file in the folder, and to then check whether I can still open it or if it's been quarantined by the antivirus software.
Has someone run into the same sort of situation?
Assuming you wish to integrate with whatever antivirus is already present on the system rather than bundling your own, you should check out the way Firefox 3 does this.
Bugs 103487
and 408153
- Inform anti-virus software when Firefox downloads an executable (using
the Windows "IOfficeAntiVirus" and
"IAttachmentExecute" APIs).
(of course if you wish to bundle your own, check out ClamAV/ClamWin, but then you must deal with updates, etc, and you should probably first check there is not a fully updated solution on the target system for politeness)
Windows? No problem. Check out ClamWin. It is based on ClamAV.
Platform?
Most Windows anti-virus provide shell integration (right click on a file in explorer to scan that file), which will either mean running an executable, DDE or COM. All of which provide an entry point to another program to call the same mechanism.
Check out ClamAV.
Clam AntiVirus is an open source (GPL) anti-virus toolkit for UNIX, designed especially for e-mail scanning on mail gateways.
Maybe you could use this web service, assuming the file is less than 1MB:
http://www.kaspersky.com/scanforvirus
If you discover a suspicious file on
your machine, or suspect that a
program you downloaded from the
Internet might be malicious, you can
check the files here.
Indicate the file to be checked; it
will automatically be uploaded from
your computer to a dedicated server,
where it will be scanned using
Kaspersky Anti-Virus. Multiple
independent tests and publications
acknowledge the solution to have
exceptional detection rates. Updates
every three hours ensure that even the
very newest viruses can be detected.
Only one file of up to 1 MB can be
checked at any one time. If the file
is too large, a window with an error
message will be displayed. Type the
name of the file in the window at the
top of this page, or find the file
using 'Browse'. Then click on
'Submit'.
You can use a Debugger or a Disassembler
It really depends on which AV program you're going to use. Read the documentation for whatever solution you choose and you'll probably find a command-line interface or some other API you can call. There's no "generic" way of doing this (across AVs).

Resources