|
I've linked to a couple cheat sheets in the past (Powershell and CSS), but I've run across a post that lists a bunch for different languages and frameworks. Most of them are available as PDFs. See webtecker.com.
The image is from a VisiBone advertisement. That company sells some great cheat sheets and cheat books.
April 15 2008
Filed under:
Here's a unique take on video tutorials used to explain some tougher topics. This video in particular explains Wikis. Produced by CommonCraft. Can't get any simpler than this and to me it does a great job explaining the subject.
September 18 2007
Filed under:
Here's an interesting write-up that summarizes several sources of information about Amazon and high scalability systems. I thought some of the bullet points were pretty insightful...
- Between 100-150 services are accessed to build a page.
- Take it for granted stuff fails, that's reality, embrace it. For example, go more with a fast reboot and fast recover approach.
- Work from the customer backward. Focus on value you want to deliver
for the customer. Start with a press release of what features the user will see and work backwards to check that you are building something valuable.
- Use measurement and objective debate to separate the good from the bad. Referred to as getting rid of the influence of the HiPPO's, the highest paid people in the room. This is done with techniques like A/B testing and Web Analytics. If you have a question about what you should do, code it up, let people use it, and see which alternative gives you the results you want.
September 18 2007
Filed under:
If you haven't seen all the video clips for Microsoft Surface yet you'll have to check them out. Surface should be really cool and should enable some giant steps forward with user interfaces. Your typical windowed application will be a thing of the past and that should also carry over into desktop computers. I'd expect some multi-touch flat panels for your PC too.
From what I've read, all the apps shown on Surface were written using WPF on the .Net Framework. Silverlight is another technology from Microsoft that brings WPF and .Net to the web browser (cross-platform even). Silverlight is the re-branded WPF/E code and is the next big thing from MS as far as the visual web goes. We used Silverlight (then WPF/E) for a SalesWorks demo back in February. Think of Silverlight as Microsoft's version of Flash.
To see something really neat, check out this demo of a Surface-style app using Silverlight in your web browser. You'll need to install the Silverlight Alpha to see it (just click thru the steps to install it). Yeah, that's a video file running in there. It's really amazing. You just want to put your fingers to the screen and start dragging the pictures around.
August 24 2007
Filed under:
The PhotoshopRoadmap.com website has put together a collection of techniques that can be applied to text in Photoshop. Some nice ones and then some that will make you gag, but it's a good display of effects that can be accomplished in the program.
Link to article
August 09 2007
Filed under:
I ran across a blog post this morning that has a list of some useful websites. From sites that help you manage your calendar and tasks to sites that help you be a more organized parent to sites that help you organize your company. Maybe just check them out because they represent a nice cross-section of the web apps that are being built today. One of my favorites for web design was http://hitask.com.
August 02 2007
Filed under:
I occasionally get questions on how I do my thumbnail images for my photo gallery. This site runs on ASP.NET and the photo section automatically creates thumbnails of JPEG images on the fly. In the real world, a web site like flckr.com wouldn't work if thumbnails were always created on the fly, but for my small amount of pictures it works just fine. Below is the code that creates a scaled thumbnail from a JPEG path and writes it back to the browser. This code is used within an HTTP handler that just serves thumbnails.
A couple points of interest. The code encodes the thumbnail at 75% quality. If the original image is smaller than the requested width and height, it won't scale it but will send it to the browser.
1: Public Sub ScaledImage(ByVal Path As String, ByVal Width As Integer, ByVal Height As Integer) 2: Dim originalWidth As Integer 3: Dim originalHeight As Integer 4: Dim image As bitmap = bitmap.FromFile(Path) 5: 6: originalHeight = image.Height 7: originalWidth = image.Width 8: 9: Dim heightRatio As Double = CDbl(originalHeight / originalWidth) 10: Dim widthRatio As Double = CDbl(originalWidth / originalHeight) 11: 12: Dim desiredHeight As Integer = Height 13: Dim desiredWidth As Integer = Width 14: 15: Height = desiredHeight 16: Width = Convert.ToInt32(Height * widthRatio) 17: If Width > desiredWidth Then 18: Width = desiredWidth 19: Height = Convert.ToInt32(Width * heightRatio) 20: End If 21: 22: If Height > originalHeight Or Width > originalWidth Then 23: Height = originalHeight 24: Width = originalWidth 25: 26: image.Save(Response.OutputStream, ImageFormat.Jpeg) 27: Else 28: Dim thumb As Graphics 29: Dim bitmap As bitmap = New bitmap(Width, Height) 30: thumb = Graphics.FromImage(bitmap) 31: thumb.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic 32: thumb.DrawImage(image, 0, 0, Width, Height) 33: 34: Dim codec As ImageCodecInfo = GetEncoderInfo("image/jpeg") 35: 36: Dim eps As EncoderParameters = New EncoderParameters(1) 37: eps = New EncoderParameters 38: eps.Param(0) = New EncoderParameter(Encoder.Quality, CLng(75)) 39: 40: bitmap.Save(Response.OutputStream, codec, eps) 41: 42: thumb.Dispose() 43: bitmap.Dispose() 44: eps.Dispose() 45: End If 46: image.Dispose() 47: 48: Response.ContentType = "image/pjpeg" 49: Response.End() 50: End Sub 51: 52: Public Function GetEncoderInfo(ByVal MimeType As String) As ImageCodecInfo 53: Dim myEncoders() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders() 54: Dim myEncoder As ImageCodecInfo 55: For Each myEncoder In myEncoders 56: If myEncoder.MimeType = MimeType Then 57: Return myEncoder 58: End If 59: Next 60: Return Nothing 61: End Function
Works for me.
February 26 2007
Filed under:
Our team is headed back to good old Lancaster County today. Things will be back to normal on Monday with momentum building for the first SalesWorks release. Until then there are a couple things you can do to help us get SalesWorks out the door.
1. You can download Beta 1 from the Mission Research web site and send us any feedback you have.
2. Read and contribute to the SalesWorks Beta blog.
3. Stay tuned to my Mission Research CTO blog. My team is responsible for building SalesWorks and now that we have a beta launched I will be covering it and the impending release in that blog.
4. Read up on more SalesWorks stuff on Steve Fafel's blog. He is the dev team's head honcho and will most likely show some cool stuff that can be done to extend SalesWorks.
February 02 2007
Filed under:
I was forwarded a great writeup on SalesWorks. Jim Forbes writes about "Demo 2007's Tasty Treats" and about a quarter of the way through he talks about the software and the opportunity he sees for it in the small business marketplace.
"Salesworks is a great set of tools that fits tongue and groove with an emerging critical CRM tools for small business professionals"
February 02 2007
Filed under:
February 01 2007
Filed under:
I have been evaluating WPF/E for add-ins to my company's products. One screen we have been thinking about for a while is a lead pipeline that shows lead stages in a graphical way. Our products leverage IE for the presentation layer and it is tough to do a compelling pipeline with just DHTML.
WPF/E brings a lot to the table. First of all it is very easy to incorporate into our screens, I simply insert the control code and link in the aghost.js file. It also enables us to easily separate the markup from the script. The HTML file orchestrates the screen while the script and XAML reside in separate files. I also like the division of labor. As shown in these screenshots I've coded the pipeline screen as a segmented pipe along the top of the screen. As the developer I just created simple XAML objects that represented the different elements of the pipeline, nothing too fancy. I then hook up my script to control click-thrus and mouse-overs (the second screen shows how the mouse-over affects the pipeline). In production I would then had the XAML source over to a designer and they would take my rudimentary design and create something beautiful from it. They'd send me the updated XAML file and I just insert back into the development tree and everything should still work with changes. In this case I was the designer too, but you should start to see how this should make development easier.
Another thing that I experimented with was trying to use the same XAML objects and provide an entirely different look and feel for the screen. The final screen shot shows how that turned out. This pipeline demo is very simple, but it starts to paint a picture of how WPF and WPF/E can be used in software. I can imagine that things are not quite as simple when more complex functionality is needed. When trying to change the pipeline into a vertical funnel, I did have to adjust some of my code to make it work.
I did try to use Microsoft's new Expression Design application to create the XAML I used in this demo. I designed the circular pipeline segments and exported them as WPF/E XAML code. That sort of worked, but It generated everything as complex paths and was hard to modify by hand. By the time I had finished the demo, I ended up starting from scratch with the XAML objects. Still, the tools are great and they look very promising.
January 31 2007
Filed under:
We're 30 minutes away from the big demo. Our Mission Research/SalesWorks video page has surfaced. They will post a video of the on-stage presentation to that web page when it's available. For us poor soles that were left back at the office, this is our only view of the excitement. I see our JIT marketing team has made some new SalesWorks logos available too.
January 31 2007
Filed under:
Today is the big day. At 9:55 PST Charlie and Mary Pat will be going on stage to introduce and demonstrate SalesWorks to an audience of over 700 attendees. We launched our GiftWorks product there a couple years ago and have had a lot of success with it. I think we'll see the same kind of success with SalesWorks. I will try to summarize some of the press that we get over the next few days.
We've worked with Blodgett Communications for the launch of SalesWorks. Renee Blodgett, the founder of the PR company, has posted an article that illustrates the problem we are trying to solve with SalesWorks...
"Frustrated with the poor user interface and clumsiness of existing contact management solutions like GoldMine and ACT and the fact that I'm not really the right business model to go with a more expensive Salesforce.com online only solution, I'm left without a useful product. Meanwhile, my contacts sit in three apps (Outlook, Filemaker, and GroupMail), since individually, they do not give me the combined functionality I need. Sigh."
I think she's right on with that and it's exactly what we are hearing from the other small businesses we've been talking with.
January 31 2007
Filed under:
That's a pretty big statement, but that's what our first SalesWorks article was titled. We'll see how everything pans out with SalesWorks vs. Salesforce.com, but either way I think SalesWorks is going to be a big hit for those small businesses out there that want/need to manage their customer info with ease.
One of the key factors will be cost. From the article...
"The cost is either free or $100 upward, but it's not clear how the cost structure works yet. In any case SalesWorks may well find a niche for businesses who don't want to give up the relative stability and security of a desktop app for contact management, but also want to take advantage of the Web. While Salesforce is a purely browser-based service, SalesWorks is betting on its low cost and desktop app rich interface as ways to differentiate itself."
SalesWorks was launched this morning at Demo '07.
January 30 2007
Filed under:
This week our company, Mission Research is launching a cool new product for the SOHO market called SalesWorks. The launch is at DEMO '07 and will be presented on stage. SalesWorks can be easily used to manage contacts and sales leads. It's based on the same platform as our current product GiftWorks which is selling like hotcakes to the small non-profits. More information will be available as the DEMO conference happens so stay tuned. Here's the press release from our web site.
January 30 2007
Filed under:
I got a very funny email from a coworker's wife the other day. The email pointed me to the Elf Yourself website which allows you to insert someone's face into a dancing elf (in this case it was Steve's face). Very funny and I went on and forwarded it to several other people.
A few days later I was talking with Steve about it and how very viral the idea was, however we were both referring to it as the Staple's website. It turns out that it's an Office Max marketing campaign. Nice.
January 04 2007
Filed under:
January 04 2007
Filed under:
In my previous post I had only been using Expression Blend and wasn't able to figure out how to get it to generate content for WPF/E. It turns out that only Expression Design can export WPF/E compatible content (thanks ADO Guy).
If you download and install Expression Design, you can create vector-based elements to include in your WPF/E-based web pages. Expression Design is very similar to Adobe Illustrator. Once you've completed your design, click on File>Export>XAML. This will prompt you for a filename then it brings up a XAML Export window like the one on the right. If you select the Document Format dropdown you can select the WPF/E format. I've tried a couple simple tests that displayed correctly in WPF/E Pad.
This is a good step and may be all we need, however I was expecting this same type of functionality with all the Expression tools. Is that coming?
January 02 2007
Filed under:
I first crossed paths with Windows Presentation Foundation/Everywhere (WPF/E) on Mike Harsh's blog post about the Mix '06 event in March of 2006. I knew about XAML and where Microsoft was going with their presentation layer tools, but our company creates mass-market desktop software that doesn't utilize the .Net Framework yet. This meant any XAML or WPF was off limits for us. That is until MS announced WPF/E.
In Mike Harsh's words "(WPF/E) is a cross-platform, cross-browser web technology that supports a subset of WPF XAML. WPF/E also has a friction-free install model and the download size we’re targeting is very small. WPF/E supports programmability through JavaScript for tight browser integration. The WPF/E package also contains a small, cross platform subset of the CLR and .NET Framework that can run C# or VB.NET code."
So XAML and WPF can now be hosted in Internet Explorer. Since my company's desktop applications host IE for the presentation layer, then our presentation layer can take advantage of XAML and WPF. Unfortunately there was not much to be heard of WPF/E since March, but this month MS released a CTP of WPF/E.
where to get started
Probably the best place to get started is the WPF/E Dev Center on MSDN. Download and install the SDK so you can start trying the examples. The Dev Center has a few that you can look at. Mike harsh has also built a cool little application that let's you test your XAML code, called WPF/E Pad. Once you have the SDK installed you can run the WPF/E Pad and try some of the built in examples. After you get a feel for what can be done try entering some of your own XAML. Try copying and pasting the source from below into the bottom panel of WPF/E Pad and clicking the Load button.
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="_037_bugs_logo" Width="1056" Height="816">
<Ellipse Height="200" Width="200" Canvas.Left="30" Canvas.Top="30"
Stroke="Black" StrokeThickness="10" Fill="SlateBlue"/>
<Rectangle Height="100" Width="100" Canvas.Left="5" Canvas.Top="5"
Stroke="Black" StrokeThickness="10" Fill="SlateBlue"/>
<Line X1="280" Y1="10" X2="10" Y2="280"
Stroke="black" StrokeThickness="5"/>
</Canvas>
You should end up with something like the screenshot to the left. The XAML creates an ellipse, a rectange and a line. This is not a very compelling example (it was taken from the MS SDK download) but it gives you something to start with. What's nice about the technology is that it allows you to interact with the XAML code using JavaScript. So you can create a bunch of objects using the XAML markup and embed it in your web page, then use JavaScript to program those objects. For example you can attach events to the XAML objects (similar to DHTML) and handle those events in your JavaScript. WPF/E Pad doesn't support event handling at the moment, so you have to take the next step and create your own web page to test out event handling. Those steps are covered in detail within the WPF/E SDK.
what's next?
What makes all this really interesting is how Microsoft is backing up this technology with their development tools. They've recently released an entire suite of apps to generate, manage and debug XAML. Check out their Expression Suite. I think the development tools will be able to target WPF/E versus WPF at some point. Exciting stuff.
December 28 2006
Filed under:
what is amazon S3
Amazon has started to monetize their technology platform as part of their Amazon Web Services (AWS). I know very little about AWS in general, but I have spent some time looking into one of their initial services: Amazon Simple Storage Service (Amazon S3). This service provides a simple web service interface to store data for a small fee. The storage service is supposed to be highly scalable, reliable and fast. You pay for what you use. They charge $.15 per GB/per month for storage and they also charge you for data transfer at $.20 per GB/per month. The service is tailored towards developers and is not intended to be used as a consumer level backup product.
using S3 for personal backups
I started looking into the service to get familiar with Amazon's services. I wanted to get a feel for their level of quality, ease of use and how practical they would be to leverage from my companies own products. S3 is something that's directly interesting to me. Personally and professionally I manage a bit of data that I never want to lose. I have applications, source code, documentation, customer data and servers that need to be backed up at work. At home I have photos, videos and personal documents that need to be backed up. Ultimately I want to write code that hooks up with Amazon's services, but for this post I want to just talk about my experiences in trying to find already written code to backup my stuff.
my current backup situation
I have a mix of machines that I need to have data backed up on. The majority of the machines are Windows-based, with two that run Linux. In my basement I have one server with half a terabyte of mirrored drive space. That machine is only used as a file server and a backup server. At different intervals throughout the week, I have my other servers and desktops (from multiple locations) sending their backup data to this machine. To make that happen I install OpenSSH and a copy of rsync on each client machine. I then use a scheduled script to securely synchronize specific client folders with the server. This has been working fine for me. It's not the easiest thing to setup, but once it's done for a machine, managing it is fairly simple and restoring is as easy as plucking the files or folders of my backup server. Since SSH and rsync are cross-platform, I can use the same technique from my Linux machines.
how does S3 fit in
To prevent data loss, I depend on the fact that my data is always in two places at one time (except my photos which exist only on the file server) and that one of those places uses a RAID for storage. Ideally, I would also like to have my most sensitive data archived away where I can't accidentally screw it up. I've looked into some commercial offsite backup products but they are fairly expensive for the amount of data I want to secure (ideally close to 200GB). I would be fine with paying the higher prices if it was my only option. Fortunately Amazon S3 seems to be a low cost option. My short term goal is to keep my rsync backups going and just synchronizing my backup server with S3. Maybe at some point I will bypass my rsync step altogether and sync directly to S3.
what am i looking for
For my purposes, I would like to find software that can allow me to automatically synchronize my backup server with S3. Here are my current factors that I'm using to choose a solution:
- The software has to be automate-able, thru scripts or some other method.
- I won't need to access the data very often except to verify everything is working correctly, so the software does not have to have a UI or be very feature-ful.
- I would like to have the data stored on the S3 service in a generic format so I'm not tied to my initial choice of software. If my software is no longer usable, I should be able to retrieve my data using other software.
- The software only has to run on Windows.
- Ideally the software would be open-source.
- Ideally there would be no additional fees on top of what Amazon charges.
what i've found
Unfortunately there are limited sources of information on S3. One of the most helpful was a blog post by Jeremy Zawodny called A List of Amazon S3 Backup Tools. Check out the comments for a good view into what's available. Amazon S3 Tools on elastic8.com. Another resource was Amazon's Solution Catalog. I haven't had much luck in getting everything I want and didn't have much luck in evaluating the ones I've tried. Below are the apps I've tried with my initial findings. I will follow up this post in a couple weeks to after I've done some more research.
- JungleDisk - This service looks very promising and is free. It basically adds S3 as a virtual drive on your computer. You can access it like any other drive (theoretically). It's not open-source and stores data in a proprietary format, but they do have open-source code available to browse and download your data if something ever happens to them. I've tried a couple times but I could not get JungleDisk to work on Windows Server 2003. I've gotten it to work on Windows XP though and that worked fine.
- S3 Backup - A Windows client that allows you to access S3 like in a manner similar to Windows Explorer. The client has jobs built in that allow you to run backups automatically (no scheduling yet). The software is written by one person and has frequent updates. For some reasons the beta downloads have a built-in timeout which is unusual. The author is not sure what portion of the software will be open-sourced (if any) and plans to eventually charge for part of it. I was able to browse and upload some data, but got errors when trying to create backup jobs. I'm sure the job error will be worked out in future releases, but because of it's somewhat undefined future I will have to put this app on the back burner.
- S3Drive - Another virtual drive app like JungleDisk but from an independent developer. The software depends on the .Net Framework 2.0. To optimize the browsing thru Windows Explorer the developer chose to split the files up into chunks when storing them and uses an index file to make his flat S3 file storage appear as a folder structure. It took a couple tries to get the virtual drive to work, but once it was setup it worked very well. I saw that some people were experiencing memory leaks and communication problems with larger files (>300MB) but I have had no problems using smaller files. I've also read somewhere that there is or plans to be source code available.
- NS3 Manager - This is a free Windows client that enables you to manage data on the S3 service. It's limited in its features (upload, download and delete only) but does store data in a generic format. It can also be used to browse the proprietary formats of the other tools mentioned here. I have not been able to find a way to automate it yet and am not sure if there's any development going on. If not something I will use for my backups, it's still a valuable too just to see what's in your data store.
- #Sh3ll - A command shell for S3. I like this app. It's not fancy and has no UI. It's not easy to use. Event the name is hard (pronounced Sharp-Shell). And as you may have guessed from the name, it depends on the 1.1 or 2.0 .Net Framework. It reads and writes to the S3 store in a generic format and can be automated. It's not as straightforward as I would have liked. Since it's actually a shell, you have to pipe commands into it to script it. I guess that is done because calls into the service require a bit of context between calls (for example, you would need to specify the bucket, username and password for each invocation). I've had no problems so far with it. The nice thing is that the source is available (actually comes in the download) and I can change it as I see fit.
conclusions
I have not gone as far as doing my actual backups to S3 since I'm still in the process of evaluating the tools and the service itself. My current thoughts are to use a combination of two tools I mentioned above. For automation I can use #Sh3ll which let's me put my files on S3 in generic form. To browse and download my files with a UI I can use NS3 Manager. It would be nice to get the source of NS3, but since there is no proprietary format I'm not locked into using it. I'll let you know as I discover more.
November 22 2006
Filed under:
The blog content for this website is managed and rendered by a custom version of the dasBlog Weblog. I've refactored the dasBlog ASP.NET application code into a reusable .NET library that can basically be called by any .NET client app. In this case the client is our home-grown site hosting software. I'll go into a little more detail about how this was accomplished.
Here's a little background about the client. Our hosting software is a simple ASP.NET web application that uses modules to render parts of the page. There are 3 content panels for each page (not including the headers and footers) that contain the user's HTML. The simplest way for content to be rendered for these panels is to use the HTML module that simply pulls content from a .htm file on the server. We have more complex modules for showing forms, photo albums and blog articles. A simple configuration file tells the site engine which module a content panel should call to get HTML to show. In this blog there are two content panels: a center panel and a right panel. The right contains some blogging tools and the main, center panel contains the blog articles. This is where the dasBlog code comes in.
The original dasBlog application is a full blown weblog application that handles everything from displaying and posting articles to site templates to usage statistics. I wanted these tools as well, but I didn't want them in the form of a website. All I needed was to be able to call into a library to get the HTML for a list of blog articles or single blog articles. I also wanted to take advantage of the blog api's used by blog publishing clients so there would be a way to get the content into it.
I started with dasBlog version 1.8.5223.2. The application was designed to mostly handle a single blog and its content. Most of the code assumed global classes for getting the content and settings stored on disk. What I did was create a BlogContext to hold all the global class instances. The single, global class which encapsulated all the original global variables enabled me manage multiple sets of blog content and settings. I wrote another couple classes to manage the multiple instances of the BlogContext class.
To give you an view at how this all works together, I'll show you a code sample. One of the handlers within our site engine module is OnColumnRender(...). It gets called in the module when the site engine needs it to render some HTML for a content panel. It gets passed a Column arg and a Holder arg. The Column arg gives the module a reference back into the APIs in the site engine. The Holder arg is just a typical ASP.NET Control that represents the content for a panel. The following code sample gets a reference to a BlogContext and uses it to fill in the Holder Control class.
1: Public Sub OnColumnRender(ByVal Column As PageColumn, ByVal Holder As Control) Implements SiteModule.OnColumnRender 2: ' get a reference to a blog context. a single site (SiteInfo.Key) can contain multiple 3: ' blogs identified by Column.Key 4: Dim blogContext As New BlogContext 5: Dim blogEngine As BlogEngine 6: blogEngine = BlogEngines.GetBlogEngine(Column.Page.SiteInfo.Key, Column.Page.SiteInfo.ContentFolder) 7: blogContext = blogEngine.GetBlogContext(Column.Key) 8: 9: ' set the root for our engine 10: blogContext.SiteConfig.Root = Column.Page.Url.Root 11: 12: ' tell the blog engine where to get its templates 13: blogContext.TemplateFolder = Column.Page.Template.Folder("blog").Path 14: blogContext.TemplateURL = Column.Page.Template.Folder("blog").VirtualPath 15: 16: Try 17: ' now tell the blog engine to process the bodyText macro 18: ' and fill the Holder with blog controls. it takes the 19: ' the ASP.NET page class as an argument. those familiar 20: ' with dasBlog recognizes the %bodyText% macro as the 21: ' actual portion of the page where article content is put 22: blogContext.Process(Holder, "<%bodyText%>", Column.Page) 23: Catch (Exception ex) 24: Column.Page.HandleModuleException(ex) 25: Finally 26: ' set the page description based on the blog content 27: If blogContext.Description.Length > 0 Then 28: Column.Page.Description = blogContext.Description 29: End If 30: 31: ' add our blog stylesheets 32: Column.Page.StyleSheets.Add(blogContext.TemplateURL & "/styles.css") 33: 34: ' add a RSD tag 35: Column.Page.HeadTags.Add("<link rel=""EditURI"" type=""application/rsd+xml""" & _ 36: " title=""RSD"" href=""" & Column.Page.Url.Root & "/" & Column.Key & ",rsd"" />") 37: End Try 38: End Sub
The result is a set of modified dasBlog libraries, some web.config settings and a site engine module library that gets registered with the site engine. There are many details that I've skipped over, like how the blog clients interact, how the generated content is modified by user interaction and how the right content panel shows details about the blog itself. I will likely give more details a sample code if there is interest.
October 12 2006
Filed under:
I occasionally need to post source code to my site for others to read. I have been using a simple web tool for this and it seems to work fairly well. Here is the url: http://manoli.net/csharpformat/. See an example here.
September 26 2006
Filed under:
About a month ago I installed Google's Desktop Search software on my dev computer. I've tried both MSN's and Google's Desktop Search products before but never found them to be very useful and instead of seeing those processes just sitting in my task list, I have always uninstalled them. Maybe because they were never installed on my main pc, I never realized the maximum benefit from them. This last attempt was done so I could check out the desk bar included in Google's product. The desk bar got old really quick, but I did stumble on the CTRL+CTRL trick that has proved quite useful. Hit the CTRL key twice and a little window pops up which let's you type in a search term. The search term can be for something local, like email or chat transcripts or something on the web. It can be a URL, a street address or even a calculation. Using the filetype: macro, it is surprisingly a very good way to search your source code too. I probably use it more than a dozen times a day. Give it a try.
August 28 2006
Filed under:
We have been working on some simple site hosting to offer our GiftWorks customers. Something that would enable them to get some integration between GiftWorks and the web--something like online donations, update forms and/or blogs. Obviously the blog hosting is up and running (the new software is hosting this site), but as far as finding a very nice desktop blog editor for our beta customers to use, I haven't come across anything (the closest thing I could find was Zoundry Blog Writer, which I used to make the previous posts on this site). That is until I tried the new Windows Live Writer from Microsoft. It seems to be working great and is very easy to use. It also has a developer SDK that allows adding some enhancements. I would have no problem recommending this to our customers--and will.
There are a couple cool features, like showing a preview of the post in your actual website and some cool image properties.
Read the Writer team blog
August 16 2006
Filed under:
A lot of my work is done across multiple computers. I use various tools to work with these computers, like: Remote Desktop for my real machines, the Microsoft VMRC client for virtual machines and a custom version of VNC for our customer’s computers. Remote Desktop is a dream. Combine that with multiple monitor support in XP and my KVMs are collecting dust in the closet. One thing that I’ve had trouble with is copying and pasting information between computers. Remote Desktop usually works, but occasionally it acts weird and doesn’t allow it. I don’t know how to copy and paste between VMRC and VNC sessions. Here is a tool that might help a bit. A web site called http://cl1p.net allows you to create an online clipboard to easily transfer data. Very simple, but it does the trick. Much easier than transfering files or sending email. Give it a try.
April 11 2006
Filed under:
I've run across a neat little script that makes popping up fullsize images from a thumbnail very simple and elegant. I liked it so much that I've integrated the script into this website framework for any images posted to the blog pages. Here's an example:
Integrating it into your own website is very simple too.
January 10 2006
Filed under:
Seems like our CEO, Charlie Crystle has stirred up quite a buzz around the recent SalesForce outage (Silicon.com, CNet, ComputerWorld). You know it's made its rounds when you read it on Scoble's blog. There really is a point to be made here. I'm not necessarily convinced that SalesForce is bad just cause it has some occasional problems with it's uptime. They do need to make some improvements if they want to keep their customers though. The "outage" happened to be large enough to get the press on it, but we experience regular down times with SalesForce that hamper our sales process.
Back to the point... People and businesses are becoming more and more reliant on web services. This is great. There are a lot of benefits to them and they are mostly reliable. In my opinion, the fact that SalesForce can provide an uptime approaching 99% is incredible. But they are not perfect, and businesses relying on them without proper secondary systems in place are going to run into problems at one point or another. Take a natural disaster or large-scale power outage or even some technical problems at the local ISP level. I think there needs to be an offline option available for these times -- and if the web service provider doesn't offer them, then the customer needs to account for that in some way.
Even on a personal level, these outages can be a pain if you're not prepared. Recently the popular del.icio.us service was down for a bit. I use it on a daily basis to track my bookmarks. Not for those few days I didn't. I knew their website offers a way to store my bookmarks offline, but never took the few minutes to get them. In this case, maybe my business benefited from the outage :)
Something to consider... An approach we are taking for our software (GiftWorks) is a desktop client that works in both online and offline mode. In our case, the desktop client is fairly heavy but it doesn't have to be. The software uses online services when they are available and needed, but most of the work is done on the desktop. If the customer can't go online for any reason, they can't use our online services, but they can still do something. This is definitely not a new approach. Most email clients work the same way.
December 23 2005
Filed under:
Ok. Here is an amusing site. The Web 2.0 Validator. Enter a URL and click the button to see how it rates in the Web 2.0 realm. I really got a lot of work to do for my site :) I'm only 3 out of 38. It's sad to say, but I'm actually falling behind my friend Steve. This cannot be.
(I think I just improved my rating with this post -- Dave Legg, Flickr, VC, Nitro, cool, Ruby, Rocketboom, del.icio.us, 30 Second Rule, public beta, mash-ups, startup -- 18 out of 38)
December 22 2005
Filed under:
December 18 2005
Filed under:
December 17 2005
Filed under:
|
|
Flickr Show
Past Articles
| May, 2008 (1) |
| April, 2008 (4) |
| November, 2007 (4) |
| October, 2007 (1) |
| September, 2007 (3) |
| August, 2007 (6) |
| July, 2007 (4) |
| June, 2007 (0) |
| March, 2007 (7) |
| February, 2007 (7) |
| January, 2007 (9) |
| December, 2006 (2) |
| November, 2006 (3) |
| October, 2006 (1) |
| September, 2006 (5) |
| August, 2006 (8) |
| April, 2006 (2) |
| February, 2006 (2) |
| January, 2006 (1) |
| December, 2005 (11) |
| November, 2005 (6) |
Ads
Other Links
|
|
|
|