releasing a javascript library for the first time [closed] - licensing

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 7 years ago.
Improve this question
I'm almost finished working on a useful (at least, in my opinion) JavaScript plugin. Having seen and used many JavaScript packages, both freely licensed (JQuery, YUI, etc) and partly or fully commercially licensed I'm not sure what other factors dictate which license I should release my own under and how to support the plugin.
Some background information on my JavaScript plugin:
Similar audience and plugin size/impact to addthis.com, although slightly more niche. My plugin doesn't provide any analytics though.
Uses JQueryUI for user interface, can be expanded upon with there themeing components, etc.
No other similar tool out there (at least that has become popular).
Can be easily integrated in to a website.
Questions I have:
Should I launch a dedicated website for the plugin, or use something similar to Google Groups? Would a dedicated website bring more kudos perhaps?
Would a Creative Commons Non-Commercial license be a suitable license considering I'm a young developer and perhaps reputation building is more important than my bank managers happiness?
These are the 2 big questions that have been puzzling me for a while now, and I don't know anyone who has been in a similar situation :(
Thanks for any advice.

Considering you seem community, rather than cash driven .. the community will hold the key to what they find best, simplest and acceptable (and what works)
What do other plugin developers do? Take their lead. They set the convention and it determines how other people find your plugin. If a Firefox extension only had it's own site then I probably wouldn't find it.
What do others use? GPL? LGPL? What does jQuery use? Ask them why?
It might be worth using an online revision control tool like github or launchpad so people can contribute bug reports and help your development.

If I were you I would definitely use something like launchpad or google code.
You get integrated (community enabled):
source version control
bug tracking
...
for free.
Considering this library is aimed at other (web) developers a shiny website seems a lot less important then the convenient features above (in a known format).
And: congratulations on your first release, of course ;-)

About running site:
For me running dedicated website gives your product more professional look. Hosting on Google groups isn't good choice for all products: you can't build screenshots gallery, own blog, etc. You can build forum by youself if you need it.

Related

How should I learn Ext JS 4.2? [closed]

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 1 year ago.
Improve this question
I've been assigned to a legacy project which runs on Ext JS 4.2. I know JavaScript but I'm totally unaware of Ext JS and I'm having trouble in understanding it. Can someone please guide me on how to learn Ext JS, what approach should be followed and the important topics to be covered? Or what sequence should be followed?
I have been using ExtJS (7.2.0) in a corporate project for six months, these are some tips I would have needed some time ago.
You should start from the official docs and examples given by Sencha:
guide --> the main topics are The Class Systems, MVC Application Architecture and Components, which are the basis of ExtJS;
examples --> I find the KitchenSink example very useful, since you can briefly overview all the components available in the system - you can also give a look to MVC examples, in order to see more complex architectures;
forum --> you can also check out the Sencha forum, which has many interesting topics (many more that you can find here on Stack Overflow).
Since you are using an older version of ExtJS, you will find many materials on the internet, because it was widely used several years ago, while now it is difficult to find updated sources.
You can check out Saki website or fiddle explorer sorting by created date ASC:
I used to be a trainer for Sencha, and I left the company in 2013 right around the time when ExtJS 4.2 was the main version.
The fastest way to get up to speed on the framework is to take a training class from Sencha. I haven't worked for Sencha for 8 years, and many of my colleagues (who I respected highly as trainers) aren't there any more, so this is not a plug for their services, but it's the fastest way. You will learn shortcuts that will take you much longer if you were to do it yourself. The framework is huge an complicated, and it's nice to get an overview of how it works from an experienced guide.
Before I was hired as a trainer, I took both the ExtJS and Sencha Touch classes that they had available, and the difference between the "before" and "after" in my understanding was huge. Yes, it's a week of your time, and yes, it's $2500, so your manager may not agree with my recommendation, but like I said, it's the fastest way to get up to speed.
If you do decide to take the class, spend some time with your legacy app and write down where you're getting stuck, and ask those questions in class. Part of the class value is that you can get some free light consulting for any issues you may be having.
The fact that you know Javascript is a big plus. I've had people in my classes who were new to Javascript, and that was another hurdle that they had to get over.
Good luck with your app!

GemFire alternatives and a license question [closed]

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
I've just started looking at gemfire. I'm really impressed actually. I'm a little confused by its licensing, there seems to be some indication that some of it is open source? Does anyone have any clear idea? I'm loathed to talk to their sales people.
If not, are there any open source alternatives? I can think of a few technologies which offer the same features but not as a whole.
Unfortunately there are no open-source in-memory data grid solutions. You can check alternative distributed caches like Coherence from Oracle, eXtream scale from IBM, XAP from GigaSpace.
Quick search can bring you to following solutions:
Hazelcast - In-Memory Data Grid
Cacheonix - In-Memory Data Grid
You can try it. Most probably it is young generation of IMDG and they have not full functionality. But it's free.
BTW: what functionality you want to use? some times IMDG it's just a fix for bad architecture.
This question was first posed way back in 2011, but it still seems pertinent, as Gemfire is still referenced in the latest suite of Spring demos on the Spring.io Pivotal site:
"As of the 1.2.0 release, this project, formerly known as Spring GemFire, has been renamed to Spring Data GemFire to reflect that it is now a component of the Spring Data project."
So to use Spring Data, or to at least follow along with the latest "Yummy Noodle Bar" Spring Tutorial suite, it is sort of implied that you need to use the proprietary "Spring Data Gemfire" product for the Order Status solution component (the other two components of the demo being MongoDb for the Menu Item data, and a relational DB like Postgres or MySQL with JPA for the Orders data).
I did some more recent searches and in addition to Hazelcast, I was really only able to come up with one other open source solution which might also fit the bill as a Gemfire alternative :
http://www.gridgain.org/
As for me, I think I'll probably start with Hazelcast and see how that pans out.
In general, I should say that I'm a little disappointed at Pivotal for sneaking a commercial product into their otherwise open source tutorial. It's one thing to lead people to Gemfire with an open source entry level version of the product, but to force developers to sign up for a free trial version of a commercial product that they really have no business purchasing for their development platform in the first place kind of sucks IMHO. Please correct me if I am missing something here.
GemFire has been submitted for incubation within the Apache Software Foundation. Once it has been accepted as an incubation project the source code will be available under an Apache License. Currently you can download, build, and run the source for evaluation purposes at https://wiki.apache.org/incubator/GeodeProposal

How-to limit feature functionality [closed]

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 7 years ago.
Improve this question
Are there any standard or "best practice" ways of limiting feature functionality for a particular application?
Example: We have a product with a variety of features, and our customers can pick and choose which features they would like to use, and the cost of the product varies based on which features they are actually using.
In the past, we have distributed along with our software installer an encrypted license file that contains information about the customer, as well as the collection of features that they have enabled. In code, we read from the license file and enable the functionality according to the license file.
This seems to work fine, except there a few disadvantages:
Upgrading users with new functionality can be sort of a pain
If a particular feature shows up in multiple places throughout the application, a developer might not realize that this feature should be licensed, and forget to check the license file before granting functionality to the user
If the license file becomes corrupted, deleted, moved, renamed, etc. the application will not run
We're getting ready to roll out a new set of features, and I was just curious what others in the community have done to tackle this problem?
Why not break down the product into modules like Matlab? Then charge for each module. The licensing can be kept online and the end user just needs to download the module to enable the feature.
There are usually 3 common approaches to this:
using fixed program versions (each version just adds features, you can't customize which features you want or not). You can use also "subversion", like basic and pro edition for Software x.0. Windows uses this approach.
Having modules of functionality, which are a product as themselves. Matlab uses this approach.
Having a software with basic functionality, and then having plugins, or extra apps for sale. Eclipse uses this approach (though it's free)
You can mix those approaches also for a better customizability.

DotNetNuke Pros and cons for community blogging site [closed]

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 4 years ago.
Improve this question
I'm evaluating DotNetNuke for a project in which an offshore team is going to be doing the development. In short, the application will be a community blogging platform with many similarities to stackoverflow except no questions, just posts. Posts may include an image or video, tags, use info, title, body, community vote (up or down) comments, hotness, and a few other details. They should be taggable, sortable, categorizeable (beyond what a single set of tags provide) In the future the site will carry forums, a calendar, and a couple of other features for which there are modules available for DotNetNuke. Additionally, this site will incorporate a user experience that will include a lot of custom skinning.
Thoughts?
Using a web application framework (such as DotNetNuke) has a ton of benefits to help you get up and running faster and do less work when creating custom functionality.
However, you have to realize that you're basically incorporating tons of code into your project that you may not be familiar with. No matter how good the code is and how easy the framework is to learn, there's still going to be a significant learning curve for you and your team.
Your decision making process (if you're still deciding whether or not to use DotNetNuke), should include (in addition to reading, talking and other general investigation):
Downloading the application from Codeplex and checking out the source.
Investigating the third party modules that are out there.
Downloading a free module or two that comes with source, and try to reverse engineer the creator's development process. How did she integrate with the framework, what features did she take advantage of, what was written from scratch?
One place where DotNetNuke (or any other framework with tons of extensions) available can really shine is taking existing extensions that are available and customize them. If you need to implement a given feature, check out the solutions in the third party extension community first. You can probably find one that gets you a good percentage of the way there and use it as a foundation for your feature.
For example, if you want a photo gallery on your site, you probably don't want to write it from scratch. There are three major photo galleries out there that sell the source code. The core gallery module is free, simple gallery is cheap, and the source for ultra media gallery is available for a reasonable amount compared to writing it yourself. Any of these could give you a good head start in implementing your features.

Best Versioning Tools to use for Photoshop/Illustrator and related binary files? [closed]

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 previously asked about Version Cue 3 vs Subversion. I think this is a better question and someone suggested http://www.gridironsoftware.com/Flow/ I hope this question will allow others to join in and suggest other tools or give specific recommendation to using Version Que versus other tools.
PixelNovel's Timeline is a SVN plugin for Photoshop. They have standalone and hosted versions.
Take a look at this article comparing Subversion, Mercurial, Git and Bazaar for managing the files in a home directory, including image files and large Photoshop files that are being edited and versioned.
EDIT: The link is dead and I can't find the article, however the information in the article is now severely outdated anyway. Today I would strongly recommend using Git-LFS (Large File System), with the file locking mechanism that was added in 2017, I believe. This is the solution I currently use, as it solves both the problem of needed to lock binary files, and avoids the inefficiencies of git when it comes to storing large files - which was one of the main points of that article.
I'd like to suggest https://www.pixelapse.com
It was made for designers with designer's needs in mind. Other solutions (GIT, SVN, etc.) cannot give you proper usability, and as well, your clients would be not able to comment, review and browse design milestones in an easy way.
Other way is to use https://layervault.com but they are struggling with some security issues. Also the usability is not really great.
Take a look at Perforce (www.perforce.com), particularly if you are managing these files in the context of development projects. It is a code-oriented system, but it supports binary files well and has a Photoshop plugin. P4 isn't free, but it is worth every penny if you need professional-grade SCM - it is solid, fast, flexible and easy to use. (I am a very satisfied customer.)
For my game development I found this: Evolphin Zoom . It's pretty fast and it is compatible with all Adobe products. I like the Visual Asset Browser because it has a lot of ways to find things. It also has a web dashboard, which is useful if you have a team.
They are advertising it as a 'more than a replacement for version cue'. So if you're coming from that, you might find that a nice perk, too.

Resources