web-archive-it.com » IT » C » CONECTA.IT

Total: 359

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • May 2011 Archives « carlodaffara.conecta.itcarlodaffara.conecta.it
    something that at the moment is totally impossible a more generic image executed from a USB key would go a long way towards demonstrating the usefulness of the approach chromeos open source chromiumos 2 Comments Composing the Open Cloud puzzle Posted by cdaffara in blog on May 5th 2011 When it rains it pours This was my first thought while reading the RedHat announcement of yet another cloud project OpenShift a new PaaS and Cloudforms IaaS The excellent Stephen O Grady of RedMonk provided a very complete Q A covering the announcement and the implications quite well This is just the last of many many announcements in the same line that makes the Open Source cloud environment a very active and crowded one What exactly was announced RedHat leveraged its acquisition of Makara a PaaS vendor with a quite interesting technical solution and its own Jboss DeltaCloud platform to create a combination of PaaS and IaaS designed to facilitate deployment and management of Java PHP Python and Ruby applications It falls in a market that recently saw VMWare s entry in the market with CloudFoundry previous entrants like Eucalyptus OpenNebula Nimbus OpenStack and the still unreleased Yahoo IaaS It would seem that there is really too much to choose from but the reality is that each piece does have a place and the biggest problem in finding this place is that we forget to look at the big picture that is on the puzzle box The first point is that there is no single market for cloud IaaS PaaS whatever There are several distinct areas and for every one there is a potentially different combination the software SaaS producer that for small scales may be interested in hosting its own small IaaS PaaS with the opportunity to move it or dynamically expand outside on Amazon for example when bursts come in People still think that every company has a full swing of consumption from very little to galactic scale while the majority of SaaS producers tend to have a very static set of customers and acquisitions are slow compared to procurement time and easily managed With a full cloud you pay an extra for scalability the capability to grow dynamically leap and bounds and that extra may not be economically justified Also many companies already invested in hardware and networking for their own in house small datacenter and until the amortment period is ended those companies for financial and fiscal reasons would not turn to a full external cloud So the next best thing is to create their own little IaaS for single customer instances PaaS for shared customers on the hardware they already have The economics here is related to the reduction in management costs and the opportunity to simplify code deployment The Telcos my own sources indicate that lots of telcos are working feverishly to create their own cloud offering now that there is a potential solution that has no license costs They could have built it earlier

    Original URL path: http://carlodaffara.conecta.it/2011/05/index.html (2016-02-18)
    Open archived version from archive

  • April 2011 Archives « carlodaffara.conecta.itcarlodaffara.conecta.it
    the project forward as a whole Igalia Igalia is a free software consultancy company employing several core developers of the GTK port with contributions including bugfixing performance accessibility API design and many major features It also provides various parts of the needed infrastructure for its day to day functioning and is involved in the spread of WebKit among its clients and in the GNOME ecosystem for example leading the transition of the Epiphany web browser to WebKit Company 100 Company 100 has contributed code to WebKit as part of work on Dorothy Browser since 2009 This work includes portability performance bug fixes improvements to support mobile and embedded devices Company 100 has ported WebKit to BREW MP and other mobile platforms University of Szeged The Department of Software Engineering at the University of Szeged Hungary started to work on WebKit in mid 2008 The first major contribution was the ARMv5 port of the JavaScript JIT engine Since then several other areas of WebKit have been tackled memory allocation parsers regular expressions SVG Currently the Department is maintaining the official Qt build bots and the Qt early warning system Samsung Samsung has contributed code to WebKit EFL Enlightenment Foundation Libraries especially in the area of bug fixes HTML5 EFL WebView etc Samsung is maintaining the official Efl build bots and the EFL early warning system So we see fierce competitors Apple Nokia Google Samsung co operating in a project that is clearly of interest for all of them In a previous post I made a similar analysis for IGEL popular developers of thin clients and HP Palm The actual results are Total published source code without modifications for IGEL 1 9GB in 181 packages total amount of patch code 51MB in 167 files the remaining files are not modified Average patch size 305KB Patch percentage on total publisheed code 2 68 Total published source code without modifications for Palm 1 2GB in 106 packages total amount of patch code 55MB in 83 files the remaining files are not modified Average patch size 664KB Patch percentage on total published code 4 58 If we add the proprietary parts and the code modified we end up in the same approximate range found in the Maemo study that is around 10 to 15 of code that is either proprietary or modified OSS directly developed by the company IGEL reused more than 50 million lines of code modified or developed around 1 3 million lines of code Open Source allows to create a derived product in both case of substantial complexity reducing the cost of development to 1 20 the time to market to 1 4 the total staff necessary to more than 1 4 and in general reduce the cost of maintaining the product after delivery I believe that it would be difficult for anyone producing software today to ignore this kind of results This is the real end result it would be extremely difficult for companies to compete without the added advantage of Open Source It is simply anti economic to try to do everything from scratch while competing companies work together on non differentiating elements for this reason it should not be considered a strange fact that Nokia is an important contributor to Google Android android open source 29 Comments A small WebP test Posted by cdaffara in blog divertissements on April 21st 2011 I was quite intrigued by the WebP image encoding scheme created by Google and based on the idea of a single frame WebM movie I performed some initial tests during initial release and found it to be good but probably not groundbreaking But I recently had the opportunity to read a blog post by Charles Bloom with some extensive tests that showed that WebP was clearly on a par with a good Jpeg implementation on medium and high bitrates but substantially better for small bitrates or constrained encodings Another well executed test is linked there and provide a good comparison between WebP Jpeg and Jpeg2000 that again shows that WebP shines really in low bitrate condition So I decided to see if it was true took some photos out of my trusted Nokia N97 and tried to convert them in a sensible way Before flaming me about the fact that the images were not in raw format I know it thank you My objective is not to perform a perfect test but to verify Google assumptions that WebP can be used to reduce the bandwidth consumed by traditional already encoded images while preserving most of the visual quality This is not a quality comparison but a field test to see if the technology works as described The process I used is simple I took some photos I know I am not a photographer selected for a mix of detail and low gradient areas compressed them to 5 using GIMP with all Jpeg optimization enabled took notice of size then encoded the same source image with the WebP cwebp encoder without any parameter twiddling using the size command line to match the size of the compressed Jpeg file The WebP image was then decoded as PNG The full set was uploaded to Flickr here and here are some of the results Photo Congress Centre Berlin Top original Jpeg middle 5 Jpeg Bottom WebP at same Jpeg size Photo LinuxNacht Berlin Top original Jpeg middle 5 Jpeg Bottom WebP at same Jpeg size Saltzburg castle Top original Jpeg middle 5 Jpeg Bottom WebP at same Jpeg size Venice Top original Jpeg middle 5 Jpeg Bottom WebP at same Jpeg size There is an obvious conclusion at small file sizes WebP handily beats Jpeg and a good Jpeg encoder the libjpeg based one used by GIMP by a large margin Using a jpeg recompressor and repacker it is possible to even a little bit the results but only marginally With some test materials like cartoons and anime the advantage increases substantially I can safely say that given these results WebP is

    Original URL path: http://carlodaffara.conecta.it/2011/04/index.html (2016-02-18)
    Open archived version from archive

  • March 2011 Archives « carlodaffara.conecta.itcarlodaffara.conecta.it
    files ifndef HCI LIB H define HCI LIB H ifdef cplusplus endif ifdef cplusplus endif static inline int hci test bit int nr void addr return uint32 t addr nr 5 1 nr 31 endif or for something longer ifndef RFCOMM H define RFCOMM H ifdef cplusplus endif include sys socket h define RFCOMM DEFAULT MTU 127 define RFCOMM PSM 3 define RFCOMM CONN TIMEOUT HZ 30 define RFCOMM DISC TIMEOUT HZ 20 define RFCOMM CONNINFO 0x02 define RFCOMM LM 0x03 define RFCOMM LM MASTER 0x0001 define RFCOMM LM AUTH 0x0002 define RFCOMM LM ENCRYPT 0x0004 define RFCOMM LM TRUSTED 0x0008 define RFCOMM LM RELIABLE 0x0010 define RFCOMM LM SECURE 0x0020 define RFCOMM MAX DEV 256 define RFCOMMCREATEDEV IOW R 200 int define RFCOMMRELEASEDEV IOW R 201 int define RFCOMMGETDEVLIST IOR R 210 int define RFCOMMGETDEVINFO IOR R 211 int define RFCOMM REUSE DLC 0 define RFCOMM RELEASE ONHUP 1 define RFCOMM HANGUP NOW 2 define RFCOMM TTY ATTACHED 3 ifdef cplusplus endif struct sockaddr rc sa family t rc family bdaddr t rc bdaddr uint8 t rc channel endif What can we say of that They contain interfaces definitions constants that are imposed by compatibility or efficiency reasons For this reason they are not copyrightable or more properly would be excluded in the standard test for copyright infringement in the abstraction filtration test In fact it would not be possible to guarantee compatibility without such an expression But Florian guesses the authors put a copyright notice on top That means that it must be copyrighted In fact he claims The fact that such notices are added to header files shows that the authors of the programs in question consider the headers copyrightable Also without copyright there s no way to put material under a license such as the GPL Actually it s simply not true I can take something add in the beginning a claim of copyright but that does not imply that I have a real copyright on that Let s imagine that I write a file containing one number and put a c notice on top Do I have a copyright on that number No because the number is not copyrightable itself The same for the headers included before to test for copyright infringement you must first remove all material that is forced for standard compatibility then Scenes a Faire a principle in copyright law that says that certain elements of a creative work are not protected when they are mandated by or customary for an environment then code that cannot be alternatively expressed for performance reasons What is left is potential copyright infringement Now let s apply the test to the code I have pasted What is left Nothing Which is why up to now most of the commentators that are working on the kernel mentioned that this was also just a big large interesting but ultimately useless debate In fact in the BlueZ group the same view was presented include bluetooth bluetooth h is only

    Original URL path: http://carlodaffara.conecta.it/2011/03/index.html (2016-02-18)
    Open archived version from archive

  • February 2011 Archives « carlodaffara.conecta.itcarlodaffara.conecta.it
    useful you need real search capabilities or some sort of manual suggestion like social features I like it or whatever App stores are starting to get it but they are insulated from the web which means that they are unable to harness the vast multifaceted amount of information created by tweeters bloggers journalists and pundits that watch and evaluate almost everything on the web Discovery is now barely possible in a store with 100k apps as things evolve it will become even more difficult In a world of web applications well this problem returns to a very solvable problem of finding something on the web Ask Google Bing Baidu Yandex or more intelligent systems like Wolfram Alpha they all seem to manage it quite well App updates one very useful thing is the ability of an app store to send notifications of new apps and help users in having all the update process done simply and in a single place This is of course quite useful just don t claim that it is a novelty or any YUM or APT user will jump straight at your neck but again is totally irrelevant in a world of web apps the app will just check for a new version in case it uses persistent storage for caching JavaScript and includes or simply go straight to the website of the application publisher This also resolves the friction introduced by the app approval process in current App Stores you submit it and then pray If an update is urgent for example for a security fix you just have to try as much as possible to speed it up it is not up to the developer anyway App backups in a world of apps app backups are a great idea In a world of web

    Original URL path: http://carlodaffara.conecta.it/2011/02/index.html (2016-02-18)
    Open archived version from archive

  • January 2011 Archives « carlodaffara.conecta.itcarlodaffara.conecta.it
    profile the end result is that especially with the maturing of command line tools and the emergence of third party encoders like Sorenson we can safely say that WebM is or can be on the same quality level of H264 WebM is a patent risk I already wrote in my past article that it is clear that most design decisions in the original On2 encoder and decoder were made to avoid preexisting patents curiously most commenters used this to demonstrate that WebM is technically inferior while highlighting the potential risk anyway By going through the H264 essential patent list however I found that in the US that has the highest number of covered patents there are 164 non expired patents of which 31 specific to H264 advanced deblocking not used in WebM 34 related to CABAC CAVAC not used in WebM 16 on the specific bytecode stream syntax substituted with Matroska 45 specific to AVC The remaining ones are to a cursory reading not overlapping with WebM specific technologies at least as they are implemented in the libvpx library as released by Google there is no guarantee that patented technologies are not added to external third party implementations Of course there may be patent claims on Matroska or any other part of the encoding decoding pair but probably not from MPEG LA WebM is not open enough Dark Shikari commented with some humor of the poor state of the WebM standard basically the source code itself This is not so unusual in the video coding world with many pre standards basically described through their code implementations If you follow the history of ISO MPEG standards for video coding you will find many submissions based on a few peer reviewed articles source code and a short word document describing what it does this is then replaced by well written well most of the time documents detailing every and all the nooks and crannies of the standard itself No such thing is available for WebM and this is certainly a difficulty on the other hand and having been part for a few years of the italian ISO JTC1 committee I can certainly say that it is not such a big hurdle many technical standards are implemented even before ratification and structuring and if the discussion forum is open there is certainly enough space for finding any contradictions or problems On the other hand the evolution of WebM is strictly in the hand of Google and in this sense it is true that the standard is not open in the sense that there is a third party entity that manages its evolution H264 is not so encumbered and is free anyway Ah the beauty of people reading only the parts that they like from licensing arrangements H264 playback is free only for non commercial use whatever it is of video that is web distributed and freely accessible Period It is true that the licensing fees are not so high but they are incompatible

    Original URL path: http://carlodaffara.conecta.it/2011/01/index.html (2016-02-18)
    Open archived version from archive

  • December 2010 Archives « carlodaffara.conecta.itcarlodaffara.conecta.it
    something before initial enterprise enrolments Come on Google you cannot count only on external developers for filling this gap The browser must implement multilevel security labels That means that each app and web domain must have a label cryptographically signed to claim what level of security is implemented and how information can flow in and out For example it must prevent secure information from the ERP application to be copied into FaceBook or securely partition different domains A very good example of this was the Sun JDS trusted extensions unfortunately defunct like JDS itself This is actually fairly easy to implement in the browser as the only application that can access external resources and copy and paste between them and Chrome already uses sandboxing that can be used as basis for such a label based containment This would give a substantial advantage to ChromeOS and would open up many additional markets in areas like financials banking law enforcement and government So after all I think that Google is onto something that this something needs work to mature before it can be brought to the market and that the model it proposes is totally different from what we have up to now Noone knows if it will be successful remember the iPad Its failure was nearly assured by pundits worldwide but at least it s not a boring new PC 6 Comments OSS is about access to the code Posted by cdaffara in divertissements on December 12th 2010 I have a kind of a fetish the idea that source code even old or extremely specific for a single use may be useful for a long time Not only for porting to some other strange platform but for issues like prior art in software patents for getting inspiration for techniques or simply because you don t know when it may be of use For this reason I try to create public access archives of source code I manage to get my hands on especially when such codes may require a written license to acquire but may then later be redistributed Up to now I have prepared public archives of the following projects DOD OSCMIS a very large web based application more than half a GB of code created by the Defense Information Systems Agency of the US Department of Defense and currently in use and supporting 16000 users including some in critical areas of the world like a tactical site in Iraq I wrote a description here and the source code was requested in writing during 2009 I am indebted to Richard Nelson the real hero of such a great effort for creating such a large scale release that I hope will spur additional interest and contributions I believe that I m the only European licensee up to now The source code is available at the SourceForge mirror http sourceforge net projects disa oscimis NASA CODES One of my oldest collection and recovered by pure chance Many years ago we used to

    Original URL path: http://carlodaffara.conecta.it/2010/12/index.html (2016-02-18)
    Open archived version from archive

  • November 2010 Archives « carlodaffara.conecta.itcarlodaffara.conecta.it
    from Sebastian von Engelhardt and Stephen M Maurer that you can find in all its glory here I will try to dissect some of the claims that are hidden in the paper and that for example push the authors towards imposing a fixed lump sum tax on OS firms and using the proceeds to subsidize their proprietary software competitors I think that Microsoft would love that a tax on RedHat Google IBM What can be more glorious than that I will pinpoint some of the most evident problems For this reason the emergence of fundamentally new open source OS methods for producing software in the 1990s surprised and delighted observers Actually as I wrote for example here the tradition of collaborative development of software far predates Stallman and Raymond and was the norm along with the creation of user more appropriately developer groups like SHARE Society to Help Avoid Redundant Efforts founded in 1955 and centered on IBM systems and DECUS for Digital Equipment computers and later for HP systems both still alive Code was also commonly shared in academic journals like the famous Algorithms column of the Communications of the ACM journal It was the emergence of the shrinkwrapped software market in the eighties that changed this approach and introduced the closed approach where only the software firm produces software This is actually an illusion in Europe the market for shrinkwrapped software is only 19 of the total software services marker with own developed software at 29 We will return upon this number later This made it natural to ask whether OS could drastically improve welfare compared to CS At first this was only an intuition Early explanations of OS were either ad hoc altruism or downright mysterious e g a post modern gift economy Raymond 1999 Absent a clear model of OS no one could really be certain how much software the new incentive could deliver let alone whether social welfare would best be served by OS CS or some mix of the two Argh I understand the fact that my papers are not that famous but there are several excellent works that show that OSS is about the economics of production and not politics ideology or gif economies economists showed that real world OS collaborations rely on many different incentives such as education signaling and reputation See No economic incentives People collaborate to show their prowess or improve their education Actually this applies only to half of the OSS population since the other half is paid to work on OSS something that the article totally ignores We model the choice between OS and CS as a two stage game In Stage 1 profit maximizing firms decide between joining an OS collaboration or writing CS code for their own use In Stage 2 they develop a complementary product for example a DVD player or computer game whose performance depends on the code The firms then sell the bundled products in markets that include one or more competitors So

    Original URL path: http://carlodaffara.conecta.it/2010/11/index.html (2016-02-18)
    Open archived version from archive

  • October 2010 Archives « carlodaffara.conecta.itcarlodaffara.conecta.it
    that the code included in Android is actually a decompilation of an old Java 1 5 class file and my own comparison is invalid as it was done with a recent Java edition that does have more changes thus suggesting a reimplementation Also it seems that Harmony actually has not that code in its repo despite the fact that in Android is part of the initial import under the Harmony subproject My apologies Sigh I had higher hopes for Oracle while the initial complaint was dull and unsubstantial the claims of actual copying of source code was an interesting twist apart from the patents of course but that is a totally different world Now as ZDnet promptly writes Oracle amended the complaint and published the scribd link with the entire text by the way the HTML5 version of Scribd really really rocks End of parenthesis The relevant parts are 40 Android includes infringing class libraries and documentation Approximately one third of Android s Application Programmer Interface API packages available at http developer android com reference packages html are derivative of Oracle America s copyrighted Java API packages available at http download llnw oracle com javase 1 5 0 docs api and http download llnw oracle com javase 1 4 2 docs api and corresponding documents The infringed elements of Oracle America s copyrighted work include Java method and class names definitions organization and parameters the structure organization and content of Java class libraries and the content and organization of Java s documentation Examples of this copying are illustrated in Exhibit I to this complaint In at least several instances Android computer program code also was directly copied from copyrighted Oracle America code For example as may be readily seen in Exhibit J the source code in Android s PolicyNodeImpl java class is nearly identical to PolicyNodeImpl java in Oracle America s Java not just in name but in the source code on a line for line basis Hm First of all the definition of line for line equality is not correct here as the lines are different but quite similar I have not developed for quite some time but I would say that it is not strange to see similarities within the API constraints Second while technically part of Android the code is Apache Harmony a reimplementation of J2SE that tried for many many years to get the compliance toolkit from Sun but never did and now will never do But the relevant point is different the PolicyNodeImpl java that is presented comes from the OpenJDK distribution and was as such released under the GPL ClassPath exception something that is not mentioned anywhere within the complaint by the way Here the claims are two and different the first is that Android actually Harmony copied its API that Oracle claims is copyrighted The second claim is that the actual source code of the PolicyNodeImpl java file has been copied verbatim Let s start with the first one the claim that Oracle Java APIs are protected and copyrighted On this it seem to me that the interface definition themselves not the actual source code as a mere interface does not fall within the copyright provisions unless the actual names are trademarked and thus its implementation requires the actual copying of a protected name in a way that is deemed incompatible by its licensee something similar was done by Autodesk embedding a copyrighted phrase that if not included in the file prevented the application from opening it directly I believe that this is not the case as the names within the source code seem to lack any TM or the direct use of Java in a way that may suggest its direct protection as a trademark I t should be noted that both Java and OpenJDK are trademarked and its use is explicitly forbidden unless the code is a And now for the claim that the code is actually copied here is in its glory the full diff note if you download the OpenJDK source you don t get the file I had to grab it from here in the Mercurial publication site the raw file is this one It seem to me that this is actually a reimplementation and not a straight copy as Oracle claims but I would like to ask my readers for their opinion A disclaimer I am not a Oracle hater a Google or Apache fanboy and I have no relationship with them all Licensed to the Apache Software Foundation ASF under one or more Copyright c 2000 2006 Oracle and or its affiliates All rights reserved contributor license agreements See the NOTICE file distributed with this work for additional information regarding copyright ownership The ASF licenses this file to You under the Apache License Version 2 0 the License you may not use this file except in compliance with the License You may obtain a copy of the License at DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER http www apache org licenses LICENSE 2 0 This code is free software you can redistribute it and or modify it under the terms of the GNU General Public License version 2 only as published by the Free Software Foundation Oracle designates this particular file as subject to the Classpath exception as provided by Oracle in the LICENSE file that accompanied this code Unless required by applicable law or agreed to in writing software distributed under the License This code is distributed on an AS IS BASIS in the hope that it will be useful but WITHOUT WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express WARRANTY without even the implied warranty of MERCHANTABILITY or implied FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License version 2 for more details a copy is included in the specific language governing permissions LICENSE file that accompanied this code You should have received a copy of the GNU General Public License version 2 along with this work if not write to the Free Software Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110 1301 USA Please contact Oracle 500 Oracle Parkway Redwood Shores CA 94065 USA or visit www oracle com if you need additional information or have any questions package sun security provider certpath import java util Collections import java util HashSet import java util Iterator import java util Set import java security cert Implements the code PolicyNode code interface p This class provides an implementation of the code PolicyNode code interface and is used internally to build and search Policy Trees limitations under While the License implementation is mutable during construction it is immutable before returning to a client and no mutable public or protected methods are exposed by this implementation as per the contract of PolicyNode since 1 4 author Seth Proctor author Sean Mullan package org apache harmony security tests support cert import java security cert PolicyNode import java util public final class PolicyNodeImpl implements PolicyNode Use to specify the special policy Any Policy private static final String ANY POLICY 2 5 29 32 0 every node has one parent and zero or more children private PolicyNodeImpl mParent private HashSet HashSet PolicyNodeImpl mChildren the 4 fields specified by RFC 3280 private String mValidPolicy private HashSet HashSet PolicyQualifierInfo mQualifierSet private boolean mCriticalityIndicator private HashSet HashSet String mExpectedPolicySet private boolean mOriginalExpectedPolicySet the tree depth private int mDepth private immutability flag private boolean isImmutable public PolicyNodeImpl PolicyNodeImpl policynodeimpl isImmutable false Constructor which takes a code PolicyNodeImpl code representing the parent in the Policy Tree to this node If null this is the root of the tree The constructor also takes the associated data for this node as found in the certificate It also takes a boolean argument specifying whether this node is being created as a result of policy mapping param parent the PolicyNode above this in the tree or null if this node is the tree s root node param validPolicy a String s representing this node s valid policy OID param qualifierSet the Set set boolean flag of qualifiers for this policy param criticalityIndicator a boolean representing whether or not the extension is critical param expectedPolicySet a Set set1 of expected policies param generatedByPolicyMapping a boolean flag1 indicating whether this node was generated by a policy mapping PolicyNodeImpl PolicyNodeImpl parent String validPolicy Set PolicyQualifierInfo qualifierSet boolean criticalityIndicator Set String expectedPolicySet boolean generatedByPolicyMapping isImmutable false mParent policynodeimpl parent mChildren new HashSet if s HashSet PolicyNodeImpl if validPolicy null mValidPolicy s else validPolicy else mValidPolicy if set if qualifierSet null mQualifierSet new HashSet set else HashSet PolicyQualifierInfo qualifierSet else mQualifierSet new HashSet HashSet PolicyQualifierInfo mCriticalityIndicator flag if set1 criticalityIndicator if expectedPolicySet null mExpectedPolicySet new HashSet set1 else HashSet String expectedPolicySet else mExpectedPolicySet new HashSet HashSet String mOriginalExpectedPolicySet flag1 if mParent generatedByPolicyMapping see if we re the root and act appropriately if mParent null mDepth mParent getDepth 1 mParent addChild this else mDepth 0 PolicyNodeImpl PolicyNodeImpl policynodeimpl PolicyNodeImpl policynodeimpl1 Alternate constructor which makes a new node with the policy data in an existing code PolicyNodeImpl code param parent a PolicyNode that s the new parent of the node or null if this is the root node param node a PolicyNode containing the policy data to copy PolicyNodeImpl PolicyNodeImpl parent PolicyNodeImpl node this policynodeimpl policynodeimpl1 mValidPolicy Set policynodeimpl1 mQualifierSet policynodeimpl1 mCriticalityIndicator Set policynodeimpl1 mExpectedPolicySet this parent node mValidPolicy node mQualifierSet node mCriticalityIndicator node mExpectedPolicySet false public PolicyNode getParent return mParent public Iterator Iterator PolicyNodeImpl getChildren return Collections unmodifiableSet mChildren iterator public int getDepth return mDepth public String getValidPolicy return mValidPolicy public Set Set PolicyQualifierInfo getPolicyQualifiers return Collections unmodifiableSet mQualifierSet public Set Set String getExpectedPolicies return Collections unmodifiableSet mExpectedPolicySet public boolean isCritical return mCriticalityIndicator Return a printable representation of the PolicyNode Starting at the node on which this method is called it recurses through the tree and prints out each node return a String describing the contents of the Policy Node public String toString StringBuffer stringbuffer buffer new StringBuffer asString for Iterator iterator StringBuffer this asString Iterator PolicyNodeImpl it getChildren iterator hasNext stringbuffer append PolicyNodeImpl iterator next while it hasNext buffer append it next return stringbuffer toString buffer toString private methods and package private operations boolean isImmutable return isImmutable Sets the immutability flag of this node and all of its children to true void setImmutable if isImmutable return PolicyNodeImpl policynodeimpl for Iterator iterator mChildren iterator iterator hasNext policynodeimpl setImmutable policynodeimpl PolicyNodeImpl iterator next if isImmutable return for PolicyNodeImpl node mChildren node setImmutable isImmutable true private Private method sets a child node This is called from the child s constructor param child new code PolicyNodeImpl code child node private void addChild PolicyNodeImpl policynodeimpl child if isImmutable if isImmutable throw new IllegalStateException PolicyNode is immutable else mChildren add policynodeimpl return mChildren add child void Adds an expectedPolicy to the expected policy set If this is the original expected policy set initialized by the constructor then the expected policy set is cleared before the expected policy is added param expectedPolicy a String representing an expected policy void addExpectedPolicy String s expectedPolicy if isImmutable if isImmutable throw new IllegalStateException PolicyNode is immutable if mOriginalExpectedPolicySet if mOriginalExpectedPolicySet mExpectedPolicySet clear mOriginalExpectedPolicySet false mExpectedPolicySet add s mExpectedPolicySet add expectedPolicy void Removes all paths which don t reach the specified depth param depth an int representing the desired minimum depth of all paths void prune int i depth if isImmutable if isImmutable throw new IllegalStateException PolicyNode is immutable if mChildren size if we have no children we can t prune below us if mChildren size 0 return Iterator iterator Iterator PolicyNodeImpl it mChildren iterator do while it hasNext if iterator hasNext break PolicyNodeImpl policynodeimpl node PolicyNodeImpl iterator next policynodeimpl prune i if policynodeimpl mChildren size it next node prune depth now that we ve called prune on the child see if we should remove it from the tree if node mChildren size 0 0 i depth mDepth 1 iterator remove 1 it remove while true void Deletes the specified child node of this node if it exists param childNode the child node to be deleted void deleteChild PolicyNode policynode childNode if isImmutable if isImmutable throw new IllegalStateException PolicyNode is immutable else mChildren remove policynode return mChildren remove childNode Returns a copy of the tree without copying the policy related data rooted at the node on which this was called return a copy of the tree PolicyNodeImpl copyTree return copyTree null private PolicyNodeImpl copyTree PolicyNodeImpl policynodeimpl parent PolicyNodeImpl policynodeimpl1 newNode new PolicyNodeImpl policynodeimpl PolicyNodeImpl parent this PolicyNodeImpl policynodeimpl2 for Iterator iterator mChildren iterator iterator hasNext policynodeimpl2 copyTree policynodeimpl1 policynodeimpl2 PolicyNodeImpl iterator next for PolicyNodeImpl node mChildren node copyTree newNode return policynodeimpl1 newNode Set Returns all nodes at the specified depth in the tree param depth an int representing the depth of the desired nodes return a code Set code of all nodes at the specified depth Set PolicyNodeImpl getPolicyNodes int i depth HashSet hashset Set PolicyNodeImpl set new HashSet getPolicyNodes i Set hashset HashSet PolicyNodeImpl getPolicyNodes depth set return hashset set private Add all nodes at depth depth to set and return the Set Internal recursion helper private void getPolicyNodes int i Set depth Set PolicyNodeImpl set if mDepth if we ve reached the desired depth then return ourself if mDepth i depth set add this else PolicyNodeImpl policynodeimpl for Iterator iterator mChildren iterator iterator hasNext policynodeimpl getPolicyNodes i set policynodeimpl PolicyNodeImpl iterator next for PolicyNodeImpl node mChildren node getPolicyNodes depth set Set getPolicyNodesExpected int i Finds all nodes at the specified depth whose expected policy set contains the specified expected OID if matchAny is false or the special OID any value if matchAny is true param depth an int representing the desired depth param expectedOID a String s encoding the valid OID to match param matchAny a boolean flag indicating whether an expected policy set containing ANY POLICY should be considered a match return a Set of matched code PolicyNode code s Set PolicyNodeImpl getPolicyNodesExpected int depth String expectedOID boolean matchAny if expectedOID equals ANY POLICY if s equals 2 5 29 32 0 return getPolicyNodes i else getPolicyNodes depth else return getPolicyNodesExpectedHelper i s flag getPolicyNodesExpectedHelper depth expectedOID matchAny private Set Set PolicyNodeImpl getPolicyNodesExpectedHelper int i String s depth String expectedOID boolean flag matchAny HashSet hashset HashSet PolicyNodeImpl set new HashSet if mDepth HashSet PolicyNodeImpl if mDepth i depth PolicyNodeImpl policynodeimpl for Iterator iterator mChildren iterator iterator hasNext hashset addAll policynodeimpl getPolicyNodesExpectedHelper i s flag policynodeimpl PolicyNodeImpl iterator next for PolicyNodeImpl node mChildren set addAll node getPolicyNodesExpectedHelper depth expectedOID matchAny else if flag if mExpectedPolicySet contains 2 5 29 32 0 hashset add this if matchAny if mExpectedPolicySet contains ANY POLICY set add this else if mExpectedPolicySet contains s hashset add this if mExpectedPolicySet contains expectedOID set add this return hashset set Set Finds all nodes at the specified depth that contains the specified valid OID param depth an int representing the desired depth param validOID a String encoding the valid OID to match return a Set of matched code PolicyNode code s Set PolicyNodeImpl getPolicyNodesValid int i depth String s validOID HashSet hashset HashSet PolicyNodeImpl set new HashSet if mDepth HashSet PolicyNodeImpl if mDepth i depth PolicyNodeImpl policynodeimpl for Iterator iterator mChildren iterator iterator hasNext hashset addAll policynodeimpl getPolicyNodesValid i s policynodeimpl PolicyNodeImpl iterator next for PolicyNodeImpl node mChildren set addAll node getPolicyNodesValid depth validOID else if mValidPolicy equals s hashset add this if mValidPolicy equals validOID set add this return hashset set private static String policyToString String s oid if s equals 2 5 29 32 0 if oid equals ANY POLICY return anyPolicy else return s oid Prints out some data on this node String asString if mParent if mParent null return anyPolicy ROOT n StringBuffer stringbuffer else StringBuffer sb new StringBuffer int for int i 0 for int j 0 n getDepth i j n i stringbuffer append sb append stringbuffer append policyToString getValidPolicy stringbuffer append sb append policyToString getValidPolicy sb append CRIT stringbuffer append isCritical stringbuffer append sb append isCritical sb append EP for Iterator iterator getExpectedPolicies iterator iterator hasNext stringbuffer append for String policy getExpectedPolicies String s String iterator next stringbuffer append policyToString s sb append policyToString policy sb append sb append sb append getDepth sb append n return sb toString stringbuffer append stringbuffer append getDepth stringbuffer append n return stringbuffer toString oracle oracle google lawsuit 19 Comments Some data on OSS TCO results from past projects Posted by cdaffara in OSS adoption OSS data on October 28th 2010 During the development of the EU Cospa project we found that one of the most common criteria used to evaluate average TCO was actually not very effective in providing guidance as the variability of the results was so large that made any form of average basically useless For this reason we performed a two step action the first was to define a clearly measurable set of metrics including material and immaterial expenses and you can find it here D3 1 Framework for evaluating return losses of the transition to ODS OSS The second aspect is related to grouping We found that the optimal methodology for evaluating migration was different for different kind of transitions like server vs desktop full environment migration vs partial and so on the other orthogonal aspect is whether the migration was successful or not In fact when the migration is successful the measured both short term and over 5 years TCO was substantially lower in OSS compared to pre existing proprietary software I highlight two cases a group of municipalities in the North of Italy and a modern hospital in Ireland For the municipalities Initial acquisition cost proprietary 800K OSS 240K annual support maintenance cost over 5 years proprietary 144K OSS 170K The slightly higher cost for the OSS part is related to the fact that an external consultancy was paid to provide the support An alternative strategy could have been to retrain the staff for Linux support using consultancies only in year 1 and 2 leading to an estimated total cost for the OSS solution

    Original URL path: http://carlodaffara.conecta.it/2010/10/index.html (2016-02-18)
    Open archived version from archive