Tuesday, December 07, 2010

Using SQL Server Dates Without Time

I often find myself in a scenario where I want customers to be able to select dates, delete items by setting an inactive date to today rather than actually removing something from a database, etc...

Sometimes it helps to only deal in dates, rather than in date/time. Using the GetDate() function in SQL brings back a full date with the time string, but here is a great method to fix that.

declare @somedate = cast(floor(cast(GetDate() as float)) as DateTime)

There are a few other ways to do this, but this one seems to perform the best. Tested with SQL 2008 and works great.

Hat tip too Ben Nadal's blog, more info here-

http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm

Sunday, November 28, 2010

Google Ads


For the very few of you that straggle across this blog every now and then you might notice that I succumbed and put up some Google ads. I resisted for awhile, but I'm poor, so I figured what the heck. Hey, I made a whopping 20 cents my first week!

But 20 cents is 20 cents. I figure a little sugar will invigorate me to write and post articles that have relevance to folks with code and links that line programmers will find of value. Maybe I can boost that 20 cents to a dollar a week. Multiply that by x number of other blogs and web sites that I have just dying on the vine that I might start working on, and I might make 50 bucks or so. That pays for a few domain names, maybe a book or PDF here or there, and some low end 3D software now and again. I will write/code/post for about six months and see what I can get going.

If ads piss you off I'm with you, they piss me off too. But when in Rome...oh well.

Happy Thanksgiving every one. I had a great one, hope you did too.

Monday, November 01, 2010

Sunday, October 24, 2010

Web Developers / Designers: Who Are we?

I'm not sure how this data was gathered, and I don't vouch for it's accuracy, but I bet it is somewhat ballpark. Take a peak at this web infographic to figure out who all us web designers/developers are

Tuesday, October 19, 2010

Very Cool Web Annotator

I like this. Drag a bookmark to your bookmark bar, and then when you are over any given website, click the link, and start annotating the site.

http://markup.io/

Cool.

Sunday, October 17, 2010

Friday, October 15, 2010

Basic Silverlight/.Net Twitter Jason Example

OK, some I'm back into Silverlight again. It actually isn't as bad as I thought, and I'm starting to get jazzed about working with it again. To get my feet wet I found a really basic example of adding some twitter search items to a Silverlight Listbox. After looking at it, ugly XML stared at me defiantly. I like XML for some things, like bloating my code a lot.

I know Twitter can return data in JSON, so I I hacked out the following example of consuming a Twitter search JSON result.

Note you need to add a few namespaces, System.Collections.ObjectModel and the new System.Json namespace.

Here is the meat of a click button even that consumes the Json





You can download the base Silverlight 4 project here-


Download project on 4shared.com


Thursday, October 14, 2010

My Comments on Silverlight

I was originally going to post this on some blog, but I decided not to for now. So I'll post it here.

First, I'm not a great developer. I'm not a bad developer, I'm a middle of the pack dude. I do some fancy stuff sometimes, actually innovate occasionally, but most often I'm stuck in the day to day duldrums of retrieving data and displaying it in some meaningful way on a screen, and taking a user response and saving it to a data store. A little bling is always good, but often I can only provide two of three things (functionality, quick delivery, and "bling"). Usually the bling suffers under the two of three constraints that I often find myself in. Silverlight and Flash, as far as my world generally goes, are bling.

I love what people do with Flash, but we are Microsoft shop so for RIA we play in the Silverlight world. I built a demo project in Silverlight three, even throwing in some Telerik Silverlight controls for EXTRA bling, and it didn't thrill me. I'm facing doing some serious Silverlight 4 development and now and although I will put my head down, crank the music, and code conquer it, it doesn't thrill me. What does thrill me is compiled Javascript, hardware acceleration for HTML 5, web sockets, etc... I don't really know why that thrills me more. It shouldn't, but it does. I think I for better or for worse represent your average high end Mort low end Elvis developer that Silverlight has to thrill if it is going to survive. It just isn't there yet, maybe version 5 will do it. All I know is that after hacking away in version 3 and walking away from it for a bit, I'm finding myself feet dragging a bit in starting a new project in Silverlight 4. Yesterday in my down time I wrote a little adventure game using javascript, crappy animated gif's, and some CSS in a few hours. I just can't wait to get some more spare time to add sockets and make it multiplayer, add ai/pathing, dialogs, etc... That thrilled the heck out of me. Heck I might even use Silverlight as a bridge for the sockets, I wouldn't mind doing that. But if I tried to do the same thing with Silverlight, I would spend hours and hours in Silverlight 4 and it will not thrill me because I would be less productive and constantly running into issues. I guess it is just me.

Maybe in a few days hacking stuff out I will be in love with Silverlight, but for some reason I have my doubts. Don't get me wrong either. I love Microsoft products. Wouldn't want to be coding in anything else but Visual Studio 2010. Love the new Razor syntax. Everyone hates web forms including myself but I've done some cool stuff with them. But for whatever reason, Silverlight to me (currently) was/is a drag.

I'm really looking forward to see what IE 9 / Google 6 / Firefox 4 come up with.

Monday, September 27, 2010

Twitter oAuth SHA1 Digest Class / Webmatrix Helper

*** Update*** For some reason the class wasn't showing up, making this info useless. Fixed.

I've decided to use Twitter's @anywhere Javascript service to integrate Twitter functionality into a website I'm building.

I found it pretty easy to use. I decided to integrate some server side logic once a person logged into my website using Twitter. Knowing that Javascript is pretty easy to spoof, I wanted to explore ways of not taking a given user's Twitter login for granted. I found this cryptic paragraph in the @anywhere documentation listed above.

Once the user has authorized the host site, Anywhere will set a cookie named "twitter_anywhere_identity" that contains the id of the logged in user. You can read this on the server side to learn the user's ID. The format of the cookie is:

user_id:signature

When reading the cookie on the server, you should use the signature to verify that this information has come from Twitter. Calculate the signature by appending the given user_id to your OAuth consumer secret and creating a SHA1 hex digest. If this matches the signature in the identity cookie the user ID is verified. For example, in Ruby:

Digest::SHA1.hexdigest(user_id + consumer_secret)

Ut Oh. I know Twitter tends to not have a lot of examples in .Net floating around. After Googling for a bit I found this excellent article on .Net and SHA1 Interop by Jonathan Cogley-

http://authors.aspalliance.com/thycotic/articles/view.aspx?id=2

After doing a few minor tweeks to Jonathan's base code (name space change from .Net 1.1), I present to you a Twitter oAuth SHA1 Digest class




Usage-

The above class will work with any flavor of .Net. If you want to use the above class as a Webmatrix helper, create a class file, rename it TweetSHADigest.cs, paste over the generated code in the file with the above code. The class file should be in a folder called App_Code.

Once Twitter has made a call back to your web site, you can verify that the cookie set came from twitter like so. You will need your web application's Twitter OAuth consumer secret.




Sunday, September 26, 2010

Various CDN's Around the Web

Obviously Google's CDN is what you want to use, as it is another link into the google matrix that helps your page ranks.

Google CDN Dev Guide

Here is a link to add the latest v1.x.x version of jQuery to your page hosted by Google-

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js

There are alternatives though, you can you CDN libraries hosted by Microsoft-

Microsoft Hosted CDN's

And there is the new kid on the block,

cachedcommons.org

Cached commons looks promising as it host A LOT of javascript libraries, not just jQuery.

I'll add more links as I find them.

Saturday, September 25, 2010

Simple Twitter @anywhere Login/Logout Custom Button

Here is a simple Twitter @anywhere login logout button jQuery script. Note this assumes you have added your a reference to jQuery and your Twitter anywhere javascripts to your page, as well as having a span somewhere on your page with the id of "lbtn".




This is just to get you started, change and configure as you like.

Testing on Mobile Devices

Here is a list of Mobile Testers. If you know of any more please comment and I'll add them to the list.

http://sixrevisions.com/tools/10-excellent-tools-for-testing-your-site-on-mobile-devices/

Some additional ones-


Wednesday, September 15, 2010

50 Great Web Based Apps to Replace Desktop Ones

Check this list out.

http://web.appstorm.net/roundups/50-great-web-alternatives-to-desktop-software/


GPU Acceleration in HTML 5

Check this out! Google Chrome demo with GPU acceleration. Expect to see it in Chrome 6?



Also IE9 will have compiled JavaScript. The browser war is back on. Flash? Silverlight? You better do something fantastic else HTML 5 over time will eat your bloated asses for lunch.

Monday, September 06, 2010

Stored Procedures and Webmatrix

OK, there isn't a whole lot of documentation for using stored procedures with Microsoft.Data in WebMatrix. Here is one way I got one to work, I'm hoping there is a better way.

Example of a post back insert using a stored proc. Note I'm not doing any validation here, and if you use this method do a little research on SQL Injection and guard against it.



@if (IsPost) {

var LinkName = Request["LinkName"];
var LinkURL = Request["LinkURL"];

string sQ = String.Format("execute dbo.myprocname @LinkName=\"{0}\",
@LinkURL=\"{1}",LinkName, LinkURL);

db.Execute(sQ);
}

Thursday, August 26, 2010

Using Twitter's @anywhere Service on Localhost (and with Web Matrix/IIS Express)

Here is the trick to get Twitter's @anywhere service (http://dev.twitter.com/anywhere) working on your localhost website for development and testing.

1) Don't put a call back url when you register your app.
2) On the link below where you register the call back url for your app, click the add domain link.
3) Add either localhost, 127.0.0.1, or both (may not take 127.0.0.1)
4) In your javascript specify the callback url (localhost, 127.0.0.0/auth.cshtml, whatever. I didn't test this but I think you might even be able to enter ports in (localhost:8080). I ended up setting my web server to run on port 80 (default) so I didn't need to add any ports. If you can't enter ports, you might be stuck having to run your dev web server on port 80 or 8080.

Done. No editing hosts files, nada. Why is this so easy and not documented? I think it is because of a recent change on Twitter's end to loosen things up a bit so you can test your applications. For deployment, you may need to actually enter a call back url for your application. I don't thinks so, but test.

For me I'm working with Web Matrix, and I wanted iis express to run on Port 80. Three things.

1) Turn off/stop your default non-IIS Express web server (apache, dev version of IIS full) so you don't get any conflicts.
2) navigate to where the web matrix exe file is located by opening up a console by typing cmd in the start run menu, then navigate to the path by typing something like cd: c:\mypath\. Once there you can run iis express from the command line (only way right now to specify a port).

type something like iisexpress /path:c\mywebpath\mywebsite\ /port:80

3) Right now you can't have any spaces in the path name. I figure that will be fixed in the next beta or the final release.

Wednesday, August 25, 2010

WebMatrix RendorPage() and Functions: Not Quite Include Files

Out of curiosity, I added a function to a header.cshtml file like so-

@functions {
   int AddTEST(int a, int b)
   {
      return a + b;
   }
}


Then I tried calling the function in index.cshtml like so-

@AddTEST(1,2);

As I thought, if failed. So, just to keep in mind all you scripters that RenderPage() in WebMatrix is not quiet like include files in PHP or Classic ASP. For functionality that is shared across pages you will need to create a class for that, which is pretty easy to do, but not quiet what you might be used to. Welcome to OOP :)

Sunday, August 22, 2010

Webrazor Newbie Tip: Getting a Record Count

OK, a common task is getting record counts. With WebMatrix, you return a query that actually is a bunch of objects that are IEnumerable. If you are a noob don't worry to much about what they means so much as what it allows you to do.

WebMatrix queries support the new .Net Linq functionality. This allows you to apply Linq operators to your query results which makes it easy to get record counts. Example:

@{
var db = Database.OpenFile("somedb.sdf");
var q1 = "select * from table";


}

There are a total number of @q1.Count() records in table.




Easy.

Using Gmail with Webmatrix ASP.Net Web Pages

OK, here is a basic example of how to use Gmail with Razor/WebMatrix ASP.Net web pages, in this case a .cshtml page.

  1. @{  
  2. try {  
  3.         // Initialize Mail helper  
  4.         Mail.SmtpServer = "smtp.gmail.com";  
  5.         Mail.SmtpPort = 587; //25 465; - 25 default, 465 in documentation, 587 works  
  6.         Mail.EnableSsl = true;  
  7.         Mail.UserName = "your user name"// include domain if not gmail user@mydomain.com  
  8.         Mail.From = "return email address";   
  9.         Mail.Password = "your password";  
  10.            
  11.         // Send email  
  12.         Mail.Send(to: "target email",   
  13.             subject: "test",  
  14.             body:"yo!"  
  15.         );  
  16.     }  
  17.     catch (Exception ex ) {  
  18.         <text>  
  19.           <b>The email was <em>not</em> sent.</b>  
  20.           The code on the PrcessRequest page must provide the   
  21.           STMP server, user name, password, and email addresses   
  22.           required.  
  23.         </text>  
  24.     }  
  25. }  

Wednesday, August 18, 2010

Twitter

I love Twitter, I hate Twitter. If you don't get it, well, don't feel lame. Twitter has it's uses, but those uses are not for everyone. As an information gathering tool, a networking tool (as in meeting people with similar interest), and a marketing tool (or a pushing info/viewpoint tool...I'll put that under "marketing) Twitter is an awesome tool that will only get better.

I've had a few people look at my number of followers and ask how I and why I have the numbers that I do. My numbers aren't that impressive, nor does anyone's numbers really need to be high to use Twitter effectively. My numbers do look impressive to friends of mine that are just getting started with Twitter and wonder how to expand their following. I had so many questions about it I finally wrote something down for an indie gamer forum and then later posted that to associated content. The information might be of use to some, if so check it out.

A Simple Eight Point Strategy to Grow Your Twitter Following

Let me know if this helps, or please share any other successful strategies that you have used.

Monday, August 09, 2010

Coding Snobs and WebMatrix

I've had a feeling for a while now that programming is becoming to nerd dominated and fad driven. If you do a Google search on Microsoft.data.dll, it will be eye opening just how opinionated these little geeks can be. But if you dig past all their little fo arguments about best practices, the craft of software development, how webmatrix is a step backwards, etc... you begin to reveal that the primary motivator for the geek squad is that tools like the WebMatrix might make Web Development easier, which threatens the geek's elitist geek only club.

I started in Web Development with classic ASP. All the critiques of classic ASP and for that matter PHP leveled by the geek elite are generally accurate (spaghetti code, no separation of concerns, no OOP, hard to test, violating the DRY principle, etc...). But to me at least, it sure seems like I got more web applications out the door back then. Half the time now I'm struggling to keep up with technology rather than solving client problems.

Case in point. I work with an extremely talented developer. He took a stab at Silverlight. It took him about a month to get some even basic concepts like taking data from a user's input and saving it to the database. I was in a similar situation with Silverlight 3 awhile back, where I was using it but decided to stop when I started running into problems doing what I would think are simple things. The datasave models I think are way to complicated. The geeks will stay up 14 hours a day coding to figure things out. I'm fine with that, if IT IS NECESSARY. But I really don't think the pain is necessary, not if Silverlight was being designed for Morts rather than Einsteins and Elvisis (using Microsoft's terminology to describe developers). I don't mind have to stretch and learn new things to get problems solved, but doing basic stuff like data connectivity shouldn't be as hard as it seems to be sometimes, and I think the issues arise because Microsoft for so long has been driven by the elite geek crowd. This is a small crowd, and if Microsoft continues to only target tools at this crowd, Microsoft will go the way of Novell and Lotus Notes.

That being said, I think webmatrix was a great step by Microsoft, unfortunately it is a step that should have been made around 2003. Not only does webmatrix have to lure PHP developers, but it also has to lure people away from Mac's to PC's. That is a tough sell to the growing Mac hipster crowd, and uphill battle. But I give Microsoft props for trying.

Friday, August 06, 2010

Gmail for Business, Home Web Server DNS Services, Transferring Domains

OK, I'm broke. Like seriously broke. So in a cost cutting measure I got rid of my web host and decided to run a web server from home, as this would save me 17 bucks a month. I had an old box, and the software con gratis from Microsoft to do it. So here is what I learned.

  • Anti Virus software for servers is robbery. Very expensive. There are some hacks you can do to make free or low cost desktop AV software work, but it is kind of a pain and is not guarantee of working for long.
  • PC Tools free AV version does work on Windows 2008 R2 Server. Not sure how well, but it installed and did a scan, is free, and is what I ended up using until I make a purchase.
  • If you have a web host that established your domain for you, changing your domain to point somewhere else can be a pain. I would recommend going to the domain hosting service, getting your account all squared away, but don't make any changes yet. Then go back and cancel your web hosting account. I had trouble with one domain because every time I tried to change the name servers, the web host thought I was hijacking the domain name, and somehow they had authority to stop me. I'm still trying to fix that. Overall I think you are better off separating domain names and hosting, as if the two are connected they don't like to separate.
  • There are a few free dynamic DNS hosting services out there. I like DynamicDNS.org and ChangeIP.com. I decided to go with ChangeIP.com this round, as they were cheaper, and so far they have had great service.
  • Check out Gmail for Business. The standard version allows use of Goggle Aps, up to 50 email addresses each with 7 gigs of space, and was fairly easy to setup up so I could use Gmail seamlessly though my domain, so instead of "bud@gmail.com" everything is "bud@mydomain.com". Pretty cool.
  • Watch what room you put your server in. My upstairs gets pretty hot in the day, and my server actually locked up and I thought something cooked off. Ended up banging the hard drive a few times with a hammer that was laying near by, shook the fan on the CPU, made a quick prayer, and the server rebooted and hasn't had a issue sense. Prayer works, but don't want to be presumptuous in the future, so I'm moving my server to another room were it is cooler.
  • And lastly, of course, back up. Especially if you are using an older box like me.
That is about all my wisdom so far. Hopefully a few sites I'm working on will get enough traffic to become a problem :), which I will consider a good thing. Then I upgrade the ghetto box and look for a co-location place to drop my server into, or maybe some sort of visualization solution. I think I need more access to my server then shared hosting will allow for what I want to do, we shall see how it goes.

Tuesday, August 03, 2010

Opportunities Lost...Opportunities Gained

Kind of a sad day, I finally cancelled my web hosting account with CrystalTech.com due to the fact that I am going absolutely broke. If anyone needs a good .Net hosting solution, I would recommend them. At one point their servers were all in Phoenix, I believe they still are but that might have changed after they got bought out by Newtek, but their service has still been great.

I could have done a lot with my hosted accounts, so far none of them panned out. I had great hope for the Apollo Group using SecondCampus.com, but it was not to be.

Good news is, that I've got a web server up and running for free, and I plan to make good use out of it.

Friday, July 30, 2010

Useful Extension Method: SplitNoEmpty

I ran into a situation where there were some extra spaces in some splits I was doing. I was unaware there was an option StringSplitOptions.RemoveEmptyEntries, which would fix my problem. But to cut down on text in the code since I have splits all over the place, I created the following extension class.
public static class StringSplitExtension
{
public static string[] SplitNoEmpty(this string val, string delim)
{
return val.Split ( delim.ToCharArray (), StringSplitOptions.RemoveEmptyEntries );
}
}

So now, I just change my splits from-

mystring.split(' ');
to-
mystring.SplitNoEmpty(" ");




Thursday, July 29, 2010

Web Server 2008 R2 Anti Virus

Well, I started playing around with Web Server 2008 R2 on a box that I have laying around. I found out three things about anti-virus software for servers last night.

  1. Apparently calling something a server gives you a license to steal ($300+ for AV software because it is a "server", come on).
  2. Most free anti virus software that is out there is purposely engineered to not run on servers, there are hacks, but they are a pain and software makers close these holes fairly quickly.
  3. The best thing I learned: PC Tools makes a free AV program that works with Windows 2008 R2 64 bit without a problem. Don't know how good it is, but at least of got something.
Just shar'en the wealth.

Monday, July 26, 2010

8 Bit True Color Cycling in Javascript

Remember that retro 256k Ultima 4 esque bit animation? Well, it is back, and in the browser with out a plugin.

Direct link here-


Discussion here-


Worth the look. I can easily see how to use this in games.

Thursday, July 22, 2010



Well, I could have kind of guessed this. Men play more online, but women spend more cash when they do play.

gamasutra gaming article

I'd expect this to be (my guess, not anything proven) due to men, especially younger men, wanting the full triple AAA 3D immerse experience, while I would take a guess that many women play the more casual "spamware" Farmville type games. Interesting, I will post links like this here when I stumble on them. Don't get me wrong, I'm not trying to be a MCP or anything, just my past gaming experience and the little bit of research I've seen but don't have handy would indicate this.

The question is, how to get more women playing games and different type of games if they really are mostly still playing casual games, and how to get men to drop more cash online, or better yet, hook them on casual games that tend to suck money out of wallets. That is if you are a game developer wanting to work through Facebook to have wheel barrels full of money delivered to your door step each month. People are doing it all the time, many of the "spamware" games on social networking sites aren't even that good, but they have the psychology of the spontaneous buy down.

It would be nice to get a slice of that casual gaming pie huh? Not that money is everything, but I wouldn't mind trading in my set of problems for a rich person's set of problems for a while (yeah they have plenty of problems too), if for nothing else just a change of pace. Then I can go back to being broke :)

Tuesday, July 20, 2010

Using SQL Hints

I can get around SQL Server fairly well, but I'm not a guru. One trick I was shown today was the use of SQL Hints. Here is a real world scenario where they really help out.

I had a query that was taking about 44 seconds in enterprise manager. My boss came over and showed that the main drag was nested queries (by viewing the execution plan in the query analyzer).

So we added the following hint.

Select blah blah

from blah blah

where blah blah

option ( hash join )


Wow, 44 seconds to less then 1 second. Also option ( merge join ) dropped the query execution time down to less then a second as well.

Is it then or than? Oh well. Public school system

Friday, July 02, 2010

YouTube - Augmented (hyper)Reality: Domestic Robocop

View the future-

OpenPyro.org

Flash, Flex, Actionscript...

I've seen a lot of cool things done with the above, very cool in fact. But it seems like you have to be some kind of guru that started with Flash 4 or 5 to really wrap your brain around Flash's interface. Maybe Flex is better.

Anyway, with Apple not supporting Flash on the iPhone, some are heralding Flash as being dead. Could be, but I'm not so sure, as HTML 5 can't do the things that Flash does, JavaFX is kind of an unknown, and I'm not sure how Silverlight will be accepted long term outside of Microsoft developer shops.

So with that in mind, I think it is too early to write Flash off. If you don't have the cash to outlay for Flash or Flex, check out this open source alternative called Open Pyro. I haven't played with it, but it looks interesting

OpenPyro.org

Free Alternatives to Photoshop

Garmahis has a blog with a great list of free Photoshop alternatives here-


Free Photoshop Alternatives


Thursday, June 24, 2010

Tip On Web Service Engineering

On my last project, I'm sending data back to a client. The client is taking the data and updating several internal systems before acknowledging the data is received by sending me back a success code.

This is causing me all sorts of head aches. Their internal systems a slow, and I'm getting some strange errors. I upped the timeout to 10 minutes even, and still no love.

So, some advice. Just pass data to a store. Have your clients and yourself do their processing on that data outside of the web service. This will speed things up quiet a bit and help narrow down issues, and avoid timeouts ;)

If need by, you can setup your status's something like this.

  • Data Sent but Save Failed.
  • Data Sent Successfully.
  • Data Processing Failure.
  • Data Process Success.

Thursday, June 10, 2010

Linden Labs on the Decline

Linden Labs, the makers of the virtual world Second Life, announced a 30% layoff.

http://www.casualgaming.biz/news/30231/Second-Life-firm-cuts-jobs

That is a shame. To me that kind of spells the end, though it will be a slow one, and Second Life will never completely disappear, as it is open sourced now and has a solid core group that love Second Life.

My experience with Second Life goes back when I walked into a co-workers cube and saw his Second Life avatar flying over a virtual landscape. Crappy graphics, things didn't rez in very well, he and I basically po-poed it. But as I left his cube I saw something, and I hate to say it, something that caught my attention. I'll get to that in a minute.

Then I heard about someone selling virtual land in Second Life for big bucks. Really? I thought. Our V.P. at the time seemed to thing this Second Life thing might be of use for educational purposes, and my co-worker who originally explored Second Life didn't seem much interested in pursing it, so I thought I would take a peak.

Well, long story short. Enthralled by Second Life's potential, was like viewing the future. Built a virtual university with others for demoing. Went no where. Second Life was too bugy, lacked a few key features. Met my future wife during the process though. Ended up getting a new job and leaving Second Life behind me.

I've got a lot to right here, but now isn't appropriate, so I'll come back. The short is, Linden showed us what could have been, but couldn't deliver, partially because the technology (bandwidth mainly), partially by design flaws built deep into the platform that were too costly to fix, and partly due to not really understanding what they had, a real "Second Life" isn't here yet.

Props to Linden Labs (Corey and Phil, plus a few other unknown to me engineers) for taking a great stab at it. I wouldn't consider the upcoming failure of Second Life a persona failure. You guys laid the ground work that probably won't be picked up on as soon as people think, but one day will. Thanks.

Sunday, May 30, 2010

Wednesday, April 21, 2010

Tuesday, April 20, 2010

Cool Website Builder

This link popped up on the radar. If you want to build a free website, this site is the best I've seen so far. Check it out (and no, this is not an add, never heard of these guys before until today, just impressed by the quick look I did).

http://www.ucoz.com/

Monday, April 12, 2010

jStorage - simple JavaScript plugin to store data locally

Local storage seems to be coming of age. Some very intelligent folks have come up with a nice 2kb wrapper for using browser based key/value storage. IE6 is even supported as well.

jStorage - simple JavaScript plugin to store data locally


Thursday, April 08, 2010

jQuery Awesomeness

Check out this implementation of blackjack using jQuery! Very cool.

jQuery 21


Monday, April 05, 2010

Simple Javascript Wait Statement

I'm in a scenario where I'm making a get call to a web service, and if the get call fails for some reason I have to immediately call the web service back and let the client's know there is something up with their data. Well, apparently closing your web connection and then immediately calling it sometimes creates issues, as even though the service is closed, there is a little latency. So I was doing a thread.sleep before calling back, and that caused some issues. So here is a little wait statement equivalent I found

DateTime waitTime = DateTime.Now + TimeSpan.FromSeconds(2);
while (waitTime < DateTime.Now) {;}

Simple. Found it here - http://forums.xna.com/forums/p/908/6180.aspx

Monday, March 22, 2010

What Browser?

I'm using Google Chrome more and more, and I dig it. Of course all my personal data is being captured and resent back to Google, a given. Right now I don't care too much about that, but that might change. As far as a clean, responsive browser, I'm liking Chrome, and I didn't think I would.

I think for an every day browser I would still recommend Firefox (more plugins). I think IE will be back in the game once IE 9 comes out, but till then I'm generally staying away from IE now.

If you are like me and initially evaluated Chrome, said "not seeing what the big deal is", and moved on, you might want to give it another try.

Sunday, March 14, 2010

List of Open Source Useful Software

Yeah, it is time to redo my laptop. So as I go through the process, I thought I would list some of the common freeware apps that I use. If you know of any good ones feel free to list them as well. I use a Windoze so this won't help you Mac folks much.

  • Irfanview - great for simple image viewing and manipulations
  • Virtual Clone Drive - Opens ISO's locally
  • Izarc - Unzip utility with RAR support. Careful, site has a big advertisement that confuses the Isarc download with something else that isn't free
  • CD Burner XP Burn CD's and DVD's
  • Winamp- The old stand by for playing MP3's
  • Sumatra PDF - Faster, Lighter Adobe PDF reader
  • Open Office - Alternative to MS Office (There are others as well, google them yourself)
  • Virtual Box - Run virtual machines on your computer
  • Gladinet Cloud Desktop - Use this so I can map a drive to Microsoft's Live free 25 Gig free remote storage (see previous blogs)
  • Paint.Net - Great for light Photo manipulation, not Photoshop. Also there are some great web based alternatives, do a google search.
  • Notepad ++ - Great open source notepad replacement similar to Ultra Edit (Use Column Editing)
There are also some services I use, some I even pay for. I'll do a post for those as well, as well as update this list. I know there are more great open source software tools out there, I just either have commercial equivalents or I haven't used them yet.

Sunday, February 14, 2010

Great Online Backup Option

I was looking at drop box when I found a Microsoft offering that allows you to backup 25 Gigs free. It is called skydrive (google microsoft live skydrive).

Then I found instructions on how to take Skydrive one step further

http://www.groovypost.com/howto/microsoft/mount-windows-live-skydrive-drive-letter-windows-explorer/

Haven't tried it yet but I'll update this post when I do. If you give it a try let me know what you think.

Update: Works like a charm. Gladnet looks like something worth checking out for cloud backups of servers and such as well. If you want an alternative to Gladnet to access your Skydrive, check out this-

http://www.cloudstorageexplorer.com/

Wednesday, February 10, 2010

Top Languages in Programming

Tiobe came out with a new tracking list of the top programming languanges. Interestingly, if this is correct, Ruby is a lot higher ranked than I thought. Java is still #1 (what?...yep, it is, suprisingly, do a search on dice.com for Java jobs and you will be suprised...Java is not dead). C# is strong and interestingly PHP continues to climb. I guess a dynamic language made for the masses rather than crafters has its merrits. I like PHP, have to play with it more.

TIOBE Software: Tiobe Index

Sunday, February 07, 2010

Lot's to Learn

Well, I've got lots to learn. I've coasted the last few years on past knowledge. This doesn't mean I've learned nothing in the past few years, I've learned a lot. But the learning has been incidental and random, not directed and focused.

Unfortunately, one of the reasons I've been dragging my feet is because 1) real life has been chaotic for the last few years, and 2) I'm burning out a little bit. It seems the new ways of doing things focus on best practices and how to do things properly, while bringing very little to the table as far as adding new capabilities and functionality that end users see in the software they use. Much of what I do professionally now doesn't fit into the best practices model, where if I have a spec it literally will be written on the back of a napkin, if I'm lucky. Usually by the time a project at my current company surfaces to me I've got very little time, very vague instructions, and really not even a clue to what I am doing. So I cowboy up, take my best guess, get it wrong, and then reiterate the process until I've got something that works.

Then I go into a hurry up and wait phase until the next project comes along. To be honest my last iteration of doing this fried me quiet a bit and I didn't do the greatest job that I could have. I just simply got tired of asking questions, getting contradictory answers, and to be honest finding out some of the techniques I used weren't the best approaches to solving the problems at hand. What could have taken three days is dragging on for weeks, and it is partially my fault, something that is not good.

So, going forward, I've got to be a total pain in the ass until I get what I need to succeed. If this pisses people off too bad. If they want a quality result, I need some direction to start with. If I disappoint as a mind reader, well too bad. But in the mean while, I've got to retool. If I.T. becomes drudgery I won't last. So what to do?

As I've said, much of the new techniques out there aren't about doing new things, but doing old things a different way. I've decided this isn't the best point for me to tackle while I've burnt out a bit. I will put some effort here, but it will be tritary until I get feeling a little better about working in technology. Just doing the same old crap but wrapping it in extra layers of complexity with the blogosphere telling me the new ways are best when I know that isn't always complex will just depress me.

So what next then? Well, there are new programming techniques that are coming out that focus on new capabilities that actually result in new functionality on the user side, so this will be my secondary focus. Most of this will be dealing with .Net, Javascript, and Silverlight. I'd love to give some attention to Flex/AS3, but I can't cover every base at this point, so for the next six months that is out.

So what is left? That is an easy one for me. User interface design. I remember trading some wine for my original copy of Photoshop 4 with a guy at Adobe. I love photoshop, but because I work for big corporations almost all my emphasis is on the back end, making things look pretty hasn't been a huge priority. In fact since the last year and a half since I've mainly been working on existing applications I haven't design any user interfaces (with the exception of one in Silverlight, but that closely matched the look of our existing stuff). So my copy of CS3 gets dusty on the shelf.

F that. I'm looking at what people are doing with Photoshop both for art and web design and it is awesome. I've started going through some tutorials and you know what? It isn't all that hard. You don't even have to be a great artist to so 95% of what gets done, you just need to know some basic techniques and know how and when to use them.

Photoshop interest me. So using Photoshop for software interface design is where I'm going to throw most of my effort this year. Hopefully things will become fun again. Plus, if in the future I ever want to strike out on my own, small business like things to look really nice. It is more important that smaller more public applications look nice than it is for corporate apps seen only by a few engineers.

So my learning patter for this year will be as prioritized,

1) UI Design (Photoshop, maybe some entry level 3D apps as well)
2) Web 2.1 (Javascript/jQuery, CSS 3)
3) New ASP.Net capabilities (4.0 stuff), Silverlight
4) Other technologies (PHP, Python, Apache, Memcached, mySQL)
5) Keeping up to date with SQL Server (pretty solid here in my own mind, just spend minimal effort to stay current dealing with CLR type stuff).

And if time permits
The buzz word stuff (Agile, Unit testing, Scrum, etc...)

Tuesday, February 02, 2010

Project Wonderland Supported By Sun Oracle No Longer

A gold mine awaits a group of talented developers who can pull off making the metaverse(a virtual world that parallels our own where people work, meet, and socialize). Second Life was darn close, certainly it came out at the right time. But technical debt related to initial infrastructure choices limits Second Life to being not to much more than an adult oriented virtual hookup spot at this point. Too bad.

Some folks at Sun Microsystems recognized Second Life's potential, and the fact that Second Life wasn't going to pull off the metaverse, so they started project Wonderland. Project Wonderland from the outside was geared towards businesses. I'd say it has a long way to go to becoming a mature product, and with this announcement it probably never will.

http://www.virtualworldsnews.com/2010/02/oracle-abandons-project-wonderland.html

Swing and a miss. This whole metaverse thing is a hard fastball to hit. I understand that. Maybe no one can nail it. But if someone swung with the right bat at the right time...they would make an easy home run.

On further reflection, the opportunity lies wide open to the mega game studios out there. They just have to think outside the box. Two things hold them back. One, wanting to focus on "games" and stay away from business (knock knock, some of the worst corporate types on earth rule over you game thrulls), and their unwillingness to lower themselves to deal with game playing humanity on a more complex level (social interactivity, meeting members of the opposite sex online for love and romance, doing things other than questing, leveling, and crafting). Yet I know many great gaming creators have it in them to create the metaverse. They just need to have their presuppositions move aside, let the ideas flow, and make it.

Sunday, January 24, 2010

Indie Games

I know how hard it is write software. So I have a lot of respect for Indie Game Developers. So when I hear about them, I will list them for your pleasure. Most of these games I haven't played, so buyer beware. If I do play the games, I will review them.

Immortal Empire (RPG, Fantasy, Single Player)
http://www.tacticstudios.com/empire/
Gratuitous Space Battles (this one looks good, in my queue)
http://www.positech.co.uk/
Driving Speed Pro
http://www.wheelspinstudios.com/drivingspeedpro/index.html
Snake Munch
http://forums.indiegamer.com/showthread.php?t=20044
Dating/Scheduler Game
http://www.winterwolves.com/theflowershop.htm
Galaxia Adventure game
http://www.galaxiachronicles.com/
Dead Wake (Zombie FPS)
http://www.deadwakegame.com/

Thursday, January 21, 2010

Another WCF Gotcha

Oh my friend WCF. My latest love affair with WCF occured when connecting to an unsecured asmx web service for testing using WCF. I added a service reference to my web project, the proxy classes created fine, so I connected and...hang!

I ended up using the srvutil to output a config file that had different settings then the auto generated config entries for binding that WCF created when adding the service reference to my project. Using the new config file actually worked, but be careful, because I think WCF will cache server reponses for a minute or two. I know this doesn't make any sense, but it seems like if you change the config settings, fire up your project again, and try to connect, you will error out unless you wait a minute or two. Just a tip.

Anyway, here is a link for dealing with WCF using Srvutil.

http://nayyeri.net/integrating-wcf-clients-with-asmx-services

and a link for WCF bindings

http://msdn.microsoft.com/en-us/library/system.servicemodel.basichttpbinding.aspx

Sunday, January 17, 2010

ReadyBoost in XP?

Essentially ReadyBoost in Vista and Windows 7 is using a Flash drive or other external device as a place to put your system pagefile. This can be accomplished with good ol XP and actually older win OS's just by tweeking where your pagefile.sys will be stored manually. Here is a tutorial that not perfect will give you the info you need to accomplish this.



Enjoy

Wednesday, January 13, 2010

Ajaxian » Gordon: Flash Runtime Implemented in Javascript

Now this is cool!

Ajaxian » Gordon: Flash Runtime Implemented in Javascript

USB "Broadcast Power" Charger

I used to love playing a pen and paper roll playing game called Gamma World. Gamma World was a post apocalyptic world where you made a character that roamed the radioactive ruins as you tried to survive. In the game there were remnants of super technology from the post-nuke world, including robotic units and human looking androids, most of which ran off of "broadcast power".

Well it looks like Gamma World's vision of broadcast power is coming closer. Pretty cool.

Airnergy Wi-Fi Powered Charger

Wednesday, January 06, 2010

Silverlight and styles

Silverlight and styles - Gabriel Schenker's Blog - Los Techies : Blogs about software and anything tech!

Near Death Studios Closes | Edge Online

Many know about World of Warcraft.
But before "WoW", there was Ultima Online.
Before "UO", there was Meridian 59.

Meridian 59 actually was "doomish" looking first person perspective MMO that was way ahead of its time. It's original creator 3DO was going through a rough time of being bought and sold so they couldn't support the game, so it never took off like it could of. Near Death Studios tried to breath life into the game again, but WoW put them on a slow course with death that culminated yesterday. Interestingly, the websites are still up for NDS.


Near Death Studios Closes | Edge Online