Just watched the recent trailer of Game of Thrones (GOT) and on taking a look back from season 1 to what’s to come, I could find similarities on how code has evolved over the years and what eventually would lead to automating itself.
With the rise of code repositories through collaboration and tools which provide conversions of UI to code is now a possibility, it’s only a matter of time where a conceptual functionality can be written through crawling repositories and building code foundations.
Just like the white walkers rise in GOT, the data driven approach will be replaced by a visual execution method.
At Pupa Clic were building integrated solutions for upcoming real world problems and creating a community of people who not engineer but engineers who create. We’re creators of next generation solutions in Web, App and IoT. If your a person who has a vision similar to ours, hit us up at our careers page | www.pupaclic.com
Someone recently shared me the video from TheGatesNotes where Bill Gates and Warren Buffett had a short discussion about their past. The following lines moved me and on looking back made me realize it was spot on
If you see somebody with even Reasonable Intelligence and a Terrific Passion for what they do and can influence people around them to march even when those people cant see over the top of the next hill.
Been tweaking around with PHP-ML at Pupa Clic and felt it’s time people recognized PHP as an apt platform for machine learning implementation since its upgrade – PHP 7.
Machine learning algorithms are notoriously CPU intensive. With PHP 7 being touted as twice as fast as its predecessor, is it now practical for simple machine learning tasks? In this post, it is compared to both Java and Python to show why speed isn’t everything.
Despite years of flak, PHP still dominates the server-side scripting language market. Rightly or wrongly, part of its success is that it is a forgiving language that is incredibly accessible. In the right hands, a developer can quickly build all manner of web applications — in the wrong hands, one can quickly make a mess! This flexibility not only has cost at the code level. Internally, PHP has to do a lot of juggling and this is where processor time is lost.
Each minor version of PHP 5 has made small incremental improvements to performance, but PHP 7’s refactored core is something we haven’t seen before. Zend’s infographic shows big improvements for many frameworks and CMSs. These traditional uses for PHP typically hit databases — ideal for PHP 7’s optimised data structures. Most of the time spent on machine learning problems is actual computation so will there be similar returns even when not juggle data types?
The motivation for this post was my wish to run simple classification tasks natively in PHP. In the past, I have used PHP/Java Bridge but it has always felt a bit wobbly. Now I prefer creating a simple web service for PHP to query. This also means the brain can be moved off the web server to a more suitable machine. This disconnect still feels like overkill for simple problems like spam filtering and it adds a point of failure. Would it not be nice to be able to query the model natively rather than through an API? Does PHP 7 now make this feasible?
To measure PHP 7’s grunt, we will be using the k-nearest neighbours algorithm — probably the most basic classifier there is. It is like sticking a pin in a scatter chart and determining the class by the colours of the surrounding points. In the example below, we assume this point belongs to the red pluses because of the three nearest, two were of this class.
K-nearest neighbour is known as a lazy classifier — there is no model per se — all the work is done when we come to classify a new instance. That is why this classifier is ideal for this experiment. To keep things simple, we’re only looking for the closest neighbour (k = 1). The script will have to calculate the distance to every point in our dataset in n-dimensional space to find the closest match. This means lots of floating point operations and a more efficient language implementation means more CPU time is spent working on our problem rather than itself.
The script loads the Iris dataset from a CSV and then runs leave-one-out cross validation continuously for thirty seconds. The more iterations classified in this time — the better the performance of that language implementation. We don’t care about accuracy so we will be discarding the answer and simply move to the next instance.
The source code for each language is available on GitHub. I have tried to code each in the style of that language rather than a straight port from PHP. Sorry if it’s not the way you would implement it. I am sure there are a myriad of ways to squeeze more performance from each test but we are trying to imitate how someone would reasonably use the languages.
To keep things fair, the benchmarks will be run on the same single-core virtual machine. We are not interested in memory use but the VM only has 1GB of memory available, not that a 150-instance dataset should make much of a dent in that.
Running the benchmarks multiple times showed there is a small variance from one run to the next. For this reason, the exact figures have been omitted from the charts. Feel free to run the code yourself if exact numbers for a toy problem matter to you.
These implementations of the PHP and Python languages are running simply as interpreters. Java can be run in an interpretive only mode but no one would do that in the real world.
Here we see PHP 5.6 and Python performed similarly but PHP 7 stands out with a 35% improvement on its predecessor. The Python 3 implementation is marginally slower than Python 2 for reasons beyond the scope of this article.
Unlike Zend’s benchmarks where PHP 7 sometimes outperforms HHVM, our benchmarks show HHVM is crunching nearly 30% more instances than PHP 7. If your PHP is CPU-intensive and you’re not using strange extensions, HHVM could help you. PyPy clearly dwarfs HHVM but like HHVM, there are compatibility issues that could drastically slow your development down instead. More on this in the discussion below.
Adding the Java benchmark result to this graph makes it useless. Java is just in another league. Outside VirtualBox, it is pushing nearly one million instances per second!
It is clear that any dynamically-typed language, compiled or not, will be vastly slower than something like Java. Hopefully, you’re not surprised by that. Once HotSpot kicks in, the Java code is running much closer to metal.
But as fun as performance benchmarks are, it is clear there is more to the story than speed, or we would all be using assembly language. Anyone who has dabbled with Java will know how it can sometimes feel like walking through molasses compared to dynamically-typed scripting languages. This reminds me of something a lecturer pointed out during the first year of my undergraduate course: developer time is vastly more expensive than CPU time, and this gap is only going to widen further. Using a language or implementation just because it performs better in a benchmark is a form of premature optimisation.
If we use human time as the primary measure of efficiency, it makes sense to use the best performing language that will meet the requirements and that the team can maintain. Unlike the benchmarks above, in the real world one would use a machine learning library and this is where PHP falls flat on its face. There just isn’t a viable machine learning library for PHP. Any advantage one would gain from using the common language of the team goes straight out of the window when they start writing mountains of code from scratch. A Python team would have the luxury of using NumPy and scikit-learn — both of which are pre-compiled so there is a significant performance boost there too.
Until there is a viable machine learning toolkit for PHP, don’t even bother. Even if PHP 7 was faster than the competition, the development time will not be made back in all but the most exceptional circumstances. It’s all about using the right tool for the job and PHP doesn’t even have any tools to offer.
So to answer the question: Is PHP now suitable for machine learning? Practically, no — not until there is a viable library available. For now, if you want to keep your codebase heterogeneous, use a web service like Google’s Prediction API or Amazon Machine Learning.
Email response rates are signals of your reputation. Under 10%? You’ve got a problem.
You’re only as good as the people you know, that’s why it’s so worth it to make your reputation a priority. Your brand is what people think or say about you when you’re not around. When they see your name in their inbox, think about what you want their first reaction to be, If you follow these principles, your network will naturally widen into a solid foundation.
It’s not just about having another high-caliber LinkedIn connection or the email address of a person. Those are nice to have, sure, but the real win is knowing those people will respond when you need it.
A lot of people have asked me to help them in SEO post a project completion though we’re an end to end product development firm at Pupa Clic. Its basically due to,
Ease of work
On a developer perspective SEO is hardwork due to constant monitoring of keywords towards a particular boost and the idea of examination / analysis of the existing content in the internet requires a lot of post work evaluation rather than creating something new.
Usually SEO comprises of,
Keywords Research and Placement
Add Meta Tags ,Meta Description, Meta Language
Creation of Robots.txt
Sitemap Creation and submit to search engines
H1, H2 ,H3, Tags
Remove Broken Links
SEO Friendly URL
Image Alt tag, images optimization
Site Navigation Issues
Back links for site rank improvements concentrating on specific keywords
Weekly – Monthly reports
Comparison with previous reports
Advice for further optimizations
With on site SEO predominantly leading to SEO related code modifications on the platform, and site speed optimizations will lead to a boost in traffic, through performance improvements by
3rd Party internet pages such as AMP, Instant Articles, etc
It would be with best interests of the firm to bundle SEO with their maintenance post project deployment to maintain their works in trusted, reliable hands. Hence we’ve upgraded our deployment policy to cater towards SEO as part of our maintenance routine. Rightly stated by late Mr Steve Jobs
Looking back 5 years from now, I can still remember walking the streets of Chennai with an ideology that people get technology. It was then I met a good friend of mine and explained to him the concept of a mobile app talking to electronics and his answer was “Hmm, hard to sell seeing not many had a smartphone”.
We now live in an era of technological breakthroughs were thoughts have been transformed to products and idealogies to implementations.
If you can generate Rs. 1 crore in annual revenue at Rs. 20 lakhs net profit, your business is viable but may not be fundable. If you can generate Rs. 10 crore in annual revenue at Rs. 20 crore net loss, your business is fundable but may not be viable. Always remember, when you raise a chicken for eggs, its overall health and survivability is important; when you raise a chicken for meat, the only thing that is important is its growth, that too as fast as possible.
My firm Pupa Clic is a services based firm so from day one the monetary aid was backed by a client to support their project development. From our first client Swan Electric Consortium and Engineering, no debts, Bootstrapped and strong our aim is to branch global this year.
I’ve been getting a lot of queries pertaining this topic, and it comes down to asking the question’s
How quickly do we need the solution ?
Which is the right technology to render the output ?
Do I need a scallable solution or a quick remedy ?
Outsourcing tech development is probably the best solution for any SME or Enterprise cause the outcome of the solution is pretty much structured and streamlined with regards to its functionality. But for a Researcher or Startup it should be the most best sought solution during its initial ideation stages as the following gets sorted during its development cycle :
When we ideate a product, the focus is on yielding an outcome but not the tech structures which render its capabilities, that’s where an outsourced firm plays a key role. They shape the solution, render it’s outcome and most often make sure its future ready towards other implementations such as Progressive Web Apps which is a recent trends in the Web Tech Space. You can try the basic version by clicking on the mobile icon and adding to home screen when viewing my site on your mobile browser.