Tag Info

New answers tagged

0

Another point to consider is that, depending on the size of your project, what version of Java will be out and what will be obsolete. For most sizable projects, it would be wise to work with the current 'out of beta/alpha' version, (in this case Java 8) which may or may not be current when you release.


8

Java 6 is unsupported by Oracle, so don't use that. Java 7's support ends on April 15th, so you know. Just use Java 8 and save yourself the hassle. See Oracle's support roadmap for more info.


34

For a mass-market Java desktop application, you should use an installer or launcher that bundles the JRE you want them to be using, or set up Java Web Start (JAWS). Relying on an installed JRE doesn't make sense outside of a controlled corporate environment where all the desktops are locked to a specific version. In which case, you should ask this question ...


1

Your diagram is almost spot on for some of the more common methods. The server 3 and 4 are in what is referred to as a DMZ or protected private network. Server 2 is redundant but depending on your situation and level of security you have to enforce might have a role. For this explanation, i'll remove it as it will create complications when trying to ...


2

No, Chain of Responsibility doesn't make sense here, because it assumes all components have same interface. I don't think Java's type system is good enough to make this fully generic, so I would opt in to type erasure and some kind of "manager" that pipes output of one module into input of next one, while encapsulating the erasure. The module's interface ...


0

You could consider SOA if you want to. The thing is here you're only dealing with Commands. If you add the Publish/Subscribe pattern (message queues, service bus), you can have the serives publish events/messages, and not have to know who the subscribers were; the subscribers would all get the news and operate off the message contents.


1

My advice is to stop thinking about services, commands and fancy terms in OO design. I would strongly recommend modelling your business logic without thinking about service oriented architecture, how the data will be transferred from clients to the service, etc. You have an application. Your application clearly has two modules: Module for processing a ...


2

The Motorola 68000 ("68K") architecture had an orthogonal instruction set, and both operands could specify absolute memory addresses. You could also do things like directly incremement / decrement the value at a specific memory location, whereas with a more RISC-like architecture you'd still be required to load memory to register, increment register, write ...


1

Short answer: yes. Long answer for the benefit of those who might not be familiar with the guts of a CPU: In a modern architecture such as amd64, the CPU needs to take a virtual address that is basically an offset into a process's address space and map it into the raw (physical) address space - this is likely what you meant by virtual memory (not swap ...


9

Lots of machine architectures have memory-memory instructions. The IBM System/360 and its successors have a whole set of instructions that operate on two locations in memory (the Storage Storage (SS) group). "Move Character" (MVC) instruction copies up to 256 bytes from one memory location to another, and even has a clear definition for when the source and ...


8

Memory chips do not have a mechanism for transferring data directly from one memory location to another. Hence, the processor must read the data from memory, and then write it to the new location. In computer systems having DMA controllers, it is possible to perform memory transfers without involving the CPU. There are potential complications, such as ...


0

The ideal solution would be for your source application to expose a SOA layer to give external applications access to the data. Failing this (or where the query volume is large and or intensive) then database replication is a good solution -- always assuming the technology is in place to do this reliably. Failing the above two solutions I would go for a ...


0

You should be explicit when talking to your team that this is a trade-off between initial time-to-market of a first version of the student site and the total cost of ownership over the lifetime of the system. I have seen a real system which evolved over a decade built out of PHP where clients have a extranet micro-site where they can upload/download ...


0

There are some questions to be asked: Does external data have a timestamp PK or an incremental PK that would allow you to know what were the last data items you already processed? Do you need to process only new data or old data that has been modified also? If the external data has a timestamp PK or incremental PK, the state you need would be the last ...


4

The real issue in this case is long-term maintainability of two separate codebases vs. a single codebase. Convincing people who do not understand the problem requires persuasion. Does your school have a computer science department? How about a business school or management department? Some internal support from an instructor would be good. In short, the ...


1

1) An Instruction Set Architecture defines the interface that is used to program a processor. Note that this does not define the implementation. When a CPU designer goes about designing the processor, they may implement this ISA in various different ways. In fact, the various Intel processors have each implemented the x86 ISA in many different ways over ...


1

I think I have another take on it. The faculty and staff application is working and is in use. Changing it to create a student application has a large risk. I expect that there are few automated system tests for the faculty and staff application. They will likely run on different servers, so that the student application does not slow down the staff ...


1

I agree with your interpretation. And if an ISA instruction ties to a single microinstruction, I would still call the instruction an instruction and the microinstruction a microinstruction, even knowing that there's a 1:1 tie. There are all sorts of chip architectures, but I imagine that internally there are differences in naming and things are kept ...


0

putting together a new MVC application Some of the problems I am seeing with making this a separate application are: MANY of the views would actually be the same data being displayed. An argument in favo(u)r of a single app. Both the HTML and model code would have to be copied between the solutions - not to mention the unit tests. I ...


6

Clearly those for 2-apps solution may lack experience. Just imagine 'adding this one more field' made twice. Most MVC frameworks allow you to create separate routings for separate users (think of example.com/admin, example.com/student, example.com/professor). This of course makes a separate views, but (important!) you can extract common parts (RoR calls ...


20

The biggest reason against two applications is that you are very likely to have to implement user rights anyway. Presumably you aren't going to allow an advisor to enter notes about students he doesn't advise, or delete important information without uber-admin privilege, or edit information about advisors other than themselves? Once you have this mechanism ...


15

Others on the team think that it should be two completely separate applications because of the complexity of modifying the views based on the authorization level of the user. Really? they don't realise they have to create these views anyway if they made 2 separate applications? How hard is it to put both views into the same application and decide ...


0

In the early days of automobiles many parts ere interchangeable either directly or with the aid of a hacksaw and file. It was quite common for the engine, chassis and coachwork to be made by completely different companies. In the fifties and sixties it was considered cool to fit the best motercycle engine (e.g. Triumph Bonneville) into the best frame (e.g. ...


2

I think they've asked you to do the impossible. We do something similar in our shop with industrial automation. We frequently purchase mechanical presses and we retrofit them with our own control system. We try very hard to make the user interface similar across all the presses, but internally they are sometimes similar and sometimes very different. One ...


2

I would start by looking at existing standards in this area, like ARINC 653 and (especially) AUTOSAR. Both of those are real-time component-based systems where components communicate by passing messages. That's more complex, but ultimately far more flexible, that the straightforward approach of using the modularity features of a specific programming ...


1

Why do you want them nested in your access layer? That API exposes plain objects, not trees of them as I can see. So, you may build your internal API mimicking that one. class Category { public static Category[] getList(); public static Category getById($id); public static Subcategory[] getSubcategories($id); public void fetchDetails(); } ...


2

I think that at the very least, they should tell you what are the minimal functions of each component. For instance, (I have no clue of car mechanics, so bear with the example), a pump might need to provide the following set of functions: CurrentPressure, MaximumOperatingPressure, MinimumOperatingPressure. Assuming that all of the components can provide you ...


1

There are open source dropbox alternatives that you can host yourself and support Amazon S3 for storage. Look at Owncloud for example. All you would have to do is change the branding on the site and the client interfaces (or just the client interface if you won't be sharing the website itself) and you have a solution.


0

Tip1: why not use something out of the box? I'm sure there are already plenty of existing services providing file hosting/sharing which you can also access through an API/FTP/whatever. Tip2: Amazon EC2/S3 is a lot of complexity... well, it afew years ago at least, dunno if it changed meanwhile. But I wouldn't go there freely. There are much better ...


3

Ask yourself whether it makes sense for a consumer of a library to use one part of it without using another one. Let's say you've developed a library which parses LESS files, processes LESS files into non-minified CSS files and minifies CSS files. Does it make sense to have a library which does just the parsing? For general use, not really. But it makes ...


1

Algorithms are a sequence of steps. They don't depend on what is (or isn't) executing them. However, the time complexity of an algorithm can depend on what is executing it. That's why detailed analysis of an algorithm requires a "model of computation", such as a random-access machine. Whether or not memory is randomly accessible certainly affects how long ...


1

A lot of answers are missing the fact that an algorithm can be defined in terms that are either abstract from or in direct, literal relation to an architecture. An algorithm has to be unambiguous, but there's still room for it to be more or less specific. An algorithm for converting a string to all-caps can be easily described in pseudocode that is ...


1

In general, algorithms are designed to some particular problems at while minimizing some measure of "cost". Historically, many algorithms were designed on the assumption that the relative costs of common operations would be relatively similar on many architectures, and thus some typical machines would run one algorithm would run better than another, then on ...


2

You shouldn't confuse an algorithm in general with mathematical or computing algorithms. If you mean computing algorithms, yes, they are independent from the machine architecture. Definition of algorithm from Wikipedia: In mathematics and computer science, an algorithm is a self-contained step-by-step set of operations to be performed. Algorithms exist ...


3

Yes and no. It depends on the constraints you want to meet and the preconditions needed to run your algorithm. Ideally, an algorithm is an abstract recipe that defines step-by-step how to do something. Algorithms was defined like so with the goal of reproducibility, and later automatization. Algorithms originates from lambda-calcul, so you can easily see ...


4

Algorithms doesn't depend on computer architecture, however the efficiency of running any particular algorithm does depend on the architecture. Any Turing Complete machines can emulate any other Turing Complete machines, although some machines would be better at one thing than others. What we mean by concurrent algorithms is that the algorithm plays well ...


12

Algorithms are independent of computer architecture. That's because algorithms define a series of processes that solves a problem. Regardless of architectures, sorting algorithms will always sort. It wouldn't suddenly render 3D drawings on some architectures. If you think about it, this is actually intuitive. Google Chrome (which is merely a collection of ...


3

In theory, algorithms are entirely independent of architecture. You can always emulate a parallel architecture on a single-issue timesliced system. You can reason about algorithms without an architecture at all. Knuth's book uses a fictional architecture. In practice there are algorithms that attempt to achieve better runtime for the same "O" complexity by ...


4

"It seems like parallel algorithms depend on parallel architectures?" In my opinion the answer is simply: no. General I only get the properties parallelism word size (implicit resource limits) when thinking of hardware architecture. Referring to parallelism you can have any parallel algorithm be batch computed and any parallel arch to work serial ...


20

Algorithms are the series of steps taken to solve a particular problem. The recipe for solving the problem, if you will. "Programs" do the same things, of course; we use "algorithm" to suggest the "generalized" or "generally applicable" recipes that are independent of specific machine designs, programming languages, and such. Algorithms are meant to be ...


1

It is important to know that the definition of computation is not "those things which computers do". Computation predates computers. Computers were given their name because they were created to assist the task of computation, not because they define it. So the Turing Machine is not about how computers work. It is about whether or not a problem is ...


1

Yes, this is a very common architecture so the problem does pop up frequently. What I would do is that I would introduce a new level of abstraction by defining a "model" for my project which contains and presents the classes that my project deals with irrespective of how they are obtained (via HTTP or ORM.) On the server, this model would be implemented ...


-1

If you think about it, architectures are abstract machines. They describe how a lump of carefully made silicon "should" behave. The difference between the architectures and Turing machines is more a matter of scale than a fundamental shift in approach. The advantage of Turing machines is that there is a set of useful proofs that are very easy to do using ...


0

What you need is a broadcast event and message inboxes. A broadcast is a message that is published to an unspecified number of listeners. A component can subscribe for broadcast events so it only receive events that it is interested in. This provides decoupling, as the sender doesn't need to know who the receivers are. The subscription table needs to be ...


1

I see the theoretical machines as bridging the gap between real world computation and mathematics. A Turing machine is powerful enough to simulate any real-world architecture or programming language, simple enough to be simulated easily, and, most importantly, simple enough to be the subject of reasonably straightforward mathematical reasoning and proofs.


7

The short answer is they aren't related as reciprocals. Assume you have a very boring CPU with one instruction that takes 1 ns to complete. Therefore your latency is 1 ns, and your bandwidth is 1 instruction per ns. Say you add a pipeline stage to split that instruction into fetch and execute phases. Each of those stages might be able to complete in 0.5 ...


1

They aren't reciprocals. Those equations don't give a complete relationship between latency, MIPS and pipeline stages; in that excerpt they're only being used to define what he means by "latency" and "MIPS" so that his claim about the tradeoff is more precise. The tradeoff Tanenbaum's referring to is that when you split the CPU's pipeline into more stages, ...


1

What does "issue or start an instruction" mean? In the context of what's written, it should mean the amount of time between when the CPU can start the process of handling one instruction and when it can do the same for the one that follows. If that explanation sounds vague, the reason is that it's going to vary a lot by architecture. Say you have some ...


1

Disclaimer: I'm not a DDD expert, but I'm going to do my best here to answer your questions. Let's use an Online Book Retailer as an example. A book seller is offering to sell books on his website, but he doesn't print the books himself. Instead, he has a long list of "Book Suppliers" who print and ship the books to his warehouse, were he packages them and ...


3

Without reading the text, I would say that It probably refers to pipelining, that is, parallel (or semi-parallel) execution of instructions. That's the only scenario I can think of where it does not really matter how long something takes, as long as you can have enough of them running in parallel. So, the CPU may fetch one instruction, (step 1 in the table ...



Top 50 recent answers are included