Saturday, June 30, 2007
GPLv3 is out and Stallman wants you to upgrade
Friday, June 29, 2007
The Craziness of iDay
The iHype has had a pretty warm reception by the 4 people who we allowed to have one before the launch(WSJ,NYT,Newsweek,USA Today), which left even a few of the tech luminaries green with iEnvy. In which the iReviewers basically stated its shiny, has decent battery life, has an average call quality, and EDGE sucks...oops I mean iEDGE, but does it still suck? Which quickly convinced everyone without an iLife or those with a day off to start lining up next to their friendly neighborhood iStore....sort of.
The iDevice will set you back around $499 and $599 for the iCoolGuy and iFanboy (basically the iCoolGuy + 4GB=8GB) models respectively. The data plans that go with the iDevice is actually pretty typical and striaght forward basically take all standard cell rates, add $20, and you'll have yourself an iPlan, for a minimum of two years(of course).The iHype device will work with iTunes to allow its iCustomers to leave the Apple iStore in a nice orderly fashion and run straight back to their iHome and setup their new fancy iPod with its new snazzy phone support.
There won't be any third party iApps on the iHype at least for a little while, instead the iWeb Devs of the world have been asked to make iSites that sound remarkably like Web 2.0 sites.
Oh yeah and his Jobiness announced to the Mac minions of the world or better known as the iEmployee, that all Apple employees that have been with the iFaith for longer than a year will recieve their very own iHype device of their very own to iFlick, iSmudge, and iDrop and get this they get it for free.
By the by if you think its just random iPeople waiting in those crazy iDay lines at the Apple iStore's you'll be happy to note that you've got a few other pretty important iPeople waiting too, such as co-iCompany founder iWoz and the iMayor of Philadelphia.
Feel free to send me an e-mail with any other topics regarding iDay that I may have missed.
Thursday, June 28, 2007
Garbage Collection in .NET
Wednesday, June 27, 2007
1-800 Magic E3
With Red vs Blue 100th episode, coming out in a matter of days, its time to fill the void with another episode of 1-800 Magic. Enjoy!
Tuesday, June 26, 2007
Random Music Video of the Day: Ben Fold Covers "Such Great Heights"
As of late I've been on a cover song itch, while coding and came across this great cover of "Such Great Heights" by Ben Folds, which in my opinion is just awesome and worth sharing
Monday, June 25, 2007
Debug Tutorials
Sunday, June 24, 2007
Cool little project of the day: ToDoList
Saturday, June 23, 2007
Top 10: My Favorite Windows Application: Open Source Version
- Firefox (Web Browser)- I use it, I like it on any platform and with solid performance and a huge list of powerful extensions what's not to like.
- Pidigin (IM Client) - A while ago I too use to use applications like AIM and MSN messanger, today Pidigin. Why? It works very well and has no advertising, reason enough?
- VLC (Media Player) - This is the swiss army knife of media players supporting just about every video codec under the sun.
- GIMP (Image Editor) - If you don't want to drop the cash on Photoshop and MS Paint just isn't hacking it, then GIMP might be a good alternative. This image editor is a solid as it gets for a free (as in beer) application.
- Cygwin (UNIX/Linux Shell) - when you need a more powerful shell than DOS, Cygwin will help you bring the power of bash to your Windows environment.
- HandBrake (DVD to MPEG4 rip/encoding software) - for the times when want to backup your DVD's into a nice digital format, HandBrake is a nice little application that helps you convert to the MPEG4 format with very little effort.
- FileZilla (FTP Client) - It's not that often I have to grab anything from FTP anymore but when I do this little application is my client of choice.
- Azureus (BitTorrent Client) - this Java application is packed with features and oh yeah it downloads over BitTorrent too.
- 7-Zip (File Archiver) - this file archivers has a long list of supported file types that makes download worthy on its own.
- Notepad++ (Source/Text Editor) - most of the time I develop in Visual Studio, however, on the days that I can't I use notepad++. Which has quite a few features over the basic notepad application.
Friday, June 22, 2007
The power of the finger
Well it seems Microsoft is really sold on the idea of creating touch sensitive interfaces. So much so that earlier this month(June)/the end of last month(May), they announced a new device known as the Surface Table, which basically begins to deliver on the idea that touch screens are going to be the interface of the future. Well todays post/video shows how they're adapting it current products in this case a laptop, meaning the future maybe coming sooner than we thought
So now that you've gotten the basic press pitch, here is my two cents. The technological approach Microsoft is taking to implement this technology seems to be pretty solid, however, I have some concerns:- Will these devices deliver good image quality? Flat display technology is quickly becoming a mature technology but it does have a rather rough track record with behind the glass sensors. When it does work it give the screen a slightly grainy look (a la Tablet PC) so the question is can Multi-touch interfaces integrate well into portable devices, such as laptops , and still retail the great display quality we all know and love?
- Are people really going to want to reach out can touch their display interface? Now this just maybe because I'm pretty well fixed into the input and display paradigm, but think about it are you really going want reach and touch your screen all the time? If not then you're at least going to want a keyboard like device in the very least and possibly a mouse just because it seems more of a natural feel. Personally I think the concept works better as a table since it puts the interface at your finger tips rather than your finger tips at the interface.
- Isn't this just an interface device and not entirely a mouse replacement? The main issue I have with the notion that touch interfaces will replace our good old little pointers is that they're inherently less accurate meaning they not good for very precise pointing. If you want to know why that's important ask any gamer or computer graphic artist. So have we just found a fancier pointer or is this just an interface problem no ones really addressed yet?
Thursday, June 21, 2007
1-800 Magic E2
Since I refuse to do any iPhone coverage and I haven't written any more XNA code, it seems like a good day to sit back and enjoy another episode of 1-800 Magic.
Wednesday, June 20, 2007
A little guide to Writting Plug-ins in .NET
Tuesday, June 19, 2007
1-800 Magic E1
With Red Vs. Blue about to post its 100th episode, I though you'd all like a new machinima series made by those folks over at Rooster Teeth, its call 1-800 Magic and is produced with the Shadowrun Game.
Monday, June 18, 2007
Writing your own Quicksilver interface
Sunday, June 17, 2007
Linux Tip: Getting more out of the Shell
Saturday, June 16, 2007
Coding Stuctures and Algorithms in Parallel Environments
Thursday, June 14, 2007
Avoid Booleans... are they bad?
Draw("Circle",True)Draw("Circle",False)Instead isn't it a lot clearer to use an enumeration value like the following?
Draw("Circle",ColorMode.Fill)Draw("Circle",ColorMode.Outline)Really this is a matter of preference, but I'll have to admit the latter version is clearer in what the parameter is triggering.
Formatted Code in HTML
Tutorial First Person Perspective in XNA
However, like all frameworks that aren't quite mature there is still a lot left to be desired by the XNA framework and its supporting IDE (XNA Express). Okay so most of my complaints are with the latter but I won't get into that now, instead I'm going to go over a quick and dirty way to create a first person camera perspective. Anyone who's played and FPS should have an idea of what I'm talking about.
NOTE: A lot of the code below is based on the How To Display a 3D Model, I posted about before. So I'd recommend checking that little tutorial before cutting your teeth on this one.
Now since I'm assuming you understand how to display 3D models in your code and have a working little demo of it I'm going to explain what you need to create your first person camera. The idea is very simple, in the 3D world you have objects, a camera (think of it as your eyes), and most importantly you have a point of reference for your view. Now I'm not very good at explaining the technical aspects of 3D graphics so just bare with me.
The idea of camera requires two things one of which is obviously the camera but in this case I'm referring to its position in 3D space. The second is its reference perspective which is a really fancy way of saying what direction in 3D space the camera is looking. This is important for this tutorial since its the reference position we'll be manipulating to create a pretty basic first person perspective. Still with me? Great!
So let's look at some code, more specifically the Draw routine in your XNA project, if you followed the tutorial you'll see something like this:
protected override void Draw( GameTime gameTime )
{
graphics.GraphicsDevice.Clear( Color.CornflowerBlue );
// Copy any parent transforms.
Matrix[] transforms = new Matrix[myModel.Bones.Count];
myModel.CopyAbsoluteBoneTransformsTo( transforms );
// Draw the model. A model can have multiple meshes, so loop.
foreach (ModelMesh mesh in myModel.Meshes)
{
// This is where the mesh orientation is set,
//as well as our camera and projection.
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.World = transforms[mesh.ParentBone.Index] *
Matrix.CreateRotationY( modelRotation ) *
Matrix.CreateTranslation( modelPosition );
effect.View = Matrix.CreateLookAt( cameraPosition,
Vector3.Zero,
Vector3.Up );
effect.Projection = Matrix.CreatePerspectiveFieldOfView(
MathHelper.ToRadians( 45.0f ),
aspectRatio, 1.0f, 10000.0f );
}
// Draw the mesh, using the effects set above.
mesh.Draw();
}
}
What we're interested in is the line that looks like the following:
effect.View = Matrix.CreateLookAt( cameraPosition,
Vector3.Zero,
Vector3.Up );
Basically we're going to replace the Vector3.Zero vector with a reference vector that will dictate which direction we're looking. Make sure that you put the reference point in front of the camera, so basically on a shallower Z axis value
// Set the position of the camera in world space, for our view matrix.
Vector3 cameraPosition = new Vector3( 0.0f, 50.0f, 5000.0f );
//Put your reference position in front of the camera
Vector3 refPosition = new Vector3(0.0f,50.0f,4900.0f);
Now update the CreateLookAt call in your Draw routine
effect.View = Matrix.CreateLookAt( cameraPosition,
refPosition,
Vector3.Up );
Now all you need to do is setup some camera controls to update either the camera position or the reference position to create your first person experience. Basically all you need to do is subtract a movement scale value (this value dictates how quickly your perspective moves in the 3D world, think of it as look sensitivity) from the reference positions X axis to turn left and add a movement scale value to pan the camera right. In order to pan the camera up add your movement scale to the reference position's Y axis and subtract to look down. That's it! The CreateLookAt() call will keep your camera locked on your reference point giving you camera panning.
I should note that this isn't a true First person perspective since the camera pan to the right/left has a limitation, so basically this won't allow you to do a complete turn around. However you can break the reference plan and have it reverse your axis direction, basically right becomes left, left becomes right, etc.. You do this by having the camera position go past the reference positions, specifically on the Z axis, so basically have the camera's Z position be less than the reference position.
Wednesday, June 13, 2007
Creating a .NET installer using NSIS
Tuesday, June 12, 2007
Red vs Blue E99
Here is the second to last episode of the "popular web series" Red vs Blue - The Blood Gulch Chronicles. The series will end with episode 100 which looks like its going to be a good one. Oh yeah, I would have posted Episode 98 but I couldn't find the embedded flash code and well I'm just lazy.
Monday, June 11, 2007
XNA Tutorial: Displaying a 3D Model
Sunday, June 10, 2007
My Wishlist for Halo 3
- Grenades should kill a lot of people not just the person thats directly on top of it.
- On the grenade note, the brute shot should kill in one hit with a direct hit, I'm tired of pegging people with three solid shots to get one kill.
- The assault rifle needs a larger clip, if I can kill two people per clip with the battle rifle why not the assault rifle?
- Stop kicking me out of the individual player carnage reports while joining a new match making session.
- The infamous black screen, don't know why this happens but its annoying as hell. I'm pretty sure this is will probably be related to the Beta, but still please fix.
- Have a few multiplayer modes that don't use the motion tracker. Some times this "feature" is over used and really doesn't add much to the game play.
- The spawn system, this is probably the weirdest system I've seen some times you get spawned at your base, some times with your team, other times right in the middle of a fire fight.
Saturday, June 9, 2007
The month of Apple news
Personally I'm a fan of Apple products, so I'm pretty excited, in particular I'm hoping Leopard (OS X 10.5) will bring new programming API's the OS X platform that will re-kindle my interest in developing for the platform. On that note I won't be one of the mac legion in line for an Apple iPhone, at least for a while, its not that I don't want one its just that I don't want to drop that much coin on a phone that I won't be able to develop for (for the time being) or at least hold and play with a bit. Along side WWDC and the iPhone, Apple has just updated their iTunes software that supports those new DRM free tracks, in the form of iTunes Plus.
If that's not enough news directly from Apple to keep those RSS feeds a-flown then I can only assume that analysis of the Steve Jobs and Bill Gates interview at the D conference will still be going for a few more days. And oh yes a new version of Parallels is out enticing even more switchers to come into the fold .So I'd say its a pretty good bet that Apple will be all over the internet for at least a month and expect the "Reality Distortion Field" to be in full effect. June your officially on notice.
Friday, June 8, 2007
Top 10: My Favorite Linux Applications
- Firefox (Web Browser) - I'd recommend this browser on any platform, but if you want to know the main reason why I keep going back to this piece of software. Extensions, this feature allows for a ton of additional functionality to be added to the browser with little effort.
- Gaim (Pidgin) (IM Client) - This has been on of my favorite IM Clients for a while, it works with AIM, MSN, Jabber, etc...
- VLC (Video Media Player) - VLC is the swiss army knife of video codec players, there is a good chance if it can't play your video file, then its probably DRM'ed or broken (some might argue there is no difference)
- Vim (Text Editor) - in the Linux world they say your either an Emacs or Vi user, I'm the latter. So I do all my text editing in one of the best text editors out there.
- IP Tables (Firewall) - you may think that because your using Linux your safe from attack but one should not surf the inter-webs without a firewall and IP tables gets the job done.
- Evolution (Email Client) - This e-mail client is the closest thing to a Linux alternative to Outlook.
- Open Office (Office Replacement) - Some time you just need a word processor, its not Microsoft Office but its a pretty good alternative.
- K3B (CD Burning Software) - I know Nero has a Linux version of their software now but I've been a fan of this software for a while. It's simple, easy, and works a lot like Nero.
- E-Term (Terminal) - if you run in Linux you'll want a decent terminal window client.
- GKrellem (System Monitor) - got to love fancy system monitor widgets.
Democracy (IPTV Media Aggregator) - integrates RSS subscriptions and Bit torrent what's not to like?
The plus side to this list is that all of the software is open source meaning its free as in beer.
Thursday, June 7, 2007
Today's post a cover?
Every once in a while, you just get a song stuck in your head, in my case its a cover of Red Jumpsuit Apparatus's "Face Down".
Wednesday, June 6, 2007
Software Pick of the Day: Democracy
Tuesday, June 5, 2007
Microsoft threatens one of its own MVPs?
So this all sounds good right? You've got big company supporting its development community with powerful development applications both commercial and free. Along with that you have a powerful development community that is also recognized with the company, you'd figure that Microsoft wouldn't want to mess with the good thing they've got going for it right? Well apparently not, big M, has apparently threatened legal action against Cansdale for his TestDriven.NET plug-in because it supports the express editions of Visual Studio (i.e. the free version). The reason Microsoft gave according to the Register, Microsoft is claiming (actually its some executive that apparently has too much time on his hands) that Cansdale's plug-in is in violation of the Visual Studio Express Edition's EULA, since it must have used undocumented API calls... or something to that extent (see the Register post for more details). Thus Microsoft is threatening legal action against Cansdale, check Cansdale developer blog for the most update details.
So you get the the gist of the story right?If not, here is the run down, big company develops product, encourages community to develop for their platform, the community does and their was much rejoicing. Until big company realizes that someone in that community that they recognize as a significant contributor releases a plug-in for one of their development products. All is still good plug-ins are fine, but wait why does is support our free tools? Big company can't have plug-ins extend their free software can they? Think of the loss in sales! Lets strong arm the developer into not supporting our free version of the software by threatening to sue.
So now that we're on the same page, here comes the rant.
First off kudos to you Cansdale, you've created something that the community can use, as I understand it even use to be free. I hope you still continue to support the development community you've long been apart of.
Alright now for the rant. Microsoft holds dominance in the computer industry for two main reasons one their tight with the OEM's which guarantee Windows (whatever version) will circulate in mass numbers (this will happen over time for Vista) and the second reason being that they've got one of the the largest (if not the largest) group of professional developers writing software for their system that everyone else uses. If you start messing with any of those core points your only asking for trouble. This incident won't be enough to stop your community from developing but if you continue down this path of upsetting your community, your company will fall like a ton of bricks. In the mean time you've done nothing to affect your bottom line, TestDriven.NET is a plug-in that your software supports. Don't like it? Don't support plug-ins! If all of this hasn't sunk in yet, here is the bottom line, you've angered at least one of your developers (an MVP at that!!) , tarnished your image some in the face of an important community, and you haven't even made/saved any money from it, so what was the point?
Sunday, June 3, 2007
Flash Pong 3D
![]() Click to Play! |
Since I recently did a re-creation of the 2D version of Pong in the XNA framework I thought it appropriate that I put up a web based one, which apparently has been around a while. In any case enjoy!
