open-source interview questions
Top open-source frequently asked interview questions
This question has been preserved for historical reasons, but it is not
considered on-topic, so don't use it as an excuse to post something
similar.
More info at http://stackoverflow.com/faq.
For me to read code and learn, not to play...
...of course ;-)
Source: (StackOverflow)
Today I had a bad surprise learning about some implications of the GPL license, mainly that I couldn't use it as freely as I thought.
Now I know.
What else should I know, and more widely, what should every developer know about legal things like that?
You can separate employees, freelancers, open source projects contributors (etc.) or give a more broad answer.
Source: (StackOverflow)
Please list GUI programming libraries, toolkits, frameworks which allow to write GUI apps quickly. I mean in such a way, that
- GUI is described entirely in a human-readable (and human-writable) plain text file (code)
- code is terse (1 or 2 lines of code per widget/event pair), suitable for scripting
- structure and operation of the GUI is evident from the code (nesting of widgets and flow of events)
- details about how to build the GUI are hidden (things like mainloop, attaching event listeners, etc.)
- auto-layouts are supported (vboxes, hboxes, etc.)
As answers suggest, this may be defined as declarative GUI programming, but it is not necessarily such. Any approach is OK if it works, is easy to use and terse.
There are some GUI libraries/toolkits like this. They are listed below. Please extend the list if you see a qualifying toolkit missing. Indicate if the project is crossplatform, mature, active, and give an example if possible.
Please use this wiki to discuss only Open Source projects.
This is the list so far (in alphabetical order):
Fudgets
Fudgets is a Haskell library. Platform: Unix. Status: Experimental, but still maintained. An example:
import Fudgets
main = fudlogue (shellF "Hello" (labelF "Hello, world!" >+< quitButtonF))
GNUstep Renaissance
Renaissance allows to describe GUI in simple XML. Platforms: OSX/GNUstep. Status: part of GNUstep. An example below:
<window title="Example">
<vbox>
<label font="big">
Click the button below to quit the application
</label>
<button title="Quit" action="terminate:"/>
</vbox>
</window>
HTML
HTML-based GUI (HTML + JS). Crossplatform, mature. Can be used entirely on the client side.
Looking for a nice “helloworld” example.
JavaFX
JavaFX is usable for standalone (desktop) apps as well as for web applications. Not completely crossplatform, not yet completely open source. Status: 1.0 release. An example:
Frame {
content: Button {
text: "Press Me"
action: operation() {
System.out.println("You pressed me");
}
}
visible: true
}
Screenshot is needed.
Phooey
Phooey is another Haskell library. Crossplatform (wxWidgets), HTML+JS backend planned. Mature and active. An example (a little more than a helloworld):
ui1 :: UI ()
ui1 = title "Shopping List" $
do a <- title "apples" $ islider (0,10) 3
b <- title "bananas" $ islider (0,10) 7
title "total" $ showDisplay (liftA2 (+) a b)
PythonCard
PythonCard describes GUI in a Python dictionary. Crossplatform (wxWidgets). Some apps use it, but the project seems stalled. There is an active fork.
I skip PythonCard example because it is too verbose for the contest.
Shoes
Shoes for Ruby. Platforms: Win/OSX/GTK+. Status: Young but active. A minimal app looks like this:
Shoes.app {
@push = button "Push me"
@note = para "Nothing pushed so far"
@push.click {
@note.replace "Aha! Click!"
}
}
Tcl/Tk
Tcl/Tk. Crossplatform (its own widget set). Mature (probably even dated) and active. An example:
#!/usr/bin/env wish
button .hello -text "Hello, World!" -command { exit }
pack .hello
tkwait window .
tekUI
tekUI for Lua (and C). Platforms: X11, DirectFB. Status: Alpha (usable, but API still evolves). An example:
#/usr/bin/env lua
ui = require "tek.ui"
ui.Application:new {
Children = {
ui.Window:new {
Title = "Hello",
Children = {
ui.Text:new {
Text = "_Hello, World!", Style = "button", Mode = "button",
},
},
},
},
}:run()
Treethon
Treethon for Python. It describes GUI in a YAML file (Python in a YAML tree). Platform: GTK+. Status: work in proress. A simple app looks like this:
_import: gtk
view: gtk.Window()
add:
- view: gtk.Button('Hello World')
on clicked: print view.get_label()
Yet unnamed Python library by Richard Jones:
This one is not released yet. The idea is to use Python context managers (with
keyword) to structure GUI code. See Richard Jones' blog for details.
with gui.vertical:
text = gui.label('hello!')
items = gui.selection(['one', 'two', 'three'])
with gui.button('click me!'):
def on_click():
text.value = items.value
text.foreground = red
XUL
XUL + Javascript may be used to create stand-alone desktop apps with XULRunner as well as Mozilla extensions. Mature, open source, crossplatform.
<?xml version="1.0"?>
<?xml-stylesheet rel='nofollow' href="chrome://global/skin/" type="text/css"?>
<window id="main" title="My App" width="300" height="300"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<caption label="Hello World"/>
</window>
Thank your for contributions!
Source: (StackOverflow)
I am having trouble understanding the usage permissions of open source. I read somewhere that GPL or LGPL enforces that software that uses GPL software must also be released open-source. I want to create an application that uses some open-source image recognition library. Can I sell this application or does it have to be open source?
Thanks!
Source: (StackOverflow)
As I understand it, the best practice for generating salts is to use some cryptic formula (or even magic constant) stored in your source code.
I'm working on a project that we plan on releasing as open source, but the problem is that with the source comes the secret formula for generating salts, and therefore the ability to run rainbow table attacks on our site.
I figure that lots of people have contemplated this problem before me, and I'm wondering what the best practice is. It seems to me that there is no point having a salt at all if the code is open source, because salts can be easily reverse-engineered.
Thoughts?
Source: (StackOverflow)
For new and completely revised tricks and dark corners of STL go here: Hidden Features and Dark Corners of STL
I've been using more "modern" c++ constructs for a while, but kind of superficially and not everywhere. I'm looking for open source projects to study that are good examples of Modern C++ and STL usage.
Things like what is suggested in Meyer's "Effective STL", such as trying to avoid for loops and replace them with more functional constructs, using boost::bind and boost::function, etc. These still feel a little unnatural to me, and when I have to get something done fast and working, I tend to drop back to libc and string.h (you can have my strtok when you pry it from my cold, dead, hands).
However, I've also had the positive experience of finding what would be a drastic change simplified because I've used these constructs, or being able to implement something with just a few lines of code because I had the right operators and functors lying around. In addition, I've recently been paying more attention to concurrency, and so this is becoming even more important to me.
Can you recommend some examples of well-written open source projects that make heavy use of the STL and other modern c++ techniques that I could study? I'm particularly interested in application code, browsing the boost sources has been helpful but it's by necessity very general because it's library code.
I'm interested in medium sized to larger projects, at least a few tens of thousands of lines. It's pretty easy to find examples that are a few hundred lines long but that's not too helpful.
Thank you.
Source: (StackOverflow)
Possible Duplicate:
Something Better than .NET Reflector?
Possible Duplicate:
Open Source Alternatives to Reflector?
I don't consider this to be a duplicate, as the contact of the other questions is about learning how reflector works, and this question is about coping when reflector stops being free
Now that Red-Gate has said .NET Reflector will no longer be free, is there an alternative that save the pain of getting a purchase order approved?
It seems that jetbrains may be bringing out a tool:
Good news is that we’re preparing a
standalone binary-as-a-source
application, i.e. a decompiler +
assembly browser to explore whatever
.NET compiled code is legal to
explore. We don’t have any specific
date for release, but it’s going to be
released this year, and it’s going to
be free of charge. And by saying
“free”, we actually mean “free”.
Also ilspy is a new open source tool that seems to be making good progress.
ILSpy is the open-source .NET assembly browser and decompiler.
Development started after Red Gate
announced that the free version of
.NET Reflector would cease to exist by
end of February 2011.
Source: (StackOverflow)
I'm looking for an open source implementation, preferably in python, of Textual Sentiment Analysis (http://en.wikipedia.org/wiki/Sentiment_analysis). Is anyone familiar with such open source implementation I can use?
I'm writing an application that searches twitter for some search term, say "youtube", and counts "happy" tweets vs. "sad" tweets.
I'm using Google's appengine, so it's in python. I'd like to be able to classify the returned search results from twitter and I'd like to do that in python.
I haven't been able to find such sentiment analyzer so far, specifically not in python.
Are you familiar with such open source implementation I can use? Preferably this is already in python, but if not, hopefully I can translate it to python.
Note, the texts I'm analyzing are VERY short, they are tweets. So ideally, this classifier is optimized for such short texts.
BTW, twitter does support the ":)" and ":(" operators in search, which aim to do just this, but unfortunately, the classification provided by them isn't that great, so I figured I might give this a try myself.
Thanks!
BTW, an early demo is here and the code I have so far is here and I'd love to opensource it with any interested developer.
Source: (StackOverflow)
(EDIT: This question is now outdated for my particular issue, as Google Code supports git now and I've converted Protocol Buffers to Mercurial anyway. However, it's still of general interest, IMO.)
My C# Protocol Buffers Port uses github for its source control, and I'm beginning to really enjoy using git. However, as far as I can tell, github doesn't provide any project management tools: defect and feature tracking, discussions, feature requests, docs etc. Given my affiliations, Google Code would be a natural choice, but it would seem odd to create a project there but host the source on github.
This question about Fogbugz/Assembla seems to mostly focus on the defect tracking. I was wondering what experiences others have had when it comes to a more "complete" project management solution. Does Fogbugz actually do everything I need? (Using a wiki for docs has its advantages, although I also want to be able to distribute documentation with the code.) Beyond the explicit features mentioned in the first paragraph, are there other project aspects I should be considering which I may have missed?
This will definitely stay an open source project, and although I'd rather not pay I don't mind if a small fee is required. Currently I'm the only developer, but that may change and there may very well be lots of people filing bugs and feature requests. (In other words, I hope and expect it to be popular, but with me doing most of the work.)
Previously I've contributed to various open source projects, but haven't done much in the way of running a very visible and active one. (MiscUtil is currently still "hosted" on my website, with occasional releases - the actual source control is on my local NAS.)
Anyone care to share their experiences?
EDIT: Another option I'm now considering is a Google Code project (I really would like to be loyal to my employer) and an occasional merge from git to svn (at the very least, every time I do a release). This would allow non-git users to get hold of the source easily too.
Source: (StackOverflow)
What is the best open-source equivalent for Mathematica? My requirements are:
- (most important) Must be a real computer algebra system (CAS). Notably, I don't want Matlab clones -- I want something that can, at least, symbolically differentiate and integrate.
- Must be programmable. A functional-programming view of the world, like Mathematica's, would be awesome. The basic datatype of M'ica is the list, which is very convenient!
- (least important) Similar syntax would be nice.
The ability to deal with objects such as groups or graphs would be a great bonus, but my primary emphasis is on the main things Mathematica and Maple do: algebra and calculus, both symbolic and numeric. Also, plotting is not high on my list of requirements, as I'm mostly a terminal and not GUI user.
Source: (StackOverflow)
I am looking for a library enabling the creation of PDFs, including files and bitmaps. The license should allows free usage in commercial applications. Good documentation is important too.
Where is a list of current open source libraries for generating PDF files that can be used with Java? I would like to have some kind of comparison table as to functionality offered by various library alternatives?
Criteria I am looking for (suggestions for additional criteria are welcome) are:
ease of use of the library and the interfaces provided by the
library for a Java programmer to specify inputs and to
programmatically provide text and image data to be included in the
PDF output,
output quality of the PDF output from the library and the output
compatibility with the most commonly used PDF readers,
ability to include images into the PDF output with the ability to
specify many of the standard image formats such as bitmap, jpeg,
GIF, and png,
reliability and robustness of the library along with error detection
and error handling, and error reporting,
the ability to programmatically process an existing PDF file to
search for content and extract content from the file including text, font data, and images,
general acceptance by the Java community and expectation of
continuing product support and innovation.
I have heard about Apache PDFBox, is there any better library? Do you have experience to share?
Source: (StackOverflow)
Can you recommend open source android applications that can be valuable to analyze, and to learn android programming from?
Is any app from the Android open source project suitable for basic learning?Basically, I am looking for android apps for UI design reference with source code.
Source: (StackOverflow)
I just starting to learn Windows Presentation Foundation (WPF) and I am interested in seeing some great examples of WPF applications. These can either be applications written entirely for showcasing WPF features or production applications written in WPF.
The source code would need to be available. Does anyone have any suggestions?
Source: (StackOverflow)