Notable changes for all systems (Windows, macOS and Linux)
This information is drawn from the GitHub conda project changelog:
https://github.com/conda/conda/blob/master/CHANGELOG.md
fix #6837 require at least futures 3.0.0 (#6855)
fix #6852 ensure temporary path is writable (#6856)
fix #6833 improve feature mismatch metric (via 4.3.34 #6853)
4.4.9 (2018-02-06)
resolve #6632 display package removal plan when deleting an env (#6801)
fix #6531 don’t drop credentials for conda-build workaround (#6798)
fix external command execution issue (#6789)
fix #5792 conda env export error common in path (#6795)
fix #6390 add CorruptedEnvironmentError (#6778)
fix #5884 allow –insecure CLI flag without contradicting meaning of ssl_verify (#6782)
fix MatchSpec.match() accepting dict (#6808)
fix broken Anaconda Prompt for users with spaces in paths (#6825)
JSONDecodeError was added in Python 3.5 (#6848)
fix #6796 update PATH/prompt on reactivate (#6828)
fix #6401 non-ascii characters on windows using expanduser (#6847)
fix #6824 import installers before invoking any (#6849)
4.4.8 (2018-01-25)
allow falsey values for default_python to avoid pinning python (#6682)
resolve #6700 add message for no space left on device (#6709)
make variable ‘sourced’ local for posix shells (#6726)
add column headers to conda list results (#5726)
fix #6713 allow parenthesis in prefix path for conda.bat (#6722)
fix #6684 –force message (#6723)
fix #6693 KeyError with ‘–update-deps’ (#6694)
fix aggressive_update_packages availability (#6727)
fix #6745 don’t truncate channel priority map in conda installer (#6746)
add workaround for system Python usage by lsb_release (#6769)
fix #6624 can’t start new thread (#6653)
fix #6628 ‘conda install –rev’ in conda 4.4 (#6724)
fix #6707 FileNotFoundError when extracting tarball (#6708)
fix #6704 unexpected token in conda.bat (#6710)
fix #6208 return for no pip in environment (#6784)
fix #6457 env var cleanup (#6790)
fix #6645 escape paths for argparse help (#6779)
fix #6739 handle unicode in environment variables for py2 activate (#6777)
fix #6618 RepresenterError with ‘conda config –set’ (#6619)
fix #6699 suppress memory error upload reports (#6776)
fix #6770 CRLF for cmd.exe (#6775)
fix #6514 add message for case-insensitive filesystem errors (#6764)
fix #6537 AttributeError value for url not set (#6754)
fix #6748 only warn if unable to register environment due to EACCES (#6752)
4.4.7 (2018-01-08)
resolve #6650 add upgrade message for unicode errors in python 2 (#6651)
fix #6643 difference between and (#6647)
exact_match_
fix #6620 KeyError(u’CONDA_PREFIX’,) (#6652)
fix #6661 remove env from environments.txt (#6662)
fix #6629 ‘conda update –name’ AssertionError (#6656)
fix #6630 repodata AssertionError (#6657)
fix #6626 add setuptools as constrained dependency (#6654)
fix #6659 conda list explicit should be dependency sorted (#6671)
fix #6665 KeyError for channel ‘
fix #6627 AttributeError on ‘conda activate’ (#6655)
4.4.6 (2017-12-31)
fix #6612 do not assume Anaconda Python on Windows nor Librarybin hack (#6615)
recipe test improvements and associated bug fixes (#6614)
4.4.5 (2017-12-29)
fix #6577, #6580 single quote in PS1 (#6585)
fix #6584 os.getcwd() FileNotFound (#6589)
fix #6592 deactivate command order (#6602)
fix #6579 python not recognized as command (#6588)
fix #6572 cached repodata PermissionsError (#6573)
change instances of ‘root’ to ‘base’ (#6598)
fix #6607 use subprocess rather than execv for conda command extensions (#6609)
fix #6581 git-bash activation (#6587)
fix #6599 space in path to base prefix (#6608)
4.4.4 (2017-12-24)
add env vars to info reports (#6563)
add additional information to the #6546 exception (#6551)
fix #6548 ‘conda update’ installs packages not in prefix #6550
fix #6546 update after creating an empty env (#6568)
fix #6557 conda list FileNotFoundError (#6558)
fix #6554 package cache FileNotFoundError (#6555)
fix #6529 yaml parse error (#6560)
fix #6562 repodata_record.json permissions error stack trace (#6564)
fix #6520 –use-local flag (#6526)
4.4.3 (2017-12-22)
adjust error report message (#6534)
fix #6530 package cache JsonDecodeError / ValueError (#6533)
fix #6538 BrokenPipeError (#6540)
fix #6532 remove anaconda metapackage hack (#6539)
fix #6536 ‘conda env export’ for old versions of pip (#6535)
fix #6541 py2 and unicode in environments.txt (#6542)
regression tests for #6512 (#6515)
4.4.2 (2017-12-22)
resolve #6523 don’t prune with –update-all (#6524)
fix #6508 environments.txt permissions error stack trace (#6511)
fix #6522 error message formatted incorrectly (#6525)
fix #6516 hold channels over from get_index to install_actions (#6517)
4.4.1 (2017-12-21)
fix #6512 reactivate does not accept arguments (#6513)
4.4.0 (2017-12-20)
With the release of conda 4.4, we recommend a change to how the command is made available to your shell environment. All the old methods still work as before, but you’ll need the new method to enable the new and commands.
conda activate
conda deactivate
For the “Anaconda Prompt” on Windows, there is no change.
For Bourne shell derivatives (bash, zsh, dash, etc.), you likely currently have a line similar to:
"/opt/conda/bin:$PATH"
in your file (or file on macOS). The effect of this line is that your base environment is put on PATH, but without actually that environment. (In 4.4 we’ve renamed the ‘root’ environment to the ‘base’ environment.) With conda 4.4, we recommend removing the line where the environment variable is modified, and replacing it with:
~/.bash_profile
In the above, it’s assumed that is the location where you installed miniconda or Anaconda. It may also be something like or .
~/Anaconda3
~/miniconda2
For system-wide conda installs, to make the command available to all users, rather than manipulating individual (or ) files for each user, just execute once:
~/.bash_profile
$ sudo ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh
This will make the command itself available to all users, but conda’s base (root) environment will be activated by default. Users will still need to run to put the base environment on PATH and gain access to the executables in the base environment.
conda activate base
After updating to conda 4.4, we also recommend pinning conda to a specific channel. For example, executing the command:
$ conda config --system --add pinned_packages conda-canary::conda
will make sure that whenever conda is installed or changed in an environment, the source of the package is always being pulled from the channel. This will be useful for people who use , to prevent conda from flipping back and forth between 4.3 and 4.4.
conda-canary
conda-forge
: The logic and mechanisms underlying environment activation have been reworked. With conda 4.4, and are now the preferred commands for activating and deactivating environments. You’ll find they are much more snappy than the and commands from previous conda versions. The command also has advantages of (1) being universal across all OSes, shells, and platforms, and (2) not having path collisions with scripts from other packages like python virtualenv’s activate script.
conda activate
conda activate
conda deactivate
source activate
source deactivate
conda activate
: Conda now allows a package to constrain versions of other packages installed alongside it, even if those constrained packages are not themselves hard dependencies for that package. In other words, it lets a package specify that, if another package ends up being installed into an environment, it must at least conform to a certain version specification. In effect, constrained dependencies are a type of “reverse” dependency. It gives a tool to a parent package to exclude other packages from an environment that might otherwise want to depend on it.
constrained, optional dependencies
Constrained optional dependencies are supported starting with conda-build 3.0 (via ). A new keyword, which takes a list of package specs similar to the keyword, is recognized under the section of . For backward compatibility with versions of conda older than 4.4, a requirement may be listed in both the and the section. In that case older versions of conda will see the package as a hard dependency, while conda 4.4 will understand that the package is meant to be optional.
conda/conda-build#2001
run_constrained
requirements
run_constrained
Optional, constrained dependencies end up in under a keyword, parallel to the keyword for a package’s hard dependencies.
repodata.json
: Conda has a built-in query language for searching for and matching packages, what we often refer to as . The MatchSpec is what users input on the command line when they specify packages for , , , and operations. With this release, MatchSpec (rather than a regex) becomes the default input for . We have also substantially enhanced our MatchSpec query language.
enhanced package query language
conda search
For example:
The square bracket notation can also be used for any field that we match on outside the package name, and will override information given in the “simple form” position. To give a contrived example, will match versions and not .
python==3.5[version=’>=2.7, <2.8’]
: Building on our enhanced MatchSpec query language, conda environments now also track and differentiate (a) packages added to an environment because of an explicit user request from (b) packages brought into an environment to satisfy dependencies. For example, executing:
environments track user-requested state
will confine all future changes to the scikit-learn package in the environment to the conda-forge channel, until the spec is changed again. A subsequent command would drop the channel restriction from the package. And in this case, scikit-learn is the only user-defined spec, so the solver chooses dependencies from all configured channels and all available versions.
conda install scikit-learn=0.18
conda-forge
: In previous versions of conda, unexpected errors resulted in a request for users to consider posting the error as a new issue on conda’s github issue tracker. In conda 4.4, we’ve implemented a system for users to opt-in to sending that same error report via an HTTP POST request directly to the core maintainers.
errors posted to core maintainers
When an unexpected error is encountered, users are prompted with the error report followed by a input. Users can elect to send the report, with ‘no’ being the default response. Users can also permanently opt-in or opt-out, thereby skipping the prompt altogether, using the boolean configuration parameter.
report_errors
: To push through some of the big leaps with transactions in conda 4.3, we accepted some regressions on progress bars and other user interface features. All of those indicators of progress, and more, have been brought back and further improved.
various UI improvements
: Conda now supports an configuration parameter that holds a sequence of MatchSpec strings, in addition to the configuration parameter. Currently, the default value contains the packages , , and . When manipulating configuration with the command, use of the and flags will be especially helpful here. For example:
aggressive updates
aggressive_update_packages
pinned_packages
ca-certificates
conda config
would ensure that, system-wide, solves on all environments enforce using the latest version of from the channel.
pinned_packages
would lock all solves for the current active environment to python versions matching .
: In addition to , which shows detailed descriptions and default values for all available configuration parameters, we have a new command. This new command simply writes the contents of to a condarc file, which is a great starter template. Without additional arguments, the command will write to the file in the user’s home directory. The command also works with the , , and flags to write the contents to alternate locations.
other configuration improvements
conda config –describe
conda config –write-default
conda config –describe
Conda exposes a tremendous amount of flexibility via configuration. For more information, blog post is a good resource.
The Conda Configuration Engine for Power Users
the conda ‘root’ environment is now generally referred to as the ‘base’ environment
Conda 4.4 now warns when available information about per-path sha256 sums and file sizes do not match the recorded information. The warning is scheduled to be an error in conda 4.5. Behavior is configurable via the configuration parameter.
safety_checks
remove support for with_features_depends (#5191)
resolve #5468 remove –alt-hint from CLI API (#5469)
resolve #5834 change default value of ‘allow_softlinks’ from True to False (#5835)
resolve #5842 add deprecation warnings for ‘conda env upload’ and ‘conda env attach’ (#5843)
Add Solver from conda.core.solver with three methods to conda.api (4.4.0rc1) (#5838)
constrained, optional dependencies (#4982)
conda shell function (#5044, #5141, #5162, #5169, #5182, #5210, #5482)
resolve #5160 conda xontrib plugin (#5157)
resolve #1543 add support and tests for –no-deps and –only-deps (#5265)
resolve #988 allow channel name to be part of the package name spec (#5365, #5791)
resolve #5530 add ability for users to choose to post unexpected errors to core maintainers (#5531, #5571, #5585)
Solver, UI, History, and Other (#5546, #5583, #5740)
improve ‘conda search’ to leverage new MatchSpec query language (#5597)
filter out unwritable package caches from conda clean command (#4620)
envs_manager, requested spec history, declarative solve, and private env tests (#4676, #5114, #5094, #5145, #5492)
make python entry point format match pip entry points (#5010)
resolve #5113 clean up CLI imports to improve process startup time (#4799)
resolve #5121 add features/track_features support for MatchSpec (#5054)
resolve #4671 hold verify backoff count in transaction context (#5122)
resolve #5078 record package metadata after tarball extraction (#5148)
resolve #3580 support stacking environments (#5159)
resolve #3763, #4378 allow pip requirements.txt syntax in environment files (#3969)
resolve #5147 add ‘config files’ to conda info (#5269)
use –format=json to parse list of pip packages (#5205)
resolve #1427 remove startswith ‘.’ environment name constraint (#5284)
link packages from extracted tarballs when tarball is gone (#5289)
resolve #2511 accept config information from stdin (#5309)
resolve #4302 add ability to set map parameters with conda config (#5310)
resolve #5256 enable conda config –get for all primitive parameters (#5312)
resolve #1992 add short flag -C for –use-index-cache (#5314)
resolve #2173 add –quiet option to conda clean (#5313)
resolve #5358 conda should exec to subcommands, not subprocess (#5359)
resolve #5411 add ‘conda config –write-default’ (#5412)
resolve #5081 make pinned packages optional dependencies (#5414)
resolve #5430 eliminate current deprecation warnings (#5422)
resolve #5470 make stdout/stderr capture in python_api customizable (#5471)
logging simplifications/improvements (#5547, #5578)
update license information (#5568)
enable threadpool use for repodata collection by default (#5546, #5587)
conda info now raises PackagesNotFoundError (#5655)
index building optimizations (#5776)
fix #5811 change safety_checks default to ‘warn’ for conda 4.4 (4.4.0rc1) (#5824)
add constrained dependencies to conda’s own recipe (4.4.0rc1) (#5823)
clean up parser imports (4.4.0rc2) (#5844)
resolve #5983 add –download-only flag to create, install, and update (4.4.0rc2) (#5988)
add ca-certificates and certifi to aggressive_update_packages default (4.4.0rc2) (#5994)
use environments.txt to list all known environments (4.4.0rc2) (#6313)
resolve #5417 ensure unlink order is correctly sorted (4.4.0) (#6364)
resolve #5370 index is only prefix and cache in –offline mode (4.4.0) (#6371)
reduce redundant sys call during file copying (4.4.0rc3) (#6421)
enable aggressive_update_packages (4.4.0rc3) (#6392)
default conda.sh to dash if otherwise can’t detect (4.4.0rc3) (#6414)
canonicalize package names when comparing with pip (4.4.0rc3) (#6438)
add target prefix override configuration parameter (4.4.0rc3) (#6413)
resolve #6194 warn when conda is outdated (4.4.0rc3) (#6370)
add information to displayed error report (4.4.0rc3) (#6437)
csh wrapper (4.4.0) (#6463)
resolve #5158 –override-channels (4.4.0) (#6467)
fish update for conda 4.4 (4.4.0) (#6475, #6502)
skip an unnecessary environments.txt rewrite (4.4.0) (#6495)
fix some conda-build compatibility issues (#5089)
resolve #5123 export toposort (#5124)
fix #5132 signal handler can only be used in main thread (#5133)
fix orphaned –clobber parser arg (#5188)
fix #3814 don’t remove directory that’s not a conda environment (#5204)
fix #4468 stack trace (#5206)
fix #4987 conda update –all no longer displays full list of packages (#5228)
fix #3489 don’t error on remove –all if environment doesn’t exist (#5231)
fix #1509 bash doesn’t need full path for pre/post link/unlink scripts on unix (#5252)
fix #462 add regression test (#5286)
fix #5288 confirmation prompt doesn’t accept no (#5291)
fix #1713 ‘conda package -w’ is case dependent on Windows (#5308)
fix #5371 try falling back to pip’s vendored requests if no requests available (#5372)
fix #5356 skip root logger configuration (#5380)
fix #5466 scrambled URL of non-alias channel with token (#5467)
fix #5444 environment.yml file not found (#5475)
fix #3200 use proper unbound checks in bash code and test (#5476)
invalidate PrefixData cache on rm_rf for conda-build (#5491, #5499)
fix exception when generating JSON output (#5628)
fix target prefix determination (#5642)
use proxy to avoid segfaults (#5716)
fix #5790 incorrect activation message (4.4.0rc1) (#5820)
fix #5808 assertion error when loading package cache (4.4.0rc1) (#5815)
fix #5809 got an unexpected keyword argument ‘prune’ (4.4.0rc1) (#5814)
_pip_install_via_requirements
fix #5811 change safety_checks default to ‘warn’ for conda 4.4 (4.4.0rc1) (#5824)
fix #5825 –json output format (4.4.0rc1) (#5831)
fix force_reinstall for case when packages aren’t actually installed (4.4.0rc1) (#5836)
fix #5680 empty pip subsection error in environment.yml (4.4.0rc2) (#6275)
fix #5852 bad tokens from history crash conda installs (4.4.0rc2) (#6076)
fix #5827 no error message on invalid command (4.4.0rc2) (#6352)
fix exception handler for ‘conda activate’ (4.4.0rc2) (#6365)
fix #6173 double prompt immediately after conda 4.4 upgrade (4.4.0rc2) (#6351)
fix #6181 keep existing pythons pinned to minor version (4.4.0rc2) (#6363)
fix #6201 incorrect subdir shown for conda search when package not found (4.4.0rc2) (#6367)
fix #6045 help message and zsh shift (4.4.0rc3) (#6368)
fix noarch python package resintall (4.4.0rc3) (#6394)
fix #6366 shell activation message (4.4.0rc3) (#6369)
fix #6429 AttributeError on ‘conda remove’ (4.4.0rc3) (#6434)
fix #6449 problems with ‘conda info –envs’ (#6451)
add debug exception for #6430 (4.4.0rc3) (#6435)
fix #6441 NotImplementedError on ‘conda list’ (4.4.0rc3) (#6442)
fix #6445 scale back directory activation in PWD (4.4.0rc3) (#6447)
fix #6283 no-deps for conda update case (4.4.0rc3) (#6448)
fix #6419 set PS1 in python code (4.4.0rc3) (#6446)
fix #6466 sp_dir doesn’t exist (#6470)
fix #6350 –update-all removes too many packages (4.4.0) (#6491)
fix #6057 unlink-link order for python noarch packages on windows 4.4.x (4.4.0) (#6494)
eliminate index modification in Resolve init (#4333)
new MatchSpec implementation (#4158, #5517)
update conda.recipe for 4.4 (#5086)
resolve #5118 organization and cleanup for 4.4 release (#5115)
remove unused disk space check instructions (#5167)
localfs adapter tests (#5181)
extra config command tests (#5185)
add coverage for confirm (#5203)
clean up FileNotFoundError and DirectoryNotFoundError (#5237)
add assertion that a path only has a single hard link before rewriting prefixes (#5305)
remove pycrypto as requirement on windows (#5326)
import cleanup, dead code removal, coverage improvements, and other housekeeping (#5472, #5474, #5480)
rename CondaFileNotFoundError to PathNotFoundError (#5521)
work toward repodata API (#5267)
rename PackageNotFoundError to PackagesNotFoundError and fix message formatting (#5602)
update conda 4.4 bld.bat windows recipe (#5573)
remove last remnant of CondaEnvRuntimeError (#5643)
fix typo (4.4.0rc2) (#6043)
replace Travis-CI with CircleCI (4.4.0rc2) (#6345)
key-value features (#5645); reverted in 4.4.0rc2 (#6347, #6492)
resolve #6431 always add env_vars to info_dict (4.4.0rc3) (#6436)
move shell inside conda directory (4.4.0) (#6479)
remove dead code (4.4.0) (#6489)
4.3.34 (2018-02-09)
fix #6833 improve feature mismatch metric (#6853)
4.3.33 (2018-01-24)
fix #6718 broken ‘conda install –rev’ (#6719)
fix #6765 adjust the feature score assigned to packages not installed (#6766)
4.3.32 (2018-01-10)
resolve #6711 fall back to copy/unlink for EINVAL, EXDEV rename failures (#6712)
fix #6057 unlink-link order for python noarch packages on windows (#6277)
fix #6509 custom_channels incorrect in ‘conda config –show’ (#6510)
4.3.31 (2017-12-15)
add delete_trash to conda_env create (#6299)
fix #6023 assertion error for temp file (#6154)
fix #6220 –no-builds flag for ‘conda env export’ (#6221)
fix #6271 timestamp prioritization results in undesirable race-condition (#6279)
fix two failing integration tests after anaconda.org API change (#6182)
resolve #6243 mark root as not writable when sys.prefix is not a conda environment (#6274)
add timing instrumentation (#6458)
4.3.30 (2017-10-17)
address #6056 add additional proxy variables to ‘conda info –all’ (#6083)
address #6164 move add_defaults_to_specs after augment_specs (#6172)
fix #6057 add additional detail for message ‘cannot link source that does not exist’ (#6082)
fix #6084 setting default_channels from CLI raises NotImplementedError (#6085)
4.3.29 (2017-10-09)
fix #6096 coerce to millisecond timestamps (#6131)
4.3.28 (2017-10-06)
fix #5854 remove imports of pkg_resources (#5991)
fix millisecond timestamps (#6001)
4.3.27 (2017-09-18)
fix #5980 always delete_prefix_from_linked_data in rm_rf (#5982)
4.3.26 (2017-09-15)
resolve #5922 prioritize channels within multi-channels (#5923)
add to defaults multi-channel (#5931)
https://repo.continuum.io/pkgs/main
add a channel priority minimization pass to solver logic (#5859)
invoke cmd.exe with /D for pre/post link/unlink scripts (#5926)
add boto3 use to s3 adapter (#5949)
always remove linked prefix entry with rm_rf (#5846)
resolve #5920 bump repodata pickle version (#5921)
fix msys2 activate and deactivate (#5950)
4.3.25 (2017-08-16)
resolve #5834 change default value of ‘allow_softlinks’ from True to False (#5839)
add non-admin check to optionally disable non-privileged operation (#5724)
add extra warning message to always_softlink configuration option (#5826)
fix #5763 channel url string splitting error (#5764)
fix regex for repodata _mod and _etag (#5795)
fix uncaught OSError for missing device (#5830)
4.3.24 (2017-07-31)
fix #5708 package priority sort order (#5733)
2017-07-21 4.3.23
resolve #5391 PackageNotFound and NoPackagesFoundError clean up (#5506)
fix #5525 too many Nones in CondaHttpError (#5526)
fix #5508 assertion failure after test file not cleaned up (#5533)
fix #5523 catch OSError when home directory doesn’t exist (#5549)
fix #5574 traceback formatting (#5580)
fix #5554 logger configuration levels (#5555)
fix #5649 create_default_packages configuration (#5703)
2017-06-12 4.3.22
resolve #5428 clean up cli import in conda 4.3.x (#5429)
resolve #5302 add warning when creating environment with space in path (#5477)
for ftp connections, ignore host IP from PASV as it is often wrong (#5489)
expose common race condition exceptions in exports for conda-build (#5498)
fix #5451 conda clean –json bug (#5452)
fix #5400 confusing deactivate message (#5473)
fix #5459 custom subdir channel parsing (#5478)
fix #5483 problem with setuptools / pkg_resources import (#5496)
2017-05-25 4.3.21
fix #5420 conda-env update error (#5421)
fix #5425 is admin on win int not callable (#5426)
2017-05-23 4.3.20
resolve #5217 skip user confirm in python_api, force always_yes (#5404)
fix #5367 conda info always shows ‘unknown’ for admin indicator on Windows (#5368)
fix #5248 drop plan description information that might not alwasy be accurate (#5373)
fix #5378 duplicate log messages (#5379)
fix #5298 record has ‘build’, not ‘build_string’ (#5382)
fix #5384 silence logging info to avoid interfering with JSON output (#5393)
fix #5356 skip root/conda logger init for cli.python_api (#5405)
avoid persistent state after channel priority test (#5392)
resolve #5402 add regression test for #5384 (#5403)
clean up inner function definition inside for loop (#5406)
2017-05-18 4.3.19
resolve #3689 better error messaging for missing anaconda-client (#5276)
resolve #4795 conda env export lacks -p flag (#5275)
resolve #5315 add alias verify_ssl for ssl_verify (#5316)
resolve #3399 add netrc existence/location to ‘conda info’ (#5333)
resolve #3810 add –prefix to conda env update (#5335)
fix #5272 conda env export ugliness under python2 (#5273)
fix #4596 warning message from pip on conda env export (#5274)
fix #4986 –yes not functioning for conda clean (#5311)
fix #5329 unicode errors on Windows (#5328, #5357)
fix sys_prefix_unfollowed for Python 3 (#5334)
fix #5341 –json flag with conda-env (#5342)
fix 5321 ensure variable PROMPT is set in activate.bat (#5351)
test conda 4.3 with requests 2.14.2 (#5281)
remove pycrypto as requirement on windows (#5325)
fix typo avaialble -> available (#5345)
fix test failures related to menuinst update (#5344, #5362)
2017-05-09 4.3.18
resolve #4224 warn when pysocks isn’t installed (#5226)
resolve #5229 add –insecure flag to skip ssl verification (#5230)
resolve #4151 add admin indicator to conda info on windows (#5241)
fix #5152 conda info spacing (#5166)
fix –use-index-cache actually hitting the index cache (#5134)
backport LinkPathAction verify from 4.4 (#5171)
fix #5184 stack trace on invalid map configuration parameter (#5186)
fix #5189 stack trace on invalid sequence config param (#5192)
add support for the linux-aarch64 platform (#5190)
fix repodata fetch with the flag (#5146)
fix #1773 conda remove spell checking (#5176)
fix #3470 reduce excessive error messages (#5195)
fix #1597 make extra sure –dry-run doesn’t take any actions (#5201)
fix #3470 extra newlines around exceptions (#5200)
fix #5214 install messages for ‘nothing_to_do’ case (#5216)
fix #598 stack trace for condarc write permission denied (#5232)
fix #4960 extra information when exception can’t be displayed (#5236)
fix #4974 no matching dist in linked data for prefix (#5239)
fix #5258 give correct element types for conda config –describe (#5259)
fix #4911 separate shutil.copy2 into copy and copystat (#5261)
resolve #5138 add test of rm_rf of symlinked files (#4373)
resolve #4516 add extra trace-level logging (#5249, #5250)
add tests for –update-deps flag (#5264)
2017-04-24 4.3.17
fall back to copy if hardlink fails (#5002)
add timestamp metadata for tiebreaking conda-build 3 hashed packages (#5018)
resolve #5034 add subdirs configuration parameter (#5030)
resolve #5081 make pinned packages optional/constrained dependencies (#5088)
resolve #5108 improve behavior and add tests for spaces in paths (#4786)
quote prefix paths for locations with spaces (#5009)
remove binstar logger configuration overrides (#4989)
fix #4969 error in DirectoryNotFoundError (#4990)
fix #4998 pinned string format (#5011)
fix #5039 collecting main_info shouldn’t fail on requests import (#5090)
fix #5055 improve bad token message for anaconda.org (#5091)
fix #5033 only re-register valid signal handlers (#5092)
fix #5028 imports in main_list (#5093)
fix #5073 allow client_ssl_cert{_key} to be of type None (#5096)
fix #4671 backoff for package validate race condition (#5098)
fix #5022 gnu_get_libc_version => linux_get_libc_version (#5099)
fix #4849 package name match bug (#5103)
fixes #5102 allow proxy_servers to be of type None (#5107)
fix #5111 incorrect typify for str + NoneType (#5112)
resolve #5012 remove CondaRuntimeError and RuntimeError (#4818)
full audit ensuring relative import paths within project (#5090)
resolve #5116 refactor conda/cli/activate.py to help menuinst (#4406)
2017-03-30 4.3.16
additions to configuration SEARCH_PATH to improve consistency (#4966)
add ‘conda config –describe’ and extra config documentation (#4913)
enable packaging pinning in condarc using pinned_packages config parameter as beta feature (#4921, #4964)
fix #4914 handle directory creation on top of file paths (#4922)
fix #3982 issue with CONDA_ENV and using powerline (#4925)
fix #2611 update instructions on how to source conda.fish (#4924)
fix #4860 missing information on package not found error (#4935)
fix #4944 command not found error error (#4963)
2017-03-20 4.3.15
allow pkgs_dirs to be configured using (#4895)
conda config
remove incorrect elision of delete_prefix_from_linked_data() (#4814)
fix envs_dirs order for read-only root prefix (#4821)
fix break-point in conda clean (#4801)
fix long shebangs when creating entry points (#4828)
fix spelling and typos (#4868, #4869)
fix #4840 TypeError reduce() of empty sequence with no initial value (#4843)
fix zos subdir (#4875)
fix exceptions triggered during activate (#4873)
2017-03-03 4.3.14
use cPickle in place of pickle for repodata (#4717)
ignore pyc compile failure (#4719)
use conda.exe for windows entry point executable (#4716, #4720)
localize use of conda_signal_handler (#4730)
add skip_safety_checks configuration parameter (#4767)
never symlink executables using ORIGIN (#4625)
set activate.bat codepage to CP_ACP (#4558)
fix #4777 package cache initialization speed (#4778)
fix #4703 menuinst PathNotFoundException (#4709)
ignore permissions error if user_site can’t be read (#4710)
fix #4694 don’t import requests directly in models (#4711)
fix #4715 include resources directory in recipe (#4716)
fix CondaHttpError for URLs that contain ‘%’ (#4769)
bug fixes for preferred envs (#4678)
fix #4745 check for info/index.json with package is_extracted (#4776)
make sure url gets included in CondaHTTPError (#4779)
fix #4757 map-type configs set to None (#4774)
fix #4788 partial package extraction (#4789)
test coverage improvement (#4607)
CI configuration improvements (#4713, #4773, #4775)
allow sha256 to be None (#4759)
add cache_fn_url to exports (#4729)
add unicode paths for PY3 integration tests (#4760)
additional unit tests (#4728, #4783)
fix conda-build compatibility and tests (#4785)
2017-02-17 4.3.13
resolve #4636 environment variable expansion for pkgs_dirs (#4637)
link, symlink, islink, and readlink for Windows (#4652, #4661)
add extra information to CondaHTTPError (#4638, #4672)
maximize requested builds after feature determination (#4647)
fix #4649 incorrect assert statement concerning package cache directory (#4651)
multi-user mode bug fixes (#4663)
path_actions unit tests (#4654)
remove dead code (#4369, #4655, #4660)
separate repodata logic from index into a new core/repodata.py module (#4669)
2017-02-14 4.3.12
prepare conda for uploading to pypi (#4619)
better general http error message (#4627)
disable old python noarch warning (#4576)
fix UnicodeDecodeError for ensure_text_type (#4585)
fix determination of if file path is writable (#4604)
fix #4592 BufferError cannot close exported pointers exist (#4628)
fix run_script current working directory (#4629)
fix pkgs_dirs permissions regression (#4626)
fixes for tests when conda-bld directory doesn’t exist (#4606)
use requirements.txt and Makefile for travis-ci setup (#4600, #4633)
remove hasattr use from compat functions (#4634)
2017-02-09 4.3.11
fix attribute error in add_defaults_to_specs (#4577)
2017-02-07 4.3.10
remove .json from pickle path (#4498)
improve empty repodata noarch warning and error messages (#4499)
don’t add python and lua as default specs for private envs (#4529, #4533)
let default_python be None (#4547, #4550)
fix #4513 null pointer exception for channel without noarch (#4518)
fix ssl_verify set type (#4517)
fix bug for windows multiuser (#4524)
fix clone with noarch python packages (#4535)
fix ipv6 for python 2.7 on Windows (#4554)
separate integration tests with a marker (#4532)
2017-01-31 4.3.9
improve repodata caching for performance (#4478, #4488)
expand scope of packages included by bad_installed (#4402)
silence pre-link warning for old noarch (#4451)
add configuration to optionally require noarch repodata (#4450)
improve conda subprocessing (#4447)
respect info/link.json (#4482)
fix #4398 ‘hard’ was used for link type at one point (#4409)
fixed “No matches for wildcard ‘$activate_d/*.fish’” warning (#4415)
print correct activate/deactivate message for fish shell (#4423)
fix ‘Dist’ object has no attribute ‘fn’ (#4424)
fix noarch generic and add additional integration test (#4431)
fix #4425 unknown encoding (#4433)
fail CI on conda-build fail (#4405)
run doctests (#4414)
make index record mutable again (#4461)
additional test for conda list –json (#4480)
2017-01-23 4.3.8
fix #4309 ignore EXDEV error for directory renames (#4392)
fix #4393 by force-renaming certain backup files if the path already exists (#4397)
2017-01-20 4.3.7
actually revert json output for leaky plan (#4383)
fix not raising on pre/post-link error (#4382)
fix find_commands and find_executable for symlinks (#4387)
2017-01-18 4.3.6
fix ‘Uncaught backoff with errno 41’ warning on windows (#4366)
revert json output for leaky plan (#4349)
audit os.environ setting (#4360)
fix #4324 using old dist string instead of dist object (#4361)
fix #4351 infinite recursion via code in #4120 (#4370)
fix #4368 conda -h (#4367)
workaround for symlink race conditions on activate (#4346)
2017-01-17 4.3.5
add exception message for corrupt repodata (#4315)
fix package not being found in cache after download (#4297)
fix logic for Content-Length mismatch (#4311, #4326)
use unicode_escape after etag regex instead of utf-8 (#4325)
fix #4323 central condarc file being ignored (#4327)
fix #4316 a bug in deactivate (#4316)
pass target_prefix as env_prefix regardless of is_unlink (#4332)
pass positional argument ‘context’ to BasicClobberError (#4335)
additional package pinning tests (#4317)
2017-01-13 4.3.4
vendor url parsing from urllib3 (#4289)
fix some bugs in windows multi-user support (#4277)
fix problems with channels of type
include aliases for first command-line argument (#4279)
fix for multi-line FTP status codes (#4276)
make arch in IndexRecord a StringField instead of EnumField
improve conda-build compatibility (#4266)
2017-01-10 4.3.3
respect Cache-Control max-age header for repodata (#4220)
add ‘local_repodata_ttl’ configurability (#4240)
remove questionable “nothing to install” logic (#4237)
relax channel noarch requirement for 4.3; warn now, raise in future feature release (#4238)
add additional info to setup.py warning message (#4258)
remove features properly (#4236)
do not use to find activate/deactivate scripts to source (#4239)
fix #4235 print message to stderr (#4241)
fix relative path to python in activate.bat (#4242)
fix args.channel references (#4245, #4246)
ensure cache_fn_url right pad (#4255)
fix #4256 subprocess calls must have env wrapped in str (#4259)
2017-01-06 4.3.2
Further refine conda channels specification. To verify if the url of a channel represents a valid conda channel, we check that and/or exist, even if empty. (#3739)
noarch/repodata.json
noarch/repodata.json.bz2
add new ‘path_conflict’ and ‘clobber’ configuration options (#4119)
separate fetch/extract pass for explicit URLs (#4125)
update conda homepage to conda.io (#4180)
fix pre/post unlink/link scripts (#4113)
fix package version regex and bug in create_link (#4132)
fix history tracking (#4143)
fix index creation order (#4131)
fix #4152 conda env export failure (#4175)
fix #3779 channel UNC path encoding errors on windows (#4190)
fix progress bar (#4191)
use context.channels instead of args.channel (#4199)
don’t use local cached repodata for urls (#4209)
xfail anaconda token test if local token is found (#4124)
fix open-ended test failures relating to python 3.6 release (#4145)
extend timebomb for test_multi_channel_export (#4169)
don’t unlink dists that aren’t in the index (#4130)
add python 3.6 and new conda-build test targets (#4194)
2016-12-19 4.3.1
additional pre-transaction validation (#4090)
export FileMode enum for conda-build (#4080)
memoize disk permissions tests (#4091)
local caching of repodata without remote server calls; new ‘repodata_timeout_secs’ configuration parameter (#4094)
performance tuning (#4104)
add additional fields to dist object serialization (#4102)
fix a noarch install bug on windows (#4071)
fix a spec mismatch that resulted in python versions getting mixed during packaging (#4079)
fix rollback linked record (#4092)
fix #4097 keep split in PREFIX_PLACEHOLDER (#4100)
2016-12-14 4.3.0 Safety
: In the past, conda hasn’t always been safe and defensive with its disk-mutating actions. It has gleefully clobbered existing files, and mid-operation failures leave environments completely broken. In some of the most severe examples, conda can appear to “uninstall itself.” With this release, the unlinking and linking of packages for an executed command is done in a single transaction. If a failure occurs for any reason while conda is mutating files on disk, the environment will be returned its previous state.  In some circumstances, OS file permissions cannot be fully known until an operation is attempted and fails. And conda itself is not without bugs. Moving forward, unforeseeable failures won’t be catastrophic. (#3833, #4030)
Unlink and Link Packages in a Single Transaction
: Like package unlinking and linking, the download and extract phases of package handling have also been given transaction-like behavior. The distinction is the rollback on error is limited to a single package. Rather than rolling back the download and extract operation for all packages, the single-package rollback prevents the need for having to re-download every package if an error is encountered. (#4021, #4030)
Progressive Fetch and Extract Transactions
: Along with conda-build 2.1.0, a noarch/universal type for python packages is officially supported. These are much like universal python wheels. Files in a python noarch package are linked into a prefix just like any other conda package, with the following additional features:
Generic- and Python-Type Noarch/Universal Packages
conda maps the directory to the correct location for the python version in the environment,
site-packages
conda maps the python-scripts directory to either $PREFIX/bin or $PREFIX/Scripts depending on platform,
conda creates the python entry points specified in the conda-build recipe, and
conda compiles pyc files at install time when prefix write permissions are guaranteed.
Python noarch packages must be “fully universal.” They cannot have OS- or python version-specific dependencies. They cannot have OS- or python version-specific “scripts” files. If these features are needed, traditional conda packages must be used. (#3712)
: While the on-disk package cache structure has been preserved, the core logic implementing package cache handling has had a complete overhaul. Writable and read-only package caches are fully supported. (#4021)
Multi-User Package Caches
: An oft requested feature is the ability to use conda as a python library, obviating the need to “shell out” to another python process. Conda 4.3 includes a module that facilitates this use case. While we maintain the user-facing command-line interface, conda commands can be executed in-process. There is also a module to facilitate longer-term usage of conda as a library across conda conda releases. However, conda’s python code considered internal and private, subject to change at any time across releases. At the moment, conda will not install itself into environments other than its original install environment. (#4028)
Python API Module
conda.cli.python_api
conda.exports
: Locking has never been fully effective in conda, and it often created a false sense of security. In this release, multi-user package cache support has been implemented for improved safety by hard-linking packages in read-only caches to the user’s primary user package cache. Still, users are cautioned that undefined behavior can result when conda is running in multiple process and operating on the same package caches and/or environments. (#3862)
Remove All Locks
Conda now has the ability to refuse to clobber existing files that are not within the unlink instructions of the transaction. This behavior is configurable via the configuration option, which has three possible values: , , and . In 4.3, the default value will be . That will give package maintainers time to correct current incompatibilities within their package ecosystem. In 4.4, the default will switch to , which means these operations continue to clobber, but the warning messages are displayed. In , the default value will switch to . As we tighten up the constraint, a new command line flag will loosen it back up on an basis. Using overrides the setting for to effectively be for that operation.
path_conflict
path_conflict
path_conflict
Conda signed packages have been removed in 4.3. Vulnerabilities existed. An illusion of security is worse than not having the feature at all. We will be incorporating The Update Framework into conda in a future feature release. (#4064)
Conda 4.4 will drop support for older versions of conda-build.
create a new “trace” log level enabled by or (#3833)
allow conda to be installed with pip, but only when used as a library/dependency (#4028)
the ‘r’ channel is now part of defaults (#3677)
private environment support for conda (#3988)
support v1 info/paths.json file (#3927, #3943)
support v1 info/package_metadata.json (#4030)
improved solver hint detection, simplified filtering (#3597)
cache VersionOrder objects to improve performance (#3596)
fix documentation and typos (#3526, #3572, #3627)
add multikey configuration validation (#3432)
some Fish autocompletions (#2519)
reduce priority for packages removed from the index (#3703)
add user-agent, uid, gid to conda info (#3671)
add conda.exports module (#3429)
make http timeouts configurable (#3832)
add a pkgs_dirs config parameter (#3691)
add an ‘always_softlink’ option (#3870, #3876)
pre-checks for diskspace, etc for fetch and extract #(4007)
address #3879 don’t print activate message when quiet config is enabled (#3886)
add zos-z subdir (#4060)
add elapsed time to HTTP errors (#3942)
account for the Windows Python 2.7 os.environ unicode aversion (#3363)
fix link field in record object (#3424)
anaconda api token bug fix; additional tests (#3673)
fix #3667 unicode literals and unicode decode (#3682)
add conda-env entrypoint (#3743)
fix #3807 json dump on (#3811)
fix #3801 location of temporary hard links of index.json (#3813)
fix invalid yml example (#3849)
add arm platforms back to subdirs (#3852)
fix #3771 better error message for assertion errors (#3802)
fix #3999 spaces in shebang replacement (#4008)
config –show-sources shouldn’t show force by default (#3891)
fix #3881 don’t install conda-env in clones of root (#3899)
conda-build dist compatibility (#3909)
remove unnecessary eval (#3428)
remove dead install_tar function (#3641)
apply PEP-8 to conda-env (#3653)
refactor dist into an object (#3616)
vendor appdirs; remove conda’s dependency on anaconda-client import (#3675)
revert boto patch from #2380 (#3676)
move and update ROOT_NO_RM (#3697)
integration tests for conda clean (#3695, #3699)
disable coverage on s3 and ftp requests adapters (#3696, #3701)
github repo hygiene (#3705, #3706)
major install refactor (#3712)
remove test timebombs (#4012)
LinkType refactor (#3882)
move CrossPlatformStLink and make available as export (#3887)
make Record immutable (#3965)
project housekeeping (#3994, #4065)
context-dependent setup.py files (#4057)
2017-01-10 4.2.15
use ‘post’ instead of ‘dev’ for commits according to PEP-440 (#4234)
do not use IFS to find activate/deactivate scripts to source (#4243)
fix relative path to python in activate.bat (#4244)
replace sed with python for activate and deactivate #4257
2017-01-07 4.2.14
use install.rm_rf for TemporaryDirectory cleanup (#3425)
improve handling of local dependency information (#2107)
add default channels to exports for Windows Linux and macOS (#4103)
make subdir configurable (#4178)
fix conda/install.py single-file behavior (#3854)
fix the api->conda substitution (#3456)
fix silent directory removal (#3730)
fix location of temporary hard links of index.json (#3975)
fix potential errors in multi-channel export and offline clone (#3995)
fix auxlib/packaging, git hashes are not limited to 7 characters (#4189)
fix compatibility with requests >=2.12, add pyopenssl as dependency (#4059)
fix #3287 activate in 4.1-4.2.3 clobbers non-conda PATH changes (#4211)
fix open-ended test failures relating to python 3.6 release (#4166)
allow args passed to cli.main() (#4193, #4200, #4201)
test against python 3.6 (#4197)
2016-11-22 4.2.13
show warning message for pre-link scripts (#3727)
error and exit for install of packages that require conda minimum version 4.3 (#3726)
double/extend http timeouts (#3831)
let descriptive http errors cover more http exceptions (#3834)
backport some conda-build configuration (#3875)
fix conda/install.py single-file behavior (#3854)
fix the api->conda substitution (#3456)
fix silent directory removal (#3730)
fix #3910 null check for is_url (#3931)
flake8 E116, E121, & E123 enabled (#3883)
2016-11-02 4.2.12
fix #3732, #3471, #3744 CONDA_BLD_PATH (#3747)
fix #3717 allow no-name channels (#3748)
fix #3738 move conda-env to ruamel_yaml (#3740)
fix conda-env entry point (#3745 via #3743)
fix again #3664 trash emptying (#3746)
2016-10-23 4.2.11
only try once for windows trash removal (#3698)
fix anaconda api token bug (#3674)
fix #3646 FileMode enum comparison (#3683)
fix #3517 (#3684)
fix #3560 hack anaconda token coverup on conda info (#3686)
fix #3469 alias envs_path to envs_dirs (#3685)
2016-10-18 4.2.10
add json output for (#3588)
ignore certain binary prefixes on windows (#3539)
allow conda config files to have .yaml extensions or ‘condarc’ anywhere in filename (#3633)
fix conda-build’s handle_proxy_407 import (#3666)
fix #3442, #3459, #3481, #3531, #3548 multiple networking and auth issues (#3550)
add back linux-ppc64le subdir support (#3584)
fix #3600 ensure links are removed when unlinking (#3625)
fix #3602 search channels by platform (#3629)
fix duplicated packages when updating environment (#3563)
fix #3590 exception when parsing invalid yaml (#3593 via #3634)
fix #3655 a string decoding error (#3656)
backport conda.exports module to 4.2.x (#3654)
travis-ci OSX fix (#3615 via #3657)
2016-09-27 4.2.9
fix #3536 conda-env messaging to stdout with flag (#3537)
fix #3525 writing to sys.stdout with flag for post-link scripts (#3538)
fix #3492 make NULL falsey with python 3 (#3524)
2016-09-26 4.2.8
add “error” key back to json error output (#3523)
fix #3453 conda fails with create_default_packages (#3454)
fix #3455 fails (#3457)
dial down error messages for rm_rf (#3522)
fix #3467 AttributeError encountered for map config parameter validation (#3521)
2016-09-16 4.2.7
revert to 4.1.x behavior of (#3450, #3451)
don’t add binstar token if it’s given in the channel spec (#3427, #3440, #3444)
fix #3433 failure to remove broken symlinks (#3436)
use install.rm_rf for TemporaryDirectory cleanup (#3425)
2016-09-14 4.2.6
add support for client TLS certificates (#3419)
address #3267 allow migration of channel_alias (#3410)
conda-env version matches conda version (#3422)
fix #3409 unsatisfiable dependency error message (#3412)
fix #3408 quiet rm_rf (#3413)
fix #3407 padding error messaging (#3416)
account for the Windows Python 2.7 os.environ unicode aversion (#3363 via #3420)
2016-09-08 4.2.5
partially revert #3041 giving conda config –add previous –prepend behavior (#3364 via #3370)
partially revert #2760 adding back conda package command (#3398)
order output of ; make friendly (#3384 via #3386)
clean the pid based lock on exception (#3325)
improve file removal on all platforms (#3280 via #3396)
fix #3332 allow download urls with in them (#3335)
fix always_yes and not-set argparse args overriding other sources (#3374)
fix ftp fetch timeout (#3392)
fix #3307 add try/except block for touch lock (#3326)
fix CONDA_CHANNELS environment variable splitting (#3390)
fix #3378 CONDA_FORCE_32BIT environment variable (#3391)
make conda info channel urls actually give urls (#3397)
fix cio_test compatibility (#3395 via #3400)
2016-08-18 4.2.4
fix #3277 conda list package order (#3278)
fix channel priority issue with duplicated channels (#3283)
fix local channel channels; add full conda-build unit tests (#3281)
fix conda install with no package specified (#3284)
fix #3253 exporting and importing conda environments (#3286)
fix priority messaging on (#3304)
fix ; additional integration tests (#3291)
fix idempotence; add integration tests for channel priority (#3306)
additional conda-env integration tests (#3288)
2016-08-11 4.2.3
added zsh and zsh.exe to Windows shells (#3257)
allow conda to downgrade itself (#3273)
fix breaking changes to conda-build from 4.2.2 (#3265)
fix empty environment issues with conda and conda-env (#3269)
add integration tests for conda-env (#3270)
add more conda-build smoke tests (#3274)
2016-08-09 4.2.2
enable binary prefix replacement on windows (#3262)
add command line flag (#3237)
improve logging and exception detail (#3237, #3252)
do not remove empty environment without asking; raise an error when a named environment can’t be found (#3222)
fix #3226 user condarc not available on Windows (#3228)
fix some bugs in conda config –show* (#3212)
fix conda-build local channel bug (#3202)
remove subprocess exiting message (#3245)
fix comment parsing and channels in conda-env environment.yml (#3258, #3259)
fix context error with conda-env (#3232)
fix #3182 conda install silently skipping failed linking (#3184)
2016-08-01 4.2.1
improve an error message that can happen during conda install –revision (#3181)
use clean sys.exit with user choice ‘No’ (#3196)
critical fix for 4.2.0 error when no git is on PATH (#3193)
revert #3171 lock cleaning on exit pending further refinement
patches for conda-build compatibility with 4.2 (#3187)
fix a bug in –show-sources output that ignored aliased parameter names (#3189)
move scripts in bin to shell directory (#3186)
2016-07-28 4.2.0
: Configuration and “operating context” are the foundation of conda’s functionality. Conda now has the ability to pull configuration information from a multitude of on-disk locations, including directories and a file a conda environment), along with full environment variable support. Helpful validation errors are given for improperly-specified configuration. Full documentation updates pending. (#2537, #3160, #3178)
New Configuration Engine
: Previous releases followed a pattern of premature exiting (with hard calls to ) when exceptional circumstances were encountered. This release replaces over 100 calls with python exceptions. For conda developers, this will result in tests that are easier to write. For developers using conda, this is a first step on a long path toward conda being directly importable. For conda users, this will eventually result in more helpful and descriptive errors messages. (#2899, #2993, #3016, #3152, #3045)
New Exception Handling Engine
: Conda can now create “empty” environments when no initial packages are specified, alleviating a common source of confusion. (#3072, #3174)
Empty Environments
: Conda can now be configured to live within its own private environment. While it’s not yet default behavior, this represents a first step toward separating the environment into a “conda private” environment and a “user default” environment. (#3068)
Conda in Private Env
: Regular expressions are now valid version specifiers. For example, . (#2933)
Regex Version Specification
^1\.[5-8]\.1$|2.2
remove conda init (#2759)
remove conda package and conda bundle (#2760)
deprecate conda-env repo; pull into conda proper (#2950, #2952, #2954, #3157, #3163, #3170)
force use of ruamel_yaml (#2762)
implement conda config –prepend; change behavior of –add to –append (#3041)
exit on link error instead of logging it (#2639)
improve locking (#2962, #2989, #3048, #3075)
clean up requests usage for fetching packages (#2755)
remove excess output from conda –help (#2872)
remove os.remove in update_prefix (#3006)
better error behavior if conda is spec’d for a non-root environment (#2956)
scale back try_write function on Linux and macOS (#3076)
remove psutil requirement, fixes annoying error message (#3135, #3183)
fix #3124 add threading lock to memoize (#3134)
fix a failure with multi-threaded repodata downloads (#3078)
fix windows file url (#3139)
address #2800, error with environment.yml and non-default channels (#3164)
project structure enhancement (#2929, #3132, #3133, #3136)
clean up channel handling with new channel model (#3130, #3151)
add Anaconda Cloud / Binstar auth handler (#3142)
remove dead code (#2761, #2969)
code refactoring and additional tests (#3052, #3020)
remove auxlib from project root (#2931)
vendor auxlib 0.0.40 (#2932, #2943, #3131)
vendor toolz 0.8.0 (#2994)
move progressbar to vendor directory (#2951)
fix conda.recipe for new quirks with conda-build (#2959)
move captured function to common module (#3083)
rename CHANGELOG to md (#3087)
2016-09-08 4.1.12
fix #2837 “File exists” in symlinked path with parallel activations, #3210
fix prune option when installing packages, #3354
change check for placeholder to be more friendly to long PATH, #3349
2016-07-26 4.1.11
fix PS1 backup in activate script, #3135 via #3155
correct resolution for ‘handle failures in binstar_client more generally’, #3156
2016-07-25 4.1.10
ignore symlink failure because of read-only file system, #3055
backport shortcut tests, #3064
fix #2979 redefinition of $SHELL variable, #3081
fix #3060 –clone root –copy exception, #3080
2016-07-20 4.1.9
fix #3104, add global BINSTAR_TOKEN_PAT
handle failures in binstar_client more generally
2016-07-12 4.1.8:
fix #3004 UNAUTHORIZED for url (null binstar token), #3008
fix overwrite existing redirect shortcuts when symlinking envs, #3025
partially revert no default shortcuts, #3032, #3047
2016-07-07 4.1.7:
add msys2 channel to defaults on Windows, #2999
fix #2939 channel_alias issues; improve offline enforcement, #2964
fix #2970, #2974 improve handling of URLs inside channel, #2976
2016-07-01 4.1.6:
slow down exp backoff from 1 ms to 100 ms factor, #2944
set max time on exp_backoff to ~6.5 sec,#2955
fix #2914 add/subtract from PATH; kill folder output text, #2917
normalize use of get_index behavior across clone/explicit, #2937
wrap root prefix check with normcase, #2938
2016-06-29 4.1.5:
more conservative auto updates of conda #2900
fix some permissions errors with more aggressive use of move_path_to_trash, #2882
fix #2891 error if allow_other_channels setting is used, #2896
fix #2886, #2907 installing a tarball directly from the package cache, #2908
fix #2681, #2778 reverting #2320 lock behavior changes, #2915
2016-06-27 4.1.4:
fix #2846 revert the use of UNC paths; shorten trash filenames, #2859
fix exp backoff on Windows, #2860
fix #2845 URL for local file repos, #2862
fix #2764 restore full path var on win; create to CONDA_PREFIX env var, #2848
fix #2754 improve listing pip installed packages, #2873
change root prefix detection to avoid clobbering root activate scripts, #2880
address #2841 add lowest and highest priority indication to channel config output, #2875
add SYMLINK_CONDA to planned instructions, #2861
use CONDA_PREFIX, not CONDA_DEFAULT_ENV for activate.d, #2856
call scripts with redirect on win; more error checking to activate, #2852
2016-06-23 4.1.3:
ensure conda-env auto update, along with conda, #2772
make yaml booleans behave how everyone expects them to, #2784
use accept-encoding for repodata; prefer repodata.json to repodata.json.bz2, #2821
additional integration and regression tests, #2757, #2774, #2787
add offline mode to printed info; use offline flag when grabbing channels, #2813
show conda-env version in conda info, #2819
adjust channel priority superseded list, #2820
support epoch ! characters in command line specs, #2832
accept old default names and new ones when canonicalizing channel URLs #2839
push PATH, PS1 manipulation into shell scripts, #2796
fix #2765 broken source activate without arguments, #2806
fix standalone execution of install.py, #2756
fix #2810 activating conda environment broken with git bash on Windows, #2795
fix #2805, #2781 handle both file-based channels and explicit file-based URLs, #2812
fix #2746 conda create –clone of root, #2838
fix #2668, #2699 shell recursion with activate #2831
2016-06-17 4.1.2:
improve messaging for “downgrades” due to channel priority, #2718
support conda config channel append/prepend, handle duplicates, #2730
remove –shortcuts option to internal CLI code, #2723
fix an issue concerning space characters in paths in activate.bat, #2740
fix #2732 restore yes/no/on/off for booleans on the command line, #2734
fix #2642 tarball install on Windows, #2729
fix #2687, #2697 WindowsError when creating environments on Windows, #2717
fix #2710 link instruction in conda create causes TypeError, #2715
revert #2514, #2695, disabling of .netrc files, #2736
revert #2281 printing progress bar to terminal, #2707
2016-06-16 4.1.1:
add auto_update_conda config parameter, #2686
fix #2669 conda config –add channels can leave out defaults, #2670
fix #2703 ignore activate symlink error if links already exist, #2705
fix #2693 install duplicate packages with older version of Anaconda, #2701
fix #2677 respect HTTP_PROXY, #2695
fix #2680 broken fish integration, #2685, #2694
fix an issue with conda never exiting, #2689
fix #2688 explicit file installs, #2708
fix #2700 conda list UnicodeDecodeError, #2706
2016-06-14 4.1.0:
This release contains many small bug fixes for all operating systems, and a few special fixes for Windows behavior.
The most significant conda change is that when you add channels, channel order matters. If you have a list of channels in a .condarc file, conda installs the package from the first channel where it’s available, even if it’s available in a later channel with a higher version number.
Channel order now matters.
Conda remove no longer performs version downgrades on any remaining packages that might be suggested to resolve dependency losses; the package will just be removed instead.
No version downgrades.
PyYAML is replaced with ruamel.yaml, which gives more robust control over yaml document use.
New YAML parser/emitter.
More on ruamel.yaml
are the first line of the many executable scripts that tell the operating system how to execute the program. They start with . Most OSes don’t support these lines over 127 characters, so conda now checks the length and replaces the full interpreter path in long lines with . When you’re working in a conda environment that is deeply under many directories, or you otherwise have long paths to your conda environment, make sure you activate that environment now.
Shebang lines over 127 characters are now truncated (Linux, macOS only).
/usr/bin/env
When looking for packages that aren’t installed with conda, conda list now examines the Python site-packages directory rather than relying on pip.
Changes to conda list command.
The command now removes a conda environment without fetching information from a remote server on the packages in the environment.
Changes to conda remove command.
When turned off, conda will not update itself unless the user manually issues a conda update command. Previously conda updated any time a user updated or installed a package in the root environment. Use the option .
Conda update can be turned off and on.
auto_update_conda
BeeGFS is a parallel cluster file system for performance and designed for easy installation and management.
Improved support for BeeGFS.
More on BeeGFS
Shortcuts can now be installed with the option. Example 1: Install a shortcut to Spyder with . Note if you have Anaconda (not Miniconda), you already have this shortcut and Spyder. Example 2: Install the open source package named . When you click the shortcut icon, a terminal window will open with the environment containing the package already activated.
Shortcuts are no longer installed by default on Windows.


{{ partial "header.html" . }}
© {{ .Site.Params.footer.text }} - Design based on Webflow R Smith's theme


3.4. Digital Wind Tunnel I: Empty Domain Simulation¶
Problem files |
Digital Wind Tunnel is implemented in WE-UQ Version 2.3.0. This feature aims to provide the users with the computational tool to run CFD simulations with the user-defined atmospheric boundary layer inflow conditions and the user-defined OpenFOAM model.
This project collaborates with the University of Florida (UF) NHERI Experimental Facility (EF). Multiple inflow conditions characterized by the roughness height and friction velocity were generated by changing the orientation and height of the Terraformer in the wind tunnel. The mean flow structure at each inflow condition is captured by velocity probes downstream 1.
The Digital Wind Tunnel would allow users to edit the geometric information and inflow conditions through a user interface of WE-UQ, and run the CFD simulations to obtain the aerodynamic loads on structures aided by the open-source CFD software named OpenFOAM and structural responses aided by OpenSees. Compared to traditional physical wind tunnel, the digital wind tunnel would allow for great flexibility in testing different designs and wind scenarios, and has free access to the TACC Frontera computing nodes. In particular, in the Digital Wind Tunnel, the empty domain analysis enables users to simulate the atmospheric boundary layer flows with the user-defined inflow wind characteristics including mean wind velocity profiles, Reynolds stress tensor and length scales. The mean flow structure can also be captured downstream using the sampling functions in OpenFOAM, which can be further validated through the wind tunnel data.
3.4.1. CFD modeling¶
The first step to run a CFD simulation in the Digital Wind Tunnel is to set up an OpenFOAM case which involves creating a directory structure with specific files that define the simulation settings, such as the geometry, mesh, and boundary conditions. The Digital Wind Tunnel allows users to upload their own model to run CFD simulations. To prepare the OpenFOAM case directory, three sub-directories are needed: 0, constant and system.
To run a simulation in the Digital Wind Tunnel, select the EVT panel in the user interface. From the Load Generator, pull down menu and select the CFD - Digital Wind Tunnel. The CFD model can be uploaded by pressing the Browse button in the section of OpenFOAM Parameters.
Alternatively, users can run a CFD simulation using the benchmark CFD model embedded in the Digital Wind Tunnel for empty domain analyses. The following table provides the basic information about the CFD modeling. Large eddy simulation (LES) was employed to model the turbulent flow. The CFD model can be downloaded from github website.
Parameter |
descriptions |
|---|---|
Domain size |
10*5*3 |
Grid number |
5,638,659 |
Mesh generator |
snappyHexMesh |
Turbulence model |
Large eddy simulation |
3.4.2. Inflow configurations in the Digital Wind Tunnel¶
After the mesh generation and basic configurations for CFD modeling have been established, it is crucial to generate inflow turbulence that conforms to the desired atmospheric boundary layer flows. This step is essential in setting up a CFD model that can accurately simulate atmospheric flows across a broad spectrum of length and time scales. One common approach to generating inflow turbulence is to use synthetic inflow generation, which involves synthesizing turbulent fluctuations at the inflow boundary based on statistical properties of the turbulence.
In the Digital Wind Tunnel, the synthetic inflow turbulence generation is enabled by the Turbulence Inflow Tool (TInF) developed by the NHERI SimCenter. Multiple synthetic inflow generation approaches are implemented in TInF, including the Digital Filtering Method and Synthetic Eddy Method. The TInF tool can utilize the statistical properties defined by users to produce a time series of turbulent fluctuations at the inflow boundary, which can then be integrated into WE-UQ for running a CFD simulations. The TInF tool can be directly downloaded from github website.
There are two ways to specify the user-defined inflow boundary conditions that characterize the desired atmospheric boundary layer flows: direct specification and specification via prescribed functions.
<IP_ADDRESS>. Direct specification of inflow turbulence through uploading a table¶
In the context of direct specification, the Digital Wind Tunnel allows users to specify the inflow turbulence properties obtained from wind tunnel measurements, such as mean velocity, Reynolds stress, and length scales at the inflow boundary for a CFD simulation. For example, the following table Specifies one inflow condition based on wind tunnel measurements at the UF BLWT facility:
Note
Users need to adhere to the following table format when inputting the inflow parameters.
Column 1 points |
Column 2 mean velocity |
Columns 3 to 8 Reynolds STress Tensor |
Columns 9 to 17 Length Scales |
|---|---|---|---|
Users can upload the table with the .csv format by pressing the Browse button in the section of Model Parameters.
The Digital Wind Tunnel will modify the corresponding OpenFOAM case files based on the user’s inputs. In particular, the boundaryData/inlet directory inside the constant directory will be generated, which contains the information of the mean velocity profiles, Reynolds stress, and length scales along the height based on the uploaded table.
<IP_ADDRESS>. Specification via prescribed functions¶
If the wind tunnel data is not available, the user can also specify the inflow conditions through the embedded functions in the Digital Wind Tunnel. There are three functions to characterize the atmospheric inflow profiles: uniform function, exponential function and logarithmic function. The uniform function assumes a constant wind velocity over the entire simulation domain, but may not accurately represent the complex nature of atmospheric boundary layer flows. The exponential function is often used to represent the vertical profile of wind velocity in the atmospheric boundary layer. The logarithmic function is another commonly used function that also represents the vertical profile of wind speed in the atmospheric boundary layer, based on the assumption of a logarithmic variation of wind velocity with height.
The Digital Wind Tunnel offers several methods to generate synthetic turbulence at the inflow boundary, including digital filtering method. When a user selects a particular method, the Digital Wind Tunnel will modify the corresponding OpenFOAM case files based on the user’s inputs. For instance, if the digital filtering approach is selected, WE-UQ will automatically modify the inflow file U in the OpenFOAM case directory to set up the basic parameters for the approach.
The related entries are in the form of
boundaryField
{
inlet
{
type turbulentDFMInlet;
filterType exponential;
gridFactor 1;
filterFactor 4;
periodicInY false;
periodicInZ false;
cleanRestart false;
value $internalField;
}
}
3.4.3. Running a CFD simulation in the Digital Wind Tunnel¶
After the CFD model is set up, the next step is to run the CFD simulations. Press the RUN at DesignSafe button to submit the job to TACC Frontera HPC resources. Once the simulation is completed, download the data from GET from DesignSafe. Post-processing tools including paraView can be used to visualize and analyze the flow simulations. Once the CFD simulation with the specified inflow conditions has been performed, the velocity profiles downstream can be computed from the resulting data and compared with experimental measurements to validate the accuracy of the simulation. This validation step is important to ensure that the simulated results are reliable and can be used for further analysis including building design.
To further process the velocity profiles downstream, users can utilize the OpenFOAM embedded sampling functions such as probe to gather the velocity data and validate the profile. Additionally, users can refer to the Jupyter Notebooks project published in DesignSafe to visualize and plot the velocity profile downstream.


--- layout: post title: "No Title" ---
Not far from where I used to live there was a large area set aside for a cemetery but it was developed into a golf course instead. It would have been more useful to make it a cemetery.
A commenter on this story about running out of grave sites.
I think a golf course is a pretty inefficient and indulgent use of land but to suggest that using the land to store slowly decomposing bodies at regular intervals is better boggles my mind.


RUSH HOUR 2
Reviewed by Harvey Karten New Line Cinema Director: Brett Ratner Writer: Ross LaManna, Jeff Nathanson Cast: Jackie Chan, Chris Tucker, Roselyn Sanchez, John Lone, Zhang Ziyi, Alan King, Harris Yulin
Given the relative absence of real laughs and total absence of wit in this "Rush Hour" sequel, the all-important factor is the chemistry between the two principals. Fortunately, it's there in abundance, several times more so than the rapport between Antonio Banderas and Angelina Jolie in "Original Sin"--which is not saying a whole lot. Jackie Chan, of course, plays the guy with most of the physical action: he turns in some mind boggling stunts best of which involves not his pummeling the criminals but his slithering under the barred window that protects the earnings of a Las Vegas night club and his dangling on a bamboo pole about 15 stories from the ground. Chris Tucker, still the motormouth, still the guy whose role is considered "obnoxious but not so much as in the original" as so many critics have stated, provides the racial banter, the wide-eyed surprises, the ineffective womanizing.
"Rush Hour 2" cooks up no real plot, which is OK since nobody goes to this sort of movie expecting the slightest taste of originality. But Matthew F. Leonetti's lensing under the direction of Brett Ratner gives us armchair travelers a solid view of Hong Kong, particularly its gorgeous harbor showing the regular ferry connecting the two islands with the shots of the boldly lit advertisements the greatest paean to capitalism east of Las Vegas.
When Detective Inspector Lee (Jackie Chan) and L.A.P.D. Detective James Carter (Chris Tucker) turn up in Hong Kong, they're expecting a nice vacation filled with Tsingtao, women and song, Carter carrying a Cantonese-American dictionary that gets him into trouble every time--as when he hollers across to the women in the next car, "I want to see you naked and to sacrifice a goat." When Lee is called in by his commanding officer and assigned the job of tracking down the Triad gang and its deadly leader, Ricky Tan (John Lone), Carter sounds more than annoyed but we can see deep down that he's probably more excited about the action that awaits than he would be even in the massage parlor where he has chosen a quintet of women to relax his muscles.
The inevitable fight scenes that pit the two buddies against the sinister, unsmiling gang members are happily not over-edited but compared to what Jet Li faced in "Kiss of the Dragon," pitting Li against a veritable army of black belts, Jackie's skirmishes are a walk in the park.
The story by Jeff Nathanson and Ross LaManna moves along swiftly, from Hong Kong to L.A. to Vegas with nary of moment of zen-like meditation to accomplish any character-building. The humor, such as it is, is based on physical action except for one great racially tinged gag about an entertainer's color. The coolest stunt in the picture featured Jackie Chan with a grenade taped securely to his mouth while Hu Li (Zhang Ziyi), who is in cahoots with the Triad gang, is trying to get her finger on the button that will blow his 32 teeth into his brain--as the malignant star of "Crouching Tiger" puts it. Roselyn Sanchez and Zhang Ziyi could easily make the cut for the next Bond movie ("Bond 20") if the producers were scouting the field and Ms. Zhang in particular is absolutely gorgeous. A shame that Mr. Ratner could not have afforded more time for the woman who made "Crouching Tiger" such a vital and engaging movie.
Rated PG-13. Running time: 90 minutes. (C) 2001 by Harvey Karten<EMAIL_ADDRESS>========== X-RAMR-ID: 29079 X-Language: en X-RT-ReviewID: 242439 X-RT-TitleID: 1109232 X-RT-SourceID: 570 X-RT-AuthorID: 1123
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- layout: post title: 'Casuality Europe: Hype vs The Real Deal' date: 2006-02-08 00:00:00 categories: business mobile play ---
Casuality Europe: Hype vs The Real Deal
Joel Brodie, MD JoJu Games
Gabe Zichermann, Chief Marketing & Strategy Officer, Boonty Games
Michael Schutzler, SVP World Wide Games, RealNetworks
Mark Cottam, President MumboJumbo
Rugter Peters, CEO Zylom
Gamezebo: "The First Casual Game Review site". Launching tonight.
JB: Downloads: the business is stagnant, conversion rates at 1-2%
[ 3 votes for REAL, 1 for HYPE ]
MS: Microtransactions are more important than downloads. Real is getting out of the download business.
JB: Europe: the casual game download business grew up in the US and expanded beyond.
[ 4 votes for REAL ]
It's hard to call Europe a market; it's fragmented. Croatia won't be a top market for casual games, the UK will be.
MC: Most of our revenue comes from the retail market. It's hard to persuade retailers to sell casual games for $20.
MS: Gameplay doesn't travel very well across borders.
RP: The economics behind a game specifically for Norway just aren't there. Why design specific games for a specific market?
GZ: If TV was produced only in one market, it would be much more limited. The only possible place where territory-specific games can work is in the casual games market.
MC: Core game mechanic is the key thing, not localisation.
JB: Asian-style multiplayer games and microtransactions. 25% of the Korean population admit to having played a certain game.
[ 3 votes for HYPE, 1 for REAL ]
GZ: It's not going to happen in the US or the UK. People won't devote their energy to a multiplayer game.
MS: 120m online in the US, 40m in Korea. 25m Koreans are gamers. Why are there not 25m gamers in the US? What's interesting about these games - advanced avatars etc. - could come to the US and manifest itself differently.
MC: How will we do multiplayer games across portals?
MS: Some portals are more open than others... but there a number of ISPs and portals more interested in a good user experience than what plumbing is in the background.
MC: Portals don't want to see customers going to different portals.
[ Not sure how playing against someone on another portal equates to losing customers ]
MS: This begs for an open source API.
RP: Most user experience for downloaded games is single-player. The next phase in Europe/US will be about making multiplayer, but not necessarily MMO, games.
GZ: The Korean market operates in a very extreme way. What in Europe has suddenly gotten 30% of the population participating?
MS: No-one expected casual games to be interesting 10 years ago. Advanced multiplayer casual games will be big in the US in future. They won't be the same games as in Korea but they will express similar principles.
MC: This model would dramatically change the casual game industry: large publishers, large portals.
JB: XBox 360
MC: There's no reason to believe people won't play casual games on the Xbox 360. Consoles don't just appeal to the hardcore gamer.
[ Disagree: unless a console has some other usage besides games, I don't see how it'll get casual gamers to buy it ]
MC: Casual gaming is a lifestyle. No matter what device you use you should be able to play. We're going to see significant growth in this area.
RP: Of course there is an audience for casual games, but that doesn't mean that they'll shift to playing on an Xbox 360.
GZ: I can't see my grandmother sitting down with an Xbox 360.
MS: Microsoft is not interested in building a casual games platform. Xbox 360 is meant to be the media centre in the home. The focus is movies, music, etc. There'll be some people playing Bejewelled but mostly it'll be music.
GZ: The Xbox won't be responsible for a significant number of casual game plays.
MS: We're not arguing mobile.
MC: We don't have figures for revenues on Xbox Live.
Audience: casual games are about convenience. PCs have viruses etc.
MS: We're committed to the Xbox for the next 2 years. But will this be a big part of the casual game space? I don't know.
JB: Cross-platform gaming. Is this the holy grail of casual games: players on different platform participating in the same play? The technology doesn't work, no-one knows the revenue model, and there are form factor issues.
[ 2 votes for HYPE, 2 for REAL ]
GZ: The value is locked at the intersection of mobile and the PC.
MS: I want this to be true in the worst possible way. Has anyone tried the web-to-mobile experience? There are latency issues. What about device fragmentation - 300 different handsets, 11 languages, 50-70 carriers? That's lots of SKUs for one game.
MC: We've seen technology which takes the same product across many platforms. It depends on what kind of game: turn-based ones like darts work well and let us escape some of the technology issues. It won't come tomorrow but it will be part of the future.
RP: First multiplayer, then cross-platform. Multiplayer isn't really there yet.
JB: Retail. The only reason you got into casual games was to escape the disaster of retail. PC game sales are declining, margins shrinking and so on.
[ 3 votes for REAL, 1 for HYPE ]
MC: MumboJumbo is focused on bringing the best of content from download into retail. Casual titles outsell traditional games. We've yet to hit saturation at retail, it's absorbing as much content as we can bring.
MS: The number one selling game in Japan is "train your brain". Casual games will be a monster success on the DS.
MC: We're amazed at the places where we can sell casual games. We have a chain called Gamestop in the US: a very hardcore game audience. We think that mum and dad are taking their kid their to buy a $50 game and are buying themselves when they're there. The kind of consumer buying casual games is the kind of person who's shopping at retail outlets in Europe.
RP: I don't want our games to be in a computer shop, I want them in a clothes shop.
GZ: In 5 years time, will Yahoo Games be a top 5 retailer of games in the US as far as revenues go?
MS: No.
GZ: Will Real?
MS: No.
GZ: Walmart controls half the market in the US, everyone else divides up the rest.
MC: MumboJumbo is the 11th largest publisher of PC Software in N America. We'll need huge growth to get to be 8th.
JB: Developers. Are they an endangered species? The market is maturing into a hit-driven business. Can independent casual game developers survive?
[ 3 votes for HYPE, 1 for REAL ] : HYPE = casual games companies survive, REAL is they die.
JB: Clones: 3 x real, 1 x hype
JB: In-game advertising: 2 x real, 2 x hype
JB: Subscription services: 1 x hype, 3 x real
JB: China: 2 x real, 2 x hype
JB: Mobile: 4 x real
JB: Skill-based games: 3 x real, 1 x hype
JB: I'm a VC. What casual game company would you pitch me?
MC: Creating casual games is still an inexpensive business. The core mechanic is what's important. The right developer with a $1m budget could produce 8-10 games, one of which should be a hit.
GZ: Agree. Quality of content will become the most important issue over the next few years. There'll be a sea of clones and a handful of extraordinary titles.
RP: A company involved in delivering advertising to a CG audience in an effective manner.
MS: A DS developer
Q: What's the hot type of casual game this year?
MC: Not sure but it'll be on the Xbox 360 :)
GZ: More economic simulation games.
MC: An altered game mechanic. A clone won't be a big hit, most games are derivative.
RP: Lots of multiplayer games in the next 12 months.
Q: Microsofts angle with the XBox 360 is that porting from PC to xbox is easier than porting from PC to mobile.
JB: So, will MSs tools be tools for the casual game?

MC: Pulling a game over to the 360 isn't the answer, you need to take advantage of the platform.


I figured I'd add a little bit of my experience with Long term Provigil use. This may take awhile but I'll start at the top.
After I graduated college, something happened to me physically and mentally. Physically, I started to have extreme pain in my hip that shot down my leg. The pain was so bad at times that I would have one leg dragged almost useless behind me. It was through sheer will that I got around. Mentally, I felt like I was living in a fog. I was in a constant dream state and felt little emotion.
I started taking Hydrocodone, Oxycodone, Morphine, Hydromorphine, whatever I could for the pain. I found that it not only dulled the pain, it cut through this head fog.  Four months later, the pain was gone. It may come back one or two days every month, but not the every day pain I had before. Only thing was, I was hooked on Painkillers and they shot through the head fog like a laser.
One fateful day a coworker of mine gave me a 200mg Provigil tablet she received as a sample. The Provigil did more than cut through my head fog, it made me the person I used to be. With that knowledge and some professional help I got off the narcotics.
Five years later, I'm still taking Provigil and I can't believe how it saved me. If I ever doubt that, I can go without taking it for several days and relive the dreamworld that used to be my life. I am generally happy, focused, ambitious, and full of energy every day, provided I take the dose my body needs. Some days it's 200mg, some days I need 1200mg. I realize this is not a good thing. It doesn't seem to be a tolerance thing either. I never really step back to make it more effective. It either is or isn't at the standard dose for the day. Most days I take between 400-600 mg. I work now as an independent IT consultant and am without health insurance until my wife graduates from college and gets a teaching job. Because of the high price of Provigil I have been forced to purchase them overseas at less than $1.00 per tablet instead of $11 per. I still see my psychiatrist and he writes me prescriptions to 'Cover' me if I were ever in trouble from importing the drugs.
One bad side effect of the drug is that I have changed my lifestyle in a way that I have slowly become more isolated. All of my friends are drunks. I used to be a drunk. For some reason, I do not enjoy drinking since I started taking Provigil. I would rather pursue learning a new computer programming language, read a good book, play some type of strategy board game, anything but waste my life away in an alcohol induced haze. It has pushed this so far that I can not have more than four drinks without feeling the need to vomit.
I did use Provigil early on to try to stay up all night. I once made it fairly easily without sleep for 72 straight hours. In retrospect, I would never do that again. The exhaustion clouded my thoughts and while the Provigil kept me going, it was not without loss of focus. I try to get at least 6 hours of sleep a night. Without proper sleep, the true benefits of Provigil are lost. I would not recommend using it in this fashion.
This drug, as I said, changed my life. It isn't for everyone as two others I knew absolutely flew off the handle and abused it, devouring as much as 3000 mg in a single 24 hour period. They acted much akin to crack heads after several days and exhibited strong drug seeking behavior. It is perfect for me, maybe a disaster for others.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


-
1kg King Edward Potatoes
-
100ml milk
-
50g salted butter
-
Freshly grated nutmeg
-
Salt and pepper to taste
-
1kg King Edward Potatoes
-
100ml milk
-
50g salted butter
-
Freshly grated nutmeg
-
Salt and pepper to taste
-
1kg King Edward Potatoes
-
100ml milk
-
50g salted butter
-
Freshly grated nutmeg
-
Salt and pepper to taste
-
1kg King Edward Potatoes
-
100ml milk
-
50g salted butter
-
Freshly grated nutmeg
-
Salt and pepper to taste


Most websites will not need to create their own page elements because the built-in Page class should provide everything you need for most situations. If you do want to do something unusual with a page or set of pages on your class then you can either inherit from the built-in Page class or implement the IPage interface to fully customize how pages are rendered.
This is an advanced topic not recommended for most application developers, and any code you write using custom page elements is not guaranteed to work in future versions of this framework.


Unwanted Arsenal flop Mohamed Elneny rejected by AC Milan as he seeks transfer
Elneny has been farmed out on loan to Besiktas by Arsenal and his prospects over a long-term future at the Emirates look bleak - but Milan are not interested
by Irishmirror.ieMohamed Elneny has reportedly approached AC Milan over a transfer - only for the Italian giants to reject him.
Arsenal flop Elneny is curerntly on loan at Besiktas with his prospects of a long-term future at the Emirates looking increasingly bleak.
And, according to reports in Italy, he and an intermediary suggested to Milan that he would be an interesting option for the Rossoneri in the January transfer window.
But Milan chiefs are said to have taken a dim view of the 27-year-old's offer, believing he would be low down the pecking order of midfield options at the San Siro.
Elneny arrived at Arsenal from FC Basel in January 2016 for a fee in the region of £7million.
He played 16 times in all competitions in the second half of that season and managed 73 more outings in the next three campaigns before being farmed out to Besiktas, scoring twice overall.
The 77-cap Egypt international was part of the Gunners' 2016-17 FA Cup winning squad and he helped the north Londoners to the Europa League final last term, only for Arsenal to lose to Chelsea .
Internationally, Elneny tasted heartbreak with Egypt as they were beaten by Cameroon in the Africa Cup of Nations final in 2017.


Table of Contents
- Statistics for Machine Learning (7-Day Mini-Course) (Blog)
- Digital textbook on probability and statistics (!)
- Statisticians say the darndest things (Blog)
- Intro to Descriptive Statistics (Blog!)
Applications of Statistics in Machine Learning
-
Statistics in Data Preparation:
Statistical methods are required in the preparation of train and test data for your machine learning model.Tasks:
- Outlier detection
- Missing Value Imputation
- Data Sampling
- Data Scaling
- Variable Encoding
A basic understanding of data distributions, descriptive statistics, and data visualization is required to help you identify the methods to choose when performing these tasks.
-
Statistics in Model Evaluation:
Statistical methods are required when evaluating the skill of a machine learning model on data not seen during training.Tasks:
- Data Sampling
- Data Re-Sampling
- Experimental Design
Re-Sampling Techniques include k-fold and cross-validation.
-
Statistics in Model Selection:
Statistical methods are required when selecting a final model or model configuration to use for a predictive modeling problem.Tasks:
- Checking for a significant difference between results
- Quantifying the size of the difference between results
Techniques include statistical hypothesis tests.
-
Statistics in Model Presentation:
Statistical methods are required when presenting the skill of a final model to stakeholders.Tasks:
- Summarizing the expected skill of the model on average
- Quantifying the expected variability of the skill of the model in practice
Techniques include estimation statistics such as confidence intervals.
-
Statistics in Prediction:
Statistical methods are required when making a prediction with a finalized model on new data.Tasks:
- Quantifying the expected variability for the prediction.
Techniques include estimation statistics such as prediction intervals.
-
Summary:
- Data Preparation:
- Outlier detection
- Missing Value Imputation
- Data Sampling
- Data Scaling
- Variable Encoding
- Model Evaluation:
- Data Sampling
- Data Re-Sampling
- Experimental Design
- Model Selection:
- Checking for a significant difference between results
- Quantifying the size of the difference between results
- Model Presentation:
- Summarizing the expected skill of the model on average
- Quantifying the expected variability of the skill of the model in practice
- Prediction:
- Quantifying the expected variability for the prediction.
- Data Preparation:
Introduction to Statistics
-
Statistics:
Statistics is a subfield of mathematics. It refers to a collection of methods for working with data and using data to answer questions. - Statistical Tools:
Statistical Tools can be divided into two large groups of methods:- Descriptive Statistics: methods for summarizing raw observations into information that we can understand and share.
- Inferential Statistics: methods for quantifying properties of the population from a smaller set of obtained observations called a sample.
-
Descriptive Statistics:
Descriptive Statistics is the process of using and analyzing summary statistics that quantitatively describe or summarize features from raw observations.Descriptive Statistics are broken down into (Techniques):
- Measures of Central Tendency: mean, mode, median
- Measures of Variability/Dispersion: variance, std, minimum, maximum, kurtosis, skewness
Contrast with Inferential Statistics:
- Descriptive Statistics aims to summarize a sample.
Descriptive statistics is solely concerned with properties of the observed data, and it does not rest on the assumption that the data come from a larger population. - Inferential Statistics uses the sample to learn about the population.
It is assumed that the observed data set is sampled from a larger population.
-
Inferential Statistics:
Inferential Statistics is the process of using data analysis to deduce properties of an underlying distribution of probability by analyzing a smaller set of observations, drawn from the population, called a sample.
Inferential statistical analysis infers properties of a population, for example by testing hypotheses and deriving estimates.Techniques:
- AUC
- Kappa-Statistics Test
- Confusion Matrix
- F-1 Score
Statistical Hypothesis Tests
-
Statistical Hypothesis Tests:
Statistical hypothesis tests can be used to indicate whether the difference between two samples is due to random chance, but cannot comment on the size of the difference. -
Statistical Hypothesis Tests Types:
Statistical Hypothesis Tests in Python (Blog)- Normality Tests:
- Shapiro-Wilk Test
- D’Agostino’s K^2 Test
- Anderson-Darling Test
- Correlation Tests:
- Pearson’s Correlation Coefficient
- Spearman’s Rank Correlation
- Kendall’s Rank Correlation
- Chi-Squared Test
- Stationary Tests:
- Augmented Dickey-Fuller
- Kwiatkowski-Phillips-Schmidt-Shin
- Parametric Statistical Hypothesis Tests:
- Student’s t-test
- Paired Student’s t-test
- Analysis of Variance Test (ANOVA)
- Repeated Measures ANOVA Test
- Nonparametric Statistical Hypothesis Tests:
- Mann-Whitney U Test
- Wilcoxon Signed-Rank Test
- Kruskal-Wallis H Test
- Friedman Test
- Normality Tests:
Estimation Statistics
-
Estimation:
- Effect Size: Methods for quantifying the size of an effect given a treatment or intervention.
- Interval Estimation: Methods for quantifying the amount of uncertainty in a value.
- Meta-Analysis: Methods for quantifying the findings across multiple similar studies.
The most useful methods in applied Machine Learning are Interval Estimation methods.
Types of Intervals:
- Tolerance Interval: The bounds or coverage of a proportion of a distribution with a specific level of confidence.
- Confidence Interval: The bounds on the estimate of a population parameter.
- Prediction Interval: The bounds on a single observation.
Confidence Intervals in ML:
A simple way to calculate a confidence interval for a classification algorithm is to calculate the binomial proportion confidence interval, which can provide an interval around a model’s estimated accuracy or error.
Hypotheses are about population parameters. The Null Hypothesis includes Equality; others include Inequalities.
Significance Level (\(\alpha\)): is the probability that we reject the Null Hypothesis when in-reality it is correct.
People will buy more chocolate if we give away a free gift with the chocolate.
- Population: All days we sell chocolate
- Sample: the days in the next month (not so random - oh well..)
-
Set-up: on each day, randomly give out a gift with the chocolate or not (toss a coin)
- Treatments:
- Offering a gift
- Not offering a gift
- Hypotheses:
- \(H_0\): There is no difference in mean sales (for the population) for the two treatments.
- Math: \(\mathrm{H}_{0}: \mu_{\text {free sticker}}=\mu_{\text {no sticker}}\)
\(\iff\)
\(\mathrm{H}_{0}: \mu_{\text {free sticker }}-\mu_{\text {no sticker }}=0\) - English: There is no difference in the sales for the two treatments.
- Math: \(\mathrm{H}_{0}: \mu_{\text {free sticker}}=\mu_{\text {no sticker}}\)
- \(H_0\): There is a difference in mean sales (for the population) for the two treatments.
- Math: \(\mathrm{H}_{1}: \mu_{\text {free sticker }} \neq \mu_{\text {no sticker }}\)
\(\iff\)
\(\mathrm{H}_{1}: \mu_{\text {free sticker }}-\mu_{\text {no sticker }} \neq 0\)
- Math: \(\mathrm{H}_{1}: \mu_{\text {free sticker }} \neq \mu_{\text {no sticker }}\)
\(\iff\)
- \(H_0\): There is no difference in mean sales (for the population) for the two treatments.
One-Tailed: the hypotheses have an inequality (\(\leq\) or \(\geq\)) and an inequality (\(>\) or \(<\)).
Two-Tailed: the hypotheses have an equality (\(=\)) and a non-equality (\(\neq\)).
- P-Value: is a probability. Precisely, it is the probability that we would get our sample result by chance, IF there is NO effect in the population.
- How likely is it to get the results that you observe, IF the Null Hypothesis is true.
- If very likely: The Null Hypothesis is probably True.
- If very unlikely: The Null Hypothesis is probably False.
- Understanding where the p-value comes from (Vid)
- How likely is it to get the results that you observe, IF the Null Hypothesis is true.
A small p-value indicates a significant result. The smaller the p-value the more confident we are that the Null Hypothesis is wrong.
Statistical Significance: We have evidence that the result we see in the sample also exist in the population (as opposed to chance, or sampling errors).
Thus, when you get a p-value less than a certain significance level (\(\alpha\)) and you reject the Null Hypothesis; you have a statistically significant result.
The larger the sample the more likely the results will be statistically significant.
The smaller the sample the more unlikely the results will be statistically significant.
The Null Hypothesis for Regression Analysis reads: The slope coefficient of variable-2 is 0. Variable-2 does not influence variable-1.
Types of Data:
- Nominal: AKA Categorical, Qualitative. E.g. color, gender, preferred chocolate
- Summary Statistics: Use Frequency, Percentages. Can’t calculate Mean, etc.
- Graphs: Pie Chart, Bar Chart, Stacked Bar Chart.
- Analysis:
- Ordinal: E.g. Rank, Satisfaction, Agreement
- Summary Statistics: Use Frequency, Proportions. Shouldn’t use Means etc. Can use Mean for data like user-emotion.
- Graphs: Bar Chart, Stacked Bar Chart, Histogram
- Interval/Ratio: AKA Scale, Quantitative, Parametric. Types: Discrete, Continuous. E.g. height, weight, age.
- Summary Statistics: Use Mean, Median, StD.
- Graphs: Bar Chart, Stacked Bar Chart, Histogram; Boxplots; Scatters.
- Analysis:
- Column: Variable/Feature
- Row : Observation
Statistical Tests
Choosing a Statistical Test depends on three factors:
- Data (level of measurement?):
- Nominal/Categorical:
- Test for Proportion
- Test for Difference of Two Proportions
- Chi-Squared Test for Independence
- Interval/Ratio:
- Test for the Mean
- Test for Difference of Two Means (independent samples)
- Test for Difference of Two Means (paired)
- Test for Regression Analysis
- Ordinal:
Ordinal data can be classified with one of the other two depending on the context.
- Nominal/Categorical:
- Samples (how many?):
- One Sample: If we wish to compare a proportion or a mean against a given value, this will involve One Sample.
- Test for the Mean
- Test for the Proportion
- Two Samples: If we are comparing two different lots of things (e.g. men and women, people from different departments).
- Test for Difference of Two Proportions
- Test for Difference of Two Means (independent samples)
- One Sample, Two Measurements: If we have two sets of information on the same people/things, we have one sample with two variables.
- Chi-Squared Test for Independence
- Test for Regression Analysis
- Test for Difference of Two Means (paired)
- One Sample: If we wish to compare a proportion or a mean against a given value, this will involve One Sample.
- Purpose (of analysis?):
- Testing Against a Hypothesized Value:
- Test for Proportion
- Test for the Mean
- Test for Difference of Two Means (paired)
- Comparing Two Statistics:
- Test for Difference of Two Proportions
- Test for Difference of Two Means (independent samples)
- Looking for a Relationship between Two Variables:
- Chi-Squared Test for Independence
- Test for Regression Analysis
- Testing Against a Hypothesized Value:
Other Statistical Tests:
- ANOVA
- Spearman: The Spearman rank-order correlation coefficient is a nonparametric measure of the monotonicity of the relationship between two datasets.
Unlike the Pearson correlation, the Spearman correlation does not assume that both datasets are normally distributed. - Kruskal-Wallis: The Kruskal-Wallis H-test tests the null hypothesis that the population median of all of the groups are equal.
It is a non-parametric version of ANOVA. - Mann-Whitney:
- Anderson-Darling: The Anderson-Darling tests the null hypothesis that a sample is drawn from a population that follows a particular distribution.
This function works for normal, exponential, logistic, or Gumbel distributions.
Considerations:
- Residuals
- Bias
- Independence
- Post-Hoc
- Normality