Search Results

Search found 23950 results on 958 pages for 'ie8 64 bit'.

Page 562/958 | < Previous Page | 558 559 560 561 562 563 564 565 566 567 568 569  | Next Page >

  • Why do my speakers get distorted randomly on Windows 7?

    - by Daniel Fischer
    I have a studio monitor setup. I have 2 KRK 6's and a Focusrite Firewire Pro 24. Every few hours my speakers sound distorted and my solution has been go to sound levels Properties of Saffire Audio Device Advanced Default Format Toggle to 16 bit then back to 24bit. Why does it screw up every few hours? Sometimes one speaker doesn't output too and this same process resets it but that's more rare. Is this a OS issue or Focusrite Driver Issue?

    Read the article

  • SQL SERVER – DATEDIFF – Accuracy of Various Dateparts

    - by pinaldave
    I recently received the following question through email and I found it very interesting so I want to share it with you. “Hi Pinal, In SQL statement below the time difference between two given dates is 3 sec, but when checked in terms of Min it says 1 Min (whereas the actual min is 0.05Min) SELECT DATEDIFF(MI,'2011-10-14 02:18:58' , '2011-10-14 02:19:01') AS MIN_DIFF Is this is a BUG in SQL Server ?” Answer is NO. It is not a bug; it is a feature that works like that. Let us understand that in a bit more detail. When you instruct SQL Server to find the time difference in minutes, it just looks at the minute section only and completely ignores hour, second, millisecond, etc. So in terms of difference in minutes, it is indeed 1. The following will also clear how DATEDIFF works: SELECT DATEDIFF(YEAR,'2011-12-31 23:59:59' , '2012-01-01 00:00:00') AS YEAR_DIFF The difference between the above dates is just 1 second, but in terms of year difference it shows 1. If you want to have accuracy in seconds, you need to use a different approach. In the first example, the accurate method is to find the number of seconds first and then divide it by 60 to convert it to minutes. SELECT DATEDIFF(second,'2011-10-14 02:18:58' , '2011-10-14 02:19:01')/60.0 AS MIN_DIFF Even though the concept is very simple it is always a good idea to refresh it. Please share your related experience with me through your comments. Reference: Pinal Dave (http://blog.SQLAuthority.com) Filed under: Pinal Dave, PostADay, SQL, SQL Authority, SQL DateTime, SQL Query, SQL Scripts, SQL Server, SQL Tips and Tricks, T SQL, Technology

    Read the article

  • Passwords in WP7

    - by Richard Jones
    I’ve been trying to protect password entry boxes in Windows Phone 7 (on the emulator) SilverLight supports inputscopes to achieve just this. Peter Foot blogged about this too.  http://mobileworld.appamundi.com/blogs/peterfoot/archive/2010/03/22/windows-phone-7-input.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+PeterFoot+%28Peter+Foot%29 It seems that password inputscope doesn’t quite work yet, please don’t pull your hair out like I just did..   This is the code I was using. <TextBox Height="31" HorizontalAlignment="Left" Margin="240,99,0,0" Name="tbuser" Text="" VerticalAlignment="Top" Width="181" TabIndex="1" >                <TextBox.InputScope>                    <InputScope>                        <InputScope.Names>                            <InputScopeName NameValue="TelephoneNumber"/>                        </InputScope.Names>                    </InputScope>                </TextBox.InputScope>            </TextBox>   Other inputscopes like Telephonenumber work great.  Thought I would blog this to save you from a small bit of pain.

    Read the article

  • Windows XP won't boot after drive transplant

    - by Nathan
    Hi all, I moved my hard drive from my Lenovo laptop into my Asus Eee PC netbook. When I started the netbook, after POST all I got was a black screen with a cursor in the upper left corner. I thought that the migration should work OK because this was a 32-bit version of Windows XP, and the Atom processor in the Asus should support the x86 instruction set. However, I don't know much about Windows, so maybe this was a dumb thought. I did verify that the BIOS can find the drive. It required major surgery to replace the drive, so any solution requiring me to remove the transplant drive is not going to fly. Keeping in mind that the netbook has no optical drive and that I have no other Windows computers (all my other computers run Linux), is there any way I can fix this problem? Thanks! Nathan

    Read the article

  • Dutch ACEs SOA Partner Community Award Celebration

    - by JuergenKress
    When you win you need to celebrate. This was the line of thinking when I found out that I was part of a group that won the Oracle SOA Community Country Award. Well – thinking about a party is one thing, preparing it and finally having the small party is something completely different. It starts with finding a date that would be suitable for the majority of invited people. As you can imagine the SOA ACEs and ACE Directors have a busy life, that takes them places. Alongside that they are engaged with customers who want to squeeze every bit of knowledge out of them. So everybody is pretty busy (that’s what makes you an ACE). After some deliberation (and checks of international Oracle events, Trip-it, blogs and tweets) a date was chosen. Meeting on a Friday evening for some drinks is probably not a Dutch-only activity. But as some of the ACEs are self-employed they miss the companies around them to organize such events. Come the day a turn-out of almost 50% was great – although I expected some more folks . This was mainly due to some illness and work overload. Luckily the mini-party got going, (alcoholic) beverages were consumed, food was appreciated, a decent picture was made (see below) and all had a good chat and hopefully a good time. (Above from left to right: Eric Elzinga, Andreas Chatziantoniou, Mike van Aalst, Edwin Biemond) All in all a nice evening and certainly a "meeting" which can be repeated.  For the full article please visit Andreas's blog Want to organize a local SOA & BPM community? Let us know we are more than happy to support you! To receive more information become a member of the SOA & BPM Partner Community please register at http://www.oracle.com/goto/emea/soa (OPN account required) Blog Twitter LinkedIn Mix Forum Technorati Tags: Eric Elzinga,Andreas Chatziantoniou,Mike van Aalst,Edwin Biemond,Dutsch SOA Community,SOA Community,Oracle,OPN,Jürgen Kress,ACE

    Read the article

  • crash when using wireless network

    - by Erik
    ubuntu 12.04 32 bit When I start up my system almost instantly freezes, I found that the problem lays with my wireless network, because the crash is always t the same time as the message that tells me I am connected to a network when I start up connected to a cable everything works fine, I can even see that I am connected to our wireless network, until I unplug the ethernet cable, then it all freezes again the same happened when I boot from a live cd (from usb) The problem only occurs on my netbook, my laptop doesn't give any problems. I don't know if anyone else has had similar problems, or if anyone knows a solution... Thanks in advance! greetings Erik EDIT (21/3/2012): it seems there is some external factor involved, I'm using my netbook for about 50 minutes now while connected to the wireless network, and still it didn't crash strange enough, before these 50 minutes I had to put it down by holding the power button, because I decided to try it again, that time it did crash... before (while connected with an ethernet cable) I've been trying to get my Bluetooth working, that didn't succeed entirely, but I guess that might be a factor in the question why it doesn't crash at the moment now I rebooted, connected, and no crash... if it crashes again, I'll update this post again. in the meantime, if anyone has an idea on what could be a factor, and on how to create a crash using that factor, feel free to ask!

    Read the article

  • How to fix skipping/stuttering audio in Google Chrome

    - by Droid
    If I play Google Music, or a Youtube video in the Chrome browser, and then open a new tab and start typing the address bar, the audio will quickly cut in and out as I am typing (with almost every letter I type). It also is choppy if I play the video and start typing in the start menu. I can not repeat this behavior using internet explorer. Based on that Im thinking that it maybe a problem with the version of flash Chrome is using but I'm not sure. Any ideas? Im running 32 bit windows 7, i.e. 9, and chrome 23.0 pc is a lenovo t43p. I have the latest sound drivers. i.e. is using flash 11.5.502. chrome is using : Adobe Flash Player - Version: 11.5.31.2 Only one (this) plugin is listed for flash in the chrome plugins list.

    Read the article

  • SAN typical MTBF

    - by Adrian K
    We're using a SAN on a project at work, and there's a bit of debate around the fact that's technically it's a Single Point of Failure. No one seems to have any hard data. The SAN in question is a single physical box, but with internal redundant components (sorry - not sure3 what level of RAID it has, but I can find out). What's the tyopical MTBF for a SAN? The PM has it down on the projects risk register as "Quite Common' - I've never heard of a SAN going down, but I don't jhave any stats to show how likely it really is. Does anyone have any helpful info?

    Read the article

  • Windows XP computer can't see Windows 7 shares

    - by Alex Brault
    I am building a network containing notably a laptop running XP and a computer running Windows 7. Both computer have shared folders and the 7 has a shared printer, to which another laptop running 7 is able to print. If I attempt to see the laptop's network shares on the PC, everything works perfectly: I am able to see and enter the folders. The reverse operation however doesn't work. Xp doesn't see the Windows 7 PC. Other things to note: As mentioned above, another Windows 7 computer is able to see the printer and I can ping both computers from either PC. Both computers are in the same workgroup named ALLAITEMENT Password-protected shares are turned off on the PC. The 7 Computer uses 40/56 bit encryption The Windows XP laptop has SP3

    Read the article

  • XFCE: active panel buttons when mouse is on screen edge

    - by Dave Vogt
    I'm using XFCE 4.6.1 (Xubuntu distribution) on my laptop and main computer; the settings are approximately the same. so far for the intro. What I'm experiencing is that when going to the screen edge over the task bar on the laptop, the button under the mouse is active. On the main machine however, having the mouse on the screen edge, the button below it doesn't react at all! Only if I move the pointer towards the center a bit, the hover highlight starts and the button becomes clickable. I've tried to change the panel size, desktop theme and a few other settings, but none seems to cure that problem. Is there something that causes this problem? (Googling also seems to give no results)

    Read the article

  • Incredibly high latency for Ubuntu guest on Hyper-V

    - by Mark Henderson
    I've got several Ubuntu 10.04 virtual machines running as Hyper-V guests on Windows Server 2008 R2 SP1 and they're all perfectly fine. Today I installed my first Ubuntu 11.10 virtual machine and I'm seeing rediculous pings: These servers are all connected via gigabit to a local LAN, with almost no network traffic at all1, with a legacy network adapter in Hyper-V. I'm a bit of an Ubuntu n00b so I don't really know where to go from here. Any ideas? free -m reports: total used free shared buffers cached Mem: 485 470 15 0 63 299 -/+ buffers/cache: 107 378 Swap: 507 20 487 This is within a few mb of our other Ubuntu servers that are on 10.04. I removed the Legacy NIC and installed a Synthetic one in Hyper-V and this did improve the numbers, in that they're around 10-30ms now, but I would still be expecting <1ms response times. 1As a comparison, I have another Ubuntu 10.04 guest on Hyper-V almost 1,000km away that has a ping of 33ms

    Read the article

  • Do different operating systems have different read and write speeds?

    - by Ivan
    If I have two different operating systems, such as Windows 8 and Ubuntu, running on the same hardware, will the two operating systems have different read and write speeds? My guess is that there would be minimal difference between operating systems and read and write speeds to the hard disk since the major limited factor is seeking; however, different operating systems may use different file systems in order to attempt to reduce seek time in the hard disk. Likewise, I'm sure that modern operating systems will not actually write directly to the hard disk, and instead will just have it in memory and marked with a dirty bit. Are there any studies that show differences in read and write speeds between OSs? Or would the file system being used by the OS matter more than the OS itself?

    Read the article

  • Merging partitions and removing windows of one partition

    - by SmartLemon
    I have two partitions on my laptop, I created a new one when installing windows 8 pro because windows 7 wouldn't upgrade to it for some odd reason. The main partition, which has 631 GB ( has windows 7 installed on it, and the second partition is 49.9 GB and has windows 8 installed on it. What I need to do is remove windows 7 from the other one (Yeah its dual booting), make it so it boots straight into windows 8, without showing the dual boot screen, and also merge the two drives together. Only problem is, I have no idea how to do this. Please don't use complete lamens terms, I am a software developer so I know at least a bit about computers. Here's disk management so you can see how its set out.

    Read the article

  • Media Temple-like hosting services?

    - by antonpug
    I have a couple of wordpress sites which do not get much traffic now, but I plan on expanding to something like a 1000-2000visits/day in a year or two. Media Temple has some really nice offerings, but their Wordpress plan is 20/month...which is a little too much, seeing as at this point my site is more of a hobby than a money making machine. I currently host with HostGator (just switched from GodaddyiPageBluehost). All these cheaper/pop hosting services are okay, but it would be nice to find something a little bit more "premium", but at a lower cost than MT. Anyone know anything worth looking at?

    Read the article

  • Windows Vista Password changed... What the?

    - by Moshe
    My mom's Vista Home Premium (32 bit) password was changed. My mom said that she didn't change it and she doesn't think anyone else here did either. So.. Could this have been done remotely? I'm running Ophcrack now, what else can we do? (I haven't tried safe mode yet.) I'm a techie and somewhat baffled. Help! Edit: ophcrack found empty LM but no NT hash is displayed. Entering safe mode... Edit2: I'm an idiot. Well sort of. Ophcrack could not crack the password which was just lowercase English letters, but for some reason, I was able to login using the orignal password in safe mode. Once in safe mode I "changed the password" back to it's original value and was then able to login in regular mode... It's time to run a virus scan.

    Read the article

  • How can I get data off of a Corsair SSD?

    - by user1870398
    My Corsair SSD won't work and I have some critical data on it that I didn't back up (I needed to create a copy of my mechanical storage device, just forgot). The drive isn't detected by the OS or BIOS. I also tried it on another system, but all that happened was the OS failed to load (my guess was that it knew the drive was there, just couldn't read it). I tried powering it on without the data cable for a bit of time to see if it'd work again, but it didn't. Any ideas of how I can get the data off of this drive without having to send it in?

    Read the article

  • dpkg E: Sub-process /usr/bin/dpkg returned an error

    - by user81269
    I decided to shift around my partitions on my hard drive for a fresh install of Kubuntu. I booted my Ubuntu 10.10 live disc, shifted everything around and attempted to install grub and it didn't work, so I burnt an Ubuntu 12.04 disc and installed it. I got the computer working and wanted to install some packages, but didn't have an internet connection at the time. So (I know this was stupid) I got some debs from previous versions of Ubuntu, as I needed my music, and the other install took a long of time to boot. Once I got my internet connection back, everything worked ok, for a little while. Then I stumbled upon this problem after removing ten broken packages using synaptic: drhax@Spamotard:~$ sudo apt-get install -f Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: libgtk2.0-cil 0 upgraded, 0 newly installed, 1 to remove and 417 not upgraded. 1 not fully installed or removed. After this operation, 2,638 kB disk space will be freed. Do you want to continue [Y/n]? y (Reading database ... 103052 files and directories currently installed.) Removing libgtk2.0-cil ... E: File does not exist: /usr/share/cli-common/packages.d/policy.2.6.gtk-dotnet.installcligac dpkg: error processing libgtk2.0-cil (--remove): subprocess installed post-removal script returned error exit status 1 Errors were encountered while processing: libgtk2.0-cil E: Sub-process /usr/bin/dpkg returned an error code (1) Help would be appreciated. This is my first post, but I do know fair bit about Ubuntu, so feel free to point out any stupid mistakes I have made.

    Read the article

  • Ranking hit after site migration

    - by Ben
    I migrated my site from its old domain over a month ago. I followed Google Webmaster Tools completely, including 301 redirects from every existing URL to the new domain, and then submitting a change of address. Traffic continued as normal, but then a few days after submitting the change of address traffic plummeted to about 20-30% of what it was previously. Most of my traffic comes from organic search, and I can see that for the keywords I had targeted before and performed well with and am now ranking much much lower for. In some cases for low competition keywords I've only lost a few places, for higher competition terms I have really suffered. This has started to pick up a bit (one of my keywords I have risen from 195 to 100 in the last week), but it seems to be a very slow process. How seamless is this process normally? I was under the impression that this would not affect my rankings too severely, but it has now been a month since the move and recovery seems to be very slow, if at all. Is it likely that I've missed something? The only change is that I have moved what was the home page to be more of a sub-page, and now in its place is a magazine-style home page. I understand that links to the old site will now be pointing to the latter which means that rankings for some keywords attributed to the old home page will take a hit, but even on other pages that seem to fit in exactly the same page structure as the previous site I have seen a drop in rankings.

    Read the article

  • Is this normal? Multiple httpd process

    - by ilcreatore
    I'm testing a new Server. This isnt really a peak time for my server (2pm), but still its running a bit slow, I was checking the ESTABLISHED connections using the following command: # netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n http://i.stack.imgur.com/cZuvP.jpg My MaxClients are set to 50. So as you can see on the picture, only 10 people are eating most of my ram. I got a server with 4GB Ram (2.7GB free for apache) but each apache process is eating 53MB each, wich mean im only allowed to accept 50 process. The KeepAlive = Off, but I notice those connections arent closing fast enough, is that normal?

    Read the article

  • VisualSVN Server won't work with AD, will with local accounts

    - by frustrato
    Decided recently to switch VisualSVN from local users to AD users, so we could easily add other employees. I added myself, gave Read/Write privileges across the whole repo, and then tried to log in. Whether I'm using tortoisesvn or the web client, I get a 403 Forbidden error: You don't have permission to access /svn/main/ on this server. I Googled a bit, but only found mention of phantom groups in the authz file. I don't have any of those. Any ideas? It works just fine with local accounts. EDIT: Don't know why I didn't try this earlier, but adding the domain before the username makes it work, ie MAIN/Bob. This normally only works when there are conflicting usernames...one local, one in AD, but for whatever reason it works here too. Kinda silly, but I can live with it.

    Read the article

  • Has "Killer Game Programming in Java" by Andrew Davison been rendered useless? What new tutorial should I follow? [duplicate]

    - by BDillan
    This question already has an answer here: Killer Game Programming [Java 3D] outdated? 5 answers Its pathetic how it was created in 2005 not so long ago when the Java 3D 1.31 API was released. Now after downloading the source code off the books website and implementing it onto my work-space it cant run. (The 3D Shooter Ch. 23) I downloaded Java 3D 1.5 API, installed it- went back to my source code and javax.media ect.., and EVERY imported class within the game simply couldn't be resolved... they are all outdated.. Please do not say how its meant for a positive curvature in your game development skills. No ~ I got the book to understand how to code 3D textures/particle systems/games. Without seeing results how can I learn? If there is still hope for this book please tell me. Otherwise what other books match this one in Game Programming? This one was very well organized, documented and long. I am not looking for a 3D game prog. book on Java. Rather one that has the same reputation as this one but is a bit newer..

    Read the article

  • Which mediacenter appliance

    - by Guillaume
    I'm looking to buy a mediacenter appliance, but I am a bit lost by all the offers on the market. Here are the features I am looking for : at least 500Go HDD capable of playing HD (1080p) supporting a good range of video and audio codecs support for subtitles including a DVB-T input (coax) and tuner composite video input 5.1 (or 7.1) analog audio output LAN (100M or Gigabit) fileserver (SMB or NFS) remote control possibly digital output (S/PDIF, TOSLINK, or other) no need for integrated DVD player no need for wifi The Ultio Pro looks nice (http://www.thinkgeek.com/electronics/home-entertainment/d3fe). It just lacks a DVB-T input which is a show killer for me. Thanks for your suggestions.

    Read the article

  • What is a normal value for pages/sec on a Windows Server 2003 Web Server?

    - by Emil Lerch
    I know the answer to this is "it depends", and I know that the counter can and will be thrown off by backup jobs or other things that might use memory mapped files. I'd like to get a bit of clarity over exactly what "it depends" on and some general guidelines around what a healthy web server normally shows for this counter. So if activities regarding memory-mapped files are excluded, if I have ample amounts of memory, should I really see this down close to 0? When should I get suspicious that I might need additional RAM and/or start looking for application memory leaks?

    Read the article

  • How to setup separate MySQL and PHP VPS servers

    - by Fazal
    Someone recommended I should have my MySQL server separate from my Apache/PHP server in case of hacking and such. By visiting linode, slicehost and various articles here on serverfault I've managed to cobble together a decent set of instructions on how to do the Apache/PHP bit. I'm using Rackspace VPS and they provide an internal IP for each server. If I setup a MySQL VPS, should I assume that I would just add the internal IP for the database host? And I guess that I would only need to open up my default ssh port and mysql ports and install phpmyadmin on there? Ideally I would have webserver.mydomain.com and dbserver.mydomain.com (two 256mb VPS's) with servermin on webserver.mydomain.com and phpmyadmin on dbserver.mydomain.com. If anyone has any guides or advice on how to setup this type of solution I'd be more then grateful!

    Read the article

  • Making a Case For The Command Line

    - by Jesse Taber
    Originally posted on: http://geekswithblogs.net/GruffCode/archive/2013/06/30/making-a-case-for-the-command-line.aspxI have had an idea percolating in the back of my mind for over a year now that I’ve just recently started to implement. This idea relates to building out “internal tools” to ease the maintenance and on-going support of a software system. The system that I currently work on is (mostly) web-based, so we traditionally we have built these internal tools in the form of pages within the app that are only accessible by our developers and support personnel. These pages allow us to perform tasks within the system that, for one reason or another, we don’t want to let our end users perform (e.g. mass create/update/delete operations on data, flipping switches that turn paid modules of the system on or off, etc). When we try to build new tools like this we often struggle with the level of effort required to build them. Effort Required Creating a whole new page in an existing web application can be a fairly large undertaking. You need to create the page and ensure it will have a layout that is consistent with the other pages in the app. You need to decide what types of input controls need to go onto the page. You need to ensure that everything uses the same style as the rest of the site. You need to figure out what the text on the page should say. Then, when you figure out that you forgot about an input that should really be present you might have to go back and re-work the entire thing. Oh, and in addition to all of that, you still have to, you know, write the code that actually performs the task. Everything other than the code that performs the task at hand is just overhead. We don’t need a fancy date picker control in a nicely styled page for the vast majority of our internal tools. We don’t even really need a page, for that matter. We just need a way to issue a command to the application and have it, in turn, execute the code that we’ve written to accomplish a given task. All we really need is a simple console application! Plumbing Problems A former co-worker of mine, John Sonmez, always advocated the Unix philosophy for building internal tools: start with something that runs at the command line, and then build a UI on top of that if you need to. John’s idea has a lot of merit, and we tried building out some internal tools as simple Console applications. Unfortunately, this was often easier said that done. Doing a “File –> New Project” to build out a tool for a mature system can be pretty daunting because that new project is totally empty.  In our case, the web application code had a lot of of “plumbing” built in: it managed authentication and authorization, it handled database connection management for our multi-tenanted architecture, it managed all of the context that needs to follow a user around the application such as their timezone and regional/language settings. In addition, the configuration file for the web application  (a web.config in our case because this is an ASP .NET application) is large and would need to be reproduced into a similar configuration file for a Console application. While most of these problems are could be solved pretty easily with some refactoring of the codebase, building Console applications for internal tools still potentially suffers from one pretty big drawback: you’d have to execute them on a machine with network access to all of the needed resources. Obviously, our web servers can easily communicate the the database servers and can publish messages to our service bus, but the same is not true for all of our developer and support personnel workstations. We could have everyone run these tools remotely via RDP or SSH, but that’s a bit cumbersome and certainly a lot less convenient than having the tools built into the web application that is so easily accessible. Mix and Match So we need a way to build tools that are easily accessible via the web application but also don’t require the overhead of creating a user interface. This is where my idea comes into play: why not just build a command line interface into the web application? If it’s part of the web application we get all of the plumbing that comes along with that code, and we’re executing everything on the web servers which means we’ll have access to any external resources that we might need. Rather than having to incur the overhead of creating a brand new page for each tool that we want to build, we can create one new page that simply accepts a command in text form and executes it as a request on the web server. In this way, we can focus on writing the code to accomplish the task. If the tool ends up being heavily used, then (and only then) should we consider spending the time to build a better user experience around it. To be clear, I’m not trying to downplay the importance of building great user experiences into your system; we should all strive to provide the best UX possible to our end users. I’m only advocating this sort of bare-bones interface for internal consumption by the technical staff that builds and supports the software. This command line interface should be the “back end” to a highly polished and eye-pleasing public face. Implementation As I mentioned at the beginning of this post, this is an idea that I’ve had for awhile but have only recently started building out. I’ve outlined some general guidelines and design goals for this effort as follows: Text in, text out: In the interest of keeping things as simple as possible, I want this interface to be purely text-based. Users will submit commands as plain text, and the application will provide responses in plain text. Obviously this text will be “wrapped” within the context of HTTP requests and responses, but I don’t want to have to think about HTML or CSS when taking input from the user or displaying responses back to the user. Task-oriented code only: After building the initial “harness” for this interface, the only code that should need to be written to create a new internal tool should be code that is expressly needed to accomplish the task that the tool is intended to support. If we want to encourage and enable ourselves to build good tooling, we need to lower the barriers to entry as much as possible. Built-in documentation: One of the great things about most command line utilities is the ‘help’ switch that provides usage guidelines and details about the arguments that the utility accepts. Our web-based command line utility should allow us to build the documentation for these tools directly into the code of the tools themselves. I finally started trying to implement this idea when I heard about a fantastic open-source library called CLAP (Command Line Auto Parser) that lets me meet the guidelines outlined above. CLAP lets you define classes with public methods that can be easily invoked from the command line. Here’s a quick example of the code that would be needed to create a new tool to do something within your system: 1: public class CustomerTools 2: { 3: [Verb] 4: public void UpdateName(int customerId, string firstName, string lastName) 5: { 6: //invoke internal services/domain objects/hwatever to perform update 7: } 8: } This is just a regular class with a single public method (though you could have as many methods as you want). The method is decorated with the ‘Verb’ attribute that tells the CLAP library that it is a method that can be invoked from the command line. Here is how you would invoke that code: Parser.Run(args, new CustomerTools()); Note that ‘args’ is just a string[] that would normally be passed passed in from the static Main method of a Console application. Also, CLAP allows you to pass in multiple classes that define [Verb] methods so you can opt to organize the code that CLAP will invoke in any way that you like. You can invoke this code from a command line application like this: SomeExe UpdateName -customerId:123 -firstName:Jesse -lastName:Taber ‘SomeExe’ in this example just represents the name of .exe that is would be created from our Console application. CLAP then interprets the arguments passed in order to find the method that should be invoked and automatically parses out the parameters that need to be passed in. After a quick spike, I’ve found that invoking the ‘Parser’ class can be done from within the context of a web application just as easily as it can from within the ‘Main’ method entry point of a Console application. There are, however, a few sticking points that I’m working around: Splitting arguments into the ‘args’ array like the command line: When you invoke a standard .NET console application you get the arguments that were passed in by the user split into a handy array (this is the ‘args’ parameter referenced above). Generally speaking they get split by whitespace, but it’s also clever enough to handle things like ignoring whitespace in a phrase that is surrounded by quotes. We’ll need to re-create this logic within our web application so that we can give the ‘args’ value to CLAP just like a console application would. Providing a response to the user: If you were writing a console application, you might just use Console.WriteLine to provide responses to the user as to the progress and eventual outcome of the command. We can’t use Console.WriteLine within a web application, so I’ll need to find another way to provide feedback to the user. Preferably this approach would allow me to use the same handler classes from both a Console application and a web application, so some kind of strategy pattern will likely emerge from this effort. Submitting files: Often an internal tool needs to support doing some kind of operation in bulk, and the easiest way to submit the data needed to support the bulk operation is in a file. Getting the file uploaded and available to the CLAP handler classes will take a little bit of effort. Mimicking the console experience: This isn’t really a requirement so much as a “nice to have”. To start out, the command-line interface in the web application will probably be a single ‘textarea’ control with a button to submit the contents to a handler that will pass it along to CLAP to be parsed and run. I think it would be interesting to use some javascript and CSS trickery to change that page into something with more of a “shell” interface look and feel. I’ll be blogging more about this effort in the future and will include some code snippets (or maybe even a full blown example app) as I progress. I also think that I’ll probably end up either submitting some pull requests to the CLAP project or possibly forking/wrapping it into a more web-friendly package and open sourcing that.

    Read the article

< Previous Page | 558 559 560 561 562 563 564 565 566 567 568 569  | Next Page >