Search Results

Search found 15879 results on 636 pages for 'team building'.

Page 175/636 | < Previous Page | 171 172 173 174 175 176 177 178 179 180 181 182  | Next Page >

  • API Message Localization

    - by Jesse Taber
    In my post, “Keep Localizable Strings Close To Your Users” I talked about the internationalization and localization difficulties that can arise when you sprinkle static localizable strings throughout the different logical layers of an application. The main point of that post is that you should have your localizable strings reside as close to the user-facing modules of your application as possible. For example, if you’re developing an ASP .NET web forms application all of the localizable strings should be kept in .resx files that are associated with the .aspx views of the application. In this post I want to talk about how this same concept can be applied when designing and developing APIs. An API Facilitates Machine-to-Machine Interaction You can typically think about a web, desktop, or mobile application as a collection “views” or “screens” through which users interact with the underlying logic and data. The application can be designed based on the assumption that there will be a human being on the other end of the screen working the controls. You are designing a machine-to-person interaction and the application should be built in a way that facilitates the user’s clear understanding of what is going on. Dates should be be formatted in a way that the user will be familiar with, messages should be presented in the user’s preferred language, etc. When building an API, however, there are no screens and you can’t make assumptions about who or what is on the other end of each call. An API is, by definition, a machine-to-machine interaction. A machine-to-machine interaction should be built in a way that facilitates a clear and unambiguous understanding of what is going on. Dates and numbers should be formatted in predictable and standard ways (e.g. ISO 8601 dates) and messages should be presented in machine-parseable formats. For example, consider an API for a time tracking system that exposes a resource for creating a new time entry. The JSON for creating a new time entry for a user might look like: 1: { 2: "userId": 4532, 3: "startDateUtc": "2012-10-22T14:01:54.98432Z", 4: "endDateUtc": "2012-10-22T11:34:45.29321Z" 5: }   Note how the parameters for start and end date are both expressed as ISO 8601 compliant dates in UTC. Using a date format like this in our API leaves little room for ambiguity. It’s also important to note that using ISO 8601 dates is a much, much saner thing than the \/Date(<milliseconds since epoch>)\/ nonsense that is sometimes used in JSON serialization. Probably the most important thing to note about the JSON snippet above is the fact that the end date comes before the start date! The API should recognize that and disallow the time entry from being created, returning an error to the caller. You might inclined to send a response that looks something like this: 1: { 2: "errors": [ {"message" : "The end date must come after the start date"}] 3: }   While this may seem like an appropriate thing to do there are a few problems with this approach: What if there is a user somewhere on the other end of the API call that doesn’t speak English?  What if the message provided here won’t fit properly within the UI of the application that made the API call? What if the verbiage of the message isn’t consistent with the rest of the application that made the API call? What if there is no user directly on the other end of the API call (e.g. this is a batch job uploading time entries once per night unattended)? The API knows nothing about the context from which the call was made. There are steps you could take to given the API some context (e.g.allow the caller to send along a language code indicating the language that the end user speaks), but that will only get you so far. As the designer of the API you could make some assumptions about how the API will be called, but if we start making assumptions we could very easily make the wrong assumptions. In this situation it’s best to make no assumptions and simply design the API in such a way that the caller has the responsibility to convey error messages in a manner that is appropriate for the context in which the error was raised. You would work around some of these problems by allowing callers to add metadata to each request describing the context from which the call is being made (e.g. accepting a ‘locale’ parameter denoting the desired language), but that will add needless clutter and complexity. It’s better to keep the API simple and push those context-specific concerns down to the caller whenever possible. For our very simple time entry example, this can be done by simply changing our error message response to look like this: 1: { 2: "errors": [ {"code": 100}] 3: }   By changing our error error from exposing a string to a numeric code that is easily parseable by another application, we’ve placed all of the responsibility for conveying the actual meaning of the error message on the caller. It’s best to have the caller be responsible for conveying this meaning because the caller understands the context much better than the API does. Now the caller can see error code 100, know that it means that the end date submitted falls before the start date and take appropriate action. Now all of the problems listed out above are non-issues because the caller can simply translate the error code of ‘100’ into the proper action and message for the current context. The numeric code representation of the error is a much better way to facilitate the machine-to-machine interaction that the API is meant to facilitate. An API Does Have Human Users While APIs should be built for machine-to-machine interaction, people still need to wire these interactions together. As a programmer building a client application that will consume the time entry API I would find it frustrating to have to go dig through the API documentation every time I encounter a new error code (assuming the documentation exists and is accurate). The numeric error code approach hurts the discoverability of the API and makes it painful to integrate with. We can help ease this pain by merging our two approaches: 1: { 2: "errors": [ {"code": 100, "message" : "The end date must come after the start date"}] 3: }   Now we have an easily parseable numeric error code for the machine-to-machine interaction that the API is meant to facilitate and a human-readable message for programmers working with the API. The human-readable message here is not intended to be viewed by end-users of the API and as such is not really a “localizable string” in my opinion. We could opt to expose a locale parameter for all API methods and store translations for all error messages, but that’s a lot of extra effort and overhead that doesn’t add a lot real value to the API. I might be a bit of an “ugly American”, but I think it’s probably fine to have the API return English messages when the target for those messages is a programmer. When resources are limited (which they always are), I’d argue that you’re better off hard-coding these messages in English and putting more effort into building more useful features, improving security, tweaking performance, etc.

    Read the article

  • IIS at TechEd Europe - Madrid - 26 June 2013

    - by The Official Microsoft IIS Site
    Don't miss the opportunity to hear Wade Hilmo, IIS' principal development lead, at Tech Ed Europe, 26 June 2013 in Madrid, Spain at the IFEMA – Feria de Madrid Convention Centre. Wade will be presenting the latest about IIS in Windows Server 2012 R2, bringing his special insight from his years leading the development team. The full details, including room & time are here: http://go.microsoft.com/fwlink/?LinkId=309913 Read More......(read more)

    Read the article

  • Learning resources for working with POCO entities in EF 4.0

    - by boghydan
    Here are some links that can help you start working with POCO entities in EF 4.0: ADO.NET Team blog: - Working with POCO objects: http://blogs.msdn.com/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx - Proxy objects for POCO entities: http://blogs.msdn.com/adonet/archive/2009/12/22/poco-proxies-part-1.aspx MSDN Library: - Working with POCO  http://msdn.microsoft.com/en-us/library/dd456853.aspx - T4 editor for POCO generator can be downloaded from here: http://visualstudiogallery.msdn.microsoft.com/en-us/60297607-5fd4-4da4-97e1-3715e90c1a23

    Read the article

  • OrbitFX: JavaFX 8 3D & NetBeans Platform in Space!

    - by Geertjan
    Here is a collection of screenshots from a proof of concept tool being developed by Nickolas Sabey and Sean Phillips from a.i. solutions. Before going further, read a great new article here written on java.net by Kevin Farnham, in light of the Duke's Choice Award (DCA) recently received at JavaOne 2013 by the a.i. solutions team. Here's Sean receiving the award on behalf of the a.i. solutions team, surrounded by the DCA selection committee and other officials: They won the DCA for helping facilitate and deploy the 2014 launch of NASA's Magnetospheric Multiscale mission, using JDK 7, the NetBeans Platform, and JavaFX to create the GEONS Ground Support System, helping reduce software development time by approximately 35%. The prototype tool that Nicklas and Sean are now working on uses JavaFX 3D with the NetBeans Platform and is nicknamed OrbitFX. Much of the early development is being done to experiment with different patterns, so that accuracy is currently not the goal. For example, you'll notice in the screenshots that the Earth is really close to the Sun, which is obviously not correct. The screenshots are generated using Java 8 build 111, together with NetBeans Platform 7.4. Inspired by various JavaOne demos using JavaFX 3D, Nick began development integrating them into their existing NetBeans Platform infrastructure. The 3D scene showing the Sun and Earth objects is all JavaFX 8 3D, demonstrating the use of Phong Material support, along with multiple light and camera objects. Each JavaFX component extends a JFXPanel type, so that each can easily be added to NetBeans Platform TopComponents. Right-clicking an item in the explorer view offers a context menu that animates and centers the 3D scene on the selected celestial body.  With each JavaFX scene component wrapped in a JFXPanel, they can easily be integrated into a NetBeans Platform Visual Library scene.  In this case, Nick and Sean are using an instance of their custom Slipstream PinGraphScene, which is an extension of the NetBeans Platform VMDGraphScene. Now, via the NetBeans Platform Visual Library, the OrbitFX celestial body viewer can be used in the same space as a WorldWind viewer, which is provided by a previously developed plugin. "This is a clear demonstration of the power of the NetBeans Platform as an application development framework," says Sean Phillips. "How else could you have so much rich application support placed literally side by side so easily?"

    Read the article

  • O&rsquo;Reilly Deal of the Day 10/June/2014 - AngularJS Directives

    - by TATWORTH
    Originally posted on: http://geekswithblogs.net/TATWORTH/archive/2014/06/10/orsquoreilly-deal-of-the-day-10june2014---angularjs-directives.aspxToday’s half-price E-Book offer from O’Reilly at http://shop.oreilly.com/product/9781783280339.do is AngularJS Directives. “AngularJS, propelled by Google, is quickly becoming one of the most popular JavaScript MVC frameworks available, working to invert the development paradigm and bring data-driven modularity to the web frontend. Directives serve as the core building blocks in AngularJS and enable you to create reusable models that mold around your data structures and breathe new life into the intersection of HTML and JavaScript.”

    Read the article

  • Cannot install stable Xbox 360 driver

    - by Mohd Arafat Hossain
    When I type in sudo add-apt-repository ppa:grumbel/ppa sudo apt-get update sudo apt-get install xboxdrv then when I go to install the stable driver like this sudo apt-get install xboxdrv-stable I get this mohd-arafat-hossain@TUD:~$ sudo apt-get install xboxdrv-stable [sudo] password for the-ubuntu-documentary: Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package xboxdrv-stable

    Read the article

  • Premier Support Date Changed for Oracle Application Server 10gR2

    - by Steven Chan
    Our Fusion Middleware team has changed the Premier Support dates for Oracle Application Server 10gR2 (10.1.2.x).  The new dates are published here:Lifetime Support Policy: Oracle Fusion Middleware Products (PDF, 315 K)Premier Support for Oracle Application Server 10gR2 was originally slated to end in December 2010.  We discussed the implications for E-Business Suite Release 11i and 12 environments in this article:Premier Support for Oracle Application Server 10g ends December 2010

    Read the article

  • Google I/O 2011: GIS with Google Earth and Google Maps

    Google I/O 2011: GIS with Google Earth and Google Maps Josh Livni, Mano Marks Building a robust interactive map with a lot of data involves more than just adding a few placemarks. We'll talk about integrating with existing GIS software, importing data from shapefiles and other formats, map projections, and techniques for managing, analyzing, and rendering large datasets. From: GoogleDevelopers Views: 3785 19 ratings Time: 52:25 More in Science & Technology

    Read the article

  • Enhance Primavera Project Document Collaboration with AutoVue Enterprise Visualization

    Completing projects on time and within budget requires effective project planning, management and collaboration amongst a variety of stakeholders. By introducing Oracle’s AutoVue document visualization and collaboration solutions in Primavera , users can visualize and collaborate on engineering and project documents. Tune into this conversation with Guy Barlow, Industry Strategist for Primavera and Thierry Bonfante, Director Product Strategy for Oracle’s AutoVue solutions to learn how the combination of AutoVue and Primavera accelerates project delivery by providing the right documents to the right resources at the right time to increase team response rates, and provide all critical information for improved decision making.

    Read the article

  • App Script Office Hours - August 16, 2012

    App Script Office Hours - August 16, 2012 Eric and Jan from the Apps Script Developer Relations team host another weekly edition of office hours, a chance for developers to ask their questions live or just chat about new features. This week they also highlighted some apps in the Chrome Web Store built on Apps Script: DriveEye, Gmail Meter, Gmail Print All for Chrome, and Drive Forms. To find out when the next office hours are scheduled visit: developers.google.com From: GoogleDevelopers Views: 873 24 ratings Time: 31:31 More in Science & Technology

    Read the article

  • Appropriate response when client empowered with CMS destroys content to his own will

    - by dukeofgaming
    So, I just recently closed a website project that pretty much was The Oatmeals' Design Hell, but with content. The client loved the site at the beginning but started getting other people involved and mercilessly bombarding us with their opinions. We served a carefully thought content strategy (which the client approved) and extremely curated copywriting that took us four months after at least 5 requirement changes (new content, new objectives for the business, changed offerings, new mindfaps, etc.) that required us to rewrite the content about 3 times. The client never gave timely feedback even though we kept the process open for him and his people to see (content being developed transparently in Google Docs). Near the end of the project he still wanted to make changes but wanted us to finish already (there are not enough words in the world to even try to make sense of this). So I explained to him the obvious implications of the never-ending requirement changes and advised him to take the time to gather his thoughts with his own team and see the new content introduced as a new content maintenance project. He happily accepted, but on the day of training/delivery things went very wrong and we have no idea why. The client didn't even allow the site to be out for a week with the content we developed for him and quickly replaced us with a Joomla savvy intern so that he completely destroy the content with shallow, unstructured, tasteless and plain wordsmithing (and I'm not even being visceral). Worst insult of all, he revoked our access from his server and the deployed CMS not even having passed 10 minutes of being given his administrator account (we realized the day after that he did it in our own office, the nerve!). Everybody involved in the team is enraged and insulted. I never want to see this happen again. So, to try to make sense of this situation and avoid it in the future with new clients I have two concrete questions: Is there even an appropriate course of action with a client like this?, or is he just not worth the trouble of analyzing (blindly hoping this never repeats again). In the exercise to try and blame ourselves instead of the client and take this as a lesson of... something, how should we set expectations for new clients about the working terms, process and final product so that they are discouraged from mauling the content to their own contempt once they get the codes to the nukes (access to the CMS)?

    Read the article

  • AutoVue at AIIM expo

    - by warren.baird
    Myself and a few other people from the AutoVue team will be at the #AIIM "info360" conference in Philadelphia next week. If you are attending, let me know, or come by the Oracle booth to say hello!

    Read the article

  • NDC 2010: Eric Evans -What I learned since the book

    This was one of the most rewarding sessions for me. Eric Evans explained what he picked up and learned since he wrote the book, what parts that he realized was more important that he initially thought and what parts had been missing. A missing building block: Domain Events [...]...Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • VS for Database Pros (GDR R2) Removes Sproc Comments (2 replies)

    I have been working with my team to implement Data Dude GDR R2 for managing ALL of the databases for our applications. So far I am very pleased by what we can do with the tool with a single exception. I want to have a header with comments as part of every stored procedure so we can track the history of a procedure. When creating a deployment script, and subsequently running it, Data Dude strips ou...

    Read the article

  • "Unable to locate package" errors for all software

    - by Mohammad Hosain Safari
    My apt-get doesn't install any programs. I try to install programs with apt-get install but always it shows same error: unable to locate package. For example I try to install the xbmc media center; here's what happens: $ sudo apt-get install xbmc Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package xbmc I have updated my package list with sudo apt-get update.

    Read the article

  • How many production servers should I start with?

    - by elfintar
    I'm building a site that I plan to grow to the size of SO. I'm only planning to have one prodcuction server to start off with. This will host everything including the database. I know it's very hard to say but am I likely to run into trouble quickly (if the site takes off) and if this is the case should I start out with more than one server so I can load balance everything from day 1? If no, should I be looking for something a little bigger than this spec?: http://www.123-reg.co.uk/dedicated-server-hosting/

    Read the article

  • .NET Framework 4 on Windows Azure coming

    The Azure Team blogged today about the upcoming .NET 4 support.  Read it here var addthis_pub="guybarrette";...Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • Cumulative Update 8 for SQL Server 2008 R2 is available

    - by AaronBertrand
    Today the SQL Server Release Services team has published Cumulative Update #8 for SQL Server 2008 R2. http://support.microsoft.com/kb/2534352 The build number is 10.50.1797, there are 14 fixes showing on the KB article, and this update includes the security update from last week's Patch Tuesday . Important No, this patch is not for SQL Server 2008, and no, it is not applicable if you've already installed the CTP of Service Pack 1 for SQL Server 2008 R2 (10.50.2418 or 10.50.2425). Please check @@VERSION...(read more)

    Read the article

< Previous Page | 171 172 173 174 175 176 177 178 179 180 181 182  | Next Page >