Where can I discuss specific architecture/implementations I've created and get good feedback? - feedback

Let's say I've come up with what I think is a clean and elegant solution to a common generic requirement in coding projects. I'm happy to share my code but my main motivation for publishing it would be to get feedback from a quality audience about my solution and to determine if it has been done better elsewhere, if it could be done better, if it is buggy, etc. The normal sorts of reasons a programmer would want feedback for.
The Code Project - ugly forum/comment interface and a serious pain when you want to update the article after it has been categorised. Can also be horribly slow at times.
CodePlex - not really a general code community; people would have to know what they're looking for in advance to find my code.
It would be fantastic if something like a simplified version of The Code Project were produced by the Stack Overflow team with a view to allow users to show off pieces of code and get feedback, thus leading to general skills improvement of everyone participating. A bit like Scott Hanselman's Weekly Source Code blog posts, but with more of a communal purpose. In the mean time, however, what do you suggest?

It would be fantastic if something like a simplified version of The Code Project were produced by the Stack Overflow team with a view to allow users to show off pieces of code and get feedback, thus leading to general skills improvement of everyone participating.
There's now a sister Q&A website exactly for this purpose — Code Review.

You could post your solutions here, as an answer to a question describing the problem that it proposes to solve.
You're likely to get at least a little feedback, and see other edits/version of a similar solution.

Related

The Saga of understanding how to apply Axon

I was referring to the Axon documentation trying to implement a Saga: https://docs.axoniq.io/reference-guide/axon-framework/sagas/implementation
As is the case with everything else I've encountered thus far in Axon's documentation I could see no big picture, no diagrams or code examples or even any reference to example code in Github to help me get started.
I know what Saga means conceptually and what it solves. What I'm unable to understand from the documentation is how to apply that concept using Axon's artifacts. There is not one area that is written holistically and completely.
Does anyone have any good reference, books that helps me apply Axon? I'm currently evaluating Axon (and I'm not willing to buy the "support") and the quality of the documentation has almost forced me to look elsewhere (Eventuate).
I wrote this blog about Saga's with code samples I hope this helps you to get started.
Next to the blog that Yvonne has shared, you could take a look at this book from Vijay Nair:
https://www.amazon.com/Practical-Domain-Driven-Design-Enterprise-Java/dp/1484245423
It explains several approaches towards building DDD applications, with the last one diving into Axon's idea of it.
Added, AxonIQ is working on a training environment:
https://academy.axoniq.io/
So, a website with videos and written material about anything Axon-related.
The two courses that are on there right now, are free. Granted, Saga's/Process Manager aren't present there yet, although they should come soon.
When it comes to sample applications using Axon (that are maintained by AxonIQ developers), I'd refer to these:
https://github.com/AxonIQ/hotel-demo -> complete application touching as much of Axon's components as possible
https://github.com/AxonIQ/code-samples -> repository containing more fine-grained samples
https://github.com/fraktalio -> contains several sample projects, of which I'd recommend the restaurant, order, and courier demos
Apart from sharing the info, I am sad to hear you find the Reference Guide lacking at this stage. Any recommendations on improvements are from your current description, rather vague to be honest. If you have the time and interest to enhance this open source product, know you can always open some issue for the guide too. I am not asking you to write the documentation, but a description of the missed would be much appreciated.
https://github.com/AxonIQ/reference-guide

jQuery+jQueryUI Vs Yahoo UI..Which is the best one for web applications?

jQuery+jQueryUI vs Yahoo UI..Which is the best UI to use in asp.net web applications?
I think your question is a little open-ended to be answered in a single answer.
I think in this case the answer must be there are horses-for-courses. By that I mean you need to choose the right technology to suit the problem you are trying to solve.
You have not provided us with enough information to make a critical judgment on your needs. All you have asked is which is better and the answer is neither. They both fit a need. They overlap in a great many places but each also has it's own unique advantages.
So I guess you need to either provide us with more information on what problem you are trying to solve or gain an in-depth understanding of both technologies to see which best fits your solution. It may be that you need both or you may decide to role your own.
If you have a particular issue then please create a new question with the particulars and perhaps someone will be better placed in giving you an answer.
However, having said all that, I'm a huge fan of jQuery. It's easy to use and lightweight. I can very quickly and easily write my own plugins and there is a great community out there sharing their own plugins.
I can't speak for the Yahoo UI as I haven't used it in quite some time and at the moment when I begin a new project I instantly reach for jQuery. But that's my own personal, and possibly subjective, choice.

How much Work-power and time does it take for building website like stackoverflow?

I'm wondering building a website like StackOverFlow (approximately the same features using ASP.NET ) How much Work-power and time does it take in your opinion .
My boss has asked me to estimate for work-power , time , cost and suitable technologies .
I appreciate any direction .
I believe that the site would take plenty of time to implement. If I'd have to pull a guess of thin air I'd say somewhere between 800-1200 man hours.
Then comes the setting up servers, ensuring scalability, testing, fine-tuning algorithms.
So depending on how good you or your team is it could take anywhere up to a year to write something like this.
Disclaimer: I am just talking based on 10 years of experience with web-development. But I could be COMPLETELY wrong.
Buddy, there is a website similar to this called http://startups.com
You can probably ask this question there. Its specifically designed to answer questions like this. Whereas stackoverflow is intended for programmers and programming related questions. I see this question being asked here a bit isolated.
People come to this site and think wow stackoverflow this is an easy site to create.
I mean all it is is post a question then people submit an answer. I think that is a big misconception. Maybe just maybe the database is quite simple, a question has multiple answers and an answer has multiple comments associate with it. If you dig deep into it the questions and answers could actually be stored in the same table...with some indicator as to whether it is a question or an answer. But to answer your question, I don't think it is as simple as one might think. It's definitely not difficult in the logical sense (it's doable). What I am saying is it is more then a one week job :).
it is not that hard to do the site. the design is nice but simple. the engine isint THAT complicated (or so it looks). biggest problem is the load that falls on this site and the hard task of moderating/maintaining it. and the best part of it is the idea ;)
I think that the diffuclt of stackoverflow is to get community (very good quality community, not like yahoo answers).
Not only that, also use cases from stack overflow are pretty cool and adapt very well to get a good community.
About work-power a good skilled programmer could start it, if at full time like a month or less could do it. BUT! the programmer should have the idea,not a freelance or something like that, freelance or slave monkey coder could take a more time to do it.
But there are more problems, like money to invest at very begin of the app for example in hosting / server power costs.
Also stack overflow, could be compared to forums...its like a forum evoled or something similar.
Someone said that requires a lot of work power, I disagree if you start something to get the best scability,etcs (like project of big scale) you are going to death of that project.
Start something simple, very simple when there are scability problems start with that but no at begin!
Probably longer than you expect:
Code: It's Trivial (by Jeff Atwood)

a question about a design

My teammates and I have a very challenging new project to do, and we are supposed to submit it next week. We don't have a single clue about how to do it, and really need help. We are undergraduate students, new to Information Retrieval and AI, and really need your ideas.
The project is roughly:
When an expert is cited in a document,
find an expert with an opposing
opinion & find out what he/she says
about that topic.
We are free to use any programming language, but we are not concerned with the programming. We would like help to get us started. Please give us a rough idea on how to design such a system and how to retrieve information on the internet. How should we get his opinion, then find an opposite opinion?
Simple: use Amazon's Mechanical Turk.
Without that (or an equivalent) you're in trouble. If there are no further constraints on the problem then you will need a full-blown AI, the kind that doesn't yet exist. If there are severe restraints then you might have a chance of doing this in a week. If the expert can be in any field (medicine, politics, history, fashion, science, comic books, etc.) then there will be no single, well-organized repository of essays. You'll have to use Google to find Dr. X's opinion. Once you find Dr. X's writing (and let's pray it's text, not audio) you'll have to do some kind of natural language processing to get the thrust of it, even if you're lucky enough to find a descriptive title ("Digital Photography Is Absolutely Great"). Then you have to figure out it's opposite. What's the opposite of "Neil Gaiman draws on folklore for his story ideas"? Figuring out what opinion you're looking for will be a serious problem. After that, things actually get easier: you can google for the subject and use the same magic tools to find the one you're looking for.
So what do have a chance of solving? A search for opinions that someone else has already organised into "pro" and "con". Some online political forums are organised that way. Wikipedia cites opposing views in a special section in some of its articles. Science journals print letters of rebuttal. Look around, you might find a site even more cut-and-dried. Choose a small enough arena and you'll have a tractible problem.
EDIT: Damn, Ben Dunlap beat me to all my major points in a comment. Sigh
Sounds like an NLP problem to me. As for the information about documents and cites, http://citeseerx.ist.psu.edu should be a good starting point.
For each paper, there are several citations which refer to the paper. At the very minimum, you have to scan the abstract of the paper and that of the citations and run your own algorithm to figure if any citation is of the opposing opinion. Maybe your professor can give you hints on some approximate heuristic, but as far as I know it is a really hard problem.
I would be watching this thread for more interesting approaches.
Automatically submit a Google search request similar to "expert_name sucks", "expert_name wrong", or something like that. Find the first result that has "PhD" with a document link in the same sentence and return the link.
I think you might be blowing this up a little too big... as an undergraduate project, I would approach it a little more small scale.
Unless your specification says you must use actual internet resources, you would be better off creating your own database of custom short documents. Add metadata to each document stating the points they make about certain topics.
Next, I would create a list of citations which link to each document and add some metadata representing that experts stance on the topic. When someone reads a document, I would augment the list of citations with lists of links to documents which have alternative views on that topic.
Basically it would consist of these tables:
Document (id, data)
DocumentPoints (documentId, topic, stance)
Citation (documentId, topic, stance)
And when someone loads up a document, the citations are pulled up as well. For each citation, you search DocumentPoints for the same topics with different stances. The most difficult part of this project would be creating the 5 or 6 documents you need to have data in your database. After that the solution is trivial.
On a side note, most of these other answers are telling you to use some existing solution... don't do that unless the assignment tells you to. You'll be much better off understanding the problem and various ways to solve it (this is definitely not the only/best one) if you work through the entire problem yourself. When the teacher asks you to do something not supported by whatever product you chose to implement your solution on, you wouldn't be able to fix it. If you had just written it yourself, you could just as easily implement to the new spec as well.

Having another programmer take over an existing project

This question is not coming from a programmer. (obviously) I currently have a programmer making a website for me and I am realizing that he isn't going to completely work out.
He has already done quite a bit of work and the site is almost there but I need someone who is better to take it the rest of way. The site has been done in asp.net and I am wondering how hard it would be for a more experienced programmer to take over and finish the work he has already done?
In general, is it hard for an asp.net programmer to come in towards the end of a project and fix what needs to be fixed?
There is five different pages on the site with two overlays for a signup and sign in. (Five pages with many different versions) There is a database and client-side scripting. AJAX was also used. It's a site somewhat similar to SO only not quite as complex and about something completly different. I would say think of something that falls somewhere between Stackoverflow and Craig's List. Thats all I can say now as I don't know the technical words.
You'll probably find that the new programmer will want to rewrite most of the code from scratch. If you are on a tight deadline or tight budget and can't accept a complete rewrite then you will need to hire someone that is not just good at writing good code, but good at reading, refactoring and improving bad code. It is two completely different skillsets and the second is much rarer. Depending on the quality of the existing code (and I'm assuming here that it is not good), your new programmer may end up rewriting much of the existing codebase just to understand what is going on.
Depends on how good the previous programmer was and on the complexity of the project. It might be anything between trivial (well commented source, some high-level docs, unit tests, modular or simple project), to "this crap needs a complete rewrite" (no docs, custom "let's try this" solutions, etc.). If you're not a developer it might be really hard to tell. And other people won't be able to answer without more details.
I'm no asp.net expert, but I suspect the ease with which the replacement will be able to finish the project will depend mostly on just how bad a job the first programmer actaully did. Bad code is painful to fix in any language. :)
A good idea will be to have them work together,for say, a week or two. This will help the new programmer get some much needed training about your current system.
You may find that although the site is almost complete, the successor will have to spend more time than anticipated when performing alterations, as this person will have the mental model of the software that the current developer has. Hence the need to next developer to "re-write" the code base.
If you can, you'll want to ensure that the code base that you have built is maintainable. That is, the solution is built in such a way that it can support alterations easily. As Mark Byers suggested, you'll want to get someone who can not only program but can also re-work your existing code with the goal being that someone else will inevitably implement future changes. If the software is something that you need to keep working for an extended period you'll want to make the investment in making sure that it new functionality can be added easily.
Remember this experience described at The Daily WTF. Take appropriate precautions.
Generally if the site is set up in some sort of standard fashion then another programmer should be able to pick it up easily. if the existing programmer did things to obscure the code then it will be hard for another programmer to pick it up. Basically the question is how readable is the code?
If the current programmer is unwilling to communicate the true status of the project in a professional, non-technical manner, then give him an ultimatum - your way or the highway. Odds are he will be more forthcoming if he knows you mean business. Make sure you have a copy of the latest code before broaching the subject.
It sounds like you are going to end up hiring someone else anyway, especially if you're asking these kinds of questions at this stage, so you might as well go for broke.
As Mark Byers said, it takes a seasoned developer to take someone else's code and resist the urge to "pretty it up" in order to bring the project to a working conclusion!

Resources