Back in 2011-2012 I put a lot of time and energy into creating a simple and sleek JSON API framework for quick intelligence prototyping; an API capable of managing JSON objects, and performing a lot of smart computing tasks. Fast forward to 2016, I decided to open source the codebase, sharing it with the world because I believe this framework, although a bit outdated by now, still has the potential to help others.
SQLpie™ is an open source API framework that uses all sorts of SQL statements to creatively perform all kinds of computing tasks (thus, SQLpie). With SQLpie, developers can store JSON objects in a SQL database and run a lot of information retrieval and machine learning tasks on the data, covering areas such as: Text Classification, Text Summarization, Collaborative Filtering (item recommendation and similarity), Boolean/Vector Search, Document Matching, TagClouds, etc… The project is 100% written in Python and runs on top of a MySQL database.
The SQLpie project went after a lot of big challenges, and although I do not advocate that it includes the best implementations to handle all of those tasks, I believe the combined effort can help people quickly prototype new ideas, and hopefully, create new and awesome products.
Its API services can help developers with the following type of questions:
• How can one store JSON documents? (answer: documents services)
• How can one keep track of document relationships? (answer: observations services)
• What documents exist for query Q? (answer: indexing and search services)
• What documents are located near location L? (answer: geosearch service)
• What top keyphrases and keywords relate to query Q? (answer: tagcloud search service)
• What are the key sentences, entities, and terms associated with document D? (answer: summarization service)
• What documents are similar (or relate) to document D? (answer: document matching service)
• Will user U like document D? (answer: classification service)
• How likely is user U to like document D? (answer: classification service)
• What documents is user U likely to love based on user data? (answer: recommendation service)
• What other users have a document taste similar to user U? (answer: similarity service)
~ Andre Lessa
Let’s start with the kind of question you are likely to ask yourself the first time you come across something new.
“What do I need a Benchmarking Engine for?”
A possible short answer is this: To efficiently and automatically identify opportunities for business performance improvement, customer/vendor satisfaction, and revenue generation.
Now for a more comprehensive answer… Continue reading
My thoughts about this article: “Meet Ross, the IBM Watson-Powered Lawyer“:
Interesting concept. In the demo, I see a Natural Language parser for the user’s query, a search engine capable of indexing a ton of documents, and a recommendation engine that updates document scores based on the user’s pos/neg feedback… should be an interesting project to re-create a similar demo without Watson.
Today is a great day.
Our technology is really cool. It takes structured data (think big spreadsheets!) and finds insights that are hidden in plain sight. But not just that, it ALSO writes them up in perfect English, just like if a real person had analyzed the data and written a report about it.
To get the word out about the technology we created an application that leverages US College data. All the insights were created using an automated process. How much insight data has the software generated for this first application? Well, think something equivalent to 30 “Moby Dick”, or 65 “The Hobbit”, or 80 “Philosopher’s Stone” books.
Check it all out at OnlyBoth.com
~ Andre Lessa (@lessaworld)
A few years ago JP and I were browsing video games at a toy store and at one point he said something like “Dad, let’s make a game. I got an idea.” He started writing ideas down and just like any great Product Manager he got all the core requirements for the game down in a flash and after a little brainstorming the name Furious Monkeys came up. JP nicknamed the game “F.M.” and although the game ideas kept changing until the very last minute prior to pushing the very first version of the game to the iTunes App Store, the overall arch stayed the same.
The first reason F.M. is awesome is because I got to see JP go crazy about everything he wanted for the game and I had to negotiate features with him. He’s a really demanding Product Manager for a teenager.
I really enjoyed writing the game. Apart from having an excuse to learn a bit more about iOS and the process of getting apps submitted to Apple. I also got to spend time crafting some custom audio effects and drawing a lot of original artwork for the game. For example, I couldn’t find a nice royalty-free sound for the whooshing sound of throwing a banana, and real bananas don’t make any sound when you throw them … so I had to invent the sound myself, just like those cool guys did when filming the original star wars movies.
And finally, how many indie games get to have their own celebration cake 😉
If you want to give Furious Monkeys a try, you can download the free version, which comes with the first 5 levels, and if you master the speed of those levels and like the game, you can get the full version as that allows you to throw as many bananas at the birds as your skills allow.
~ Andre Lessa (@lessaworld)
Although in SAP HANA 1.0, Rev 70, the most complete developer tooling is only available for Windows and Linux, it is possible to install HANA in a Virtual Machine on a Mac.
In my case, I decided to go with a Linux virtual machine, one running Ubuntu. I first tried VirtualBox but I had some issues getting the virtual machine’s resolution to support a decent screen resolution. I also wasn’t making a lot of progress getting a lot of my folders to be shared between the Mac and the Ubuntu virtual machine. I then decided to give Parallels a try. Unlike VirtualBox, Parallels is a paid product but they were offering me a 14-day free trial so I quickly decided to give it a try. The installation was a breeze and the integration with my Mac, amazing. I’m definitely keeping it.
With a Ubuntu Linux 13.04 installation ready, I was ready to install HANA Client and HANA Studio.
1. Downloaded the two files I needed, and copied them to a directory of my choice. If you have a revision number different than 70, make sure to update all the commands in this tutorial accordingly.
2. Extracted the file contents.
$ tar zxvf sap_hana_client_linux64_rev70.tgz $ tar zxvf sap_hana_studio_linux64_rev70.tgz
3. First I installed the HANA Client. After changing to the client files directory, I executed the installation script.
$ cd sap_hana_70_client_linux64/ $ sudo ./hdbinst -a client
3a. If it turns out that the execution permissions get lost when you’re moving files around, you’ll need to re-assign the execution permissions before running the installation script.
$ cd sap_hana_70_client_linux64/ $ chmod +x hdbinst $ chmod +x hdbsetup $ chmod +x hdbuninst $ chmod +x instruntime/sdbrun $ sudo ./hdbinst -a client
4. The HANA Studio requires the Java Runtime. Check your system by running the following command. If Java is not found, you’ll need to install it (see 4a).
$ which java
4a.To install Java in Ubuntu, simply run the following command.
$ sudo apt-get install default-jre
5. With Java ready, you can go ahead and install the HANA Studio.
$ cd sap_hana_70_studio_linux64/ $ sudo ./hdbinst -a studio
5b. Again, if it turns out that the execution permissions get lost while moving files around, you’ll need to re-assign them before running the installation script.
$ cd sap_hana_70_studio_linux64/ $ chmod +x hdbinst $ chmod +x hdbsetup $ chmod +x hdbuninst $ chmod +x instruntime/sdbrun $ sudo ./hdbinst -a studio
6. If everything goes well, and you go with all the default values, you should end up with everything installed under the /usr/sap/ directory.
7. To run the HANA Studio, you just need to navigate to the installation directory and run the following command. Doing so will launch the HANA Studio graphical application. If the applications launches without any errors, you’re ready to roll and start configuring your project.
$ cd /usr/sap/hdbstudio $ ./hdbstudio
8. To test if the HANA Client has been installed properly, you can run the following command:
$ cd /usr/sap/hdbclient $ sudo ./hdbsql
8a. Note that if you get an error like “error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory“, you’ll need to install the missing libaio-dev package by running the following command.
$ sudo apt-get install libaio-dev
8b. If the HANA Client is installed correctly, you’ll see a greetings message after calling the client:
$ sudo ./hdbsql
Welcome to the SAP HANA Database interactive terminal. Type: \h for help with commands \q to quit
And that’s it. Getting both the HANA Studio and the HANA Client to run on a Mac is really simple, as long as you’re willing to spend a few extra minutes setting up a Linux virtual machine. In total, it took me probably somewhere between 30 and 45 minutes to get it all done but if you follow my instructions you should get it done a lot quicker as you won’t have to go through the same hiccups I went through 🙂
~ Andre Lessa (@lessaworld)
I just self published this brand new book and I’m making its PDF available for (free) download on my web site.
My goal is to explain some very basic fundamentals of computer science to kids who are starting to learn about computers at school and/or at home. For the tiny hints of programming, I referenced Python. If you (or a kid you know) ends up having access to this book, please send your feedback (suggestions/corrections) directly to me so I can start thinking about the next edition and how I can make it even cooler for kids.