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 3 years ago.
Improve this question
Second Life is fun to play with, and some developers are creating content there, but I was wondering what useful resources (if any) are available in Second Life for professional software developers.
Discussion groups
Education/training
Vendor support
Development-related presentations or demos
Professional contacts
To clarify: I'm not really looking for information on developing stuff for use in Second Life (although those answers are welcome). I am looking for pointers to stuff in SL that programmers would find useful for their real-life work.
They have a site about some of these uses: http://secondlifegrid.net/programs/api/
and some pages on the language they kind of grew: http://wiki.secondlife.com/wiki/LSL_Portal
Like you I find playing around with SL pretty interesting for recreational coding. One of the experiences that made me think there was something to it was trying to code a working clock in a sandbox (a general building area in SL). Other avatars would walk past and make suggestions and as there's a fair few coders around it soon turned into an interesting collaborative effort. If only it was that simple in RL. Some things just work really neatly in SL - I once implemented a swarming algorithm using a flock of 'birds' as the objects (which gives a whole new take on oops).
As to resources - assuming you're beyond basic coding level then you should be able to figure most things out from the LSL Wiki - http://wiki.secondlife.com/wiki/LSL_Portal.
There's an ebook - "Scripting Recipes for Second Life" by Jeff Heaton which covers the basics in a reasonably well laid out way. It's only a few dollars but probably only worth it if you've not done a great deal of coding elsewhere. There's also regular classes held in-world, but I believe most of these are at a pretty basic level.
For groups I've always found the Scripters of Second Life group very helpful with a lot of people generally on it. There's one called simply Scripts which is quite active too.
A couple of words of warning, LSL, whilst Turing-complete is pretty broken in several areas, lacks modern program constructs (and some older ones - like arrays!) and much of the 'black-art' of LSL is knowing how to work around the limitations, With the advent of Mono though this is likely to be a decreasing issue.
Also there does seem to be an assumption by the Lindens that if you want to do any 'heavy-lifting' code you'll do it on a server off-world and call and return results to/from SL. This isn't helped by the XMP-RPC implementation being very broken, although HTTP works fine (and generally better than might be expected).
I vaguely remember Dr Dobbs running some sort of ongoing "Programmer's Island" thingy in SL, but I can't find the reference right now.
Apparently some sort of "virtual conference" for software developers.
As far I'm concerned, I'm trying to contribute to the OpenSim project which is a OpenSource clone of the SecondLife server infrastructure, written in C# and Mono.
OpenSim is SL like, enhanced with many additional script commands, open grid protocols, with customized modules and plugins. It definitely worth a look if you dont already heard about it.
ControlBreak suggested this in a comment (I'm promoting it to an answer):
You can visit Microsoft Island. Presentations of new products are done regularly - http://www.kzero.co.uk/blog/?p=663#more-663
IBM, Microsoft and Sun are pretty active in Second Life and sometimes there are interesting presentations/demos to see. Some of those are great for networking and meeting people from those companies which work on products you're interested in.
There are several groups for Java, PHP and several other programming languages apart from LSL, however IMO they're not as good resource as other non-SL resources. You can get your questions answered more quickly on StackOverflow or IRC.
IBM held several interesting programming competitions - there was something with robots finding a way out of the maze by IBM, there are also robot wars and some other programming competitions in SL, however they are all LSL-oriented.
I think I saw a beginner PHP class once, so if you're interested in learning programming language from start, try searching events and you might find something; however those are pretty rare in my experience.
Look & Feel team Scripting, it's mine. Common 3D trouble is confusing camera center between camera or actor. A designer may think camera center is world when it should be actor.
Related
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 actually working for a little company of 10 people on the area of solar panels solutions in Chile. Am working on linux since 20 years now. When I studied programing I studied a lot with Eiffel which I found really a great language. Since, I'm frustrated from a language to another missing a lot of great concepts it offers like
real object (no string != String; ...)
multi-inheritance
polymorphism
genericity
contract.
Working now with Java because
its mostly free
the community for tutorials and helps is huge
its multi-platform
I'm looking for the pros & cons to convince the instances of my hierarchy (basically talking about justifying the price of the licences which are 1500$=>1y and 2000$=>2y) and to be a bit secured that I don't pretend I'll go with a solution I'll regret at term because it will be hard to get the support I need to get my solutions working. Is ISE Eiffel reliable for production use? Will I have to get hours of pain making work a solution?
What are the pros & cons?
Pros
Concepts helping me to write real good quality code (multi-inheritance, polymorphism, genericity, contract)
Pleasure to develop with such good tools
Quality and reliability of produced code
...
Cons
Poor community, meaning few tutorials
I'm not good in C so digging into the implementation of C libraries is something which will cost me (and to the company)
Price is high and has to be justified
My Curriculum will not be as well as if I have years of experience in Java
Formation of other programmers won't be easy if as most of them dont know these concepts
...
I also work in a small company and we have decided 2 years ago to make the move to Eiffel. We had the exact same questions as you are stating. We now have official licenses and support. I studied the Eiffel Web Framework a long time (from 2014) and knew that the only good way to be able to state that it can be used in production is to just do it.
So that is what we did and now the software is in production and working robust, safe and performs well. In production are web API's based on HAL+JSON and created with the EiffelWeb Framework and a self written framework extended with reusable domain components created for the companies goals.
So ISE Eiffel is certainly reliable for production use and the support is outstanding.
You won't have any hours of pain as you call it, but when you write software with EiffelStudio you get many hours of joy, but all the other aspects of software engineering will be as hard as ever ;-).
About your other cons, my two cents are:
For a curriculum, more important is who you are as a person and if you fit in the current team. In my opinion when someone is educated in a model driven approach and acts and thinks like that, can use that knowledge quickly on any environment. That for me personally is more important then being good at one specific programming language. Although I understand that in some cases we also need specialists to get a job done quickly. It all is a matter of personal choice, both are needed in the industry.
If you need other programmers that get in the team doing this, you can only work with people that want that. I know from experience, that some people want it and other people just won't. My advice is not to put energy into the people that do not want it. Work with the technology, show that it works and maybe they get convinced, else seek for others that do see this.
If the management is not behind the decision to work not only with Eiffel, but also with the ideas of Bertrand Meyer, then don't do it. You will find yourself always fighting against it, while it is very hard for others (not software related) to understand. It is a matter of trust, when there is no trust (at both sides) -> don't do it.
We now also get questions about how the Eiffel environment is handling vulnerabilities, which are compared to the way e.g. Linux and Java communities are handling that. Eiffel is not used as much as those technologies, but the Eiffel software itself is build on the strong quality core of the Eiffel method and language. This can simply not be compared with other environments. But again others do not understand this, so how is this going to be addressed? This is an example where you run into when you will be using the Eiffel technology.
A lot of words, but the plain answer to your question is just : YES it can!
It's certainly reliable enough for production use.
You may well have to write wrappers for C-libraries, depending upon exacly what you want to do.
You mention web services. There is a good web framework. But there is no support (that I know of) for W3C XML schemas, for instance.
I would suggest you try writing a small prototype using the GPL edition (you won't be distributing the prototype, so you will not be restricted by the GPL). Then you should be able to assess for yourself the suitability for your usage.
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
We need to implement a one-form app (long form) that persists into Oracle DB. There are no Web services of any kind. The culture is traditionally Java-oriented here but it's open for suggestions.
What are the Pros and Cons of going with:
The traditional MVC Java stack - Spring, Struts2 or SpringMvC, Hibernate
The JS (modern) stack - AngularJS, NodeJS, ReactJS
Any clear explanation of the differences, with the Pros and Cons, would be strongly appreciated.
As I stated, I haven't been able to find a reasonable and understandable comparison.
It's apples and oranges. I'm only posting this as an answer because it outgrew the comment.
First to nitpick a bit, AngularJS is front-end technology, you can use it with any back-end technology (I use it with Struts2). So lets remove that from the comparison.
Second nitpick your comparison is more a JS vs Java choice. If you did your research you could be comparing NodeJS against Play, Vert.x, or similar. Not because those frameworks are "modern" but because they share some of design goals which made NodeJS what it is (Vert.x is very similar in intention, it has comparable speed, non-blocking design, and allows for polyglot programming).
But really there is something more fundamental than the frameworks... and that is the language. If you know JS and you've worked on the front end design did a mockup and then need to develop server side services and aren't more comfortable with another language, well it really doesn't make sense to invest in that heavy lifting when you can start doing something useful right away. It's also the same the other way (from the Java perspective) no matter what the framework you need to invest time, if you already know a Java web framework, why waste your time figuring out something else?
That last question isn't rhetorical, seriously why waste your time? In defence of keeping with JS, you can keep everything in one language, NodeJS is pretty fast, although keeping the comparison fair there are many Java web frameworks Struts2/SpringMVC don't have similar design goals to NodeJS while Play, Vert.x, and I'm sure there are others would be a more fair comparison. JS has a different way of doing things and if you have JS ninjas then it does make sense to do everything that way. As for why Java, it is fast, it has an enormous codebase, there are APIs and frameworks for everything, from meta programming, AI, robotics, security, obviously databases and everything common, there is enormous choice. It is more structured, in the end this means that months later you can generally figure out what you were doing and you can better share work and divisions of labour. But again, does any of that matter? I'm not looking to start an argument with the general public, only you know your requirements. Consider them and also consider human nature and take a reasonable course.
In my experience people use what they know, people I find are often splitting hairs over their favourite framework and someone else's for no other reason that that is what they know. If you're going to use some technical tooling advantage to try an get consensus that is highly unlikely to happen, and I would recommend first to look at your human resource capabilities; I mean you could write it in Java or JS, whatever but happy employees will produce way more regardless! What the majority would rather work with can't be discounted lightly.
This is not a question which stack you use. Pros and cons have nothing with the technology involved rather than humiliating the user experience by choosing one framework over another.
If you get any project from an idea to the production software you should know that many many, many factors apply on making decision on the architecture of the project. All it depends on the proposal that you should write first. The quality of this document will make influence on the further decisions and directions, feed-backs from the end user who is the consumer of the desired product.
No language, no framework, no programmer needed to provide you the user requirements. It's just the software that should do some things. That's all you need to know at the first time.
You can promise the user that you can build the software that is required, but you don't tell how it would be built, which language you use, framework, technology, resources.
You can see what other people is created and how it works and if it fits with what user is required then you luckily copy/paste. Unfortunately, it doesn't work in most cases and you have to pay for every brick in the building.
The most significant part over technology is programming resources. If you have such resources that you already tied a half which technology is preferred to use with the project. Technologies, languages, frameworks are different, and nobody can handle them all with expert level. You can build the software with one framework, then rebuild it from scratch with another and then you can compare. If you can't compare the costs used to build the software than your decision is just opinion based on other opinions.
The pro-vision occurred if you have experience of building production software on different platforms using different languages and different frameworks. Because many languages, frameworks are in most business problem oriented and recommended to use by experts as suitable to solve such kind of problems. There's no any point which one is better, because if you choose one that is more recommended than others and create ugly software using it you can't say that it's worse that others that are less recommended. On the other hand if you choose framework and create the great software that may be lacks some features available in other frameworks you'll win.
Don't play with the technology, use qualified consulting services. This is out of the topics of stackoverflow. Because this information is always commercial. Good luck with your endeavors to find the better software that suits your needs.
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
Currently learning IOS App development using a the big nerd ios programming book and I was on a chapter of the book that focuses heavily on CoreGraphics. I found it hard to grasp so I went through the chapter multiple times and it became slightly easier but I still wasn't 100% confident with it so decided to find a nice core graphics tutorial.
I found myself doing the ray wenderlich core graphics tutorial, it's quite good but I still noticed there where somethings I didn't quite get. Often found myself asking questions like "why did I just do that?", "how am I suppose to know what floating point number to put there?".
Anyway I woke up at 5am and have been reading various posts and webites for the last 2 and half hours. I stumbled across a post that stated:
The basics of graphics programming is necessary
C++ is a must
Linear Algebra is a must
Firm knowledge of coordinate system transformation is a must
How true is the above?
I mean I remember in the past when learning ruby/rails I ended up needing to pick up various other things in order to be able to build complete websites. On my journey to learn IOS App development I'm starting to see the same thing happen.
I've stopped at chapter 6 of this big nerd book to focus on core graphics and now I'm not even half way through the core graphics tutorial I'm following and may need to stop and do a tutorial on linear algebra amongst other things.
I'd like to do what's really necessary. Stackoverflow is my go to place in these types of situations. I'd like to know from some of the experienced IOS App developers, what do you recommend in this situation?
Is there a set guide you recommend I follow?
I promised myself I was going to learn IOS Dev properly with no short cuts as understand things thoroughly has made the experience quite enjoyable.
I came across a linear algebra video course on khanacademy. But I'd really only like to put time into what's necessary. I work full time, currently trying to make the transition from networking into the web development industry so I can naturally put time into it rather than having to sacrifice evenings and weekends.
My aim is to be able to build a fully fledged app. E.g. Like twitter, facebook, tagged. I won't be doing any fancy graphics just the kind you'd see on the sites I mentioned.
Your advice will be greatly appreciated thanks.
The basics of graphics programming is necessary
Technically true, but Core Graphics is a great way to learn (at least 2D) graphics programming.
C++ is a must
False.
Linear Algebra is a must
It's involved, but you can ignore the man behind the curtain 90+% of the time.
The only time I can remember the matrix nature of affine transformations becoming important was the time I answered a question about infinite rotation—and even then, another answerer provided a solution that didn't rely on matrix knowledge.
Apple's own documentation says:
“You can use either set of functions [making matrixes directly from numbers vs. geometric transformations] without understanding anything about matrix math. However if you want to understand what Quartz does when you call one of the transform functions, read ‘The Math Behind the Matrices.’”
I would only add that if you do read “The Math Behind the Matrices” and it's lost on you, don't worry about it—just try it again in a month. At some point, you'll read that chapter and it'll make sense.
Geometry and trigonometry are much more important as a Core Graphics user than linear algebra. And the trig you need to know is pretty straightforward.
Firm knowledge of coordinate system transformation is a must
Again, true, but Core Graphics is a great way to learn it.
Is there a set guide you recommend I follow?
The Core Graphics Programming Guide.
If any part of it stumps you, open Xcode and start doing it. Pound on it 'til it works. Make sliders to adjust parameters (e.g., any of scale, translate, rotation angle, and skew) and fields to display them and see how the input affects the output. Experiment with blend modes.
Definitely experiment with blend modes.
And if you ever get completely stuck, you can always come back to SO and ask a question about it.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I've been lurking around for several weeks and have been totally blown away by the amount of information and how the community quickly responds. I have noticed that questions like this typically receive sarcastic remarks and sometimes get down voted. Please bear with me as I attempt my first post :)
I little background..
I work at a tiny software company as the "QA department". Our application has a MS SQL back to store customer data and short term loan information for financial service companies. I started working here 6 years ago as a gernal technician to provide support for their call center, so I've been overly exposed to SQL and have become fairly familiar with working with it. You probably wouldn't pay me to develop a enterprise level database, but at this point I've become familiar enough to do most things in SQL.
Why I'm asking my question..
I want to develop an application to store and track our software issues and new dev. I've done research on this website along with asking around and I still feel sort of lost as to which direction I should take. I want the core of the application to be pretty basic at first, to provide various screens between my entities/modules and to create reports to show their various relationships. In the future I want it to be more complex, to provide a web portal of some sort and to start getting into various complex QA software concepts. I've read around and it sounds like I might want some variation of C/VB for the windows portion, but all of the topics have sort of overwhelmed me. Do I want to start with a more basic one that was created 20 or 30 years ago? (I think that's C and C++, right?) or a more recent one like C#? Will I be able to develop a web portal with both of these? (by web portal I'm thinking it would provide access to our database of defects and have username/password sign-in). I've seen that the various .NET languages lean more towards web development, should I start with one of these?
I am at the very beginning of this and I fully understand that I'm jumping into some deep waters here. I want to make sure I don't end up spinning my wheels and that I focus my energy on something that won't end up being a bad idea in 1 or 2 years after I start. So far I've found this website very helpful, if I can pick a direction I know I won't have any problems finding what the next step is. It might help to know that I have no formal or informal programming background (if it wasn't obvious). I'm a 27yo techie who is starting his first venture into programming, go easy on me! Thanks for taking the time to read this :)
I won't recommend that you go to C, C++, or VB. C and C++ are used mainly for developement of system software, compilers, etc. VB is deprecated by now; there is a .net version VB.NET, but my preference is C#.
Looks like you are a Microsoft shop. Steer youself towards using C#. Visual Studio provides great support for development of Web Applications with support for holding state in entities backed by MS SQL.
I would start with a simple example as given in MSDN http://msdn.microsoft.com/en-us/library/dd410597.aspx.
This example uses an Model View Controller based framework that is fairly easy to configure and use. They have great examples.
There is a free framework that also supports MS SQL Entity store http://www.coderun.com/ide/
Enjoy
Don't write a line of code. There are literally hundreds of open source and commercial software packages that already do what you want to do. You'd be better of spending time researching them and finding the package that most closely meets your requirements. A good solution will also be extensible enough that you'll be able to modify it to meet all of your requirements.
Since you work for a small company I can guarantee you that using your limited development hours "writing your own" will be counterproductive. You'd be better off adopting something off the shelf and becoming proficient at it. You'll learn more about developing systems like this once you've become intimately familiar with one of them.
Check out JIRA or
http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems for some other ideas.
For the benefit of your company I would recommend to use an existing
solution. But if you want to learn and build something of your own, I
would suggest that you check out some popular web application
frameworks, like:
Django
Ruby On Rails
Zend
Good Luck with your project!
Given that your intent is to learn and create something yourself I think you should consider a LAMP stack and PHP with one of the PHP frameworks on top (Cake PHP, code-igniter or the like).
The C++ route is a long hard way (C++ is my language of choice) to learn; as a learning experience I think you will get quicker and more satisfying results with PHP.
I also think that this is a realistic project for someone of your skills over a period of a 6 to 12 months - start with a simple requirement and then build it up to have all the features you need.
If you just want a bug tracking system obviously there are many options that won't demand any development.
How much experience do you have with things like installing Linux, Apache, Mysql, etc? If you are completely new to this, then this will be a much tougher task, because there are many layers you'll have to learn before you can even get to the point of writing an end-to-end application.
I would avoid C/C++/C# because there are a lot of things you would need to learn about basic programming before you even got to the stage where you could make database calls.
On the assumption that you don't have experience with LAMP (Linux/Apache/Mysql/(Perl/Python/PHP)), my suggestion would be to start simply, by using a scripting language like Python or Perl. You can very easily get a database connection, and start writing queries, and extracting data from there. If you are used to Windows, I would install ActivePerl or ActivePython, and start from there. You can start building a command line program that does what you want, and then from there, you can move on to creating a web application that can do something similar.
Building a web application would likely be much easier than writing a Windows application, so after you have gotten comfortable with the scripting language, that's the direction I would go afterwards.
Good luck!
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 9 years ago.
Improve this question
At my company we are undertaking a large task of creating a new software architecture for our products. Our current architecture has been in use for many product iterations and lasted a long life and it is time for it to retire. The UI architecture is currently implemented in WTL/ATL 3.0 and COM.
We have just completed the design of the back end architecture, one that will stand the test of time as its predecessor has. However UI technologies move so fast that no one on our team has the expertise that I would consider required to lay a foundation that should last many years. We are currently targeting WPF for this architecture and considering various alternative strategies to help our lack of expertise with this technology.
Some approaches we are considering:
Have our experienced staff ramp up on WPF and work through an architecture -
Concern with this approach is that the areas we need our UI layer to last and likely all of the learning’s required will not be gained until after many products have been implemented using this architecture.
Bring in temporary expertise from a consulting firm to assist with the architecture and development - This approach is looking promising; suggestions on firms with expertise? Microsoft does not provide application and architecture consultants, so finding someone with the necessary expertise may prove challenging.
Bring in a consulting firm for an architecture study and guidance session - Seems to be compelling as would provide our experience staff guidance while still allowing our domain knowledge to steer the direction of the architecture. May be difficult to find firms qualified for this type of service.
My question then to you is how have you resolved a similar situation where you must create a robust, rich, long stay architecture utilizing new technologies that your team does not presently have architect level knowledge of? Have you had success with any of the previously mentioned strategies, or are there other approaches I have missed completely?
In general I am not an advocate for working in this capacity with technologies that are unfamiliar to you. With that in mind, the user experience we believe WPF may provide will give us the capabilities we want to utilize for many years. At any rate you have to start somewhere. ;-)
You have to learn your chosen GUI eventually.
As one of those outside consultants that comes in for these kinds of projects, I suggest a variation on option #2.
Engage one or two outside consultants.
Have them guide you through something like your option 2. You actually learn WPF and then (with their help) develop the architecture and implement it.
Your follow-on question ("suggestions on firms with expertise") is disturbing. If you don't have trusted technology partners, now is the time to start cultivating them. It will take a while to locate folks you can trust.
The only way to locate them is to pay them to do some work and see if you like them and the work. This process can take a long time.
Problems with doing #1 by yourself are the obvious ones. If you try to do this on a deadline without experts, you'll make mistakes. You'll cast those mistakes into concrete. You'll try to live with them forever. When learning something new, the calendar is the most dangerous thing imaginable.
Option #1 works when there's no time pressure.
You build something disposable while you're learning. Then build something which you know that you will have to throw away. Then build the real thing.
Problem with doing #3 is that you may be asking consultants to do too much. If they plan your architecture, you probably won't completely understand it. You'll cut corners and bad things can happen. If -- on the other hand -- you do it yourself, you'll understand why those corners shouldn't be cut.
Also, #3 is an opportunity for piling in every feature you think might be cool. Until you understand the technology, you don't really understand what's essential, what's easy and what's hard. You're very likely to demand something that's expensive and risky because it's difficult to understand exactly how expensive and risky it is.
First off, WPF is probably a good choice. This is being embraced by Microsoft, and really seems to be the direction things are going for long term development. I recently made a very similar decision to this, and decided to go with WPF. After the initial pain that comes with a new tech., it's proving a very good decision.
That being said, I'd highly recommend a mixture of 2 & 3.
If you can find a good consultant to help with the design, you should be able to bring them in to help you with the design and architecture phase, some initial construction of the project, and they can potentially also help your developers get up to speed. Having help in house (or at least on-call) will be tremendously helpful in getting the through initial phases of trying to develop with WPF.
It also helps to bring in a developer and/or designer who has experience working with WPF.