Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I have been looking online to learn how the current crop of web applications manage their data, on both the server side and client side.
Like, I'm intrigued by Google Suggest, personal recommendations based on my "likes", etc.
So, while I searched for content where I could learn such data structures and algorithms, I came across this course provided by UC Berkeley - http://extension.berkeley.edu/cat/course460.html
The description of this course matches exactly with what I really want to learn.
Study the algorithms that provide the
power behind many of the most
effective Web applications. Where do
the phases come from for lists like
Google suggests? What techniques can
generate personal recommendations? How
do social networking, mash-ups, and
mixed-media sites select and
categorize similar groupings of binary
content? In this course, you gain a
solid understanding of current
algorithms and data structures for
search, recommendations, groupings,
classifications, and combinations of
classifiers.
However, there seems to be no way to find more details about this course.
Can someone here help me find a book / online course / site where I could learn more on this subject ?
Rex Griffiths and I just launched a video podcast about all this stuff this week. You can find it over at http://StatCasts.com. We should bring along the funny as well as teach something. You can follow us on twitter (#StatCastsCom), where we try to link to cool things we're seeing on this front in real time, or just go to the show. We'll have a lot of links for other people's stuff. Plus, Rex and I are both active developers and have quite a bit of open source software that we give away for this kind of thing.
There is the Stanford Course on Machine Learning which is really interesting, but a little hard to follow without some of their offline discussion.
Outside of courses, you could look at software packages or books and the communities that surround them. They tend to fill in the gaps about this sort of thing. So, here's a list of some what's out there:
Mahout, a machine learning library for Hadoop. There's a Manning book out on this as well. This is a good solution if you want to learn how to do this stuff with Big Data.
Modeling with Data, a great book by Ben Klemens who works at the Brookings Institute and explains a really good foundation for this kind of thing.
Weka and a book called Data Mining. This is a great way to get involved without getting lost. Weka has an easy-to-use interface that isn't much harder than a spreadsheet to use.
The R language is an amazing place to go for this kind of thing. You'll usually find anything analytical you want to do in this package. I have a few books kicking around here for that. The R Book is my favorite, though it's a bit expensive.
Octave is the GNU response to MatLab (commercial software). They both have incredible resources behind them.
I think Ben Mabey put together a pretty good pinboard full of good teaching links for this kind of thing.
Finally, my stuff is Fathom, an open source framework for solving these kinds of problems and http://openmobi.us, a website that implements the Fathom library for people that want to get straight to it. With those projects, I'm trying to make it easy for people to get involved with building their own models and using them for their businesses or education.
Related
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 12 months ago.
Improve this question
My thesis topic is about Domain Specific languages in general, I want to focus on design or implementation for external or internal DSLs but I can't even think or start because I am facing problems with understanding the concept of DSLs ..
I have read and collected so many papers and surveys about this issue but all of them I consider as advanced.. I need a good tutorial ( for beginners ) to understand the whole concept and phases for DSLs from the scratch ..
I have read the first chapter for DSL by Martin Fowler , Fowler started with state machines and hard programming codes from the first page of his book and the problem is that I am not very good in programming in general, I have no experience, my thesis will be a survey about DSLs with no programming work. Until now I don't know what to focus on because the survey should be specific on on area like designing techniques or comparisons in designing or implementing , but because I cant get the big picture I can't even decide. Any suggestions about this issue also I will really appreciate that.
Please help me and thank you very much. I always look at the questions and answers in this great website and I believe that I will find a solution for my nightmare problem here!
Thanks a lot
Nat
This book is Bible for DSL's in my opinion. This book used to be free when it was in draft. You can also find other learning resources there.
Go through this post to find successful DSL's. This post might help you in identifying various flavors and various domains where they are being used.
It will be a lot of work for you if you want to understand it, so if you are not skillful with programming, learn it or choose easier thesis.
I wrote my thesis about model driven software development and domain specific languages withouth even a basic knowledge about modeling etc. It can be done, but I spent much time reading (which I enjoyed).
For the most basic introduction I would recommend se-radio.net podcast episodes 5 and 6 (...and there are many more about more advanced topics on MDSD/DSLs).
I'd read James Neighbors thesis, after reading his executive summary. He's the guy that defined the terms "domain analysis" and "domain engineering" in the context of defining "domain specific languages". And he shows a program generation system, Draco, that generates an astonishing variety of complex application codes based on these ideas. (The thesis is a lot more readable than you might expect, but expect to see some real code!).
You can read some history on this topic, too, and once again, how those who don't know their history are doomed to repeat it.
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'm interested in learning video game algorithms. (For iPhone particularly, but generally as well. I assume certain concepts are the same.) I am best off (personally) learning from a book but websites are useful too.
What has helped you learn game programming algorithms and concepts?
EDIT:
As per request, I'll clarify the types of algorithms... I was looking for any algorithms really, but I guess I was interested in (top-down view) platformer algorithms, but, now that you mention it, Seth, I do wonder about chess...
EDIT2:
I'm making this a Community Wiki due to the nature of the question.
I am interested in 2D platformer algorithms at the moment. I would like to remake an old video game (a personal favorite, publisher now defunct.)
I'd recommend Realtime Collision Detection by Christer Ericson ( Director of Tools and Technology at Sony Santa Monica Studios - aka God of War ) - despite the title it covers a wider range of approaches than just collison detection including - data structures and algorithms for modern games development.
A lot of computer games coding is also simply good old-fashioned coding i.e data structures + algorithms so don't forget the two classics:
The Art of Computer Programming by Donald Knuth
Programming Pearls by Jon Bentley
There are also some excellent on-line R&D references on games development by many studios such as:
Mike Acton's Blog
Insomniac's R&D Site
Valve's site
DICE's site
There's some information atGamestruction which is a stack exchange based site, or you could ask this question there too.
You could try GameDev.net, DevMaster.net or Gamasutra for various game development resources.
There are various games development wikis including ones at GameDev.net and DevMaster.net and one at GPWiki.org
I don't think there is any one definitive source for game development algorithms, there are so many different ways to approach game development even within a single genre.
The best advice I can give it to learn by playing with existing technology, get a hold of some game frameworks and go through their tutorials. I don't know of many for iPhone but you could look at the Torque Game Engine or Ogre3D for PC based technologies. Microsoft's XNA Framework is also an excellent starting point for console development. Any of those will give you a good idea of the basic structure of a game project and some of the core algorithms like pathfinding, collision detection etc.
If you'd rather read book though, I always recommend the Game Programming Gems series, last I looked they had six or seven volumes but they all contain collections of articles on all aspects fo game development.
Best of Game Programming Gems
These titles are a few years old, but have updated versions at this time. Pay attention specifically to the computational geometry content.
Andre LaMothe - "Tricks of the Windows Game Programming Gurus"
http://www.amazon.com/Andre-Lamothe/e/B000ARBG92/ref=ntt_athr_dp_pel_pop_1
and
Corment, Leiserson, et. al. - "Introduction to Algorithms"
http://www.amazon.com/Introduction-Algorithms-Thomas-Cormen/dp/0072970545/ref=ntt_at_ep_dpi_2
Artificial Intelligence in Game Design
Math and Physics # gamedev.net
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm going to need to write a program that takes a list of persons and connects them together in a directed-graph-like manner. The GUI aspect of the whole project is very important. The graph must allow a lot of interaction. Such as selecting several people and hiding the others, moving them around.
Additionally, the software will need to be able to provide other kind of GUI-features such as several tabs, text boxes etc.
The application must be quite efficient. As in, it must be able to handle hundreds if not thousands of widgets.
Hence, I would like to know which open source libraries (at this point the programming language they are written in does not matter - I just want an overview of everything good that is out there) would allow me to develop such piece of software? What would you recommend?
Edit: Could you please also link to tutorials explaining how I could program a GUI that can interact with the generated graph? For example mouse events.
How about JGraphT in combination with JGraph.
Check here for a simple demo with basic interaction
Take a look at Graphviz, especially its lefty component. It should satisfy your needs.
http://en.wikipedia.org/wiki/Graphviz
Depending on your actual goal and needs, you might consider taking a look at processing.org. The site has many demos and like many other libraries, it is free. Using Processing does not require you to learn much. It is similar to Java and written in Java, but allows you to ignore much of the Java structure and code and just do what you want.
Since you mentioned that you would want to use x or y to code in, it sounds like you have not made a language decision, so this might be worth your time. Spend 15 minutes there and look at the demos to see if it provides what you are looking for. If speed to a single solution is one of your criteria, this might do it.
You might want to have a look to Dynagraph.
EDIT: An article presenting Graphviz and Dynagraph is available here.
My first thought was ILOG Views (for Java, .Net, C++), now owned by IBM, but their pricing is rather steep. My second thought would be yFiles (for Java or .NET), perhaps in conjunction with yEd (Java only).
If that still doesn't cut it, have a look at the alternatives on this list (rather unsorted, some tools are not open source, others won't suit you for other reasons).
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 3 years ago.
Improve this question
I am currently trying to make the transition from a technical PM to a Developer.
Obviously this depends very much on current level of knowledge / experience, but are there some key things that a PM (who also codes regularly) might have missed from not strictly working as a Developer.
Also would a course like this help in the right direction?
http://www3.imperial.ac.uk/computing/teaching/postgraduate/msc-computing-science/description
Considering I want to work on Audio/Video/3D ideally, I feel this course could be a good leg up?
As a technical PM you have the advantage of knowing the terminology etc so that is at least a heads start. As to making the switch check out information on areas such as
computing fundamentals - low level concepts on computer hardware, network and protocols.
algorithms - for an understanding of sorting, graphs, networks, trees, etc.
architecture and design - web application architecture, messaging architecture, UML, use cases, documentation.
programming languages - OO, scripting and AI (at least to get a feel for the types and applications)
business end of programming - software estimation
This is a broad spectrum of areas that you would need to have at least some exposure to for the transition. In fact it might even be useful if your current employer allowed you to work as the developer on a small part of a project. You'd certainly gain respect from the developers on a project coming from the technical PM role and could even enlighten the developers.
If you have a passion for working in an area, seriously consider the amount of creative freedom, in your experience, developers have as compared to PMs. Make sure that's acceptable to you.
Nothing is worse than having passion in an area, but little or no influence.
As far as technical abilities go, the only thing to do is to code. Any classes primarily will act as ways to ensure that you do so, and do so in ways that will teach you. But at the end of the day, it's going to boil down to time spent writing software.
If you really want to become a great developer, learn at least one language radically different from the languages you know. If you're a Java/C++/C# kind of guy, learn something that will really torque your brain like Haskell, Erlang, or Scheme. To just learn really good OO techniques, learn, read, and write some Smalltalk.
The best thing to do is to spend ten years or so programming during every waking moment. That's what worked for me!
First of all get start practicing to type all day ! Then get ready to work on minute details which a developer works on everyday like... code shortcuts, coding styles, commenting etc.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I have a large code base and there is lots of repeated, or nearly repeated code all over the place, it's about as unDRY as code can get, but tracking the "duplicates" is hard, so I was wondering if there are any tools for finding potential DRYable code, something like a diff tool or a Hamming distance analizer, don't need language specific knowledge or anything like that.
So any clues as too a tool like this?
Clone Detective for Visual Studio
If you're working in ruby, then you can try this.
Duplo (open source) works in C, C++, Java, C# and
VB.Net. I tried it once, and it found enough duplicated code to keep me employed for a long time.
I've heard of Simian (commercial) but have not tried it.
I use Simian in VS. It's pretty good, not great.
Clone Dr from Semantic Designs is a commercial product that finds duplicate code in a large number of different programming languages. http://www.semdesigns.com/Products/Clone/index.html
Large companies can afford this product. Individuals ... not so much. I wish there were some open source projects out there like this. Might be a fun project to work on. If we only knew of a community of programmers with some time on their hands ...
Semantic Designs' CloneDR find exact and near-miss duplicate clones based on the langauge structure, so it isn't fooled by whitespace changes or line breaks, inserted/changed comments, or even modified variable names.
It leverages production parser front ends to work with C, C++, C#, Java, COBOL, PHP, Python, Fortran, Ada, ...
There are a number of example Clone analysis reports at the web site for various languages.