How easy (or difficult) is it to migrate to a development environment on Mac from Ubuntu - django

I am used to Ubuntu, I like it, I know my way around it.
I am looking forward to upgrade my work laptop.
I find the awesome hardware that a Macbook Pro is made of, a turn-on.
Now, having never used a mac before, I'd like to know how easy it is to move my development environment to a mac from being on Ubuntu.
My work is primarily web application development using the django framework.
I love the apt-get install and the package managers and such stuff that Ubuntu provides. Are there equivalents on a mac?
What are the other things I need to know to move my development environment to a Mac?

I moved from ubuntu to Mac 6 months back, the tools that you get in Mac are awesome(like iweb) and most of the application work out of the box without compilation. There are alternative for apt-get in Mac, I use port, fink which works pretty much like apt-get. I would say list down all your favorites tools in ubuntu mostly you will find the same in Mac or its equivalent.

Should be pretty easy. MacPorts is like a package manager for installing open source software and libraries.
I do some django work and moved from Windows to Mac recently. I found it very easy since django is Python which is pre-installed in Mac OS X, but can be upgraded if necessary. I also use Eclipse with the PyDev plugin which all runs on Java.

Related

Development an application with dependencies in macOS without Xcode

I have a project written in c++ using codelite IDE.
I compiled it windows, Ubuntu and Fedora successfully an I created installers for all of them (for Ubuntu a .deb package and for Fedora a .rpm package).
Recently, I could compile it in my macOS (10.14) an it works perfectly, and want to create a package in macOS (.app or .pkg).
It should be noted that my software has a lot of dependencies such as OpenGL frameworks and wxWidgets libraries and many libraries which I installed through brew and Xcode.
As mentioned my project is in codelite which does not generate a framework or .app package.
What should I do in this step?
Creating a .app bundle on the Mac is a relatively complex process - amongst other things, it has to be signed and notarised, and to do that you need to enroll in Apple's developer program ($99 per year).
So, because of that, I'd recommend creating an Xcode project to to the job. Once you have that, all the steps are automated. You will also be in a position to submit your app to the App Store, should you wish to.
A good way to build installer packages is to use Stephan Sudré's Packages application, which you can get here:
http://s.sudre.free.fr/Software/Packages/about.html
Don't worry that it isn't signed - it's perfectly safe.

How to install OpenCV for C++ on Mac and configure with Netbeans

I am having trouble trying to install OpenCV correctly and configure it with Netbeans.
One of my University units is using Visual Studio with OpenCV but I do not own a Windows PC so need to install OpenCV on my Mac OSX 10.12.3 and configure it to work with netbeans in a C++ project.
I have explored many avenues to do this but can't seem to come to a solution.
If someone could provide a step by step guide, that would be very helpful. Ideally I would like the most recent version of OpenCV.
Option 1
Install Oracle VirtualBox for free on your Mac and then install Windows in a virtual machine. It is a single file on your Mac so you can remove all that ugly Microsoft stuff as soon as you finish your class. You can run the virtual machine at the same time as macOS (it is not dual boot and doesn't mess with your boot sector) and copy and paste between the two, share files between the two and use networking from the virtual machine.
Option 2
Get a free Amazon EC2 Windows instance and run your OpenCV and NetBeans on there. You can connect from home using RDP from your Mac and also from school so your work is always accessible.
Option 3
Install homebrew on your Mac, then install OpenCV and NetBeans with
brew install opencv
brew install Caskroom/cask/netbeans
Then configure the two to work together as per this post.

upgrading to mac osx el capitan

disclaimer: web development newbie.
I will be purchasing a macbook today. I currently own a macbook that i bought back in 2012, with 10.7.5 Lion as my OS version. I can't seem to upgrade to any newer versions under this laptop, and I am having the hardest time even trying to get Git onto my computer without it giving me the Illegal 4 error. so after much thinking, I decided to just invest in a new laptop (I heard with version 10.9 and higher, you can install Git straight form the command line!)
I am a beginner programmer in python/django, and am planning to use a combination of Git/Github/SourceTree/Bitbucket throughout my deployment process.
If I buy any laptop from Apple today, it will come with El Capitan as default. Would this make it difficult for me to install any of the above softwares I mentioned? Woud El Capitan crash my apps or make it difficult for me to use the current mainstream methods of delployment?
No you will be fine, I've been doing Ruby on Rails development on several machines running El Capitan. I would recommend installing git with home-brew.
homebrew is a great package manager for OS X

Cross-compile C++11/14 on CentOS for Windows

I've set up a CentOS 6.5 box running jenkins, among other things, which I want to use for building a project I'm working on with a couple of friends. It's designed to run on Windows, as we all have windows.
The problem I'm having is that I haven't found a cross-compiler that works on CentOS. Everything I've seen only works on Debian-based distros, and the few that I've found that have been presented as "working on red hat" don't actually work, or their methods of acquisition don't seem viable anymore.
It would be preferable that it supports C++11, or even C++14, as a couple of the guys I'm working on it with haven't ever delved into anything before C++11 and they're "scared of relearning half of what they know."
Everything I've searched for about MinGW or cross-compiling on CentOS has led to a dead end. Am I better off scrapping the installation and installing something debian-based like ubuntu server, or is there a cross-compiler that actually works to compile for windows on redhat distros?
You can use g++ C++ 11. For this you need to install it on your centOS machine. The installation procedure can be found on the following link - Install g++ C++ 11. I have been using this and it works fine.

learning c++ on linux mint ( for .net developer )

My goal is to hop on to C++ programming language by doing a homework project on linux mint and learn some linux & c++ at the same time.
I intend to write a small desktop application to show current network traffic ( like DU meter in windows). I have following questions:
I noticed in mint there is an application called 'System Monitor' which also shows network history with info and graph like current download/upload of data and speed. Is it a good idea to get started by looking at the code for this ? how can I find the code for same in mint and dig into it ? pls help with some steps here if possible.
what tools do I need here for writing c++ application for/in linux mint ?
Which GUI library to use ( like in c# winforms , it offers user controls as part of GDI lib) on linux mint what do we have that offers user controls like window/button/panel/etc ?
Links to beginner level tutorials will be helpful.
Hoping NOT to re-invent the wheel completely here. Would love to re-use some lib that do the network traffic part, ideas ?
PS: i know this post reads 'wanna be' - I am really excited to kickstart with some c++. Will rephrase this post with more precise questions.Hunting in the dark at this point being a c# developer totally spoiled by windows.
Thanks in Advance!!! for tips on this...
The mint distribution is based on Ubuntu/Debian, so I assume that my Ubuntu approach also works on mint.
First
you need some tools, libraries and headers:
# install the standard toolchain (g++, make, etc.)
sudo aptitude install build-essential
# install the build dependencies for a desktop based networking tool
sudo aptitude build-dep gnome-nettool
Optionally
because you mentioned the system-monitor - it might be helpful to build the gnome-system-monitor from source:
# install the build dependencies for gnome-system-monitor
sudo aptitude build-dep gnome-system-monitor
# get the sources for the gnome-system-monitor
mkdir example
cd example
apt-get source gnome-system-monitor
# build the gnome-system-monitor
# note: you might have a different version. But I'm sure you get the idea ;-)
cd gnome-system-monitor-2.28.0
sh configure
make
Finally
you need something to develop and debug. A lot of unix developers recommend emacs or vi(m). But my personal opinion is that you should start with a "modern" GUI based IDE.
here's a collection of some commonly used IDEs:
Eclipse with CDT
NetBeans
Code::Blocks
Anjuta (was this used to develop the gnome-system-monitor ?)
CodeLite (which is my personal favorite)
see also: discussion on SOF regarding "the best" C++ IDE for Linux
People usually use text editors like (g)Vim or emacs to write C++ applications. If you've never seen them before they may be a bit overwhelming. You can also use IDEs like Geany, Anjuta, QtCreator, Eclipse...
I think the default desktop environment in Mint is GNOME which uses the GTK library. You could use GTK for your application. It is written in C but there is a c++ interface for it, gtkmm, and a tutorial for it on the projects site.
There is also Qt, which is the base of the K Desktop Environment or KDE. It is a very large library and has a pretty good IDE written in it, for it, QtCreator.
Finally, you should search stackoverflow because most of your questions have already been answered.
In answer to you "what tools do I need", you should at a minimum install g++, the standard C++ compiler on a GNU/Linux system.
Linux Mint is based on Ubuntu (which is in turn based on Debian), so for a binary like gnome-system-monitor, the command
apt-get source $(dpkg -S $(which gnome-system-monitor) | cut -d: -f1)
will download and unpack the source package for it in the current directory. Note that it probably depends on a number of libraries, that can be found in different packages. You can see what these are with apt-cache show package_name, and libraries often have associated development packages named with -dev that contain the associated headers and statically-linked archives. You can find the dev package names by searching using apt-cache search foo, where foo is the base name of the library package you're interested in.