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 6 years ago.
Improve this question
I'm developing an address system which provides a mechanism to hide fixed addresses of applications (e.g. IP-bound). For example, a application may be referred to as APP1. If this application fails, this mechanism silently links the IP-address of a backup instance to abstract address APP1. The program talking to APP1 will however never notice this hidden address change.
Commonly, people refer to such behaviour as transparent even though hiding and making things invisible is exactly the oposite of making things transparent.
Is transparent the correct terminology? And if yes, why? Does the argument come from some different viewing perspective?
To prevent comments and flags about this question being of topic: I'm writing a technical specification which is a very important step during system development, and therefore needs the same level of exactness as programming the system, hence just see this as a programming question in a little bit broader sense.
This is a classical discussion. The correct term actually depends on how you are describing your system - are you using a light visibility metaphor or a mathematical/CS concept? Since the mechanims do not show all details of its execution, you can say that the mechanism provides an "opaque" view of the behavior, because the user does not see how it works. This is actually the opposite of transparent - as you point out in your question. However, it is not that simple. This expression comes from a mathematical concept, the referential transparency. From Wikipedia: " An expression is said to be referentially transparent if it can be replaced with its value without changing the behavior of a program (in other words, yielding a program that has the same effects and output on the same input)." There is also the derived concept of transparency in HCI: "Any change in a computing system, such as new feature or new component, is transparent if the system after change adheres to previous external interface as much as possible while changing its internal behaviour."
So, yes, you can use the transparency concept to descript your system's behavior abstraction.
Related
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 7 years ago.
Improve this question
This may be a generic question but still i need suggestion/guidance on which design pattern or architecture to follow for developing this app.
The app is for premium users(for iPhone) on airport and will be able to access the internet at higher speed and on multiple devices simultaneously.
I'm planning to go for Singleton,Factory,MVC patterns and client-server architecture for the app.
What-all things do i need to re-think and then design the app or are above patterns sufficient to go ahead ?
thanks
It seems bizarre to come up with a list of patterns to use before you look at what your app is actually going to do. This is not how you use design patterns.
The way to use patterns: When you have a problem, and you think about how to solve it, you try to find out whether your problem fits a well-known pattern and adapt that pattern to your problem. Or you figure out that it doesn't fit any well-known pattern, and then you solve the problem without using any pattern.
This is like going to a shop buying blue and yellow paint, and then deciding what parts of your home you want to paint. You do it the other way round. You decide what needs painting, then you decide what would be a nice colour, then you buy the colour. You don't buy the paint first. You don't decide on design patterns first.
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 8 years ago.
Improve this question
I am currently preparing a talk about Polymer.dart and would like to give a short introduction to dart. There is one question I would like to be prepared for:
Will there be ever a dynamic code injection via <script> for dart?
This article says that there is currently no support for this for a good reason.
However, the currently relativizes the statement a bit and I wonder if there is anything planned in the future to support dynamic code injection?
If for example the "eval" command is introduced in Dart, then the answer is YES, Dart is vulnerable to injection attacks.
Javascript is in this regard like SQL: it has the same vulnerability than all other dynamically interpreted programming languages (this includes all shell scripts, PHP...), which I call "DATA IS CODE". Such languages have a concrete syntax which is meant for human consumption and their processing entails a first step which is called PARSING: the sequence of characters is broken down into an internal structure which describes the meaning of the expression, in a way which the computer can distinguish the DATA from the INSTRUCTIONS. It is the same problem that lead to the introduction of the NX (No-eXecute) bit on modern CPUs. Functions like "eval" open the door to malicious code to be executed with no constraint. Parsing code at runtime should NEVER be allowed in a secure language.
This is why Dart doesn't recomend the use of injections, as explained here:
https://www.dartlang.org/articles/embedding-in-html/#no-script-injection-of-dart-code
"No script injection of Dart code We do not currently support or
recommend dynamically injecting a tag that loads Dart code.
Recent browser security trends, like Content Security Policy, actively
prevent this practice."
But google should do more than that, and forbid it entirely, together with the "eval" command.
It is better to direct such questions to your crystal ball ;-)
Google is very reluctant to make statements about such things.
There were discussions in the past and they considered it and they might reconsider it eventually.
Currently the only option is to launch new isolates and even this is still work in progress and has still limitations that makes this feature hard to use (no access to the browser API for client isolates for example).
I'm not sure this question can really be answered; as it's probably not been decided.
Based on what's written in that page; I think it's very unlikely (especially as other rules, like one script tag, and a single main entry point).
But as with everything, things can change!
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
You can find thousands of questions out there about how you develop software and which methodology is the best one. But mainly these are targeting medium to large teams, with people having different roles and responsibilities.
What I'm interested in is what methodology are you using for your one-man-shows? What steps are you doing, what documents are you creating to get the things you want to develop clear and document it well, to share it with the community?
Especially, I’m interested in the following questions:
_Are you using a structured approach even you’re developing on your own or no at all?
_What phases are you using?
_Which documents are you writing before and after coding?
And if you have “your” standardized approach, can you share templates which you are using?
Thanks in advance,
cheers
Gerry
Personally I think it is a matter of making decisions when it comes to the development process (solo). In my case I wouldn't recommend setting up a massive development process but I would pick elements which prevent problems that I have earlier had. My approach for small applications (in the right order):
Always write down what you are going to make and what you are not going to make (define a scope) - Think of functional requirements (Functional Design)
(OO only) Make a class diagram that displays relations between classes. (Technical Design - Sequence diagrams, while usefull, take up massive amounts of time to make)
Write your program according to what you have just written down (or part of it).
Refactor and redesign your application (once in every X hours, write this one down)
Repeat step 3 to 4 until the result is what you wrote in the Functional Design.
Walk through every corner of your application to find every single path and write this down in a testdocument. Identify possible problems in the paths and test them.
When it comes to big applications however (or assignments for someone else) I prefer using the "medium to large teams" approach. Which almost brings a guarantee that you will not be meeting most problems.
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 8 years ago.
Improve this question
I'm about to start building a Rails app that will eventually need to vary CRUD access by user (i.e. which pages do they see, which can they edit, etc).
Is there a best stage of the development cycle to incorporate this?
Part of me feels like it should be the very first thing, since almost every piece of the interface will in some way rely on checking the user's ID, and it will be an inherent part of the DB structure.
Another part feels that this would overcomplicate things to start out with, and that I should instead build the core parts of the app, then layer on the authentication/authorization later.
Are there any best practices around this sort of thing?
I would say that if your system will rely on some kind of authentication... Why wait?
Let's say that you start developing your application without the authentication layer but at the same time you know that at some point you will have to do it. That means that at some point you will develop the authentication layer, and most likely you will have to refactor what you have already built to adapt it to this new layer.
Also, to try to convince you a little bit more...When you say:
I should instead build the core parts of the app
You should consider that the authentication module might be a core part of the app too...
I prefer to do it early, but you really have roughly the same amount of work in front of you regardless of when you do it. It really a matter of opinion on when you prefer to do it.
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 7 years ago.
Improve this question
How do they compare to the DevXpress ones or the original MSOffice ones.
Are they worth investing time in them (for practical usage now, not academic curiosity which I'll do anyway)?
From my experience, the new ribbon control implements the entire specification as laid out by Microsoft. The only issue I noticed was a slight flicker when the form was resized which caused one of the sections to collapse or expand.
Worth spending time in? Definitely, as they are lighter weight and its a matter of time before someone gets rid of the flicker (could be as simple as a lockwindowupdate inserted in the source?). It doesn't hurt to use the Delphi action manager, from which all is based.
The only problem I can see with them so far, is the lack of Glass Frame implementation on Windows Vista (see my question here), unless someone has found a way to make that work. The only part which may not be a problem for youself is there doesn't appear to be a way to customise the theme, which I know some people would like to do in their applications.
IMO, the DevExpress ribbon control is much more complex than it needs to be. i own the DevExpress ribbon control but converted to using the delphi TRibbon. the delphi TRibbon isn't perfect either but i've learned to avoid these problems.