Search Results

Search found 8028 results on 322 pages for 'strategy pattern'.

Page 139/322 | < Previous Page | 135 136 137 138 139 140 141 142 143 144 145 146  | Next Page >

  • #OOW 2012 @PARIS...talking Oracle and Clouds, and Optimized Datacenter

    - by Eric Bezille
    For those of you who want to get most out of Oracle technologies to evolve your IT to the Next Wave, I encourage you to register to the up coming Oracle Optimized Datacenter event that will take place in Paris on November 28th. You will get the opportunity to exchange with Oracle experts and customers having successfully evolve their IT by leveraging Oracle technologies. You will also get the latest news on some of the Oracle systems announcements made during OOW 2012. During this event we will make an update about Oracle and Clouds, from private to public and hybrid models. So in preparing this session, I thought it was a good start to make a status of Cloud Computing in France, and CIO requirements in particular. Starting in 2009 with the first Cloud Camp in Paris, the market has evolved, but the basics are still the same : think hybrid. From Traditional IT to Clouds One size doesn't fit all, and for big companies having already an IT in place, there will be parts eligible to external (public) cloud, and parts that would be required to stay inside the firewalls, so ability to integrate both side is key.  None the less, one of the major impact of Cloud Computing trend on IT, reported by Forrester, is the pressure it makes on CIO to evolve towards the same model that end-users are now used to in their day to day life, where self-service and flexibility are paramount. This is what is driving IT to transform itself toward "a Global Service Provider", or for some as "IT "is" the Business" (see : Gartner Identifies Four Futures for IT and CIO), and for both models toward a Private Cloud Service Provider. In this journey, there is still a big difference between most of existing external Cloud and a firm IT : the number of applications that a CIO has to manage. Most cloud providers today are overly specialized, but at the end of the day, there are really few business processes that rely on only one application. So CIOs has to combine everything together external and internal. And for the internal parts that they will have to make them evolve to a Private Cloud, the scope can be very large. This will often require CIOs to evolve from their traditional approach to more disruptive ones, the time has come to introduce new standards and processes, if they want to succeed. So let's have a look at the different Cloud models, what type of users they are addressing, what value they bring and most importantly what needs to be done by the  Cloud Provider, and what is left over to the user. IaaS, PaaS, SaaS : what's provided and what needs to be done First of all the Cloud Provider will have to provide all the infrastructure needed to deliver the service. And the more value IT will want to provide, the more IT will have to deliver and integrate : from disks to applications. As we can see in the above picture, providing pure IaaS, left a lot to cover for the end-user, that’s why the end-user targeted by this Cloud Service is IT people. If you want to bring more value to developers, you need to provide to them a development platform ready to use, which is what PaaS is standing for, by providing not only the processors power, storage and OS, but also the Database and Middleware platform. SaaS being the last mile of the Cloud, providing an application ready to use by business users, the remaining part for the end-users being configuring and specifying the application for their specific usage. In addition to that, there are common challenges encompassing all type of Cloud Services : Security : covering all aspect, not only of users management but also data flows and data privacy Charge back : measuring what is used and by whom Application management : providing capabilities not only to deploy, but also to upgrade, from OS for IaaS, Database, and Middleware for PaaS, to a full Business Application for SaaS. Scalability : ability to evolve ALL the components of the Cloud Provider stack as needed Availability : ability to cover “always on” requirements Efficiency : providing a infrastructure that leverage shared resources in an efficient way and still comply to SLA (performances, availability, scalability, and ability to evolve) Automation : providing the orchestration of ALL the components in all service life-cycle (deployment, growth & shrink (elasticity), upgrades,...) Management : providing monitoring, configuring and self-service up to the end-users Oracle Strategy and Clouds For CIOs to succeed in their Private Cloud implementation, means that they encompass all those aspects for each component life-cycle that they selected to build their Cloud. That’s where a multi-vendors layered approach comes short in terms of efficiency. That’s the reason why Oracle focus on taking care of all those aspects directly at Engineering level, to truly provide efficient Cloud Services solutions for IaaS, PaaS and SaaS. We are going as far as embedding software functions in hardware (storage, processor level,...) to ensure the best SLA with the highest efficiency. The beauty of it, as we rely on standards, is that the Oracle components that you are running today in-house, are exactly the same that we are using to build Clouds, bringing you flexibility, reversibility and fast path to adoption. With Oracle Engineered Systems (Exadata, Exalogic & SPARC SuperCluster, more specifically, when talking about Cloud), we are delivering all those components hardware and software already engineered together at Oracle factory, with a single pane of glace for the management of ALL the components through Oracle Enterprise Manager, and with high-availability, scalability and ability to evolve by design. To give you a feeling of what does that bring in terms just of implementation project timeline, for example with Oracle SPARC SuperCluster, we have a consistent track of record to have the system plug into existing Datacenter and ready in a week. This includes Oracle Database, OS, virtualization, Database Storage (Exadata Storage Cells in this case), Application Storage, and all network configuration. This strategy enable CIOs to very quickly build Cloud Services, taking out not only the complexity of integrating everything together but also taking out the automation and evolution complexity and cost. I invite you to discuss all those aspect in regards of your particular context face2face on November 28th.

    Read the article

  • Oracle OpenWorld Update -- Scaling Infrastructure to Meet Business Growth: A Coherence Customer Panel

    - by Ruma Sanyal
    Today being the Monday of OpenWorld is packed with great content and sessions. I have already blogged about the general session by Ajay Patel and the classic Cloud Application Foundation roadmap and strategy session by Mike Lehmann. But we will be remiss if we don’t list the customer panel for Coherence. Come listen to customers spanning a wide variety of industries such as consumer goods, railways, and agricultural biotechnology discuss how Oracle Coherence enables business growth, cost cutting, and improved customer experience. You will learn how Coherence helps scale services cost-effectively, improve performance, and assure service availability in both on-premises and cloud deployments. Each customer will present details of their specific use cases, benefits and war stories of developing, deploying and managing some of the largest data grid deployments in the world. The session will be moderated by Cameron Purdy, VP of Development, and Mr. Coherence himself J For more information about this and other Coherence sessions, review the Coherence Focus on document. Details: Monday, 10/1, 12:15 p.m. - 1:15 p.m., Moscone South Room 309

    Read the article

  • Hosting multiple client website on single hosting account

    - by Bhavesh Gangani
    I'm WebDesiner and I have currently only a few clients for making website. I've unlimited hosting account and I want to host their websites in my account without reseller account (actually it is not needed for constness). Only my client's need is ftp access to their personal directory. So is it possible to give them saperate phpMyAdmin access in this strategy ? As per my knowledge it is done with "addon" domain pointing on my hosting account's directory with cPanel, am I right ? or there is another solution for it except reseller account ?

    Read the article

  • Oracle VM Moves into Challenger Position in the Latest Gartner Magic Quadrant

    - by Monica Kumar
    Oracle Innovations boost Oracle VM into Challenger Position in Gartner x86 Server Virtualization Infrastructure Magic Quadrant Oracle VM's placement in the just published Gartner x86 Server Virtualization Infrastructure Magic Quadrant affirms the Oracle strategy and is also supported by strong customer momentum gains. Optimizations delivered in Oracle VM releases during this last year along with easy software access and low cost licensing have moved Oracle’s placement into the Challenger quadrant in a very short time. Oracle continues to focus on delivering a strong integrated virtualization with Oracle VM and the managed stack in the following areas: Integrated management with Oracle VM and all layers of the Oracle stack from hardware to virtualization to cloud Application-Driven virtualization with Oracle VM templates for rapid enterprise application deployment Certified Oracle applications on Oracle VM Complete stack solution offering more values to customers Get a copy of the Magic Quadrant for x86 Server Virtualization Infrastructure report to read more about how Oracle VM rapidly moved up in its new position.

    Read the article

  • What are the disadvantages of self-encapsulation?

    - by Dave Jarvis
    Background Tony Hoare's billion dollar mistake was the invention of null. Subsequently, a lot of code has become riddled with null pointer exceptions (segfaults) when software developers try to use (dereference) uninitialized variables. In 1989, Wirfs-Brock and Wikerson wrote: Direct references to variables severely limit the ability of programmers to re?ne existing classes. The programming conventions described here structure the use of variables to promote reusable designs. We encourage users of all object-oriented languages to follow these conventions. Additionally, we strongly urge designers of object-oriented languages to consider the effects of unrestricted variable references on reusability. Problem A lot of software, especially in Java, but likely in C# and C++, often uses the following pattern: public class SomeClass { private String someAttribute; public SomeClass() { this.someAttribute = "Some Value"; } public void someMethod() { if( this.someAttribute.equals( "Some Value" ) ) { // do something... } } public void setAttribute( String s ) { this.someAttribute = s; } public String getAttribute() { return this.someAttribute; } } Sometimes a band-aid solution is used by checking for null throughout the code base: public void someMethod() { assert this.someAttribute != null; if( this.someAttribute.equals( "Some Value" ) ) { // do something... } } public void anotherMethod() { assert this.someAttribute != null; if( this.someAttribute.equals( "Some Default Value" ) ) { // do something... } } The band-aid does not always avoid the null pointer problem: a race condition exists. The race condition is mitigated using: public void anotherMethod() { String someAttribute = this.someAttribute; assert someAttribute != null; if( someAttribute.equals( "Some Default Value" ) ) { // do something... } } Yet that requires two statements (assignment to local copy and check for null) every time a class-scoped variable is used to ensure it is valid. Self-Encapsulation Ken Auer's Reusability Through Self-Encapsulation (Pattern Languages of Program Design, Addison Wesley, New York, pp. 505-516, 1994) advocated self-encapsulation combined with lazy initialization. The result, in Java, would resemble: public class SomeClass { private String someAttribute; public SomeClass() { setAttribute( "Some Value" ); } public void someMethod() { if( getAttribute().equals( "Some Value" ) ) { // do something... } } public void setAttribute( String s ) { this.someAttribute = s; } public String getAttribute() { String someAttribute = this.someAttribute; if( someAttribute == null ) { setAttribute( createDefaultValue() ); } return someAttribute; } protected String createDefaultValue() { return "Some Default Value"; } } All duplicate checks for null are superfluous: getAttribute() ensures the value is never null at a single location within the containing class. Efficiency arguments should be fairly moot -- modern compilers and virtual machines can inline the code when possible. As long as variables are never referenced directly, this also allows for proper application of the Open-Closed Principle. Question What are the disadvantages of self-encapsulation, if any? (Ideally, I would like to see references to studies that contrast the robustness of similarly complex systems that use and don't use self-encapsulation, as this strikes me as a fairly straightforward testable hypothesis.)

    Read the article

  • Can you shade a specific section of a sprite? If so, how?

    - by l5p4ngl312
    I have been working on an isometric minecraft-esque game engine for a strategy game I plan on making. As you can see, it really needs some sort of shading. It is difficult to distinguish between separate elevations when the camera is facing away from the slope because everything is the same shade. So my question is: can I shade just a specific section of a sprite? All of those blocks are just sprites, so if I shaded the entire image, it would shade the whole block. I am using LWJGL. Heres a link to a screenshot from the engine: http://i44.tinypic.com/qxqlix.jpg

    Read the article

  • Asynchrony in C# 5 (Part I)

    - by javarg
    I’ve been playing around with the new Async CTP preview available for download from Microsoft. It’s amazing how language trends are influencing the evolution of Microsoft’s developing platform. Much effort is being done at language level today than previous versions of .NET. In these post series I’ll review some major features contained in this release: Asynchronous functions TPL Dataflow Task based asynchronous Pattern Part I: Asynchronous Functions This is a mean of expressing asynchronous operations. This kind of functions must return void or Task/Task<> (functions returning void let us implement Fire & Forget asynchronous operations). The two new keywords introduced are async and await. async: marks a function as asynchronous, indicating that some part of its execution may take place some time later (after the method call has returned). Thus, all async functions must include some kind of asynchronous operations. This keyword on its own does not make a function asynchronous thought, its nature depends on its implementation. await: allows us to define operations inside a function that will be awaited for continuation (more on this later). Async function sample: Async/Await Sample async void ShowDateTimeAsync() {     while (true)     {         var client = new ServiceReference1.Service1Client();         var dt = await client.GetDateTimeTaskAsync();         Console.WriteLine("Current DateTime is: {0}", dt);         await TaskEx.Delay(1000);     } } The previous sample is a typical usage scenario for these new features. Suppose we query some external Web Service to get data (in this case the current DateTime) and we do so at regular intervals in order to refresh user’s UI. Note the async and await functions working together. The ShowDateTimeAsync method indicate its asynchronous nature to the caller using the keyword async (that it may complete after returning control to its caller). The await keyword indicates the flow control of the method will continue executing asynchronously after client.GetDateTimeTaskAsync returns. The latter is the most important thing to understand about the behavior of this method and how this actually works. The flow control of the method will be reconstructed after any asynchronous operation completes (specified with the keyword await). This reconstruction of flow control is the real magic behind the scene and it is done by C#/VB compilers. Note how we didn’t use any of the regular existing async patterns and we’ve defined the method very much like a synchronous one. Now, compare the following code snippet  in contrast to the previuous async/await: Traditional UI Async void ComplicatedShowDateTime() {     var client = new ServiceReference1.Service1Client();     client.GetDateTimeCompleted += (s, e) =>     {         Console.WriteLine("Current DateTime is: {0}", e.Result);         client.GetDateTimeAsync();     };     client.GetDateTimeAsync(); } The previous implementation is somehow similar to the first shown, but more complicated. Note how the while loop is implemented as a chained callback to the same method (client.GetDateTimeAsync) inside the event handler (please, do not do this in your own application, this is just an example).  How it works? Using an state workflow (or jump table actually), the compiler expands our code and create the necessary steps to execute it, resuming pending operations after any asynchronous one. The intention of the new Async/Await pattern is to let us think and code as we normally do when designing and algorithm. It also allows us to preserve the logical flow control of the program (without using any tricky coding patterns to accomplish this). The compiler will then create the necessary workflow to execute operations as the happen in time.

    Read the article

  • Drive Innovation from Data with Oracle Business Analytics

    - by Mike.Hallett(at)Oracle-BI&EPM
    Oracle is doing a big marketing push on the transformational value of Business Analytics to our customers, and we hope you as partners can get excited, involved and more business from this campaign.  Work with your local in-country BI business development manager and your partner channel manager: if you want to contribute and are struggling to make contact, then let me know ([email protected]) and I will facilitate introductions. Oracle Day Business Analytics Track Invite your customers to register for their local Oracle Day to get the latest news from OpenWorld and learn about Oracle's Big Data strategy and solution. There is a dedicated Business Analytics track. Business Analytics Facebook Hub Encourage your customers to "Like" the Business Analytics Facebook Page @ www.facebook.com/OracleBusinessAnalytics so they can receive useful and interesting information on their Facebook wall.

    Read the article

  • Problems hiring someone on elance or similar sites

    - by akim
    I am assigned to hire some developers/designers in these kind of sites, and I'm looking for war stories about problems with this strategy. All I found so far are tips about getting more jobs as a freelancer, but nothing about being in the other side. We need a web designer and maybe a web programer for a internal and small site, but really important with a very short deadline. Any thoughts about? Does it worth to hire someone? Or we should work extra hour and get this done by ourselves?

    Read the article

  • problem on static link to libsmbclient.a

    - by Rex
    I've tried to develop a library using libsmbclient-dev to access net share folders. I wish to static link libsmbclient.a in my project , but a lot of error happens when I tried to static link it, it seems that the libsmbclient.a doesn't include some objects it needed , while everything goes well with libsmbclient.so. Because my project need to support various linux versions like centOS , Ubuntu ..., we wish not to install libsmbclient-dev everywhere. Can anybody tell me that if I can static link this libsmbclient.a in an easy way ? Or what kind of installation strategy should I take to cause less trouble to users? If anyone have use this library to develop projects before , can you tell me how you deal with this case? Thank you very much!!!

    Read the article

  • JAX-RS 2.0, JTA 1.1, JMS 2.0 Replay: Java EE 7 Launch Webinar Technical Breakouts on YouTube

    - by John Clingan
    As stated previously (here) (here), the On-Demand Replay of Java EE 7 Launch Webinar is already available. You can watch the entire Strategy and Technical Keynote there, and all other Technical Breakout sessions as well. We are releasing the next set of Technical Breakout sessions on GlassFishVideos YouTube channel as well. In this series, we are releasing JAX-RS 2.0, JTA 1.1, and JMS 2.0. Here's the JAX-RS 2.0 session: Enjoy watching them over the next few days before we release the next set of videos! And don't forget to download Java EE 7 SDK and try numerous bundled samples. "here), we are releasing the next set of Technical Breakout sessions on GlassFishVideos YouTube channel as well. In this series, the next three videos are released. Here's the JAX-RS 2.0 session: Enjoy watching them over the next few days before we release the next set of videos! And don't forget to download Java EE 7 SDK and try numerous bundled samples.

    Read the article

  • Are your merchandise systems limiting growth? Oracle Retail's Merchandise Operations Management could be the answer

    - by user801960
    In this video, Lara Livgard, Director of Oracle Retail Strategy, introduces Oracle Retail Merchandise Operations Management (MOM), a set of integrated, modular solutions that support buying, pricing, inventory management and inventory valuation across a retailer’s channels, countries, and business models. MOM is the backbone of successful retail operations, providing timely and accurate visibility across the entire enterprise and enabling efficient supply-chain execution driven by plans and forecasts. It's modular architecture facilitates tailored and high-value implementations, giving retailers the information they need in order to offer a quality customer experience through a truly integrated multi-channel approach. Further information is available on the Oracle Retail website regarding Merchandise Operations Management.

    Read the article

  • What technology should I concentrate on for mobile development? [closed]

    - by Rob2211
    Firstly, I have many years experience with C# & .NET and some with Java. But, rather than committing to Java and developing native applications for Andriod I have been researching cross-platform deployment technologies. Currently, the most powerful cross-platform technology seems to be Flash, using Adobe AIR to package software as native applications. But given Adobe's announcement that it will discontinue support for the Flash Player on mobile devices it seems foolish (at this late stage) to invest in Flash and ActionScript as a developer. There has been speculation that Microsoft are also planning their exit strategy for Silverlight in favour of HTML5. So, my questions are; What is the most appropriate technology to invest in and learn in order to build cross-platform mobile applications / games while future proofing my skills as a developer? Is HTML5 mature enough to fill the 'Flash void' and be used to start building cross-platform, rich, interactive, networked mobile applications / games now? N.B. For HTML5 read (HTML5/CSS3/JavaScript)

    Read the article

  • Canonical links for huge websites

    - by Florin
    Let's say I have 5 products that are identical but the product code, the product color specifications and the product image. The title, meta and description are identical (by the way the color is in a select form). I made 4 products link canonical to the 1 that is the master based on many factors. If the master becomes inactive or without a stock one product from the other 4 will become the new master and the rest will become canonical to it. The question is if that by becomeing master from canonical will the site suffer a penalty from Google or it will work just fine? What will Google think about this strategy?

    Read the article

  • Dec. 6 Webcast: See the New UI for JD Edwards

    - by Theresa Hickman
    When: Dec. 6, 2011 Time: 8:00am PST What: Live webcast and demo Tune into this live webcast to see the just completed new JD Edwards EnterpriseOne User Interface. This is one of the most significant releases with a massive number of feature innovations for users and system administrators. We are looking forward to demonstrating the new User Interface and Tools. The following panel of experts will be available to answer all your questions: Lyle Ekdahl – Oracle Group Vice President Gary Grieshaber – Oracle Strategy Senior Director Brian Stanz – Oracle Development Senior Director Click here to register. Note: You must pre-register for this event.

    Read the article

  • Become an Oracle BI or Hyperion Ace Director

    - by Mike.Hallett(at)Oracle-BI&EPM
    Now you are a specialised Partner, how can you go even further to differentiate yourself as a real expert in the field, and cement closer links with Oracle’s R&D and Strategy teams ? Become an Oracle BI or Hyperion ACE Director , and you get more air-time to publish your ideas and stories throughout the Oracle network, and thereby promote yourself and your company.  Often ACE Directors get more involvement in product development advisory boards and Beta testing programmes. What is the Oracle ACE Program? The Oracle ACE Program is designed to recognize and reward members of the Oracle Technology and Applications communities for their contributions to those communities. These individuals are technically proficient and willingly share their knowledge and experiences.  Read the FAQ for more details.

    Read the article

  • Author's work and copyright. in UI design

    - by c-smile
    Typical situation in UI design: you do design of some UI and, say, came up with some bright new idea like "ribbon" or "kinetic scroll past end". What would be the strategy about such thing? Register patent, don't like it, but anyway would like to ask: how long it takes to do all this stuff and how much it will cost in average? If to forget about patents, will the idea have something like "prior art" status or some such if someone will try to patent this in future? All this about project / product published by solo developer.

    Read the article

  • JavaOne Kicks Off with Sunday Keynotes

    - by Yolande Poirier
    The Java Strategy, Partner, and Technical keynotes will be held on Sunday, September 22, beginning at 4:00 p.m. like last year, to free up time for session slots on Monday and Tuesday. The keynotes will again take place at the historic Masonic Auditorium on Nob Hill. That same evening at 7:00 p.m., attendees are invited to the official JavaOne Welcome Reception at the Taylor Street Café @ the Zone. Sunday will also feature User Group meetings (at Moscone West) and Java University courses (Hilton San Francisco Union Square). On Thursday, the Java Community keynote will start the wrap up of the conference. Register before July 19, 2013 and save US$400. Click here for information on registration packages, including the low-cost Discover pass alternative.

    Read the article

  • Tips to Choose the Ideal Domain Name

    The first step of any website creation is purchasing a domain name. Choosing a domain name is not as easy as choosing a theme for your website design. This is because an ideal domain name that is well recognized by search engine will gain more traffic to your website. More traffic means more sales. Then how to make your domain generate more organic traffic to your website? Coming up with a good domain name requires a combination of knowledge, strategy, imagination.

    Read the article

  • Capgemini report - Business Cloud: The State of Play Shifts Rapidly

    - by Javier Puerta
    Capgemini has published a recent survey on the state of play of cloud adoption. The report indicates "clear evidence that the business, rather than purely IT, is becoming involved in driving Cloud strategy, and pioneering its use for ‘edge’ growth initiatives."  Ron Tolido, Senior Vice President and Chief Technology Officer of Applications Continental Europe at Capgemini, was one of the keynote speakers at our Exadata & Manageability Partner Community event in Istanbul in March. He is one of the drivers of this survey. Read his article "3 Key Cloud Insights for 2013". You an download the full report here:  "Business Cloud: The State of Play Shifts Rapidly - Fresh Insights into Cloud Adoption Trends"

    Read the article

  • Capgemini report - Business Cloud: The State of Play Shifts Rapidly

    - by Javier Puerta
    Capgemini has published a recent survey on the state of play of cloud adoption. The report indicates "clear evidence that the business, rather than purely IT, is becoming involved in driving Cloud strategy, and pioneering its use for ‘edge’ growth initiatives."  Ron Tolido, Senior Vice President and Chief Technology Officer of Applications Continental Europe at Capgemini, was one of the keynote speakers at our Exadata & Manageability Partner Community event in Istanbul in March. He is one of the drivers of this survey. Read his article "3 Key Cloud Insights for 2013". You an download the full report here:  "Business Cloud: The State of Play Shifts Rapidly - Fresh Insights into Cloud Adoption Trends"

    Read the article

  • Cleaning a dataset of song data - what sort of problem is this?

    - by Rob Lourens
    I have a set of data about songs. Each entry is a line of text which includes the artist name, song title, and some extra text. Some entries are only "extra text". My goal is to resolve as many of these as possible to songs on Spotify using their web API. My strategy so far has been to search for the entry via the API - if there are no results, apply a transformation such as "remove all text between ( )" and search again. I have a list of heuristics and I've had reasonable success with this but as the code gets more and more convoluted I keep thinking there must be a more generic and consistent way. I don't know where to look - any suggestions for what to try, topics to study, buzzwords to google?

    Read the article

  • New Podcast Available: Product Value Chain Management: How Oracle is Taking the Lead on Next Gen Enterprise PLM

    - by Terri Hiskey
    A new podcast on how Oracle is taking the lead in Enterprise PLM with our Product Value Chain solution is now available. In case you're not yet familiar with the concept of Product Value Chain, its an integrated business model powered by Oracle that offers executives the ability to collectively leverage enterprise Agile PLM, Product Data Hub, Enterprise Data Quality and AutoVue Enterprise Visualization and other industry-leading Oracle applications for incremental value. In this quick, 10 minute podcast, you'll hear John Kelley, VP PLM Product Strategy, and Terri Hiskey, Director, PLM Product Marketing, discuss Oracle's vision for next generation enterprise PLM: the Product Value Chain. http://feedproxy.google.com/~r/OracleAppcast/~3/jxAED7ugMEc/11525926_Enterprise_PLM_040612.mp3

    Read the article

  • Microsoft Unveils New Logo

    Indeed, with those four familiar colored squares - set in a bigger square rather than standing on a point in a diamond - Microsoft's new corporate logo seems almost inevitable. As you'd expect, the company's name makes up part of the logo, but instead of the thick italic letters it has used for the past two and a half decades, it's in a more standard, lighter font. Jeff Hansen, Microsoft's general manager of brand strategy, notes that the point of the new logo is to signal the heritage but also signal the future - a newness and a freshness. It's very fitting when you consider just how many...

    Read the article

  • Caching factory design

    - by max
    I have a factory class XFactory that creates objects of class X. Instances of X are very large, so the main purpose of the factory is to cache them, as transparently to the client code as possible. Objects of class X are immutable, so the following code seems reasonable: # module xfactory.py import x class XFactory: _registry = {} def get_x(self, arg1, arg2, use_cache = True): if use_cache: hash_id = hash((arg1, arg2)) if hash_id in _registry: return _registry[hash_id] obj = x.X(arg1, arg2) _registry[hash_id] = obj return obj # module x.py class X: # ... Is it a good pattern? (I know it's not the actual Factory Pattern.) Is there anything I should change? Now, I find that sometimes I want to cache X objects to disk. I'll use pickle for that purpose, and store as values in the _registry the filenames of the pickled objects instead of references to the objects. Of course, _registry itself would have to be stored persistently (perhaps in a pickle file of its own, in a text file, in a database, or simply by giving pickle files the filenames that contain hash_id). Except now the validity of the cached object depends not only on the parameters passed to get_x(), but also on the version of the code that created these objects. Strictly speaking, even a memory-cached object could become invalid if someone modifies x.py or any of its dependencies, and reloads it while the program is running. So far I ignored this danger since it seems unlikely for my application. But I certainly cannot ignore it when my objects are cached to persistent storage. What can I do? I suppose I could make the hash_id more robust by calculating hash of a tuple that contains arguments arg1 and arg2, as well as the filename and last modified date for x.py and every module and data file that it (recursively) depends on. To help delete cache files that won't ever be useful again, I'd add to the _registry the unhashed representation of the modified dates for each record. But even this solution isn't 100% safe since theoretically someone might load a module dynamically, and I wouldn't know about it from statically analyzing the source code. If I go all out and assume every file in the project is a dependency, the mechanism will still break if some module grabs data from an external website, etc.). In addition, the frequency of changes in x.py and its dependencies is quite high, leading to heavy cache invalidation. Thus, I figured I might as well give up some safety, and only invalidate the cache only when there is an obvious mismatch. This means that class X would have a class-level cache validation identifier that should be changed whenever the developer believes a change happened that should invalidate the cache. (With multiple developers, a separate invalidation identifier is required for each.) This identifier is hashed along with arg1 and arg2 and becomes part of the hash keys stored in _registry. Since developers may forget to update the validation identifier or not realize that they invalidated existing cache, it would seem better to add another validation mechanism: class X can have a method that returns all the known "traits" of X. For instance, if X is a table, I might add the names of all the columns. The hash calculation will include the traits as well. I can write this code, but I am afraid that I'm missing something important; and I'm also wondering if perhaps there's a framework or package that can do all of this stuff already. Ideally, I'd like to combine in-memory and disk-based caching.

    Read the article

< Previous Page | 135 136 137 138 139 140 141 142 143 144 145 146  | Next Page >