An interesting side effect of releasing XNA Express is that there seems to be an uptick of interest in C# and the .Net platforn in general. A 4 page thread sprang up last night on NewGAF and the community is absolutely bubbling to get their hands on it and create some homegrown games.
I added my $.02 in an earlier discussion:
As a CS major and having written code in multiple languages, I'd have to say that C# is my favorite general purpose programming language. Having written Java for 4+ years as well, I have to comment that the jump from Java to C# is relatively easy and fairly natural as C# basically took Java as a starting point and improved upon it in many ways. As for C/C++ developers, generally speaking, C# can do anything that C++ can do via unsafe code blocks that allow direct access to memory regions (typically protected by the managed .Net runtime) in addition to directly interfacing with Windows APIs via PInvoke. The language is far more like Java than C++.
To begin with, the development environment has been made "stupid-friendly" so that even programming newbies can jump in and start writing code and testing in a matter of minutes. Now you can debate whether this is good or bad (many, including myself argue that this is a bane as it means that there are an excess of sub-par "developers", but regardless, it's a well designed development environment that still has all of the advanced features used by more seasoned developers available).
The Express products from Microsoft are top notch. Considering that they are free, they are pretty ****ing sweet (I myself don't use them day to day as I use the full retail versions, but I've tried all of the Express products and they are basically castrated versions of the full blown product with some usage and licensing limitations).
For learning C#, in my opinion, the absolute best book to start with is Pro C# 2005 and the .NET 2.0 Platform, Third Edition. This book covers many aspects of the .Net Framework that every .Net platform developer should be aware of. It leads by simple *running examples* with full source code and contains a wealth of information on advanced topics that are not touched upon by many lesser books. I've found, after reading this book, that every "advanced" .Net platform question that I've been asked on interviews in the last 2-3 years is covered by this book. Fear not, though, the information and examples are well written and well thought out so that it's easy to follow and not only for "Pros" as the title would suggest.
As for how to start with .Net development, as I mentioned, C# and .Net are "stupid-friendly". This means that generally, for beginners, command line compiling is a thing of the past; you simply download Visual C# Express (it will install C# compilers and tools for you), create an appropriate project type (Console application is a good place to start), fill in some code, and hit Ctrl+F5 to run your code. It's literally that simple to get started. Visual Web Developer Express versions should also include a built in web server that it uses by default when running web code so setup is trivially easy if you're interested in that.
As a reference, it's a good idea to pick up the .Net Framework SDK as it contains documentaion and additional tools that are userful for all developers: http://www.microsoft.com/downloads/d...4-C96D69C35DEC
Microsoft also has a subsite dedicated to kind of teaching beginners how to write code with more interesting examples (articles on the 'Net and in books typically cover console applications to demo language features and use business application examples otherwise as most users are are professional developers), including game code: http://msdn.microsoft.com/coding4fun/. So Coding4Fun is a good place to start with more interesting code examples in .Net.
There's a link off of the Coding4Fun main page to a series of webcasts on video game development in C# and a two part series on how to write Soduku in C#, WPF (next generation presentation API for .Net), and XAML.
Ah yes, and the other engine that I had looked at was formerly known as RealmForge and currently known as Visual3D.Net, which used to be completely free (but now has a few different tiers). Of course, you won't need these once XNA comes out, but in the mean time, if you have interest in trying to write games on the .Net platform, these are good places to get a head start.
I figured I'd cross post this here as there are a few good resources and starting points in there for anyone thinking about starting to learn C#.
It will certainly be interesting to see how the community over at NeoGAF proceeds and whether this initial bubbly enthusiasm holds over a long period of time. But I think it's good any time you get people interested in your products and solutions that otherwise wouldn't be (musicians, students, graphic artists and so on, to name a few). Microsoft definitely gets bonus points for releasing XNA Express and opening up XBox Live!
To summarize, Mr. Jarrar had been wearing a t-shirt with the text "we will not be silent" in both Arabic and English.
What followed is perhaps every immigrant or non-anglo's worst nightmare.
It's an amazing account that must be read. It raises the obvious question, "What the fuck is going on in this country?"
don't know. I find it quite scary as an non-anglo American. While I'm
from Taiwan, I wonder how I could be treated by anglo-American's should
a war break out with China over Taiwan. It's a scary thing. I wonder how my wife
(of Polish-Italian descent) would be treated, sight unseen, as she bears my last name of Chen. Would her appointments be declined? Would people change tone once they saw her face to face? How would people view me? "Hey, I'm on your side! Go Taiwan! Go USA!" I can only guess what the majority of US citizens of Middle Eastern descent, Muslim or not, are going through right now...
It's depressing in a way because, as Mr. Jarrar states, the very reason so many immigrants have come to call America home is because of the freedoms afforded to us and the Constitutional rights that America instills upon her citizens.
Raed asked of his interrogators:
"Why do you want me to take off my t-shirt? Isn't it my constitutional right to express myself in this way?" The second man in a greenish suit interfered and said "people here in the US don't understand these things about constitutional rights". So I answered him "I live in the US, and I understand it is my right to wear this t-shirt".
As long as a small group of people can inflict mass panic across a large population, the tactic itself will remain viable. One way to deal a blow to the effectiveness of terrorism is to deal with the terror itself.
The stupidity of the whole situation cannot be escaped: it's a freakin' t-shirt and security let him board the plane with the t-shirt anyways!
As we continue our fight to bring our style of democracy to the Middle East, ironically, we continue to see our rights and freedoms eroded. Quite a quandary. It's intriguing to think whether this is the brilliance of Osama in action. Has he calculated this type of response in his attacks? Has he forced the West into an anglo-Christian vs. Muslim battle (or at least the appearance of one) so that he might get more support and strength? Is this how he wants us to react: to create another generation of dis-illusioned and malcontent Muslim youth to continue his Holy War?
While I do believe that Mr. Jarrar was intentionally trying to be provacative, I believe that it is his right to express himself according to the rights afforded to him by the Constitution. Obviously, they did not deem him to be a threat to security as they let him on the plane after changing his shirt, but I can't help but feel how humiliating it must have been for him to have his rights stripped of him like that. It would be one thing to request an extra air marshal to keep an eye on him...it's an entirely different story to confront him like this and violate his rights.
There are proponents of profiling that believe that this is the type of action that we need to take to increase the efficiency of our airport security and for the convenience other passengers. But have we forgotten Timothy McVeigh? Have we fogotten that white American citizens, working for the US Government, can be had for the right price? In the end profiling would simply be a "feel-good" security measure that would in fact, decrease the security in our airports. Even Israelis can find Arabs sympathetic of their cause and convince them (or perhaps force them) to spy on their country men for Israel. What makes us think that the same couldn't happen with anglo-American's?
I really don't know where I'm going with this, so I'll offer some choice quotes from the Fark thread:
If i was there, being an average-looking white (non-terrorist'ish)
dude, i'd have stood up and said 'hey man, lets just swap shirts. they
won't care if an average-loking (non-terrorist'ish) white dude is
wearing an Arab Hate-Spech shirt, it'll just be like "fashion" to these
moron's, so lets just swap shirts' .. and i'd let him wear my "Free
Winona" or "OBEY (André)", or maybe "Nuke Gay Whales For Jesus" t-shirts
"Scandalous" raises excellent points against the "but it's a private jet" argument:
I cannot believe that I am arguing in support of Raed, but the
"privately-owned jet" argument is not very persuasive for the following
1) Purchase of a ticket forms an express written
contract, where the airline gets paid and in return promises to deliver
the bearer of the ticket from place X to place Y, subject to certain
regulations, and barring unforeseen emergency.
2) There was no unforeseen emergency other than that created by the airline in connection with Raed's shirt.
A statute, an airport rule, or an airline regulation are all examples
of "certain regulations" in (1) above. The security personnel could not
identify a regulation that could bar specific performance of the
contract that the airline entered into. Hence, I am not convinced that
such a regulation exists. I am therefore compelled to side with Raed in
insisting that the airline carry out their side of the bargain.
He is misapplying Schenck v. United States. You can in fact wear a t-shirt that says, "I am a bank robber and going to a bank."
Clear and present danger was replaced with imminent lawless action.
wearing a shirt with Arabic script is determined to create a lawless
action, to be fighting words, or racially offensive, then a policy
should be created and applied to everyone. In this case, an ad-hoc
policy was created and applied only to him. That's the problem that I
have here. If it is truly a problem to wear a shirt that has Arabic
script, then add it to the growing list of policies. To be detained by
Federal law enforcement until you change your shirt pretty much is a
violation of free speach. That ad-hoc policy wasn't being enforced by a
private company, it was being enforced by the Government.
insistence that it never happened is weird. You can't prove that it
happened so therefore, it never happened? Isn't that argumentum ad
I think it is important that as Americans, we stand
up for our civil rights. Standing up for our rights isn't being
liberal, standing up for our rights and not letting our enemies get the
better of us is extremely conservative.
This past week marked the 25th year of my life.
I've never been one to dwell on birthdays and the like; I'm not one to believe in relative and arbitrary systems, as our calendar is, but I cannot help feeling...old.
Yup, a "mere" 25 and I already feel old. My wife says I have some gray hairs already. You know, in high school, I used to be able to get my whole hand above a regulation rim (genetics cursed me with hands just ever so slightly too small to palm the ball while attempting a dunk); I used to be able to play basketball at the park in the sun for 4-5 hours at a time without much issue. Nowadays, a few good minutes at the gym and I'm winded and heaving for breath.
Such is life. Did I mention that I feel old? Not so much in spirit I guess. I still enjoy many of the same things I did in my younger days (now I'm sounding old, too...just wait 'til I turn 30) like gaming, playing basketball, Scrabble, watching X-Files, and working out. Simple things, you know? But at this junction in life, I'm beginning to wonder whether I'm being too simple. After all, there is a world to see and experiences to live out there. But then again, I'm quite lazy when it comes to travel (lucky you're not my wife).
Perhaps Perry Bible Fellowship sums up my view of birthdays best with this simple comic strip. To be another tick closer to the end of it all. 25 is a weird milestone. It's the age when you're finally allowed to rent cars without penalty. You typically get an auto-insurance discount when you're 25+. It's the outlier of that 18-24 age bracket so covetted by advertisers (what, 25 ain't good enough for you?). It's half ways to 30.
Not all is bad in the passage of the years; my relationships, I think, have gotten better in the last few years. With my wife, with my mother, with my sister, and with others around me. I've always been a personable guy (okay, maybe that's stretching it :-)), but not necessarily a sociable guy (likely due to my INTP profile). I still live in my head waaaay too much, but I like to think I'm working on that (see what I did there?).
I watched The Weatherman today with the wife. It's a great movie and I think it only made me start to do a bit more thinking about life. I'm not sure who originally came up with the saying that "nothing worthwhile in life is easy" (paraphrasing), but it's quite true. From interpersonal relationships, business endeavors, interior decorating (just because I've been on this interior decorating kick), cooking, basketball, photography, archery, anything...if you don't put effort into it, the end results will be nothing more than a fast food experience: passable, but ultimately unfulfilling and providing little nourishment (and it may even cause some constipation tomorrow).
You know, this last week I was stuck in a hotel in New Hampshire for four days and on my trip home, I contemplated what it was that I missed the most. It was not my 42" HDTV (though I did miss my ESPN2 and USA Basketball). It was not my leather office chair (though the room did have the most uncomfortable chair ever designed). It was nothing like that. It was my mom's cooking. I missed it terribly. I missed it because so much love and care goes into each meal she prepares. She asks what I want to eat, she cooks with great enthusiasm, and she prepares the food with great care. It's because it's not easy to prepare a full meal and work a full time job, as she does many days of the week, that I find it so worthwhile and fulfilling (or to put it another way, yummy in my tummy). Needless to say, I'm not looking forward to "that day".
I guess growing old does this kind of thing to you. You start to think about the things a little differently.
On a (vaguely) related note, I cracked open two fortune cookies on Tuesday and came away with some good fortunes.
Don't be discouraged, because every wrong attempt discarded is another step forward.
And Sandra's (I stole her fortune :-D):
Doing what you love is freedom. Loving what you do is happiness.
Last week, I touched upon how Microsoft is innovating with the XBOX360 by opening up the gaming console to small time developers, regular-Joe programmers, and students.
And of course, last year, I was just blown away by the initial peek at Nintendo's new controller and how it literally changes the way we interact with games and adds another level of immersion.
So what about Sony and their PS3 then?
It's hard to say. For the most part, I don't think that I've really been blown away by anything that has been touted for the PS3. For one thing, I tend to view it simply as a Trojan Horse for Blu-Ray technology, an inferior technology so far as audio/video quality is concerned compared to Toshiba's HD-DVD, so that Sony can cash in on it and force it down our throats.
Is Blu-Ray innovative? I don't think so; it's more of a natural evolution of the DVD format and basically gives us a bigger storage medium. Aside from that, there's not much that excites about the PS3 from a gaming perspective at all. Sure, it'll pump out some slick graphics, but is it innovating in any way? Sony copied Nintendo's montion sensing controller capabilities (half-assedly), so that doesn't count.
To me, the PS3 has been perhaps the least interesting of all the next generation consoles and the one that offered the least amount of innovation. But today, some news came out that showed some promise: the PS3 will run Folding@Home. It's not that Microsoft's XBOX360 can't do this as well, but for the first time, someone will be copying Sony this generation. It seems like a match made in heaven for these compuationally expensive distributed computing projects as both XBOX360 and PS3 have CPUs capable of highly parallel computing (the PS3 features 7 SPEs while the XBOX360 features three, symmetric, dual core processors).
Interesting news to me at least
That's right, none of this create in a GUI and export the script deal; all hand written SQL from the start for me.
Am I being elitist in this manner, then? I don't think so. There are clear advantages to this approach as it allows for fine grained table structure tuning and a certain level of visibility. If I design a database table with certain constraints, it's easy to see those constraints laid out in the code but not so easy to see them in a GUI where those same constraints may be hidden behind dropdown boxes and multiple forms. Another big advantage is inline comments to convey reasons why a table has a certain structure or how a relationship works or some quirky design. It's good to have the comments inline instead of in a separate document so one doesn't have to keep referencing two documents.
Sidenote: I think this is why I have a dislike for many solutions that leave a lot of functionality hidden behind complex GUIs like BizTalk, Reporting Services, and DTS. As cool as BizTalk is, I hated working with it because it involved so much damned clicking, scrolling, and mouse movement in general to get anything done.
Being as fussy as I am, it kind of riles me up when I'm handed generated DDL scripts as 1) the formatting is never satisfactory and it's hard to read due to the added tokens inserted by SQL Server Enterprise Manager, 2) there are no inline comments so I can't tell the designer's intentions and makes it difficult to understand wacky design decisions, 3) there is no default data generated.
For the purposes of testing in a team environment, it helps tremendously to have hand written DDL scripts that create the necessary data objects along with the proper permissions and insertion of test data. It's incredibly infuriating (yes, infuriating, I sit here and mumble curse words and slap my forehead in disbelief) when I receive exported DDL. For all intents and purposes, it seems...unprofessional and, to borrow a term from gaming lexicon, noobish. It causes me psychological anguish to deal with exported DDL. Gah!
Okay, I guess enough moaning :-S
So I got an Asus W7J via UPS today (joy!) for my sister-in-law, who's attending college as a freshman this upcoming semster. I had a very good impression of the W5F when I purchased it for my wife in May, so I decided to stick to Asus laptops (I did momentarily, in a haze of insanity, contemplate a Dell as the W7J availability was scarce).
At the time of purchase, the W7J was selling for far less than the W5F (difference of ~$250.00), which made it an awesome deal considering that the W5F is only equipped with integrated video while the W7J has a dedicated video card. However, as I checked Geared2Play's website, I noticed that the W5F is now retailing for less (@ $1329.00) than the W7J (@$1449.00). D'oh!
Unfortunately, the W7J is only available in the US in black. I guess this is to differentiate it from the W5F a bit? As with the W5F, you can tell immediately as you pick up the laptop that the W7J is a high quality component; the chasis is very sturdy. You'll see in the pics just how similar these two notebooks are, at least cosmetically.
Still in the box
Profile shot; not the thinnest I've seen, but very compact considering what's in the package
Touchpad is made of the same material that the handrest is. It's not a very "slick" material, so there is some added resistence when using it
Screen is better than I expected! From what I read, the new "V-Cut" technology was supposed to be a bust, but the screen is extremely bright with good contrast and very good viewing angles
From the other side...
Vertical viewing angle...
Surprisingly, the size is extremely close to that of the W5F; I expected it to be larger (the angle distorts the size in this photo)
About the same height...
Can't see the W7J under the W5F at all!
Another size comparison shot, this time the W5F in front
The W5F and W7J screens, side by side. Both laptops are on AC power and on the second highest brightness setting. My opinion is that the W7J screen is better than the W5F in terms of contrast and brightness. The W5F's screen, compared to the W7J's, looks ever so slightly washed out. In addition, the larger diemensions of the W7J's screen makes things much more legible and reduces eye strain.
The W7J seems to have better vertical viewing angle...one of the best I've seen on a laptop.
Two very nice laptops from Asus
Back to back...
The W7J is indeed a nice laptop. Knowing that the W5F is cheaper than the W7J now, would I still have picked the W7J? Well, not for my sister-in-law, who really has no need for the additional processing and graphics capabilities (1.66 Ghz vs. 1.83 Ghz, W5F and W7J respectively). While $1449.00 is a damn good price for this laptop, it's ultimately more than I would have liked to spend since she'll probably just end up using the office applications and browsing the web. For any business users and developers, the W7J is a steal. As for myself, even I'm getting itchy to pull the trigger and forego Merom (so tempting).
As a side note, I find it weird that many developers prefer monster 17" behemoth laptops. I myself have a 15-incher currently and I find even that to be intolerably cumbersome when I have to travel. As such, I've made up my mind that I'll likely get a smaller 12"-13.3" laptop the next time I upgrade. Since I hardly ever use the laptop keyboard or screen, as I am always plugged into a proper LCD screen and I use a wireless USB keyboard, I don't see the need to get a laptop with a big screen. If I'm travelling, I'm more than willing to give up the screen real estate in exchange for a laptop that's easier to handle.
But that's just me
Compared to all the love that Nintendo has been getting for innovating in terms of how we interact with our games, both Microsoft and Sony have been accused of not innovating enough to provide for a compelling reason to purchase either platform simply to get prettier versions of yesteryear's games.
Certainly, Live is a huge innovation on Microsoft's part, but an old one that has existed since the original XBox (yes, it wansn't the first online console, but it was the best implementation (and still is)). But it still seemed like it fell short a bit by not allowing for far greater possibilities, namely, user generated content (community created games). This was the first thing that I thought about when I read about XNA before the XBox 360 launched.
Well it seems like Microsoft is going a step further by releasing a free version of XNA (much like the Express versions of SQL Server and Visual Studio):
Talking on the eve of its Gamefest event in Seattle, Microsoft has
revealed XNA Game Studio Express, a new product which will allow indie
developers and students to develop simultaneously on Xbox 360 and PC,
and share their games to others in a new Xbox 360 'Creators Club'.
The details of the new tech are as follows: XNA Game Studio Express
will be available for free to anyone with a Windows XP-based PC, and
will provide them with what's described as "Microsoft's next-generation
platform for game development." In addition, by joining a "creators
club" for an annual subscription fee of $99, users will be able to
build, test and share their games on Xbox 360, as well as access a
wealth of materials to help speed the game development progress.
Nice! This is quite awesome as it opens up the home console to anyone with a few dollars and the ability to write code. In itself, this is quite an innovative concept in the cosole gaming arena (it's been done on the web in the form of Flash games for years now), but it will surely also lead to innovative games and gameplay concepts as it will allow quirky, oddball ideas to flourish which would otherwise flounder in today's mass market games development.
Certainly, my feeling is that the ratio of good games to bad will be very low, but even if 1 in 10 is a keeper, I think it'll be an amazing success and offer a much greater variety of gameplay aside from FPS style games which XBox 360 is known for ("Bald Space Marine" syndrome) at an affordable price which will likely draw in a larger audience.
It will be interesting to see how Microsoft handles the various issues and questions that arise from this and how they build the marketplace to sell these user created games (or are they free?). Will users be charged for the distribution of the games (to help pay for bandwidth and hosting)?
Regardless of the details, it's a ground breaking innovation in the area of console gaming and hopefully, it'll bring into the fold a new generation of console games developers who have the freedom (not constrained by big budget funding) and desire (not forced to program shitty games to put food on the table) to create new gaming experiences.
Will you look at that?
The team that won the Autonomous Underwater Vehicle competion used Microsoft Windows XP Embedded to run their bot.
From the team's white paper:
The Windows XP Embedded operating system along with Matlab 7 were utilized in order to create an easy and quick development environment.
Not only did the team win, but they retained their championship title from last year.
Welcome to the inaugural "Developer Life Lessons" post! Like my DevTools posts, I hope to make these a series which contain little developer life stories, tidbits, and advice (at least whatever I'm qualified to offer).
So what shall our topic be for this first post? How about the most crucial and perhaps most overlooked (by some) tool of all: the developer workstation.
Lesson 1a: Always have a backup machine. Hardware fails, catastrophes happen. Be prepared by having a second dev machine which is fairly capable and has most of the necessary software already installed. If you need to, take a day to do this on some project down time...most managers will understand and will be supportive as having a backup in place and ready to go with a few updates could be a life saver come crunch time and your workstation refuses to boot. Of course, this goes hand-in-hand with having a good backup strategy for your code and source control to get your working code onto the new machine (we'll cover this in later editions, I guess). If you work in a team, you should have at least one backup machine for every 10 team members (random number :-D). It just makes sense, you know?
Lesson 1b: Never buy Compaq or HP. Never. I would not use their top of the line machines even if they gave them to me for free and paid me to endorse them. Compaq and HP are truly pieces of turds that should have no place on a developer's desk. I have never had a single good experience with either brand and refuse to buy anything made by these two terrible hardware manufacturers. Be it printers, laptops, desktops...whatever, stay away, stay far, far away from these two brands.
As in all cases, a true geek never trusts his/her machine to the unknown by buying a retail PC (different story with laptops as DIY is still not as common and accessible as with the PC market). A true geek will always hand build his/her primary machine (and of course, use the old machine as the backup (see Lesson 1a)).
The big benefit of course is that as you pick your own components, you can optimize the pieces for what you plan on doing and you can ensure that every piece is from a known manufacturer with a good warranty.
Indeed, it requires more research, possibly more work, and possibly more money, but in the end, you have a fine tuned tool that you can be proud of, that you know inside and out, and that is far, far better than what you'd otherwise get from a retail PC manufacturer. With the amount of resources on the web these days on building PCs, it's really quite trivial and I think it's something that everyone should do at least once.
If you absolutely must buy a retail PC, then go with Dell. Dells suck hard as well, but not nearly as hard as HP/Compaq. Of course, having the luxury of building your own workstation is not always possible and is in fact quite rare, but if you do have the luxury, dont' settle for a retail PC!
Lesson 1c: When interviewing for new jobs, always make a point to check out the machines and monitors that people are using in the office. If they're using machines from 2002 with Celerons, 512 MB of RAM, and stuck with Office 2000 and still using CRTs, it's typically a sign that the company is tight with the purse strings. This can be a good thing in general, but when it comes to development machines, it's always a bad sign as having good workstations (don't even have to be top of the line) shows that the managers understand the needs of the developers and they've invested in making sure that they've done everything they can, from a hardware perspective, to help make the developers as efficient as they can be (who wants to sit through lenghty compiles?). After all, time is money and slow machines bog down the developer and those seconds and minutes add up over time.