Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am trying to create an program similar to ELIZA. My preference is to implement this project in a general language such as ruby, java, C++.
is there some framework (open source would be great) available for any of these languages ?
I'm answering an old question here mainly thanks to the renewed interest in chatbots after Facebook's announcement at F8 2016. Here're few platforms that you can use to create chatbots:
Pandora Bots
Api.ai
The above two use natural language processing and advanced AI to create chatbots. You can use the above in conjunction with platforms that allow you to create bots across various messaging platforms. This way you can write your bot logic once and deploy it across different messaging platforms (FB Messenger, Slack, WeChat, Skype etc). To achieve this, you can use:
Microsoft Bot Framework
Twilio
Gupshup
Disclaimer: I work for Gupshup.
At the heart of a chat bot there is a natural language processor (NLP), the engine implements algorithms that would break a sentence entered by a human (e.g plain English) to a series of token the computer can process.
while I am not familiar with a chat bot framework there are several open source NLP engines you can utilize to implement a chat bot:
for example Open NLP
googling for "natural language processor" will point you to other sources
To my mind, the most simple way to work on bots actually is to use gaelyk, a groovy framework to develop applications on top of google app engine.
Indeed, using google app engine, you gain a quite easy to use server environment, complete with high load support.
And gaelyk provides some very cool improvements over google app engine jabber handling.
Even better, you replace Java language with Groovy, which is more or less compatible, but with very nice enhancements.
Check this bot framework named JBuddy Bot Framework
A framework for a chatbot... no. A chatbot is a serious field, requiring teams of computer scientists many years to develop. There is no frame that can help besides the general purpose ones that come with them (the string libraries would be a great place to start).
There are plenty of frameworks available for IRC-bots, but not specificly a chat-bot. Ruby has a great resource for quickly finding popular libraries/frameworks Ruby-toolbox.com
If you want something that is MVC-based I can recommend Autumn. If you want something a little more lightweight take a look at Isaac or Cinch. I've worked with all libraries before and work as expected.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I have read an article about Xamarin was buying RoboVM and enables developers to write mobile apps in Java for cross-platform. I am not sure if it is possible now to use Java for developing cross-platform mobile apps. Is there any reliable tools where I can write in Java for cross-platform mobile apps development? Is it a good choice to choose Java only for potential cross-platform mobile apps? I don't consider using C, C++, C# for that purpose since I have never been focusing on one of them. I apologize for the fans of those langauges. Or Is it a better choice that I better work with Java for Android apps and Swift for iOS apps? I plan to choose Java as a main language for all web apps, cross-platform mobile apps and robotic programming development.
I've been using Codename One for quite a while now. Libgdx wasn't exactly an option as I'm not a game developer.
I played a bit with RoboVM before picking Codename One and it seems that it's more about Java for iOS and not about WORA (Write Once Run Anywhere). This might be a good choice for you if that's what you want but I prefer WORA. I tried the RoboVM FX bindings and they were just horribly broken in basic ways.
A few things I love about Codename One are:
Support - I have never used a product with such amazing free support. You get answers within a day at the latest and that really sealed the deal for me.
No need for a Mac - I use my Mac at home but in the office I need a PC.
Customization and familiarity - this is pretty much Swing but WAY better. Like we always wanted Swing to be as they put it...
The docs used to suck but they made a big push on it and it shows. Now if only they could fix the IntelliJ/IDEA plugin to the level of the NetBeans plugin I'd be golden!
Depending on what you're trying to write, libgdx might be a good solution.
You write your code once in java and it compiles to basically everything (even html5!)
You have to adhere to its coding conventions and use it's classes though. (Which are great for game development, not so much for other things... but you could still probably do whatever you want with it).
As far as I know they are not compatible with Java, but they claim that if you know Java you'll be fine with C#.
I found few interesting weird facts on their website about the transition... source
In Java, you can pass parameters only by value, while in C# you can pass by reference as well as by value. (C# provides the ref and out keywords for passing parameters by reference; there is no equivalent to these in Java).
In a Java switch statement, code can fall through into the next case section, but in C# the end of every switch section must terminate the switch (the end of each section must close with a break statement).
....
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
As a developer going through web development I would like to know if J2EE or PHP is better for building web sites.
My initial thoughts were that J2EE was better because it is Java based but upon reading several articles I read that PHP might be easier and more focused with regard to web development.
On this topic I have another query, whilst looking at different articles on web design and construction I came across websites that claimed to be built in J2EE, Java and Ruby. Is J2EE the same as Java? Or is it something completely different.
First of all, there is no J2EE anymore. There is Java EE. One profile in Java EE is the web profile. So while Java EE has a bunch of complex, enterprise-level stuff in it, you just use the piece you need.
However, it isn't even like Java EE is the choice for developing web applications in Java. It is the standard, but people have enjoyed great success with open-source frameworks like Spring MVC. If you expand your scope beyond Java to all JVM languages, you have Grails (in Groovy) and Play (in Java but also in Scala) at your disposal as well. Both are extremely good.
And then there are so many other non-JVM options like Zend (PHP) as you say but also Rails, Django (Python), etc.
So to truly appreciate what's "better," you need to consider a lot of things:
Your comfort and productivity with the language
Your comfort and productivity with the "ecosystem"--i.e. accessing third-party libraries to help you with various tasks, ease of mocking and testing, boilerplate code and mundane tasks being abstracted away, ease of implementing caching and minifying web assets, etc.
Ability to find help online through a vibrant community
Your requirements. If you need to access Amazon S3 buckets, for example, and your language or third-parties libraries in that language have poor S3 support, you should avoid it. Similarly, if you need to use Neo4J as a data store but there is poor support, move on.
There is no "right" answer to this question. I would suggest the options approach described in Lean Software Development. Do some research to narrow your choices to three. Then get a site up and implement a representative feature with all three choices. The less appropriate choices for you will eliminate themselves and leave the best choice for you.
As for your last question, Java is a programming language; Java EE is an enterprise software platform utilizing the Java language and the JVM (with multiple profiles as mentioned). The Ruby part of the application you mentioned was probably utilized with JRuby, which enables you to run Ruby on the JVM via JSR 223.
this is depend on you skill or understability if you have good configuration knowledge then i suggest to you got through java j2ee. php is more easy to java
To be short and concise, If we're talking about professional development, then Java is the way to go.
If you're a hobbyist, then PHP would most probably be the right choice of yours.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I want to start to make a chat client that runs in web browsers, upon a colleges requests. Its my first time doing something like this, so i made some research about this mostly about HTML5. I did research on the platform itself, how fast and how used it is, but my most important factor was: mobile support
I plan to develop this chat for a long while for experience because, as a coder/programmer I am still inexperienced.So i was thinking in the future as well. i have a forum community with pretty limited chat access. I want to change that as well, and as an extra include mobile support.
i researched Flash, java and HTML5, the two most obvious choice in web applications, and pretty much the new comer HTML5.
Flash is more widely used as web app(at least what i saw and found.), and its more designer oriented than programmer, but many chats are written in this, and are used. but there is no mobile support for it, to my knowledge. thats hinders my future plans.
Java, is a robust programming language, and saw a few webchats in this, but my main issue with this is performance: its much slower than flash. But at least there is mobile support, at least the android mobiles.
as for HTML5....its pretty much still a child, not all web browsers support it fully but the major ones support web socket already, except IE9. and IE9 is the most used web browser, sadly. And i cant find any support for it on mobiles yet.
And i don't know any other platforms out there in the Internet that could do the same as the above three, but i'm open.
So my question is: Which is the best platform for writing a webchat, that lest me do mobile support at a latter stage?
No, the correct answer is: Understand which method is quick to deploy, cost-effective and easy to learn. You'll need to integrate languages to make this work. HTML 5 is the latest and greatest, that's one. JAVA ~ still in demand on the Android side..learn it..
Flash is dying..don't learn that.
Windows ~ .NET..don't count this out...Microsoft is planning on coming out with a mobile platform...this is still good to learn..always learn a language that's going to give you job opportunities in the future.
You cannot write a chat in HTML 5 alone (because it operates on the client and there needs to be server code), you would need PHP or JSP for that.
I wouldn't use flash except if you are already very proficient in it because:
it needs an extra plugin
it frequently blocks or crashes some browsers
I think it is difficult to develop and I am not sure if the development software is free
So my choice would be Java Applet by default. It needs an extra plugin but it is much more stable than flash and you need it for many applications anyways but it has so much functionality that is very easy to make a chat with it.
P.S.: Java's speed is absolutely no problem for a chat. Java is maybe 10% behind C++ depending on the application but we are talking about languages like Flash or PHP so Java is not slower but it doesn't matter anyways because a chat has next to no resource requirements.
The correct answer is: it depends. You can implement such a program using many technologies. Each of these technologies have different characteristics and pros and cons but you have mentioned that this is going to be made for a university task. This way i recommend you to choose HTML5, this is a quite new technology, i think it worths it to have a little experience in that!
If you want to have the least work with this project, you should use java.
This is MY opinion.
You should have a look at nodejs:
http://nodejs.org/
Also the socket.io module for nodejs which allows you to use websockets as a transport mechanism for capable browsers and provides fallback methods for older browsers:
http://socket.io/
There's a node and socket.io chat tutorial which might be helpful and a working chat demo based on node (though I couldn't see any reference to socket.io when I reviewed the code).
I would not discount using Flash. It is still an industry standard in web development. It is way faster than a Java applet, but you are right, Java is not going anywhere. Flash allows you to deploy your project to the web, stand alone application on Mac and PC, and on mobile.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
What is the most efficient way to port an iPhone app to Android? I know Apple doesn't like 3rd-party, non-Objective C platforms generating code for their platform ... but is there something out there that can take an iPhone app and convert it to Android friendly code?
If not, how have folks out there been creating Android versions of their existing iPhone apps?
Thanks
There's nothing of the sort to port your app. You can use 3rd party tools to create apps that work in both. That's what Titanium and PhoneGap were aiming at. With the new changes to the SDK Agreement, those look like they're not really "legal" or at least violate the agreement.
As for your other question, yes, people do create 2 separate apps. One for Android and one for iPhone. That's the way I currently do it and seems as if Facebook and others do the same.
Yeah, people don't usually love the answer that we have for this one at Appiction. It seems like it should be easy since they are so similar, but they are completely different operating systems with different ways of being used. Sometimes a company will be able to cut a deal with you since the art has already be developed and the basic wireframes have been conceived. At Appiction we created a video to answer this exact question for our clients: http://www.youtube.com/watch?v=Y-fdRw1WNYI
Apportable provides a platform to build and deploy existing Objective C apps to Android.
There are few alternatives to port an app from one platform to other. like Rhodes Mobile, Titanium and PhoneGap. In fact they did a good job and tried very well to remove fragmentation in smart phone app development.
But according to Apple's SDK Agreement version 4.0, section 3.3.1
app must be developed in C/C++/JAVA script.
At this stage convincing way is to write it separately.
PhoneGap is not a true cross platform app development tool.
If you want to create an app for both iPhone and Android using PhoneGap, then you have to create two different apps that will make use of PhoneGap framework. But one single app for iPhone and Android can't be created using PhoneGap.
There really isn't a short cut to porting. The best thing you can do is use a company that specializes in porting, like migration.mobi. The cross-platform frameworks have performance problems and really limit what you're able to do.
Games are a different story altogether, so be ready for different answers if you've been a complex real-time game on iPhone and you want it to work on another platform.
Noodlecake Studios appear to have solved the issue of porting from iOS to Android, recently porting Trainyard among others:
Its no secret that the process of porting iOS games to the Android
platform has been met with rough waters... These issues are
familiar to us at Noodlecake Studios and prompted the creation of
Noodlecake Games, a porting and publishing entity designed to
alleviate many of these problems. Through our efforts over the past
year, we have developed technology that allows us run iOS code
natively on android devices. What that means for developers is there
is no need to rewrite iOS code for the Android platform, it all runs
automatically. To be expected, many developers at first didn’t believe
what we were doing was even possible.
At android there are 2 categories: the lower one, with g1 and the better with Nexus 1 if you want to develop games.
Those cross platform libraries I think they can do cross platform "Hello word" applications.
To generate a correct Blackberry networking application or an optimized Android graphic application (to both categories), I highly doubt it!
the frameworks has the big cons, when you want to look outside of the sandbox. Those 3-4 custom stuff, plugin often cost more, than the whole application written fast until that point.
So, "Hello word" +very basic, only soft stuff with cross platform.
High performance, nice graphic, easier to bugfix, support, professional work: develop for each platform and categories.
There actually is a tool that does exactly what you're asking called O2J. You can leverage your existing Objective-C codebase and convert it to Java with the O2J conversion tool.
It's a paid app available on the Mac App Store... O2J Objective-C to Java Converter
Most of the time it's preferable to have a native UI and native code for performance, working with the platform UI paradigms and to take advantage of platform specific APIs/services.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I was wondering if there is any open source recommendation engine available? It should suggest something like Amazon and Netflix. I have heard of a framework called Apache Mahout - Taste. I am trying it next week. It would be great if you can share your valuable thoughts.
I'm the developer of Mahout / Taste, and hope it will do what you need, but in the interest of balanced coverage, let me also point you at:
Duine
CoFE
Cofi
Apache Mahout is the only one I have found for this area (I have been looking recently too).
Though Weka may also be an option.
I had to work with open source recommendation systems and these are the ones that I found:
Duine, Apache Mahout, OpenSlopeOne, Cofi, SUGGEST and Vogoo.
More details:
Apache Mahout constitutes a Java framework in the data mining area. It has incorporated the Taste Recommender System, a collaborative engine for personalized recommendations.
Vogoo is a PHP framework that implements an collaborative filtering recommender system. It also presents a Slope-One code.
A Java version of the Collaborative Filtering method is implemented in the Cofi library. It was developed by Daniel Lemire, the creator of the Slope-One algorithms. There is also an PHP version available in Lemire's webpage.
OpenSlopeOne offers an Slope One implementation on PHP that cares about performance.
SUGGEST is a recommendation library made by George Karkys and distributed in a binary format.
I described everything I found out here on my blog:
http://girlincomputerscience.blogspot.com.br/2012/11/open-source-recommendation-systems.html
hope it helps!
I just started using easyrec. The forums are not very active, though I did get my questions answered. Plus they have a demo server so you can test drive the recommendation tools without installing anything. I liked their javascript API and way to track recommendations of different types of items. Currently, they only support the slope one recommender--if you are looking for flexibility in this regard, mahout wins hands down (though you can write your own plugins for easyrec).
lenskit seems another good recommendation engine in Java, provided by the grouplens team.
If you're looking more for the raw engine, rather than something specifically configured for amazon or netflix, then Minion provides 'document similarity measures'.