Tagged: Phabstractic

0

Phabstractic: Generic Event (Universal Event System)

What I call the universal event system is basically several constructs built on top of the Publisher/Observer design pattern that asherwunk/phabstractic also implements.  The idea is that certain events happen in code, and objects listening for those events are notified.  I have built objects that include an actor, a conduit, a handler, which act on events, funnel events, categorize and fire off lists of actions, etc.

0

Objconfig (Python): Config Class

I decided that, for future projects, I needed to port asherwunk/phabstractic to the Python programming language (pyabstractic). Well, phabstractic relies on a couple packages itself that are in the PHP domain. One of these packages is zend-config, which is part of the Zend Framework programming library.

0

Phabstractic: Observer/Publisher Design Pattern

Observers and Publisher design patterns are very important in that they enable a certain amount of reactive programming. When you only want something to execute or occur when a particular event occurs it makes more sense to just test for state change then to hard code in an if clause for every step.

0

Phabstractic: Linked List Data Type

Doubly linked lists are important data structures for they enable a range of data to be stored in sequential order in memory without necessarily having to be spaced next to each other, or worry about a particular size. There are many advantages to storing data outside of an array like this, including the dynamic nature of its allocation and flexibility of editing the order of elements (including the addition and subtraction of elements).

0

Phabstractic: Map Data Type

Object stores, associative arrays, and Maps are important data structures. They are useful in statistical analysis, as well as for in memory database storage, such as a Redis implementation. The advantage of a map is that you don’t have to remember cryptic index values, as well it allows you to establish an abstract association between two data objects.

0

Phabstractic: Priority Queue Data Type

Priority Queues are very useful and usually, are implemented using heaps. This Priority Queue is implemented using an array that sorts itself rather than an overly complicated binary tree or heap. A priority queue is very useful for event-oriented programming, multitasking processes, and online message queues.

0

Phabstractic: Self-Sorting List Data Type

Self-sorting lists can be very handy. For instance, we could easily implement a priority queue by utilizing a sorted list, and that’s something we’re going to do, simply using the comparison method on competing priorities. Self-sorting arrays make putting everything in order in a messaging queue fairly simple.

0

Phabstractic: Restricted Lists Data Types

Lists are very important pieces of software engineering and implementation. With a restrictions predicate we are able to ensure variables in PHP are specific types. If we combine these two things we get a restricted list.

0

Phabstractic: Stack Data Type

“In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the most recently added element that was not yet removed.”

0

Phabstractic: Queue Data Type

Queues are very important pieces of code.  They are used in numerous many places including web services, transactions, and multi-process operating systems.

0

Phabstractic: List Data Types

Lists are very important abstract data types, and are used in many many different applications. Stacks are often used with programming languages, and in fact some programming languages depend entirely on a stack, such as Postscript.

0

Phabstractic: Restricted Set Data Type

By combining the restrictions predicate and the set we are able to configure a Set that only holds certain objects and types. This means I can make a set of integers, or a set of nodes, or a set of whatever without fear that the set will hold anything else.

0

Phabstractic: Structure Data Type

Structures are a data structure supported by many different languages. The usefulness I think of this particular abstract data type is the ability to be accessed as an array, enabling TaggedUnions to act like normal variables.

0

Phabstractic: Tagged Union Data Type

Many programming techniques and data structures – including rope (data structure), lazy evaluation, class hierarchy (see below), arbitrary-precision arithmetic, CDR coding, the indirection bit and other kinds of tagged pointers, etc. – are usually implemented using some sort of tagged union.

0

Phabstractic: Restrictions Predicate (Data Type)

Filters are important and very useful objects, allowing values or other logic to be filtered in and out of a particular set of data. Restrictions.php offers a way to use type checking in PHP, but in a very flexible and dynamic way. This can be useful for defining lists or sets that only accept certain values, which is useful for code cohesiveness and can reduce error checking.

1

Phabstractic: Set Data Type

Sets are very important mathematical constructions, and enable the computation of many other abstract data types. A set can have singularly exclusive values, or can have multiples of the same value in them. Sets can be compared using algebraic operators, and can exist as subsets of other sets. Set abstract data types can hold references as the data of an element, enabling some interesting behavior.

0

Phabstractic: Array Utilities

These methods are very useful for arrays, and overcomes some limitations that object conversion and array_unique have.  I would recommend using these functions instead of the built-in PHP functions for these purposes.

0

Phabstractic: Identity Trait Feature

The feature defines a static property for the using class.  This static counter remains unique on each poll for a new identity (in this case it’s an integer).  The $identityCounter must be ‘increasable’, that is, every time its accessed or ‘advanced’ it must be unique from all the identity values before it.  Counting up is a very easy way to accomplish this.

0

Phabstractic: Type Enumeration

With this data ‘type’ we would, for instance, be able to perform our own type check. However, our type check would be entirely dynamic, as opposed to a static typing system where, in short, the variables can’t change their type once they are initialized.