Search Results

Search found 3094 results on 124 pages for 'fit'.

Page 49/124 | < Previous Page | 45 46 47 48 49 50 51 52 53 54 55 56  | Next Page >

  • Dependency diagramming / mapping tool [closed]

    - by Lars
    I am looking for a tool that allows me to easily create and maintain dependency maps of our mission critical servers, apps, processes, etc. It needs to be intuitive and easy to work with and be able to generate diagrams that clearly show the dependencies graphically. What would be some good tools for this? I have looked at videos for AssetGen Sysmap and BluePrint from Pathwaysystems.com, and they both seem to fit my needs, but there has got to be more good systems like them that I can look at. I want to make sure I pick the best system for our needs (and limited budget).

    Read the article

  • Tool for monitoring windows processes and folders

    - by Stoimen
    I am looking for a tool that tracks and keeps information for some processes on windows how long they've been running, when they have had started/closed. Also it would be nice to monitor folders if some data have been added/deleted to them. This is basically what I need. I tried Process Monitor but it gave me too much information. Just for creating a new folder it lists tons of useless information. I just need the time of creation... I tried and Process Explorer but it doesn't fit my needs either because it shows only the current state of my PC but I need to run some processes for couple of hours and after that to check what went wrong but unfortunately no records are saved.

    Read the article

  • changing desktop background picture from stretch on Windows 7

    - by nird
    I have a brand new Windows 7 laptop, I've changed the desktop background picture using the "personalization" item of the desktop right click menu. Below the list that of images to choose there's a drop down with options "stretch", "fit", "tile", etc. When I change that from stretch to anything else nothing happens, and when I return to that dialog the drop down is still on "stretch". Anyone knows what's going on? Thanks. EDIT: apparently this is a know problem with HP/Compaq laptops.

    Read the article

  • Local Profile Map to New Active Directory Login

    - by user42937
    Preface: I am sure this has been asked some where on the site before but I couldn't find any questions about it, or maybe I am not using the correct verbiage... Our admins are giving us a new active directory account on different domain. As I am a progammer (a member of IT) we are the group gets assigned new accounts first to test the migration. When I log in to my local machine using the new account I get a new local profile. Not the biggest deal, but on the new profile I am missing mappings, desktop items, wallpaper, etc. Our users I going to throw a fit if there is no way around this. Two Questions: I've seen references to NTUSER.DAT and suggestions to Copy all user files from "Documents and Settings", but is there a good way or is it even possible to associate my local profile with the new AD account? Is there any thing that our admins can do to prevent this from happening?

    Read the article

  • Opinion choosing Switch

    - by mastercode
    ) i have to reestruct a LAN network, with (currently) +/- 60hosts connected ... i have File Servers hosted, VoIP Phones,wireless AP's,printers, scanners, plotters,biometric dispositive,and 2 QNAP TS412 as FileServer and BackupServer, a Mac Mini as main Server of almost all services that need server ... and, a HP V1910-24 (L2+) and another two switches,but, only L2. which switch in your opinion, could fit better this reestruct, to ensure a VLAN division- and have to support Inter VLAN routing also - provide better performance, and also, allow a Future expansion. the budget, is low xD hehe!!

    Read the article

  • What power cord does a WD16001032 hard drive use?

    - by llcf
    I have a Western Digital 160GB My Book USB external hard drive (WD16001032), but I can't find its power cord (or, at least, figure out which one it is in my box of cords). It might be that only one power cord would fit, but I'm a bit cautious since I just tried one of the cords with a router and could smell electronics burning when I used an incorrect one. What voltage/amps are needed for this drive? I can't find specs on Western Digital's site. I'm assuming this is due to it being an older drive.

    Read the article

  • Resolution is Being Stupid. Help me?

    - by One Terrorist
    I'm having trouble with a new computer I bought a few days ago. I have come to the conclusion that the resolution of the screen is too small, at the moment it is 1024x768 and I think it should be 1280x960, due to a message given at the resolution tab of the control panel. It states: (!) If your resolution is below 1280x960, some items on the screen may not fit on the screen. The computer is an Asus A54H and runs 64-bit operating system with Windows 7 Home Premium. This link has a screenshot of the screen at the moment, the icons and font are too big and are a little stretched. Thank you in advance!

    Read the article

  • Comparing outgoing mail options, self hosted VS google apps in my situation

    - by Hoofamon
    I am setting up a small site that has the need to be able to programmatically send mail from time to time. Password resets and things like that. I'm already using google apps to handle my domains email, so now i'm left with the decision between setting up basic SMTP services on my server to send "password reset mails and things like that" OR instead to have the software use google apps to send mail. I like the google apps option as it's less stuff to worry about and seems to fit my needs, i'm trying to figure out what the downsides would be? Thanks for any thoughts

    Read the article

  • Economical way to get many harddrives into rack mount?

    - by Industrial
    Hi everyone, Please bear with me as being a bit of a newcomer at 19" rack-mounted equipment. I've thought a fair bit lately about the best way of getting 4x or 6x of 2.5" hard drives into my rack and are right now currently slightly confused about would be the best (economical) solution. After scouting the market, I've found this type of disk array units that offers built in RAID and a lot of drive slots and a truckload of geek cred, but at a price that just isn't going to fit in my budget. I've also found these type of cute adapters that takes two 2.5" drives in one 3.5" slot, but I will obviously need a chassie with a lot of 3.5" spaces in order to make it work. So what is the most economical way to house my harddrives in my rack?

    Read the article

  • Why is chrome slashing my HTTPS?

    - by John Isaacks
    In Chrome when I view my page the https in the URL has a red slash through it. When I click it, it says: Your connection to www.example.com is encrypted with 256-bit encryption. However, this page includes other resources which are not secure. ... I am not getting the mixed content warning in IE or FF. Is there a way to get Chrome to tell you exactly what/where is causing the issue? I am having trouble finding what is causing Chrome to throw a hissy fit. I searched my source for any http that does not contained https but am not seeing any. It would be nice if there is an easy way to pinpoint the issue.

    Read the article

  • Mac OS X multi-user thin client server (terminal server)?

    - by username
    Is there any solution out there to turn a Mac into a true multi-user thin client server? I'd like to set up a few cheap PCs with access to a couple accounts using something like VNC, but it isn't economical to buy a new server for each user or a new license for virtualized OS X Server for each user. I'm fully aware that OS X Server lets you set up users with "network home folders," and I know there's also VNC built into Mac OS X. Neither of these fit the bill (the former requires a thick client, and the latter is single-user only) UPDATE: yay, Lion! http://www.9to5mac.com/54102/10-7-lion-allows-multi-user-remote-computing

    Read the article

  • How long does it take in practice to warm up large in-memory databases?

    - by Sim
    Companies such as Peak Hosting are offering 64 core machines with 512Gb RAM for $2K/month. This is a very interesting choice for in-memory databases such as Memcached/Redis as well as databases whose performance degrades rapidly when the data & indexes don't fit in RAM, such as MongoDB. My main concern with monster machines such as these is the time it takes to warm up an in-memory database. In my experience, theoretical metrics, e.g., that SATA can load 100Mb/sec, fall short of what happens in practice. Even at that rate, 100Mb/sec means that loading up 512Gb RAM machine from SATA disks can take over 1 1/2 hours (!). I am looking for real-world reports of warm-up times for machines with very large memory. Please, share details of the software on the machine, data size, storage configuration, e.g., SATA or SSD, network, hosting/cloud provider, if relevant, etc.

    Read the article

  • Is putting swapfile & temp folder in ramdisk a good idea in Windows 7 64 bit with lots of ram?

    - by Tony_Henrich
    I want my Windows to run as fast as possible. If I have 12GB ram in Windows 7 64bit, quad core cpu, and all apps fit in memory, will the swap file ever be used for anything? The question is about if its a good idea to put the swap file in a ram disk. Would a ram disk help in any way or will Windows intelligently use all the available memory for all its work? I am also thinking of putting the temp folder in a ram disk. I know ram disk is volatile memory and I don't care about its content in it if it gets lost.

    Read the article

  • How to record audio in Windows Server 2008 Web SP2?

    - by Aurelio De Rosa
    I face into this problem and before ask here I've searched and read a lot of question but no-one seems to fit to my problem. I have a server running Windows Server 2008 Web with the SP2 and a headset attached to it using audio jack. The server has audio driver since I can listen audio. This OS does not came with the built-in audio record tool (the one I have in Windows 7). I can access physically and remotely (using RDC) to this server with administration permission. My local pc has Windows 7 if it can help. All I want to do is to know if it's possible and how to record audio form the microphone (of the server) and store that file in the server from remote connection. I tried to install several software on the server but everyone fails with a different issues (missing DLL which if I put in the system the error doesn't go away).

    Read the article

  • Install Windows 8 (clean) on Hybrid Drive

    - by Ananthakrishnan Ravi
    I have a Sony Vaio T series (UEFI) that consists of a Hybrid Drive (SSD + HDD). I would like to install Windows 8 on the SSD and keep the Program files and other applications on the hard disk. What I could perceive was to keep the SSD as the System Drive. I'm able to install the OS on the SSD, but I run into some issues where I don't see the Microsoft Store App on my system and there are no apps on Windows 8. I tried using this blog post but doesn't seem to fit for Windows 8. Any help in this regard would be great. I would like the Windows 8 alone on the SSD, I don't care about the space wasted on the SSD and install other programs on my HDD. Thanks

    Read the article

  • I don't have a free PCI / PCI-e slot, can it be worked around?

    - by Borek
    I need to add a PCI(e) card to a nettop PC that is so small that the card won't fit there (and there is no external alternative like we're used to with external TV tuners). The only ports available are USB and eSATA, is it possible to somehow "dock" the PCI card into some device that would then connect to the PC via USB or eSATA? Or am I out of luck? (I don't mind the solution being visually ugly, I wouldn't even mind opening up the case and soldering some wires in, anything that would work would be great.)

    Read the article

  • Hostname issue (Linux)

    - by Dremarturg
    Hey, I have a strange problem: I have a mail-server. And I have a strange issue with hostnames on ubuntu. When I send an e-mail there is a line in the headers: Received from domain (ip6-localhost [127.0.0.1]) but my hosts file does not have domain.com The domain does not really fit in since domain.com was just for testing and I want to get rid of this! /etc/hosts and etc/hostname do not have an entry for domain.com. Any ideas? (Reverse DNS is okay)

    Read the article

  • sync two huge filesystems

    - by guettli
    I need to sync two huge file systems. Both sides run linux with full root access. My preferred solution: I can read the list of changed files and directories and sync only the changed files. Here are some solutions and why they don't fit: rsync: Needs to check recursively all files. There are some million files and only little changes. The check takes too long. unison: the same: needs to check all files. inotify: I need a handler for every directory and there too many. Inotify was not build for "watch all files" scenarios. DRDB: Both sides should run independent.

    Read the article

  • Move 2TB Win7x64 to 640GB HDD

    - by reedacus25
    Basically I just got a new (refurbished) HP H8-1260t to use for Windows Media Center. The shipping drive is a 2TB Hitachi drive, but I have an older and barely used 640GB WD Caviar Blue 7200RPM drive I would like to move my Windows install to. I have about 750GB of data with over 1TB free left on the drive. Having googled my heart and fingers out, I would think that I can shrink my partition down to the size it is full at now with over 1TB free for a second partition where I can move my media files to further shrink my boot partition so that I can fit a system image smaller than 640GB on that WD drive. I want to have a separate drive for Media and TV Recordings from my boot disk. Does this sound like the easiest method for me? Or am I doing this all wrong. Help appreciated.

    Read the article

  • db2 tablespace size and performance impact

    - by jrhickey
    Originally when we began moving to db2 LUW we ran into some issues where our tables were too big to fit into the default 4K table space. As a result of "pressure" to get it done we just went with a 32K default table space and put ALL of our tables there. What impact would that have if any? I talked to one person who said that it would possible make out database MUCH larger than it needed to be. Is that true? What about memory? Would there be any benefit to moving the smaller tables back to a 4K table space? I have looked around in forums and what not but cannot seem to find a good answer.

    Read the article

  • Error With CBitmapContextCreate, CGContextDrawImage, CGBitmapContextCreateImage

    - by wsidell
    Error: CGBitmapContextCreate: invalid data bytes/row: should be at least 400 for 8 integer bits/component, 3 components, kCGImageAlphaNoneSkipFirst. Error: CGContextDrawImage: invalid context Error: CGBitmapContextCreateImage: invalid context Currently, I have in application that runs perfectly in OS 4.0, but I have been trying to get it to work properly in 3.1.3 and I keep getting the errors mentioned above. I am fairly new to iPhone development and am not exactly sure what the problem would be. I am using image resize code that I found in another post on stackoverflow. Here is the code: - (UIImage*)imageWithImage:(UIImage*)sourceImage scaledToSizeWithSameAspectRatio:(CGSize)targetSize{ CGSize imageSize = sourceImage.size; CGFloat width = imageSize.width; CGFloat height = imageSize.height; CGFloat targetWidth = targetSize.width; CGFloat targetHeight = targetSize.height; CGFloat scaleFactor = 0.0; CGFloat scaledWidth = targetWidth; CGFloat scaledHeight = targetHeight; CGPoint thumbnailPoint = CGPointMake(0.0,0.0); if (CGSizeEqualToSize(imageSize, targetSize) == NO) { CGFloat widthFactor = targetWidth / width; CGFloat heightFactor = targetHeight / height; if (widthFactor > heightFactor) { scaleFactor = widthFactor; // scale to fit height } else { scaleFactor = heightFactor; // scale to fit width } scaledWidth = width * scaleFactor; scaledHeight = height * scaleFactor; // center the image if (widthFactor > heightFactor) { thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5; } else if (widthFactor < heightFactor) { thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5; } } CGImageRef imageRef = [sourceImage CGImage]; CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef); CGColorSpaceRef colorSpaceInfo = CGImageGetColorSpace(imageRef); if (bitmapInfo == kCGImageAlphaNone) { bitmapInfo = kCGImageAlphaNoneSkipLast; } CGContextRef bitmap; if (sourceImage.imageOrientation == UIImageOrientationUp || sourceImage.imageOrientation == UIImageOrientationDown) { bitmap = CGBitmapContextCreate(NULL, targetWidth, targetHeight, CGImageGetBitsPerComponent(imageRef), CGImageGetBytesPerRow(imageRef), colorSpaceInfo, bitmapInfo); } else { bitmap = CGBitmapContextCreate(NULL, targetHeight, targetWidth, CGImageGetBitsPerComponent(imageRef), CGImageGetBytesPerRow(imageRef), colorSpaceInfo, bitmapInfo); } // In the right or left cases, we need to switch scaledWidth and scaledHeight, // and also the thumbnail point if (sourceImage.imageOrientation == UIImageOrientationLeft) { thumbnailPoint = CGPointMake(thumbnailPoint.y, thumbnailPoint.x); CGFloat oldScaledWidth = scaledWidth; scaledWidth = scaledHeight; scaledHeight = oldScaledWidth; CGContextRotateCTM (bitmap, radians(90)); CGContextTranslateCTM (bitmap, 0, -targetHeight); } else if (sourceImage.imageOrientation == UIImageOrientationRight) { thumbnailPoint = CGPointMake(thumbnailPoint.y, thumbnailPoint.x); CGFloat oldScaledWidth = scaledWidth; scaledWidth = scaledHeight; scaledHeight = oldScaledWidth; CGContextRotateCTM (bitmap, radians(-90)); CGContextTranslateCTM (bitmap, -targetWidth, 0); } else if (sourceImage.imageOrientation == UIImageOrientationUp) { // NOTHING } else if (sourceImage.imageOrientation == UIImageOrientationDown) { CGContextTranslateCTM (bitmap, targetWidth, targetHeight); CGContextRotateCTM (bitmap, radians(-180.)); } CGContextDrawImage(bitmap, CGRectMake(thumbnailPoint.x, thumbnailPoint.y, scaledWidth, scaledHeight), imageRef); CGImageRef ref = CGBitmapContextCreateImage(bitmap); UIImage* newImage = [UIImage imageWithCGImage:ref]; CGContextRelease(bitmap); CGImageRelease(ref); return newImage; Any help would be appreciated. If you need more info, I will gladly post it.

    Read the article

  • Android - determine specific locations (X,Y coordinates) on a Bitmap on different resolutions?

    - by Mike
    My app that I am trying to create is a board game. It will have one bitmap as the board and pieces that will move to different locations on the board. The general design of the board is square, has a certain number of columns and rows and has a border for looks. Think of a chess board or scrabble board. Before using bitmaps, I first created the board and boarder by manually drawing it - drawLine & drawRect. I decided how many pixels in width the border would be based on the screen width and height passed in on "onSizeChanged". The remaining screen I divided by the number of columns or rows I needed. For examples sake, let's say the screen dimensions are 102 x 102. I may have chosen to set the border at 1 and set the number of rows & columns at 10. That would leave 100 x 100 left (reduced by two to account for the top & bottom border, as well as left/right border). Then with columns and rows set to 10, that would leave 10 pixels left for both height and width. No matter what screen size is passed in, I store exactly how many pixels in width the boarder is and the height & width of each square on the board. I know exactly what location on the screen to move the pieces to based on a simple formula and I know exactly what cell a user touched to make a move. Now how does that work with bitmaps? Meaning, if I create 3 different background bitmaps, once for each density, won't they still be resized to fit each devices screen resolution, because from what I read there were not just 3 screen resolutions, but 5 and now with tablets - even more. If I or Android scales the bitmaps up or down to fit the current devices screen size, how will I know how wide the border is scaled to and the dimensions of each square in order to figure out where to move a piece or calculate where a player touched. So far the examples I have looked at just show how to scale the overall bitmap and get the overall bitmaps width and height. But, I don't see how to tell how many pixels wide or tall each part of the board would be after it was scaled. When I draw each line and rectangle myself based in the screen dimensions from onSizeChanged, I always know these dimensions. If anyone has any sample code or a URL to point me to that I can a read about this with bitmaps, I would appreciate it. Thanks, --Mike BTW, here is some sample code (very simplified) on how I know the dimensions of my game board (border and squares) no matter the screen size. Now I just need to know how to do this with the board as a bitmap that gets scaled to any screen size. @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { intScreenWidth = w; intScreenHeight = h; // Set Border width - my real code changes this value based on the dimensions of w // and h that are passed in. In other words bigger screens get a slightly larger // border. intOuterBorder = 1; /** Reserve part of the board for the boardgame and part for player controls & score My real code forces this to be square, but this is good enough to get the point across. **/ floatBoardHeight = intScreenHeight / 4 * 3; // My real code actually causes floatCellWidth and floatCellHeight to // be equal (Square). floatCellWidth = (intScreenWidth - intOuterBorder * 2 ) / intNumColumns; floatCellHeight = (floatBoardHeight - intOuterBorder * 2) / intNumRows; super.onSizeChanged(w, h, oldw, oldh); }

    Read the article

  • complex css image centering help?

    - by Tenshiko
    My problem is a bit more complex than the title says. Sorry, I don't know how to be more specific... I'm working on a website and I came across a part where I should display some thumbnails. The thing is, the thumbnails are not matching in dimensions. (I know, it sounds ridiculous, since this is thumbnails are for, right?) No, there is simply NO WAY to create them in the same dimensions!! I've managed to create a HTML+CSS structure to fix this problem, and the images are not stretching to fit their containers if they are smaller while keeping their aspect ratio. The only issue remaining, is to center the images. Since setting margin to "0 auto" or "auto 0" are not helping, I've tried setting up multiple containers and setting the margins to position the images. This is also not working: if I put a 120x120 picture in a 120x80 inner container, and I set the container's top and left margin to -50%, the margins become -60px both. Can this be fixed? Or is there yet another way to center images? I'm open to any suggestions! HTML: <div id="roll"> <div class="imgfix"> <div class="outer"> <div class="inner"> @if (ImageDimensionHelper.WhereToAlignImg(item.Width, item.Height, 120, 82) == ImgAlign.Width) <!-- ImageDimensionHelper tells me if the image should fit the container with its width or height. I set the class of the img accordingly. --> { <img class="width" src="@Url.Content(item.URL)" alt="@item.Name"/> } else { <img class="height" src="@Url.Content(item.URL)" alt="@item.Name"/> } </div> </div> </div> </div> CSS: .imgfix{ overflow:hidden; } .imgfix .outer { width:100%; height:100%;} .imgfix .inner { width:100%; height:100%; margin-top:-50%; margin-left:-50%; } /*This div (.inner) gets -60px for both margins every time, regardless of the size of itself, or the image inside it*/ #roll .imgfix { width:120px; height:82px; border: 1px #5b91ba solid; } #roll .imgfix .outer { margin-top:41px; margin-left:60px; } /*since I know specificly what these margins should be, I set them explicitly, because 50% got the wrong size.*/ #roll .imgfix img.width { width:120px; height:auto; margin: auto 0; } #roll .imgfix img.height { height:82px; width:auto; margin: 0 auto; }

    Read the article

  • Why do programmers use or recommend Mac OS X?

    - by codingbear
    I've worked on both Mac and Windows for awhile. However, I'm still having a hard time understanding why programmers enthusiastically choose Mac OS X over Windows and Linux? I know that there are programmers who prefer Windows and Linux, but I'm asking the programmers who would just use Mac OS X and nothing else, because they think Mac OS X is the greatest fit for programmers. Some might argue that Mac OS X got the beautiful UI and is nix based, but Linux can do that. Although Windows is not nix based, you can pretty much develop on any platform or language, except Cocoa/Objective-C. Is it the softwares that offer only on Mac OS X? Does that really worth using Mac? Is it to develop iPhone apps? Is it because you need to buy new Windows every 2 years (less backwards compatible)? I understand why people, who are working in multimedia/entertainment industry, would use Mac OS X; however, I don't have strong merits of Mac OS X over Windows. If you develop daily on Mac and prefer Mac over anything else, can you give me a merit that Mac has over Windows/Linux? Maybe something you can do on Mac that cannot be done in Windows/Linux with the same level of ease? I'm not trying to do another Mac vs. Windows here. I tried to find things that I do on Mac that cannot be done on Windows with the same level of ease, but I couldn't. So, I'm asking for some help.

    Read the article

  • How about a new platform for your next API&hellip; a CMS?

    - by Elton Stoneman
    Originally posted on: http://geekswithblogs.net/EltonStoneman/archive/2014/05/22/how-about-a-new-platform-for-your-next-apihellip-a.aspxSay what? I’m seeing a type of API emerge which serves static or long-lived resources, which are mostly read-only and have a controlled process to update the data that gets served. Think of something like an app configuration API, where you want a central location for changeable settings. You could use this server side to store database connection strings and keep all your instances in sync, or it could be used client side to push changes out to all users (and potentially driving A/B or MVT testing). That’s a good candidate for a RESTful API which makes proper use of HTTP expiration and validation caching to minimise traffic, but really you want a front end UI where you can edit the current config that the API returns and publish your changes. Sound like a Content Mangement System would be a good fit? I’ve been looking at that and it’s a great fit for this scenario. You get a lot of what you need out of the box, the amount of custom code you need to write is minimal, and you get a whole lot of extra stuff from using CMS which is very useful, but probably not something you’d build if you had to put together a quick UI over your API content (like a publish workflow, fine-grained security and an audit trail). You typically use a CMS for HTML resources, but it’s simple to expose JSON instead – or to do content negotiation to support both, so you can open a resource in a browser and see a nice visual representation, or request it with: Accept=application/json and get the same content rendered as JSON for the app to use. Enter Umbraco Umbraco is an open source .NET CMS that’s been around for a while. It has very good adoption, a lively community and a good release cycle. It’s easy to use, has all the functionality you need for a CMS-driven API, and it’s scalable (although you won’t necessarily put much scale on the CMS layer). In the rest of this post, I’ll build out a simple app config API using Umbraco. We’ll define the structure of the configuration resource by creating a new Document Type and setting custom properties; then we’ll build a very simple Razor template to return configuration documents as JSON; then create a resource and see how it looks. And we’ll look at how you could build this into a wider solution. If you want to try this for yourself, it’s ultra easy – there’s an Umbraco image in the Azure Website gallery, so all you need to to is create a new Website, select Umbraco from the image and complete the installation. It will create a SQL Azure website to store all the content, as well as a Website instance for editing and accessing content. They’re standard Azure resources, so you can scale them as you need. The default install creates a starter site for some HTML content, which you can use to learn your way around (or just delete). 1. Create Configuration Document Type In Umbraco you manage content by creating and modifying documents, and every document has a known type, defining what properties it holds. We’ll create a new Document Type to describe some basic config settings. In the Settings section from the left navigation (spanner icon), expand Document Types and Master, hit the ellipsis and select to create a new Document Type: This will base your new type off the Master type, which gives you some existing properties that we’ll use – like the Page Title which will be the resource URL. In the Generic Properties tab for the new Document Type, you set the properties you’ll be able to edit and return for the resource: Here I’ve added a text string where I’ll set a default cache lifespan, an image which I can use for a banner display, and a date which could show the user when the next release is due. This is the sort of thing that sits nicely in an app config API. It’s likely to change during the life of the product, but not very often, so it’s good to have a centralised place where you can make and publish changes easily and safely. It also enables A/B and MVT testing, as you can change the response each client gets based on your set logic, and their apps will behave differently without needing a release. 2. Define the response template Now we’ve defined the structure of the resource (as a document), in Umbraco we can define a C# Razor template to say how that resource gets rendered to the client. If you only want to provide JSON, it’s easy to render the content of the document by building each property in the response (Umbraco uses dynamic objects so you can specify document properties as object properties), or you can support content negotiation with very little effort. Here’s a template to render the document as HTML or JSON depending on the Accept header, using JSON.NET for the API rendering: @inherits Umbraco.Web.Mvc.UmbracoTemplatePage @using Newtonsoft.Json @{ Layout = null; } @if(UmbracoContext.HttpContext.Request.Headers["accept"] != null &amp;&amp; UmbracoContext.HttpContext.Request.Headers["accept"] == "application/json") { Response.ContentType = "application/json"; @Html.Raw(JsonConvert.SerializeObject(new { cacheLifespan = CurrentPage.cacheLifespan, bannerImageUrl = CurrentPage.bannerImage, nextReleaseDate = CurrentPage.nextReleaseDate })) } else { <h1>App configuration</h1> <p>Cache lifespan: <b>@CurrentPage.cacheLifespan</b></p> <p>Banner Image: </p> <img src="@CurrentPage.bannerImage"> <p>Next Release Date: <b>@CurrentPage.nextReleaseDate</b></p> } That’s a rough-and ready example of what you can do. You could make it completely generic and just render all the document’s properties as JSON, but having a specific template for each resource gives you control over what gets sent out. And the templates are evaluated at run-time, so if you need to change the output – or extend it, say to add caching response headers – you just edit the template and save, and the next client request gets rendered from the new template. No code to build and ship. 3. Create the content With your document type created, in  the Content pane you can create a new instance of that document, where Umbraco gives you a nice UI to input values for the properties we set up on the Document Type: Here I’ve set the cache lifespan to an xs:duration value, uploaded an image for the banner and specified a release date. Each property gets the appropriate input control – text box, file upload and date picker. At the top of the page is the name of the resource – myapp in this example. That specifies the URL for the resource, so if I had a DNS entry pointing to my Umbraco instance, I could access the config with a URL like http://static.x.y.z.com/config/myapp. The setup is all done now, so when we publish this resource it’ll be available to access.  4. Access the resource Now if you open  that URL in the browser, you’ll see the HTML version rendered: - complete with the  image and formatted date. Umbraco lets you save changes and preview them before publishing, so the HTML view could be a good way of showing editors their changes in a usable view, before they confirm them. If you browse the same URL from a REST client, specifying the Accept=application/json request header, you get this response:   That’s the exact same resource, with a managed UI to publish it, being accessed as HTML or JSON with a tiny amount of effort. 5. The wider landscape If you have fairy stable content to expose as an API, I think  this approach is really worth considering. Umbraco scales very nicely, but in a typical solution you probably wouldn’t need it to. When you have additional requirements, like logging API access requests - but doing it out-of-band so clients aren’t impacted, you can put a very thin API layer on top of Umbraco, and cache the CMS responses in your API layer:   Here the API does a passthrough to CMS, so the CMS still controls the content, but it caches the response. If the response is cached for 1 minute, then Umbraco only needs to handle 1 request per minute (multiplied by the number of API instances), so if you need to support 1000s of request per second, you’re scaling a thin, simple API layer rather than having to scale the more complex CMS infrastructure (including the database). This diagram also shows an approach to logging, by asynchronously publishing a message to a queue (Redis in this case), which can be picked up later and persisted by a different process. Does it work? Beautifully. Using Azure, I spiked the solution above (including the Redis logging framework which I’ll blog about later) in half a day. That included setting up different roles in Umbraco to demonstrate a managed workflow for publishing changes, and a couple of document types representing different resources. Is it maintainable? We have three moving parts, which are all managed resources in Azure –  an Azure Website for Umbraco which may need a couple of instances for HA (or may not, depending on how long the content can be cached), a message queue (Redis is in preview in Azure, but you can easily use Service Bus Queues if performance is less of a concern), and the Web Role for the API. Two of the components are off-the-shelf, from open source projects, and the only custom code is the API which is very simple. Does it scale? Pretty nicely. With a single Umbraco instance running as an Azure Website, and with 4x instances for my API layer (Standard sized Web Roles), I got just under 4,000 requests per second served reliably, with a Worker Role in the background saving the access logs. So we had a nice UI to publish app config changes, with a friendly Web preview and a publishing workflow, capable of supporting 14 million requests in an hour, with less than a day’s effort. Worth considering if you’re publishing long-lived resources through your API.

    Read the article

< Previous Page | 45 46 47 48 49 50 51 52 53 54 55 56  | Next Page >