|
hello pls am new to this Design and Architecture
i want to Design my own App for a school pls how i start
|
|
|
|
|
You start by putting together your list of requirements: what does the app need to do, what input data will there be and where will it come from, what will be the outputs, will you need to have permanent storage of date (i.e. database), etc.
|
|
|
|
|
Hi, We are currently using "XML, XSLT" to generate HTML dynamically and server side we have Grails, Groovy. But because of High memory usage by groovy API in prod, we are planning to replace it with some other good technologies (JVM based) without remove XML, XSLT.
Please suggest good options, Thanks
modified 20-Jul-17 6:45am.
|
|
|
|
|
Hi,
I am using a multimedia desktop application (PC and Mac) from a small developer, and am thinking of how this application could benefit from online collaboration.
What I have in mind is this: User 1 is working on a project on his/her computer. User 1 runs into a problem and invites User 2 via a menu in the software. User 2 is granted access to User 1's project and it is somehow copied to User 2's computer (peer to peer). They can then share the files, probably with some kind of version control, and perhaps using an included chat room or similar. Note that the file format doesn't matter - this should just be a way to have several people looking at and working on the same files (basically more convenient than sending them over ftp or so).
There are two uses for this feature: a) to help out or improve (say, helping with filter settings that enhance an image/audio file/movie, and b) to enable online collaboration between several users, for example students running the same software (like Google Apps, but not necessarily in real-time).
So, is there any software that would take care of this and serve other software with a suitable API? I am sure that the developer I have in mind could come up with something similar, but I want to have a third party solution so that this will get quicker to implement and not take any direct effort from the main software development. (A parallel cold be drawn to software used for creating license keys: most developers could come up with something similar, but it's faster to use a third party solution.)
I have tried to find such solutions online, but “online collaboration” and similar searches give the wrong kind of search replies.
Thanks for any suggestions!
Petter
|
|
|
|
|
I'm not sure that what you are describing would be a practical problem to solve, for multiple reasons. The biggest issue I see with your problem is what effect pulling the code across from user 1 to user 2 would have on the code that user 2 was working on; they would either have to copy the whole codebase to a whole new area on disk because any changes might conflict with work that user 2 was already doing, or they would have to merge in the changes into their codebase, resolve any merge issues and then start the code review process - but you're talking here about multiple users all working with the same codebase, presumably submitting back to User 1, so how would these changes be resolved, where multiple solutions have to be merged back - (1 to n isn't that hard, n to 1 would be an absolute nightmare)?
There are already tools that allow you to stash work that you are working on and let others take copies. You can use GIT (for instance) to stash your work and let others take copies - which could then be worked on, reviewed and merged back in, in a controlled fashion. Unfortunately, this doesn't meet with your realtime collaboration goals but what you could do is combine GIT with something like Lync (yeah, I know, it's not the greatest collaboration tooling but it's an idea), and then have the users discuss changes online with one user making the changes while the others watched and talked things through; this would be a form of pair programming.
This space for rent
|
|
|
|
|
Thanks Pete for the answer!
Due to some lagging on the website, I didn't see your reply (or my question for that matter) until I had just posted an updated version of it on General questions. As I don't think I can erase a question, I'll leave it there (I'm not sure this forum was the best place for it anyway).
Anyway: well, I wasn't really thinking an n:1 thingy. Rather something like this: I am working on a song in some music software. I could really need some help on volume levels and the like. Instead of copying the entire file plus included audio files somewhere, having someone else downloading it, and then trying to find out what the other person has done to it, it would be much easier if I could just find a list of (visible) online users within the software, send a PM to one of them and ask him/er for advice. He/she would then just click a button in the software to download my files, and then being able to make changes to them. That's the idea anyway.
Thanks again,
Petter
|
|
|
|
|
|
You're right - screen sharing would make this easy.
Thanks!
|
|
|
|
|
petter2012 wrote: this should just be a way to have several people looking at and working on the same files
I doubt that is workable. The situations where that specifically is used would be so rare that it isn't useful.
In normal situations there are two actual peers, each with about the same experience and one needs a 'tweak' to get around some problem. In those cases just seeing the code and doing a verbal walkthough is sufficient. There are many existing solutions that allow that.
The second case is where the first person is a junior and the second, the observer, is a senior. In that case although the second could write the code the complexity means they would need to test it as well. As such they might as well write it in the first place. Not to mention that the first person loses out on the learning opportunity.
petter2012 wrote: So, is there any software that would take care of this and serve other software with a suitable API?
I would be really surprised if there are not open source collaboration tools. Since they are open source the code is available to you to do what you will.
|
|
|
|
|
I am looking for suggestions to develop a back office business system for a family startup. Specifically a programming language that will meet the needs of the business. I have already laid out the design concepts, data structures, etc.. I envision 10 - 15 thousand lines of code to start and it will grow to about 50 thousand. The will be very limited access to this data via the web.
The requirements are:
1. Target operating system will be Linux - probably Ubuntu/Mint.
2. Language must be strong in data structures and I/O to handle sequential, text, direct, and index files. I do not want to get into writing my own indexes and access methods. Been there done that.
3. Must be compiled. Scripted languages can be hacked where compiled languages are much harder to hack. Source code will be kept far the the web.
4. I don't mind if the language has OO constructs but do not want to be forced into using them. From my experience OO the hinders more than it helps. It's like putting handcuffs. The shorted distance between two points is a straight line. That's a personal requirement.
I know the list isn't long but I could be missing something out there I don't know about.
Thanks...
|
|
|
|
|
C or C++ will do the job.
|
|
|
|
|
... and about 10 years of previous applications development experience if one expects to deliver this sometime in the future.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
C is a possibility that I am going to look into. When I was doing C on ATT Unix V it had poor i/o support and had to write dozens of B-tree structures to support the businesses data and users.
But I think it has an ISAM/VSAM library now. Need to look into it. Don;t really want to get into that again - it's a bit of code to do.
Thanks
|
|
|
|
|
If you want a simple database then SQLite[^] may be a good choice.
|
|
|
|
|
It's a good idea but down the road there are going to be needs that go beyond the shuffling of data.
And it is just me - I like everything under one roof (one programming language). It's just easier to deal with. Thanks.
|
|
|
|
|
VSAM is the underlying file structure for IBM's database management system. As far as I know, there are no other implementations.
You're either using a bot to "spin" this stuff; or you've just woken up from a corporate sleep.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Joer4x4 wrote: Must be compiled. Scripted languages can be hacked where compiled languages are much harder to hack. You mean compiled to native, not to bytecode. If you want to know "how much harder", then go take a look at the amount of games that were available in the '90s without a copy-protection in the wild.
Joer4x4 wrote: From my experience OO the hinders more than it helps Makes me conclude that your experience is too limited. OOP does not shine in small utilities, it shines in larger projects. Don't tell me you'll be favoring global variables too.
Joer4x4 wrote: I envision 10 - 15 thousand lines of code to start You don't know what language, nor how tense that language is, but do already know the LOC?
For any experienced and inexperienced programmer I'd recommend C#. Yes, compiled, but not to native. If your application only runs on your machine, then that should not be a problem. If your application is distributed in the wild, then preventing hacking becomes a mere economical question. Most applications are sadly not worth the effort of stealing
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
1. Does not have to be compiled native so long as I end up with machine code. This isn't a game it's business - totalyl different ball game.
2. I can write a system faster in older languages with OO. If you look closer and understand the languages it becomes obvious that OO is not completely new. Older languages have been doing that stuff long before OO. The difference is they gave it fancy names and made the programmer write code to restrict and enforce the usage of data. Every time you pull data together to form a record you encapsulate the data. When you pull the record inheritance is automatic. The data is what it is. But if you are pulling for a different purpose you have to jump though hoops so OO will let you use it. Without OO it can be easily accessed and broken for the need. The focus should be on the data and purpose - not the language. A single variable name is easier to follow through a program than 20 variable names for the same thing.
We all know a fence belong around buildings and homes and is built on the ground. It works fine for OO but down the line you may need a fence for your model train set so now you need a fence on the table. Now what? Create more unnecessary so it suits the language because to get that fence? In the real world you need to be prepared to put a fence anywhere. Why? Because you can and the business wants it yesterday.
There was a time when many business(even small) had there own programmers. They wrote software that gave the business and edge over the next guy because it was tailored for the business. When OO came along that faded because OO became expensive and not as much was getting done. It was not all OO but it helped. Now it's a package world - one size fits all but it doesn't really?
Hey if you like OO go for it. But having experience both worlds - I'll take the old one - much more efficient. Especially in large projects. If done right and understood OO does not make better code or a better programmer.
3. I know what language but I am avoiding it. While I am exploring I understand that most most new languages were developed by those in research, science, and some back office at some university. Unfortunately those languages tend not to be business friendly especially in the the area of file I/O because they built the language for their needs and not the needs of a business. C is a prime example. They needed something better than B to build Unix. So C was born and is a great for building OS code and utilities. For business it will work and you will have more code than you should but it is far from ideal. So I am thinking someone may know of something better to turn a lot of data "quickly" so long as I can avoid the OO for the fastest turnaround time for changes. Time is money...the real world
modified 7-Jul-17 21:24pm.
|
|
|
|
|
Joer4x4 wrote: Every time you pull data together to form a record you encapsulate the data. No, data is aggregated by the db, before being consumed by the application. Read as an array of object usually. Does not require a class describing that set of data.
Joer4x4 wrote: Time is money...the real world Been working there for a few years now, and most companies tend to value efficiency. I can also note that I would not be touching procedural code with a stick
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Interesting - It takes an application to create, use, and determine the structure of the data. The db is totally stupid until it is told what to do. The term here is used loosely as a db is a group of tables managed through specific software line DB/2, MySQL,or RMDBS. Even then you have to decide how you want the data stored (encapsulated).
An array is a group a similar data items. Records are a group of dissimilar data items. Last time I looked a class is an object. Classes are just different types of objects.
If you are a programmed you write procedures all the time so hold that stick. An OO method is just a fancy name for a procedure. A machine will always need instructions and it is procedural. All machines work that way because humandswork that way. It just life.
What was that about the experience thing...
Enjoy the day.
|
|
|
|
|
Joer4x4 wrote: An array is a group a similar data items. Records are a group of dissimilar data items. Last time I looked a class is an object. Classes are just different types of objects. An array of pointers is not required to point to "similar stuff". And no, a class is not an object, it is a blueprint of an object. An object is an instance of a class.
Joer4x4 wrote: A machine will always need instructions and it is procedural A machine will also need data, as procedures themselves are useless. OOP is about structuring and scoping both into logical reusable pieces.
Joer4x4 wrote: What was that about the experience thing... Yes, you'll need more
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
"And no, a class is not an object, it is a blueprint of an object. An object is an instance of a class."
Stop... not true...
How many times I read a similar statement and chuckled? For in itself a class defines itself as a class, therefore and logically is has to be a object. It is an instance of itself. It has inheritance and can be inherited. They also tell you it doesn’t take up any computer space or storage. But if that were true, you could write a method without it. It’s in your code and classes are enforced. The compiler or interpreter may ignore it for creating machine code but is used for the human.
A blueprint is a real physical "object". Poor comparison but no other way to explain class. And why is that?
int x, y;
x = 0;
y = x;
So I created a class of x (int) and an instance of x. Is x not an object also?. X is inherently encapsulated unless we use a method (where x is the object of an imperative statement) to change it (x = 1). I can use it as a counter, an account number, product number, etc.. Counter, account number, and product number will not only inherent all x is, they are polymorphisms of x.
Where do you think OO concepts evolved - out of thin air?
"OOP is about structuring and scoping both into logical reusable pieces."
In that regard OO isn't any better than PL/1, COBOL, EDX, and a host of other non 00 languages.
|
|
|
|
|
Joer4x4 wrote: How many times I read a similar statement and chuckled? For in itself a class defines itself as a class, therefore and logically is has to be a object. It is an instance of itself. A class is not an object, it is, as Edddy said, a blueprint from which an object can be created. If you really do not understand this basic concept of OOP you are likely to get yourself into some serious problems.
Joer4x4 wrote: A blueprint is a real physical "object". Yes, it is a piece of paper with drawings of a physical object, but it is still only a drawing - a blueprint of a house is still not a house.
|
|
|
|
|
Joer4x4 wrote: Stop... not true...
That's the definition I gave the students
It is not a philosophy-class; instead of disproving the definition by using an incompatible real-world analogy, one is expected to use the definition to make sense of what the computer is doing.
I'd also point out then that OO is limited to programming-theory, and that the correct name would be OOP, since there is no OOI (Object Oriented Ironing).
Joer4x4 wrote: For in itself a class defines itself as a class, therefore and logically is has to be a object. No. A class is not "logically" an object. An integer would also not be an object, but a value.
Joer4x4 wrote: In that regard OO isn't any better than PL/1, COBOL, EDX, and a host of other non 00 languages. It is. Made it rather easier to re-use code, since one does not have to hunt all used global variables. Makes extending code a lot easier. Makes it easier to manage a larger code-base and dependencies.
There is a good reason that most code here is OOP-based, and not simply COBOL. Give it a try, you might actually like it
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: An integer would also not be an object, but a value.
In general that is specific to the programming language however. Smalltalk has no primitives - integers are objects.
|
|
|
|
|