Search Results

Search found 116 results on 5 pages for 'stefano palazzo'.

Page 1/5 | 1 2 3 4 5  | Next Page >

  • Can I re-license Academic Free License code under 2-Clause BSD / ITC?

    - by Stefano Palazzo
    I want to fork a piece of code licensed under the Academic Free License. For the project, it would be preferable to re-license it under the ISC License or the 2-Clause BSD license, which are equivalent. I understand that the AFL grants me things such as limitation of liability, but licensing consistency is much more important to the project, especially since we're talking about just 800 lines of code, a quarter of which I've modified in some way. And it's very important for me to give these changes back to the community, given the fact that this is software relevant to security - I need the public scrutiny that I'll get by creating a public fork. In short: At the top of the file I want to say this, or something like it: # Licensed under the Academic Free License, version 3 # Copyright (C) 2009 Original Author # Licensed under the ISC License # Copyright (C) 2012 Stefano Palazzo # Copyright (C) 2012 Company Am I allowed to do this? My research so far indicates that it's not clear whether the AFL is GPL-Compatible, and I can't really understand any of the stuff concerning re-licensing to other permissive licenses. As a stop gap, I would also be okay with re-licensing under the GPL, however: I can find no consensus (though I can find disagreement) on whether this is allowed at all, and I don't want to risk it, of course. Wikipedia: ISC License Wikipedia: Academic Free License

    Read the article

  • CF9: what is jrun_iis6_wildcard.dll intended for?

    - by Stefano
    Hi I just finished installing an application on a server running ColdFusion 9 (2008 R2 64bit) The application I installed does not use CF, but an isapi dll. To run my application, I need to delete an handler using jrun_iis6_wildcard.dll that seems to process and block requests that should be processed by my isapi dll. I do not known Cold Fusion, but I'm curious: what is jrun_iis6_wildcard.dll intended for? thank you in advance stefano

    Read the article

  • How do I set up a virtual network interface with its own IP address?

    - by Stefano Palazzo
    I vaguely remember that it's possible to set up virtual network interfaces with their own IP addresses, using only one physical network connection. I can find a few guides on the internet that recommend setting these up in /etc/network/interfaces, but Ubuntu doesn't use this file. Therefore my question: What's the correct way of setting these up in recent versions of Ubuntu? As this is a laptop, and I need it to connect to all kinds of different networks, I want to keep the network manager and all its configuration. To be more clear: at the end of this, I want to have a new network interface (e.g. "eth42") with its own IP address, but using whatever is connected in network manager to send the actual packets. In NM, it should appear as if I just had a second ethernet adapter installed in my system.

    Read the article

  • Can I remove all-caps and shorten the disclaimer on my License?

    - by stefano palazzo
    I am using the MIT License for a particular piece of code. Now, this license has a big disclaimer in all-caps: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF... ... I've seen a normally capitalised disclaimer on the zlib license (notice that it is above the license text), and even software with no disclaimer at all (which implies, i take it, that there is indeed a guarantee?), but i'd like some sourced advice by a trusted party. I just haven't found any. GNU's License notice for other files comes with this disclaimer: This file is offered as-is, without any warranty. Short and simple. My question therefore: Are there any trusted sources indicating that a short rather than long, and a normally spelled rather than capitalised disclaimer (or even one or the other) are safely usable in all of the jurisdictions I should be concerned with? If the answer turns out to be yes: Why not simply use the short license notice that the fsf proposes for readme-files and short help documents instead of the MIT License? Is there any evidence suggesting this short 'license' will not hold up? For the purposes of this question, the software is released in the European Union, should it make any difference.

    Read the article

  • Speed up Banshee's indexing of files on a device

    - by Stefano Palazzo
    I've got an external hard drive with music on it, around 250 albums. To make it work nicely with Banshee, I've created an .is_audio_player file on the device, containing audio_folders=Music. Every time I plug it in, Banshee takes around two minutes to index the thing, slowly building up the library - and being unusably sluggish while doing that. Is there, per chance, any way to speed it up? Should I not mount the hard disk as a music player, but add it's contents to my library? And, if I do, won't that give me lots of annoying X symbols next to the titles, as they can't be found sometimes? What's the best way to have my library on an external HDD?

    Read the article

  • Use Network-Manager to Connect to a wifi Access Point on the command-line

    - by Stefano Palazzo
    I'd like to connect to a wireless access point from the command-line. ideally, I'd only need the name of the AP. But the hardware-address would work as well. I know I can use nmcli to connect to a managed network connection, but in my case, the access point may not be configured for Network-Manager yet (See the difference between the output of nm-tool and nmcli con). Example output of nmcli: Auto pwln 3a3d62b1-bbdf-4f76-b4d2-c211fd5cfb03 802-11-wireless [...] Wired Network aa586921-accf-4932-98c4-c873c310f08e 802-3-ethernet [...] Cisco-UDP Uni 7f94847b-04dc-40b7-9955-5246fb77cc65 vpn [...] T-mobile (D1) 867f345a-cbbf-4bd4-b883-a5e5ae0932f0 gsm [...] Example output of nm-tool: State: connected - Device: eth1 [Auto pwln] ---------------------------------------------------- [...] Wireless Access Points (* = current AP) *pwln: Infra, [...], Freq 2472 MHz, Rate 54 Mb/s, Strength 80 WPA WPA2 WLAN: Infra, [...], Freq 2422 MHz, Rate 54 Mb/s, Strength 20 WPA WPA2 [...] How do I connect to an access point that may or may not be known to NM? Extra: Finding out if the connection needs a pass-phrase, and submitting it on the command-line as well would be great too (that is to say It'd be nice if network-manager wouldn't pop open any keyring dialogues or errors on the gui)

    Read the article

  • Map caps-lock key to middle mouse click

    - by Stefano Palazzo
    Since I rarely use caps-lock, I'd like to map the key to a middle mouse click instead. I would also like to map Alt+Caps Lock to the original function of the caps lock key, should I ever need it. I can map any keyboard shortcut to xdotool click 2, but the Gnome Keyboard Shortcuts dialog won't let me assign a command to the caps-lock key, even with modifiers. I know this is a bit of a strange undertaking; How would I go about doing it?

    Read the article

  • How can I limit the number of open AF_INET sockets?

    - by Stefano Palazzo
    Is there a way to limit the number of concurretly open AF_INET sockets (only)? If so, how do I do it, and how will the networking behave if I'm above the limit? For background: My cheap commodity router is a bit eager to detect 'syn flooding'. When it does, it crashes (and doesn't automatically restart itself). I'm thinking limiting concurrent connections to around 1000 should keep it from bickering.

    Read the article

  • libgtk2.0-common fails to build with Gdk-2.0.gir error, Type reference 'GdkPixbuf' not found

    - by Stefano Palazzo
    I'm trying to build gtk, but it fails. Here's what I'm doing: sudo apt-get build-dep libgtk2.0-common sudo apt-get source libgtk2.0-common cd gtk+2.0-2.22.0/ sudo gedit gtk/gtktreeview.c & #...editing a few files (or not, it's the same error) sudo ./configure --prefix=/usr sudo make The compilation runs for a while and then quits: Gdk-2.0.gir: error: Type reference 'GdkPixbuf' not found ... make: *** [all] Error 2 What am I doing wrong?

    Read the article

  • Map caps-lock key to middle mouse click

    - by Stefano Palazzo
    Since I rarely use caps-lock, I'd like to map the key to a middle mouse click instead. I would also like to map Alt+Caps Lock to the original function of the caps lock key, should I ever need it. I can map any keyboard shortcut to xdotool click 2, but the Gnome Keyboard Shortcuts dialog won't let me assign a command to the caps-lock key, even with modifiers. I know this is a bit of a strange undertaking; How would I go about doing it?

    Read the article

  • Is there a secure web-shell for my server?

    - by Stefano Palazzo
    Following the security principle of trust no one, I can't use a service like http://www.serfish.com/. Is there a free software program that I can install on my Ubuntu server to give me secure shell access via a web-interface? I would prefer a small and light-weight solution, so that I can do at least a rudimentary audit of the source code. I would also prefer something that is in the 'main' repository, so that I get the benefit of stable release upgrades.

    Read the article

  • La pianificazione finanziaria fra le opere di Peggy Guggenheim

    - by user812481
    Lo scorso 22 giugno nella fantastica cornice del Palazzo Venier dei Leoni a Venezia si è tenuto il CFO Executive meeting & event sul Cash flow planning &Optimization. L’evento iniziato con un networking lunch ha permesso agli ospiti di godere della fantastica vista della terrazza panoramica del palazzo che affaccia su Canal Grande. Durante i lavori, Oracle e Reply Consulting, partner dell’evento, hanno parlato della strategia di corporate finance e del valore della pianificazione economico-finanziaria- patrimoniale integrata. Grazie alla partecipazione di Banca IMI si sono potuti approfondire i temi del Business Plan, Sensitivity Analysis e Covenant Test nelle operazioni di Finanza Strutturata. AITI (Associazione Italiana Tesorieri d’Impresa) ha concluso i lavori dando una visione a 360° della pianificazione finanziaria, spiegando il percorso strategico necessario per i flussi di capitale a sostegno del business. Ecco l’elenco degli interventi: Il valore della pianificazione economico-finanziaria-patrimoniale integrata per il CFO nei processi di corporate governance - Lorenzo Mariani, Partner - Reply Consulting Business Plan, Sensitivity Analysis e Covenant Test nelle operazioni di Finanza Strutturata: applicazioni nelle fasi di concessione del credito e di monitoraggio dei rischi - Gianluca Vittucci, Responsabile Finanza Strutturata Banca dei Territori - Banca IMI Dalla strategia di corporate finance al planning operativo: una visione completa ed integrata del processo di pianificazione economico-finanziario-patrimoniale - Edilio Rossi, EPM Business Development Manager, Italy - Oracle EMEA Pianificazione Finanziaria: percorso strategico per ottimizzare i flussi di capitale allo sviluppo del business Aziendale; processo base nelle relazioni con il sistema bancario - Giovanni Ceci, Consigliere AITI e Temporary Finance Manager - Associazione Italiana Tesorieri d’Impresa Per visualizzare tutte le presentazioni seguici su slideshare.  Per visualizzare tutte le foto della giornata clicca qui.

    Read the article

  • query SQL how to check all records from a three table join share the same value

    - by Stefano
    Hello Since i'm a poor sql developer, i need support to write a sql query for the following scenario (just a simplified example of my situation): i've got 3 tables, say employe table,department table and companybranch table. the dept column , on the employe table is a fk on the department table; the branch column on the department table is a fk on the companybranch table. Finally more employee are "marked" with the same value . There's a way to select all employes with the same "mark" and, in the same query, check that they work in the same company branch ? thank you in advance Stefano

    Read the article

  • joomla - SEO settings and mod_rewrite

    - by Stefano
    Hi I'm using Joomla 1.5.14 and I configured SEO as in the following image Now I need to map a few old URL to the new site let's say that I need to map htp://mysite/old.html to the new Joomla page http://mysite/index.php?option=com_content&view=article&id=32&Itemid=70 I added in my .htaccess file the following RewriteRule ^old\.html$ index.php?option=com_content&view=article&id=32&Itemid=70 #works!! this works fine, but if I use the SEF URL in .htaccess (let's say the above page can be reached with htp://mysite/contacts.html), I obtain a 404 error RewriteRule ^old\.html$ contacts.html #this does not work Now the question: Is it possible use SEF URLs in RewriteRule? where am I wrong? thank you in advance stefano

    Read the article

  • mysql query performance help

    - by Stefano
    Hi I have a quite large table storing words contained in email messages mysql> explain t_message_words; +----------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------+------+-----+---------+----------------+ | mwr_key | int(11) | NO | PRI | NULL | auto_increment | | mwr_message_id | int(11) | NO | MUL | NULL | | | mwr_word_id | int(11) | NO | MUL | NULL | | | mwr_count | int(11) | NO | | 0 | | +----------------+---------+------+-----+---------+----------------+ table contains about 100M rows mwr_message_id is a FK to messages table mwr_word_id is a FK to words table mwr_count is the number of occurrencies of word mwr_word_id in message mwr_message_id To calculate most used words, I use the following query SELECT SUM(mwr_count) AS word_count, mwr_word_id FROM t_message_words GROUP BY mwr_word_id ORDER BY word_count DESC LIMIT 100; that runs almost forever (more than half an hour on the test server) mysql> show processlist; +----+------+----------------+--------+---------+------+----------------------+----------------------------------------------------- | Id | User | Host | db | Command | Time | State | Info +----+------+----------------+--------+---------+------+----------------------+----------------------------------------------------- processlist | 41 | root | localhost:3148 | tst_db | Query | 1955 | Copying to tmp table | SELECT SUM(mwr_count) AS word_count, mwr_word_id FROM t_message_words GROUP BY mwr_word_id | +----+------+----------------+--------+---------+------+----------------------+----------------------------------------------------- 3 rows in set (0.00 sec) Is there anything I can do to "speed up" the query (apart from adding more ram, more cpu, faster disks)? thank you in advance stefano

    Read the article

  • How do I repair my Logitech Anywhere MX?

    - by Stefano Palazzo
    My Anywhere Mouse has got mushy mouse button syndrome. That is, the left mouse button feels a little bit soft, and it easily double clicks, let's go when I drag something. Before I repair it at home, rather than bringing it to the store (I kind of need it, it's the only one I have), I'd like to know exactly what I'm doing. It'd be too bad if I tried to repair it, voided the warranty and didn't succeed. I'm guessing there are screws to open it under the rubber pads. And I suppose I can take those off without breaking them, and put them back on without bending them. How is this mouse held together, and what's the safest way to open it? Once I have it open, will I be able to fix the problem? What's causing the mushy mouse button? Here's what I know so far: It might be the switch itself that's broken, in which case I shouldn't open it (I can't get a replacement, voiding the warranty to "have a look" seems pointless) If there are screws underneath the rubber pads, they're only on the 'front', the back two thirds of the mouse are all battery cover: There's nothing I can see under the batteries either. In the mouse I had before this one, there were sort of springy things connecting the actual button with the switch soldered to the board. They were just lying inside of a bit of plastic, and I could swap the left and right ones easily. If repairing it is more difficult, transferring the problem to the right mouse button would be a very good start.

    Read the article

  • EJB3 Entity and Lazy Problem

    - by Stefano
    My Entity beAN have 2 list: @Entity @Table(name = "TABLE_INTERNAL") public class Internal implements java.io.Serializable { ...SOME GETTERS AND SETTERS... private List<Match> matchs; private List<Regional> regionals; } mapped one FetchType.LAZY and one FetchType.EAGER : @OneToMany(fetch = FetchType.LAZY,mappedBy = "internal") public List<Match> getMatchs() { return matchs; } public void setMatchs(List<Match> matchs) { this.matchs = matchs; } @ManyToMany(targetEntity = Regional.class, mappedBy = "internals", fetch =FetchType.EAGER) public List<Regional> getRegionals() { return regionals; } public void setRegionals(List<Regional> regionals) { this.regionals = regionals; } I need both lists full ! But I cant put two FetchType.EAGER beacuse it's an error. I try some test: List<Internal> out; out= em.createQuery("from Internal").getResultList(); out= em.createQuery("from Internal i JOIN FETCH i.regionals ").getResultList(); I'm not able to fill both lists...Help!!! Stefano

    Read the article

  • Oracle annuncia la nuova release di Oracle Hyperion EPM System

    - by Stefano Oddone
    Lo scorso 4 Aprile, durante l'Oracle Open World tenutosi a Tokyo, Mark Hurd, Presidente di Oracle, ha annunciato l'imminente rilascio della release 11.1.2.2 di Oracle Hyperion Enterprise Performance Managent System, la piattaforma leader nel mercato mondiale dell'EPM. La nuova release introduce un insieme estremamente significativo di nuovi moduli, migliorie a moduli esistenti, evoluzioni tecnologiche e funzionali che incrementano ulteriormente il valore ed il vantaggio competitivo fornito dall'offerta Oracle. Tra le principali novità in evidenza: introduzione del nuovo modulo Oracle Hyperion Project Financial Planning, verticalizzazione per la pianificazione economico-finanziaria, il funding ed il budgeting di progetti, iniziative, attività, commesse arricchimento di Oracle Hyperion Planning con funzionalità built-in a supporto del Predictive Planning e del Rolling Forecast per supportare processi di budgeting e forecasting sempre più flessibili, frequenti ed efficaci introduzione del nuovo modulo Oracle Account Reconciliation Manager per la gestione dell'intero ciclo di vita delle attività di riconciliazione dei conti tra General Ledger e Sub-Ledger o tra sistemi contabili differenti arricchimento di Oracle Hyperion Financial Management con un'interfaccia web totalmente nuova e l'introduzione della Smart Dimensionality, ovvero la possibilità di definire modelli con più delle 12 dimensioni "canoniche" tipiche delle releases precedenti, con una gestione ottimizzata di query e calcoli in funzione della cardinalità delle dimensioni in gioco arricchimento di Oracle Hyperion Profitability & Cost Management con funzionalità di Detailed Profitability, ovvero la possibilità di implementare modelli di costing e profittabilità in presenza di dimensioni ad altissima cardinalità quali, ad esempio, gli SKU delle industrie Retail e Distribution, i clienti delle Banche Retail e delle Telco, le singole utente delle Utilities. arricchimento di Oracle Hyperion Financial Data Quality Management, in particolare della componente ERP Integrator, con estensione delle integrazioni pre-built verso SAP Financials e JD Edwards Enterprise One Financials introduzione di Oracle Exalytics, il primo engineered system specificatamente progettato per l'In-Memory Analytics che permette di ottenere performance di calcolo e di analisi senza precedenti al crescere dei volumi di dati, delle dimensioni dei modelli e della concorrenza degli utenti, supportando così processi di Business Intelligence, Planning & Budgeting, Cost Allocation sempre più articolati e distribuiti Il prossimo 19 Aprile nella sede Oracle di Cinisello Balsamo (MI) si terrà un evento dove verranno presentate in dettaglio le novità introdotte dalla nuova release dell'EPM System; l'evento sarà replicato il 3 Maggio nella sede Oracle di Roma. L'evento è pubblico e gratuito, chi fosse interessato può registrarsi qui. Per ulteriori informazioni potete fare riferimento alla Press Release Ufficiale Qui potete rivedere l'intervento di Mark Hurd all'Open World sulla Strategia Oracle per il Business Analytics

    Read the article

  • How can I fix apt-get autoremove wanting to uninstall most of my packages?

    - by Stefano
    I did change my packages in synaptic from manually installed to Automatically (they were not manually installed but automatically). Now they are marked for Autoremove. I tested it with sudo apt-get autoremove and the result is shown below (a reduced version because its almost all packages). I remember last year I had same issue and solved it via Ubuntu forums but the forum is down and I cannot reach the post! Anyone has any idea how to fix this? sudo apt-get autoremove Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: unity-asset-pool unity-greeter unity-lens-applications unity-lens-files unity-lens-music unity-lens-photos unity-lens-video unity-scope-gdrive unity-scope-musicstores unity-scope-video-remote unity-services unity-tweak-tool unity-webapps-amazoncloudreader unity-webapps-common unity-webapps-facebookmessenger unity-webapps-gmail unity-webapps-googledocs unity-webapps-googleplus unity-webapps-launchpad unity-webapps-linkedi xserver-xorg-input-wacom xserver-xorg-video-all xserver-xorg-video-ati xserver-xorg-video-cirrus xserver-xorg-video-fbdev xserver-xorg-video-intel xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-modesetting xserver-xorg-video-neomagic xserver-xorg-video-nouveau xserver-xorg-video-openchrome xserver-xorg-video-qxl xserver-xorg-video-r128 xserver-xorg-video-radeon xserver-xorg-video-s3 xserver-xorg-video-savage xserver-xorg-video-siliconmotion xserver-xorg-video-sis xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident xserver-xorg-video-vesa xserver-xorg-video-vmware xul-ext-unity xul-ext-webaccounts xul-ext-websites-integration y-ppa-manager yad zenity zenity-common zip 0 upgraded, 0 newly installed, 1440 to remove and 0 not upgraded. After this operation, 3,853 MB disk space will be freed. Do you want to continue [Y/n]?

    Read the article

  • Consistency of an object

    - by Stefano Borini
    I tend to keep my objects consistent during their lifetime. In some cases, setting up an object requires multiple calls to different routines. For example, a connection object may operate in this way: Connection c = new Connection(); c.setHost("http://whatever") c.setPort(8080) c.connect() please note this is just a stupid example to let you understand the point. In between calls to setHost and setPort the object is inconsistent, because the Port has not been specified yet, so this code would crash Connection c = new Connection(); c.setHost("http://whatever") c.connect() Meaning that it's a requisite for connect() to have previous calls to both setHost and setPort, otherwise it won't be able to operate as its state is inconsistent. You may fix the issue with a default value, but there may be cases where no sensible default may be devised. We assume in the later example that there's no default for the port, and therefore a call to c.connect() without first calling both setHost and setPort will be an inconsistent state of the object. This, to me, points at an incorrect interface design, but I may be wrong, so I want to hear your opinion. Do you organize your interface so that the object is always in a consistent (i.e. workable) state both before and after the call ? Edit: Please don't try to solve the problem I gave above. I know how to solve that. My question is much broader in sense. I am looking for a design principle, officially or informally stated, regarding consistency of object state between calls.

    Read the article

  • Should a view and a model communicate or not?

    - by Stefano Borini
    According to the wikipedia page for the MVC architecture, the view is free to be notified by the model, and is also free to query the model about its current state. However, according to Paul Hegarty's course on iOS 5 at Stanford, lecture 1, page 18 all interaction must go through the controller, with Model and View that are never supposed to know each other. It is not clear to me if Hegarty's statement must be intended as a simplification for the course, but I am tempted to say that he intends the design as such. How do you explain these two opposite points of view ?

    Read the article

  • Why no fortran standard library ?

    - by Stefano Borini
    To be a language focused on mathematics and scientific computing, I am always baffled by the total lack of useful mathematical routines in the Fortran standard library. One would expect it to be shipped at least with a routine to compute standard deviation and mean, but this is not the case. In particular with the introduction of Fortran 90 and the addition of modules (thus reducing namespace pollution), I don't see any reason why of this critical lack of services. I would like to hear your knowledge about why this is the case.

    Read the article

  • controlling an object through another object ?

    - by Stefano Borini
    Today I've seen the following pattern: you have an object A and an object B. Object B accepts a pointer to A at its constructor. Once B is created, there's a method B.doCalc() that performs a calculation (internally using A's information). The result is obtained with method B.getResult(). In order to perform another calculation, A is modified, and B.doCalc() is called again. What is your opinion on this choice ? I would have designed it differently, but I want to hear your voice. Edit : note that my main objection is to modify A to have a different result from B, without touching B. Although similar, I think that just this discipline expresses a much better feeling of what's going on. Instead of a = new A a.whatever = 5 b = new B(a) b.doCalc() res = b.getResult() a.whatever = 6 b.doCalc() res = b.getResult() You get the a pointer object from b itself. a = new A a.whatever = 5 b = new B(a) b.doCalc() res = b.getResult() a = b.getAPointer() a.whatever = 6 b.doCalc() res = b.getResult() because it makes more explicit the fact that a is taken from b and then modified. I still don't like it, though...

    Read the article

  • Designing configuration for subobjects

    - by Stefano Borini
    I have the following situation: I have a class (let's call it Main) encapsulating a complex process. This class in turn orchestrates a sequence of subalgorithms (AlgoA, AlgoB), each one represented by an individual class. To configure Main, I have a configuration stored into a configuration object MainConfig. This object contains all the config information for AlgoA and AlgoB with their specific parameters. AlgoA has no interest to the information relative to the configuration of AlgoB, so technically I could have (and in practice I have) a contained MainConfig.AlgoAConfig and MainConfig.AlgoBConfig instances, and initialize as AlgoA(MainConfig.AlgoAConfig) and AlgoB(MainConfig.AlgoBConfig). The problem is that there is some common configuration data. One example is the printLevel. I currently have MainConfig.printLevel. I need to propagate this information to both AlgoA and AlgoB, because they have to know how much to print. MainConfig also needs to know how much to print. So the solutions available are I pass the MainConfig to AlgoA and AlgoB. This way, AlgoA has technically access to the whole configuration (even that of AlgoB) and is less self-contained I copy the MainConfig.printLevel into AlgoAConfig and AlgoBConfig, so I basically have three printLevel information repeated. I create a third configuration class PrintingConfig. I have an instance variable MainConfig.printingConfig, and then pass to AlgoA both MainConfig.AlgoAConfig and MainConfig.printingConfig. Have you ever found this situation? How did you solve it ? Which one is stylistically clearer to a new reader of the code ?

    Read the article

  • Designing for an algorithm that reports progress

    - by Stefano Borini
    I have an iterative algorithm and I want to print the progress. However, I may also want it not to print any information, or to print it in a different way, or do other logic. In an object oriented language, I would perform the following solutions: Solution 1: virtual method have the algorithm class MyAlgoClass which implements the algo. The class also implements a virtual reportIteration(iterInfo) method which is empty and can be reimplemented. Subclass the MyAlgoClass and override reportIteration so that it does what it needs to do. This solution allows you to carry additional information (for example, the file unit) in the reimplemented class. I don't like this method because it clumps together two functionalities that may be unrelated, but in GUI apps it may be ok. Solution 2: observer pattern the algorithm class has a register(Observer) method, keeps a list of the registered observers and takes care of calling notify() on each of them. Observer::notify() needs a way to get the information from the Subject, so it either has two parameters, one with the Subject and the other with the data the Subject may pass, or just the Subject and the Observer is now in charge of querying it to fetch the relevant information. Solution 3: callbacks I tend to see the callback method as a lightweight observer. Instead of passing an object, you pass a callback, which may be a plain function, but also an instance method in those languages that allow it (for example, in python you can because passing an instance method will remain bound to the instance). C++ however does not allow it, because if you pass a pointer to an instance method, this will not be defined. Please correct me on this regard, my C++ is quite old. The problem with callbacks is that generally you have to pass them together with the data you want the callback to be invoked with. Callbacks don't store state, so you have to pass both the callback and the state to the Subject in order to find it at callback execution, together with any additional data the Subject may provide about the event is reporting. Question My question is relative to the fact that I need to implement the opening problem in a language that is not object oriented, namely Fortran 95, and I am fighting with my usual reasoning which is based on python assumptions and style. I think that in Fortran the concept is similar to C, with the additional trouble that in C you can store a function pointer, while in Fortran 95 you can only pass it around. Do you have any comments, suggestions, tips, and quirks on this regard (in C, C++, Fortran and python, but also in any other language, so to have a comparison of language features that can be exploited on this regard) on how to design for an algorithm that must report progress to some external entity, using state from both the algorithm and the external entity ?

    Read the article

1 2 3 4 5  | Next Page >