Post Pay Counter: WordPress payment manager

Featured

banner-772x250

Easily calculate and handle authors’ pay on a multi-author blog by computing posts’ remuneration basing on admin defined rules. The administrator can specify criteria upon which payments should be computed and the stats will immediately be viewable. Both a general view with all users and a specific one for a author are possible. It can easily help you implement a revenue sharing/paid to write model for your business.

Continue reading

Does C++ delete operator really frees memory?

Well, I have been wondering about this for quite a while now, and I have tried to run some tests to better understand what’s going on under the hood. The standard answer is that after you call delete you should not expect anything good from accessing that memory spot. However, this did not seem enough to me. What is it really happening when calling delete(ptr)? Even though there no standard behavior, what could happen, anyway? Here’s what I’ve found. I’m using g++ on Ubuntu 16.04, so this may play a role in the results.

What I first expected when using the delete operator was that the freed memory would be handed back to the system for usage in other processes. Let me say this does not happen under any of the circumstances I have tried.

Memory released with delete still seem to be allocated to the program it first allocated it with new. I have tried, and there is no memory usage decrease after calling delete. I had a software which allocated around 30MB of lists through new calls, and then released them with subsequent delete calls. What happened is that, looking at the System monitor while the program was running, even a long sleep after the delete calls, memory consumption my the program was the same. No decrease! This means that delete does not release memory to the system.

In fact, it looks like memory allocated by a program is his forever! However, the point is that, if deallocated, memory can be used again by the same program without having to allocate any more. I tried to allocate 15MB, freeing them, and then allocating another 15MB of data after, and the program never used 30MB. System monitor always showed it around 15MB. What I did, in respect to the previous test, was just to change the order in which things happened: half allocation, half deallocation, other half of allocation.

So, apparently memory used by a program can increase, but never shrink. Continue reading

Looking for help with Post Pay Counter development

Post Pay Counter provides an easy way to manage authors payments on a WordPress website. Three years ago was completely redesigned to meet the demands of its growth, and shortly after Post Pay Counter 2.0 was released, a PRO version followed as well. Besides that, there are now 15 addons that further extend Post Pay Counter features.

The project has always been 100% managed and developed by me, but at this point I would gladly use some help. The project started for a niche of websites, but now more and more websites that need this kind of service are emerging, and Post Pay Counter has basically no competitors. The free version has an average of 4.7/5 stars on WordPress.org. It is nearing 50 thousands downloads, and there are several satisfied users who turn PRO, and could never go back.

I have had stuff on my to-do list for years, and more is getting on it. There 14 issues on GitHub now, but the list will just grow longer as I move all my private notes over there into public issues. Several addons would need new features, new addons need to be developed and the whole ecosystem would gladly welcome a breath of fresh air coming from people other than myself. There are several things that need to be done on the website as well, and I would gladly get my hand a bit more free to work on those.

So, how does this relate to you?

Whether you are a hard core, experienced developer, or just starting out with WordPress development, I’d love to hear from you! I’d like this project to involve more people than just me and, at this point, it looks like there is something worth getting involved into. Do get in touch for anything, even if I have not explicitly mentioned it, if you feel it could be useful/interesting for the project!

Getting involved in an open source project already having a considerable user base is a very good way to learn your way around WordPress coding, make some experience or just contribute to a free project and get credit for your work. There’s really a lot to do: from tutorial writing to marketing and promoting; from bug fixing to feature implementing.

I’m not yet in the condition claim I will pay anybody for their work on the project – however, if you want to jump into addon creation, or if you want to contribute to the project with any product you could make, then brilliant, let me know! Paid addons sold on the PPC website will give you 75% of the revenue they generate. Of course you are also free not to market them in the official site. Several of the current GitHub issues are actually just ideas for future addons, so you have a place to start from!

Tips and advice on being a freelance in Information Technology

What follows is Javier Silva’s interview to me. The interview is mostly focused on how what it is like to be a freelance in the IT field and how to start as a programmer (and how that may evolve into a business). It was first published on his blog in Spanish. He also did a small review of my Post Pay Counter plugin.

Please, Introduce yourself!

I’m Stefano from Italy. I study mathematics, but there are very few things I am not interested into. I am a web developer, a walker, a reader, and an amateur photographer. Those are just the things that take most of my time, but don’t believe I don’t do anything else!

You work as web developer… where did you study it? or how did you learn it?

I’ve never taken any classes on web developing or on any IT subject. I have just always been into computers and technology, and by reading/replying on forums, experimenting and lots of tutorials I have learnt all that I know. When I was 12, at school we were covering divisors, prime numbers, factorization, and the like, and… you know, homework was boring as hell! I was just tired of having to figure out whether a number was prime, or what its divisors were, so I wrote a little script that did it for me. That evolved in writing more complex software and slowly learning to write decent-quality code.

Homework was boring as hell! I was just tired of having to figure out whether a number was prime, or what its divisors were, so I wrote a little script that did it for me.

There are a lot of resources out there for people willing to learn. I believe the key is to play around and experiment. And, as always, a lot of practice is important.

What is your point of view about the “programming career”? Is it a competitive profession?

I believe it definitely is. Unless you aim at working within your own city, meeting customers face to face, you really face a lot of competition. If I am hiring someone to develop something for me, and I don’t require they live in my same city, then I can pick anyone from all over the world. And good luck to convince me that you are the best developer, and that I really want you.

Continue reading

WordPress function url_to_postid not working with Anspress

With the Anspress theme/plugin, using the WordPress native function url_to_postid() on a question permalink returns the page ID of the base page. For example,

would return the page ID of the /questions page.

To get the WP question ID of this-is-the-question, use the following:

(using get_post_types() instead of ‘questions’ allows the call to work even with permalinks of non-question contents.)

bbPress – Anonymous Subscriptions

This add-on plugin for bbPress will allow anonymous users to subscribe to topics and get email notifications when a new reply is posted. The notification email includes an unsubscribe link.

bbPress notifications will keep to go out to registered users, this plugin only extends the thing to anonymous posters as well!

Download (it’s free!)

bbPress - Anonymous Subscriptions

A case example with >100% subscription rate

This is vital for support forums, for example. On Post Pay Counter support forums, I did not want customers to sign-up: I wanted them to be able to request support in a matter of minutes, without any hassle. I liked the idea of “enter your name and email and you’re done!” But I also felt like they needed to be notified when someone replied to help. It was not compulsory, of course, but I would have wanted it as a customer.

Continue reading

A method for calculating pattern relevance in a text

This article aims at presenting a method for computing the relevance of a given string (pattern) in a text. This algorithm is at the core of my WordPress plugin Smart Tag Insert.

First of all, there is a difference between a simple pattern matching and computing text pattern relevance. The question we are trying to address here is the following: I have a string, and I would like to know how much that string is relevant for a specific text. For example, let’s say we have “download music” as the string of which relevance we are interested into. How can we determine how much relevant it is for a specific article?

The simple approach

The easy thing one could try is run a pattern match of “download music” in the article text. That is okay, but suppose the article contained strings like “download the music”, or “download some music”, or “downloading music”, or “download good quality music”. It is clear that, to a human, all these strings are equivalent when trying to understand what the article is about: it is about downloading music, regardless of whether it is good, bad, a lot or little.

A simple pattern match would fall short, because it would exclude all those other strings and make it look like the content is not very much about downloading music, just because “download music” was never found exactly that way.

So the first point we need to acknowledge if we want to try to teach a machine to compute text pattern relevance, is that we need to find a way, at least a rough way, to teach it to grasp the meaning of the content.

Continue reading