Using MLFlow for commercial use - anaconda

It seems that from April 2020, we cannot use anaconda for "commercial use" meaning for example (organizations with more than 200 employees for example)
Since MLFlow seems to use yaml files that contain allusions to conda, how is the situation with MLFlow?
Can MLFlow be used for commercial use?
Note: This question is about programming since I intend to use MLFlow in our programs and I have to decide if we can or not

Related

Can I use Anaconda for the future?

So basically I started learning python and with Visual Studio Code. It was great till I had to install simple packages(pandas, numpy, etc). I couldn’t get it to work because it was too complicated to change path and all that as I’m a beginner.
This is why I installed Anaconda, like all the modules were there. What I’m worried is about that in the future if I work in a company can I still use anaconda?
Is it common for programmers to use anaconda for module management?
Yes. Many enterprises use Anaconda. Anaconda continues to be a very relevant tool in managing python environments. Many tools such as AzureML and other build conda environments as a core component of their backend processes.
You can also try:
poetry
pip

Uninstalling unwanted MiKTeX packages [closed]

Closed. This question is not about programming or software development. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 months ago.
Improve this question
I basically use MiKTeX for converting Markdown documents & Jupyter notebooks into PDF files (with pandoc) and never use it for making documents (as a text editor). But my MiKTeX installation happens to contain a large number of big packages that are of no use to me. But I cannot find a way to get rid of them. In the Packages section of MiKTeX console, there's an option to see all installed packages where there are many packages installed to support non English languages. And they tend to be bigger in size (each in 200 - 300 MiB range). I have no need for languages of non Latin origin. So, these packages (e.g support for middle eastern languages & Asian languages) are essentially a bloat for me. I would like to remove these and keep my installation at a bare minimum. Is there a way to do this?
I'm open to remove MiKTeX and switch to another application if I cannot do this in MiKTeX, but that application must be able to get my job done (converting Jupyter notebooks, Markdown files & RMarkdown documents to pdf). The fact I really don't need the TeXworks text editor that's bundled with MiKTeX either makes me willing switch to any other minimal versions of LaTeX systems. Any help would be appreciated. Thank you!.
P.S I'm on a Windows 10 machine. MiKTeX version 22.7 (MiXTeX console version 4.7).
You may want to check TinyTex which is a lightweight, cross-platform, portable, and easy-to-maintain LaTeX distribution based on TeXLive.
And also another option could be for you to make a switch to Quarto which would get your job (converting Jupyter notebooks, Markdown files & RMarkdown documents to pdf) done easily.
And Most importantly, while converting to pdf it will install only those latex packages that are necessary for the rendering process of the file (If they are not installed only).
Read this Get Started Guide to know how to install Quarto and You can use this with VS code, Jupyter Lab, Rstudio or any other text editor.
And to render
Jupyter notebooks to pdf see here
Rmarkdown files to pdf see here
And you can render markdown files to pdf in the same of Rmarkdown files.
And lastly, I am not a MiKTex user, so actually can't be of help addressing the original problem of yours. Hopefully someone other may have solution regarding the problem.
LaTeX by its nature is a 4GB+ "Distro" of interdependent modules so LiveTex TinyTex MiKTeX and W32TeX have package managers.
texlive2022-20220321.iso 2022-03-21 22:59 4.3G
Needs expanding
For MiKTeX its easy to command line or GUI
MiKTeX Remove [--package-id-file file] package-id...
e.g. Remove installed MiKTeX packages. see https://docs.miktex.org/manual/miktex-packages.html However best to use the GUI admin to resolve some inter dependency.
“Just enough TeX”
MiKTeX supports the notion of a scalable TeX system: users install just the TeX packages they need for their authoring tasks.
Date: 7/18/2022 File name: basic-miktex-22.7-x64.exe Size: 132.71 MB
needs expanding
your minimal TeX system
From now on, whenever a package is required which hasn't been installed yet, the package installer comes into play.
Due to the nature of "on the fly" installation setting it can appear less stable than the full ProTex variant. But if set correctly any removed essentials should be auto renewed when necessary.
Generally MiKTeX is the best distro suite for western windows users, just as W(in)32Tex is more suited to eastern windows users.
TinyTex is best for R users and is modeled on MiKTeX
I appreciate one nice feature of MiKTeX on Windows (which seems to be cross-platform now): automatically installing missing LaTeX packages. I think this is very helpful, so I borrowed this feature to the R package tinytex,
TinyTeX-v2022.08.zip 226 MB
Needs expanding

Learning Perl, but how do I get 5.14 on Windows?

So I ordered Learning Perl 6th edition and I know it's using 5.14, but Strawberry Perl is only at 5.12, so what are my options? Is 5.12 fine for it or will there be problems with what's being taught?
Is my only option using Linux? If so distro suggestions would be good along with instructions or a link to instructions on updating perl in said distro (or in general). I'm relatively new to Linux, only ever having installed Ubuntu a few times and never really stuck with it. The perfect solution would be a distro that's good for installing on another PC in my house so I can just remote desktop (or equivalent, even SSH, though GUIs are nice) into since I have an older PC that I want to put a new hard drive in and mess around with. (Pentium 4 with a bit less than a gig of RAM so not awful)
Hopefully this question is considered more constructive than my last two and I look forward to your responses.
Edit: Also any resources for a Linux noob would be a great help if possible and if it's the best option.
I haven't actually seen Learning Perl 6th edition, but I would be very surprised if you had difficulty working through it with Perl 5.12. Perl 5.14 is still too new for most people to be writing code that requires it. The book may mention some features that you can't take advantage of in 5.12, but it should still explain how to accomplish things using only 5.12 features.
I would recommend just using the current Strawberry Perl and not worrying about the version number.
Update: As Mike pointed out, here's the opening paragraph of the Preface:
Welcome to the sixth edition of Learning Perl, updated for Perl 5.14 and its latest features. This book is still good even if you are still using Perl 5.8 (although, it's been a long time since it was released; have you thought about upgrading?).
So that confirms you'll have no problem trying to use 5.12 with the 6th edition.
Use ActivePerl
It is a very good product, it is free, and it has a reliable (for the most part) PPM (Perl Package Manager). I use it and have no troubles usually. It is a binary distribution just like Strawberry Perl, but you use PPM to get modules instead of CPAN.pm.
Note: If you are getting Perl 5.14 Just because of the book, don't. I got that book (I am also a beginner) and used 5.12.4. You get mostly all of the features (except for a few ;-)
I moved from Windows and PHP to Linux and Perl a while ago, and haven't looked back - but I don't want to start an OS or programming language war here. My desktop is running Ubuntu, but you could stick with Windows (I have Windows available in a VirtualBox VM for those times when I need it).
You can download the Ubuntu Server ISO and attach it as a CD/DVD image via the Virtual Media Manager. You can then set up as many Ubuntu VMs as you like. I use very basic setting for mine:
RAM: 512MB
Hard Disk: 8GB dynamic
Network Adapter: Bridged
I have a few images configured. One is setup with Nginx + Catalyst, one with Bricolage CMS and Apache, and a few other variations (including a PHP one). The great thing with VMs is that you can create snapshots, duplicate images, experiment, and blow things away and restart if you mess things up.
How you choose to setup your development environment is down to personal choice. I use SSHMenu to open four SSH connections to my development server - this also places the terminals at predefined positions on my screen.
I use one terminal to run code, access the debugger, etc. I use another for connecting the DBMS client (PostgreSQL / MySQL). I use the other two for editing code and unit tests. I use Vim in the terminal as my editor. I was going to try Emacs too, but never got round to it.
I use git as my version control system, with bare repositories on a separate file server. I did start with Mercurial, but it appears as though much of the Perl world is using git, so I switched.
I have configured the GNOME terminal to use the beautiful Solarized colour scheme (you can find a handy script for that here).
As for the Perl version: I don't know. I agree with other comments about using a standard package rather than trying to build your own - especially if you are a Linux newbie. I've just looked on the O'Reilly preview page, and in the Preface, it says "this book is good even if you are still using Perl 5.8" - so you should be okay with an earlier version. You also need to be aware that if you are planning on doing web development in Perl, you may be limited to older versions of Perl by your chosen hosting provider.
A few more thoughts:
Programming Perl, despite its age, is still a great resource. One you've completed Learning Perl, and perhaps Intermediate Perl, it's well worth reading. The section on Pattern Matching (regular expressions) is fantastic.
Modern Perl is a really good read. It's well written, concise, and full of really useful tips.
cpanm is a great alternative to the standard CPAN application.
local::lib is very useful. I use it to create a per-application set of CPAN modules. This means that I can simply copy the entire directory structure from my development server to the application server, without having to worry about conflicts with other applications that might be using different versions of the same modules. This is probably not relevant to you at the moment, but when you've learned more and start using lots of CPAN modules, it can be really handy.
A quick local::lib example:
mkdir -p ~/myapp/extlib
cpanm --prompt -L ~/myapp/extlib CPAN::Module1 CPAN::Module2 ...
eval $(perl -Mlocal::lib=~/myapp/extlib/)
In ~/myapp/scripts/myscript.pl:
use FindBin;
use local::lib "$FindBin::Bin/../extlib";
You could
Install Windows and then run Ubuntu inside a VM on your Windows machine. You can start it up, ssh to it and then mess around with it.
Use ActivePerl.
Simply use ActivePerl - you can download 5.14 or 5.12 and it's as good as Strawberry, even with the complete CPAN toolchain, nowadays. The only limiting factor is the license, it's absolutely free to use but you can't bundle it in any of your apps without getting an OEM license. So for 99% of the cases this is a good distribution.
StrawberryPerl is also suitable, but they usually have a slightly longer delay between the release of a Perl version and the availability of an updated StrawberryPerl version.
I have a fully updated Ubuntu 11.04; it has Perl 5.10.1. I don't know how up to date other Linux distributions are. Cygwin also has 5.10.1.
You could always build from source.
Well, you can either use Active Perl, or use a GNU/Linux distro and get the latest Perl from it's repos. GNU/Linux is not Windows, it is open-source and you can install it on as many PCs as you want it. You could try Ubuntu or it's builds for an easy-to-use system.
Most of Learning Perl doesn't depend on Perl 5.14 features, and those that do are clearly marked. In most cases, I try to show a non-v5.14 way to do the same thing. You'll miss out on some nice v5.14 features, but you won't be stuck without them. And, for what it is worth, the new Programming Perl, due very soon, covers up to v5.16. Don't buy the old version if you don't have it yet.
Many people have already suggested very good options for various Perls, so I won't repeat those. My advice to students is always to learn on the Perl version and operating system you want to deploy to.
You don't have to stick to Windows. You can get a virtual machine of just about any operating system you like. VMWare and Oracle VirtualBox have free players and many places offer pre-configured virtual machines. From there, you can install any Perl version that you like. It's also incredibly cheap and easy to have multi-boot systems (although a VM doesn't prevent you from using both at the same time).
On Windows, you can also install cygwin, then install any Perl that you like.
Also, there is a preview release for Strawberry Perl 5.14.

A WIX Interpreter?

I have a need to describe deployments/installs, and possibly uninstalls as well - but I don't want to use Windows Installer. At the same time, I don't want to completely re-invent the wheel.
It occurred to me that I could perhaps use the WIX declarative schema, but create my own "WIX interpreter" that will perform the install / uninstall steps (as described by a target WIX xml document) without using the windows installer.
It would be nice to go a step further, so that I achieve a cross-platform (Linux, MAC) installer-interpreter. Of course WIX did not have Linux and MAC in mind. In which case I either add xml namespaces to extend WIX, or use some other industry format (that I am yet unaware of).
But perhaps I'm stretching too far. At the very least it would be nice to have a WIX interpreter or a WIX install executable that does not create any records in the windows installer. It need not fulfill every capability of the windows installer. I'd just like to see some basic capabilities fulfilled.
Does anyone know of such a thing, so I can save myself the effort of making it myself?
Each operating system has their own means of managing installed packages.
That means that if you implement your own package management scheme, it will not integrate well with the current operating system standard. This has a number of very bad side effects, mainly the people maintaining the operating system through standard tools run a high risk of not knowing your software was installed because the standard tool didn't report it was installed.
Microsoft's installer is quite different than many other installers, and it supports extension via programming, which is typically done in the VB C++ language. Also, Microsoft supports the mixing of configuration and installation, while many other package managers see these as different functions to be performed at different times. Finally, Microsoft attempts to ask for the configuration information PRIOR to installation, while installers that separate out the role of configuration and installation typically request that the configuration be done AFTER the program is installed.
In truth, there are way too many different "assumptions" about what constitutes installation, and when / how to do said items, and what tools can be expected on particular platforms to easily merge "all items" into a single multiple-system installation tool without the vendors coordinating a little bit to allow for some compatibility.

Good software packager other than InstallShiled

Does anyone know any good software packager other than InstallShield?
What software did MS use to create the Visual Studio 2005/2008 installers?
Also, does it make sense to just use a "general purpose" language like C# to create an installer rather than using software packagers?
Thanks!
Advanced Installer.
I have been using it for ages, and it works very well
I try much tools and programs to create a windows installer package and i concluded that
Advanced Installer is easiest ad intuitive to use!
I use it from several years and i've found few problems.
Another factor in his favor is a fast and efficient technical support.
I hope this help
NSIS has a front end app, which is now been distributed for free, called venis http://nsis.sourceforge.net/Venis_IX. venis abstracted the details of nsis.
Have a look at the nullsoft installer http://nsis.sourceforge.net/Main%5FPage , which is free.
It does not use the Microsoft MSI system which may (if you ask me) or may not be a good thing.
I use Inno setup , very nice.
and there is a GUI tool ISTool to help you write inno setup script.
I'm using NSIS or Inno Setup.
I wrote wpkg, that you can find here http://windowspackager.org/ (it is GPL) and is a clone of dpkg + APT both together. So it packages and then manages any number of packages in repositories that you can update + upgrade in an automated way. As long as you can install your project files (i.e. make install type of thing) then you'll be able to generate packages in no time.
If you know / use Linux and line their way of handling their software installations (dpkg + apt-get or rpm + yum) then you'll like wpkg since it is a duplicate of that sort of functionality.
The software version is still 0.x.x but it is already in production (very stable as I have strong unit tests to prove that a very large set of functions are working as expected.)
Note that wpkg not only works under Microsoft Windows to package binary objects, it also works under Linux, MacOS/X, and compiles + runs under a few other Unices.
The wpkg implementation includes full support for batch scripts (shell scripts for Unices) to automatically initialize or finalize package installations. This includes the ability (for example) to start a server automatically once the server binaries where installed.
We are also working on a graphical tool, pkg-explorer, that can be used to ease the management of an installation target (you can have as many installation targets on a single computer, as long as you don't install software that require the use of uniquely available resources such as a DVD writer or port 80 on your network.)
The project comes with different tools. One allows you to transform your list of projects in a graph representing the dependency tree of your repository. Another creates a list of HTML files so you can list in an easy to access all the packages that you have available in your repository.

Resources