Profile cover photo
Profile photo
Grant Jenks
129 followers -
listen | learn | think | solve
listen | learn | think | solve

129 followers
About
Grant's posts

Post has attachment
Announcing the release of DiskCache version 2.0.2

What is DiskCache?
----

[DiskCache][1] is an Apache2 licensed disk and file backed cache library,
written in pure-Python, and compatible with Django. By leveraging a rock-solid
database library and memory-mapped files, cache performance can match and
exceed industry standard solutions. There’s no need for a C compiler or
running another process. [Performance is a feature][2] and testing has 100%
coverage with unit tests and hours of stress in production.

[1]: http://www.grantjenks.com/docs/diskcache/
[2]: http://www.grantjenks.com/docs/diskcache/cache-benchmarks.html

What's new in 2.0.2?
----

* All writes now explicitly use transactions internally. Significant
performance improvements were observed with many concurrent processes.
http://www.grantjenks.com/docs/diskcache/djangocache-benchmarks.html
* Add atomic increment and decrement methods: incr and decr.
http://www.grantjenks.com/docs/diskcache/api.html#diskcache.Cache.incr
* Add atomic method "add" for setting non-existant items.
http://www.grantjenks.com/docs/diskcache/api.html#diskcache.Cache.add
* Add method "read" like "get" but returns open file handle.
http://www.grantjenks.com/docs/diskcache/api.html#diskcache.Cache.read
* Add methods to create and drop tag index to evict items by tag.
http://www.grantjenks.com/docs/diskcache/tutorial.html#cache
* Cache and FanoutCache now support iteration.
http://www.grantjenks.com/docs/diskcache/api.html#diskcache.Cache.__iter__
* FanoutCache and DjangoCache methods support "retry" parameter for timeouts.
http://www.grantjenks.com/docs/diskcache/tutorial.html#djangocache
* Use reset method to update settings rather than setting attributes.
http://www.grantjenks.com/docs/diskcache/api.html#diskcache.Cache.reset
* BugFix: The size of small bytes objects was double-counted.
* BugFix: FanoutCache now uses "size_limit / shards" to limit shard volume.
* BugFix: Changing "cull_limit" to zero will now only disable culling.
* BugFix: Allow binding "close" and "clear" as signal handlers.
* Re-run benchmarks and update tables and graphs.
* Many documentation improvements and more examples.

Features
----

* Pure-Python
* Fully Documented
* Benchmark comparisons (alternatives, Django cache backends)
* 100% test coverage
* Days of stress testing in production
* Performance matters
* Django compatible API
* Thread-safe and process-safe
* Supports multiple eviction policies (LRU and LFU included)
* Keys support “tag” metadata and eviction
* Developed on Python 2.7
* Tested on CPython 2.7, 3.4, 3.5 and PyPy

Links
---- - Documentation: http://www.grantjenks.com/docs/diskcache/
- Download: https://pypi.python.org/pypi/diskcache
- Source: https://github.com/grantjenks/python-diskcache
- Issues: https://github.com/grantjenks/python-diskcache/issues

Please upgrade.

Post has attachment
+PyCon 2016 Python Sorted Collections talk text, slides, video: http://www.grantjenks.com/docs/sortedcontainers/pycon-2016-talk.html SortedContainers is pure-Python but fast-as-C. Thank you +Python!

Post has attachment
Announcing the release of SortedContainers version 1.5.2

What is SortedContainers?
-------------------------

SortedContainers is an Apache2-licensed, pure-Python implementation of sorted list, sorted dict, and sorted set data types that is fast-as-C implementations with 100% code coverage and hours of stress testing. The project is fully documented with performance benchmarks and comparisons to alternative implementations.

What's new in 1.5.2?
--------------------

* Published Performance at Scale:
http://www.grantjenks.com/docs/sortedcontainers/performance-scale.html
- Benchmarked SortedList with 10,000,000,000 (ten billion) elements.
- Detailed runtime complexity and memory advantages.
* New method: ``SortedDict.peekitem(index=-1)``
* Published SF Python Meetup Holiday 2015 Lightning Talk:
http://grantjenks.com/docs/sortedcontainers/sf-python-2015-lightning-talk.html
* Changed development status to Production/Stable.
* Updated alternative implementations.
* Updated runtime comparison to use CPython 3.5.
* Numerous docs improvements with better examples.
* Minor source changes for readability and Pylint.

Links
----- - Documentation: http://www.grantjenks.com/docs/sortedcontainers/
- Download: https://pypi.python.org/pypi/sortedcontainers
- Source: https://github.com/grantjenks/sorted_containers
- Issues: https://github.com/grantjenks/sorted_containers/issues

This release is backwards-compatible. Please upgrade.

Post has attachment
Announcing the release of DiskCache version 1.6.3

What is DiskCache?
----

[DiskCache][1] is an Apache2 licensed disk and file backed cache
library, written in pure-Python, and compatible with Django. By
leveraging a rock-solid database library and memory-mapped files,
cache performance can match and exceed industry standard solutions.
There’s no need for a C compiler or running another process.
[Performance is a feature][2] and testing has 100% coverage with unit
tests and hours of stress in production.

  [1]: http://www.grantjenks.com/docs/diskcache/   [2]: http://www.grantjenks.com/docs/diskcache/cache-benchmarks.html

Features
----

* Pure-Python
* Fully Documented
* Benchmark comparisons (alternatives, Django cache backends)
* 100% test coverage
* Days of stress testing in production
* Performance matters
* Django compatible API
* Thread-safe and process-safe
* Supports multiple eviction policies (LRU and LFU included)
* Keys support “tag” metadata and eviction
* Developed on Python 2.7
* Tested on CPython 2.7, 3.4, 3.5 and PyPy

Links
---- - Documentation: http://www.grantjenks.com/docs/diskcache/
- Download: https://pypi.python.org/pypi/diskcache
- Source: https://github.com/grantjenks/diskcache
- Issues: https://github.com/grantjenks/diskcache/issues

This release is backwards-compatible. Please upgrade.

Post has attachment
The Missing Battery: Sorted Collection Types - My talk and slides from the SF Python Meetup 2015 Holiday Party.

Post has attachment
Announcing the release of SortedContainers version 1.4.2

What is SortedContainers?
-------------------------

SortedContainers is an Apache2-licensed, pure-Python implementation of
sorted list, sorted dict, and sorted set data types that is fast-as-C
implementations with 100% code coverage and hours of stress testing.
The project is fully documented with performance benchmarks and
comparisons to alternative implementations.

What's new in 1.4.2?
--------------------

* Updated docs to warn against editing sorted containers during
  iteration. Don't do it.
* Updated SortedList* comparisons to match Sequence comparison as described in
  CPython Language Reference Section 5.9.
  https://docs.python.org/2/reference/expressions.html
  This also lead to the discovery of a bug in the blist.sortedlist
  implementation (filed as Issue #77 in their bug tracker).
  https://github.com/DanielStutzbach/blist/issues/77
* Updated SortedSet comparison to raise NotImplemented on type mismatch.
* Bug Fix: Fixed reference to self._dict in sorteddict.ValuesView.count.
* Bug Fix: SortedSet.__ior__ now calls `update` rather than `union`.
* Improved performance of SortedList.__getitem__ by 35% for head and tail
  indexing.
* Improved performance of SortedList.pop by 35% by inlining fast-paths of
  internal indexing methods.
* Improved performance of `del sorted_list[:]` by simply calling `clear`.
* Improved performance of `sorted_list[:] = values` by simply calling `clear`
  then `update`.
* Updated SortedListWithKey to inherit directly from SortedList. Removed
  redundant methods. Merged sortedlistwithkey.py into sortedlist.py.
* Updated SortedList to accept a key-argument callable that will dynamically
  return a SortedListWithKey instance.
* Added new _init_ benchmark comparison. SortedContainers is generally 5-10x
  faster than other implementations.
* Added reference to ruamel.ordereddict.sorteddict on performance comparison
  page at http://www.grantjenks.com/docs/sortedcontainers/performance.html
* Removed SortedList._slice in favor of slice.indices.
* Removed SortedList.as_list in favor of `list(sorted_list)`.
* Updated benchmarks using CPython 2.7.10 and CPython 3.4.3. See docs for
  complete version strings.
* Added CPython 3.5 runtime to test frameworks configs.
* Added docs reference to Debian distributions at python-sortedcontainers and
  python3-sortedcontainers.

Links
----- - Documentation: http://www.grantjenks.com/docs/sortedcontainers/
- Download: https://pypi.python.org/pypi/sortedcontainers
- Source: https://github.com/grantjenks/sorted_containers
- Issues: https://github.com/grantjenks/sorted_containers/issues

This release is mostly backwards-compatible. Please upgrade.

Post has attachment
Google Ad Grants from 2012. Some of the content has changed but the core message is the same. For the best results in website optimization consider partnering with local Google partners that know the market condition of the neighborhood you're in or specific niche of the service you offer. In the California Bay Area check out: http://www.grantjenks.com/adwords-for-nonprofits/

Post has attachment
Announcing the Release of Tribool Version 0.6.2

What is Tribool?
----------------

Tribool is an Apache2 licensed module for three-valued logic. More commonly
found in SQL, three-valued logic defines truth tables over the values True,
False, and Indeterminate. The third value is considered a state being one of
True or False. Tribool implements logical operators on these values as
immutable singletons. The implementation is pure-Python with 100% code coverage
and complete documentation.

What's new in 0.6.2?
-------------------- - Implemented _copy_ and _deepcopy_ methods as part of `copy` module
  protocol.
- Implemented _reduce_ as part of `pickle` module protocol.
- Changed subclassing from `object` to `tuple` to prevent mutation of internal
  state.

Links
----- - Documentation: http://www.grantjenks.com/docs/tribool/
- Download: https://pypi.python.org/pypi/tribool
- Source: https://github.com/grantjenks/python_tribool
- Issues: https://github.com/grantjenks/python_tribool/issues

This release is backwards-compatible. Please upgrade.

Post has attachment
Announcing the Release of WordSegment Version 0.5.2

What is WordSegment?
-------------------------

WordSegment is an Apache2 licensed module for English word segmentation, written in pure-Python, and based on a trillion-word corpus. Based on code from the chapter “Natural Language Corpus Data” by Peter Norvig from the book “Beautiful Data” (Segaran and Hammerbacher, 2009). Data files are derived from the Google Web Trillion Word Corpus. It's implemented in pure-Python with 100%
code coverage and complete documentation.

What's new in 0.5.2?
-------------------- - Updated documentation with tutorial and API reference.
- Removed unigrams longer than 24 characters.
- Bug Fix: Converted all bigrams to lowercase.
- Bug Fix: Sanitize input text by lowercasing and removing non-alphanumerics.
- Replaced "memoize" decorator with local memo-dict for server use.

Links
----- - Documentation: http://www.grantjenks.com/docs/wordsegment/
- Download: https://pypi.python.org/pypi/wordsegment
- Source: https://github.com/grantjenks/wordsegment
- Issues: https://github.com/grantjenks/wordsegment/issues

This release is backwards-compatible. Please upgrade.

Post has attachment
Announcing the release of SortedContainers version 0.9.6

What is SortedContainers?
-------------------------

SortedContainers is an Apache2-licensed, pure-Python implementation of
sorted list, sorted dict, and sorted set data types that is fast-as-C
implementations with 100% code coverage and hours of stress testing.
The project is fully documented with performance benchmarks and
comparisons to alternative implementations.

What's new in 0.9.6?
-------------------- - Added `islice` method to all data types. This method is similar to
  `__getitem__` index slicing but returns an iterator, similar to
  itertools.islice but without the `step` parameter. `islice` also has a
  default argument `reverse=False` which will yield items from the slice in
  reverse order when True.
- Added `irange` and `irange_key` methods to all data types. Like `islice` this
  method returns an iterator but slices the data type from a given minimum to
  maximum value. By default both the minimum and maximum are included in the
  range and a parameter `inclusive=(True, True)` allows this to be changed. A
  default argument `reverse=False` will yield items in reverse order when True.
  The `irange_key` variant permits constructing ranges directly from the
  indexed key, similar to `bisect_key` and related methods.
- Minor fix to index checking.
- Minor documentation improvements.

Links
----- - Documentation: http://www.grantjenks.com/docs/sortedcontainers/
- Download: https://pypi.python.org/pypi/sortedcontainers
- Source: https://github.com/grantjenks/sorted_containers
- Issues: https://github.com/grantjenks/sorted_containers/issues

This release is backwards-compatible. Please upgrade.
Wait while more posts are being loaded