Tuesday, June 21, 2011

http_fun_with_telnet

Subject: http_fun_with_telnet
note: originally emailed 06/21/2011 and sanitized for public consumption



This message [will help explain how] to speak HTTP via a TELNET session.

But, figured that I email this to everyone else -- just in case anyone might find something interesting in this little tid-bit.


If you have your own web server, you can test it like this:

telnet 80
i.e. telnet google.com 80

The command prompt window screen should be cleared after the command is typed in.

NOTE: the following commands (including the blank line) will not be echoed...

Just copy (both lines between the dashed markers) and paste it in your command prompt.
-- get page --
GET / HTTP/1.0

-- end commands --

This should return the index page of the web server you contacted.

Here's how to JUST get the header response from the web server:
-- get page --
HEAD / HTTP/1.0

-- end commands --

For the rest of these tests, using this simple PHP code -- we're going to understand how POSTDATA and data in-lined with GET are handled:

-- http_fun_with_telnet.php --
<?php
    if(empty($_POST))
        echo "No GET or POST variables found";
    else {
        echo "POST variables:";
        print_r($_POST);
    }
} else {
    echo "GET variables:";
    print_r($_GET);
} 
?>
-- end of file --

In your browser, go to:
http:///http_fun_with_telnet.php
http:///http_fun_with_telnet.php?item1=value1&item2=value2
Note what was printed in the browser.



Now, on the command prompt:
telnet 80
Retrieve the manually to make sure things are working:
-- get page --
GET /http_fun_with_telnet.php HTTP/1.0

-- end commands --


[Let's try] again:
telnet 80
[This time] with in-lined GET data embedded in the URL (just like the second browser link above):
-- get page --
GET /http_fun_with_telnet.php?item1=value1&item2=value2 HTTP/1.0

-- end commands --


Now for the fun [part], again:
telnet 80
[To] retrieve the page via POST – NOTE, no data is embedded in the URL fetch:
-- get page --
POST /http_fun_with_telnet.php HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

item1=value1&item2=value2
-- end commands --
The "25" is the string length of the last line.

Yes, you need to feed the POST data size to the web server before sending the data.

Content-Type and Content-Length are the 2 minimum required headers you need to send to the web server in addition to the fetch line.

It is possible to send binary data in POST and only POST.  This is how you upload photos and stuff to a web server.  But that’s for another post…


That’s all I have for simple HTTP fetching…

P.S. did you know SMTP (simple mail transfer protocol) works kinda like this too?


So, now [you can see] how easy it is to craft your own HTTP [request headers] to [talk to] your web scripts hosted on your server.

Have fun! -- Nick Shin

Sunday, October 18, 2009

Captured! By Robots


yesterday, i went to see a show. a one man -- er, one meat bag band. i see a few others, but don't normally go out of my way to watch em unless i know the members directly. like the band my brother's in [ ZeroStars ] or the ones a few of my buddies are in [ Even Bigger ] and days past [ Skagina ].

but yesterday's show was interesting. normally, music to me is like TV. i can either watch it while learning something new, leave it running on the background if it's not that important for my undivided attention or skip it while trying to find something i like. let me rephrase that. music to me is:
  • not my salvation
  • doesn't compel me to save the { flavor of the day }
  • help feed { some kind of meat bags }
  • or move me to { tears or rise against the masters}
the news in general does that quite nicely for me. (although, i do need to get some of that overseas to get the full picture...)

so, it was ironic when i watched the movie "Almost Famous" and remembered the line:
"They don't even know what it is to be a fan. Y'know? To truly love some silly little piece of music, or some band, so much that it hurts."
Sapphire - Almost Famous
it was at this moment, that it dawned on to me that some people (crazy music fans) think like this. it seemed that this also applies to sports, games, cars, whatever. i just never thought of it in terms as the center of the universe.

anyways, back to the show. i was asked if it was a life changing experience. "uh....", i started. that's was when i forgot about how music people thinks.

i mean, really, the show was vastly different from the ones i have seen before and was more interested in antics, gizmos and gadgets than the songs. but i was happy. happy when meat bag said, "doing covers is the new punk" - happy when donkey kong (or some kind of motor-vational ape) was on stage - and happy when DRMBOT-0110 was doing 256th (could have been 29 for all i know). it also seemed that GTRBOT-666 was only using one string for bass - but was not as pretty or as head-banging with long flowing blond hair and other generous sized proportions as the bassist (forgive me for not remembering your band's name...) who played before them.

while i'm more about video games than anything lately -- i really didn't care about the beatles rockband game announcement earlier this year:
Beatles to re-release catalog alongside The Beatles: Rock Band
Apr 8th 2009
but totally dig this music video - video games related music video:

via: destructoid.com 07.11.2009
Attack of the Show celebrates 1,000 shows


doh... i still want to hate that channel... or, is it time forgive...

Friday, May 1, 2009

side of bacon with pork chops, please

[ image courtesy of gizmodo.com ]
bacon blew up on the scene with the bacon suit, bacon scented or flavored this and that, bacon salt, bacon haikus, bacon weave, and bacon kevin.

so what's one way to stop the bacon craze?

make it a health hazard! and if you really want to loose your appetite for hog, check out this Rolling Stone's article:
Boss Hog
Dec 14, 2006
but, seriously. i'm sure you've all seen by now how the swine flu numbers are tiny compared to motor vehicular fatalities or homicides or even smoker, cancer, heart attacks, etc.

yet, this panic attack has gripped the nation -- when basic preventive steps are only needed, which are essentially the same thing for every other common disease/virus - wear protection, wash your hands and don't eat $#!t that isn't clean (unless you like having dysentery).
Critical Alert: The Swine Flu Pandemic – Fact or Fiction?
Apr 29th, 2009

1976: Fear of a great plague


(Motor) Fatality Analysis Reporting System Encyclopedia
damn, motorcycle fatality rate is going up... better be more careful out there...

The Disaster Center (US) Crime Rates
look under "MURDER" for mortality rates
scroll to the bottom of this link to find your state!

anyways, getting back to the meat of this post. since there isn't any news to "shock" the nation into fearing something, the powers that be were using my latest invention to figure out what to blast over the airwaves next.

[ pick-a-panic-attack ]
this magic highly scientific piece of equipment will figure out what's this season's flavor flav. the cool part of this is: it has a string you pull to pick another one.

and now, something else from my childhood that would be worthy of this robot-chicken-esk article.

[ image courtesy via boingboing.net ]

welp, the video game project i'm working on is almost done. so i will be able to get back to writing my bi-monthly blog posts. a bit of re-visiting some of my past predictions, a bit of what the h*l! are these companies thinking, a guess into what's in the future and who knows what else!

Monday, February 2, 2009

windows is doing fine shooting itself - leave linux alone

was going to make an image about shooting mafia style, but this is gangsta enough for me... congrats, cobra commander. [ image courtesy of gizmodo.com ]

Microsoft blames netbook appeal, marketing costs for Windows drop
January 22nd, 2009
"Many netbooks cannot run Vista, due to its higher resource requirements.
It is more about the growing percentage of netbooks, for which Microsoft is collecting some amount less-per-copy for Windows than it does with full-fledged notebooks and PCs."
clear, concise and to the point. a smart article. then there's this one:
Windows kicks Linux to the curb
January 25th, 2009
my first thoughts about this guy was that he just wanted to get the linux fan boys enthusiast all revved up. because, if you cut the first paragraph of this smart-@$$ article puff piece it would have seem a bit more sensible like the first one. but noooooo, he had to be a f#ck tard unprofessional about it.

so i would like to challenge that guy to answer if microsoft's FUD machine and sharks didn't have anything to do to derail the efforts for selling a simple and competitive product that just happens to not have windows installed. (here's a hint:)
Microsoft Antitrust: “The Linux Threat on the Desktop” (2006) and Predatory Response
01.22.09 (a few days before his article... dumb @$$ guess he wasn't keeping an eye on the interweb)
how about noting that vista's successor will be released in less than half the shelf live of its predecessor. or about things like this is still happening:
People Buying Used PCs for Salvage Copies of Windows XP
Dec 1 2008

let's put that aside and look at some more microsoft goodies.
Microsoft files pay-per-use PC patent
Dec 29, 2008
and a few days later:
Microsoft pay-as-you-go patent application rejected
Jan 2nd 2009
good thing this isn't a patent. (the patent office was open over new years day?) yet, there are posts that are actually in support of it. wtf wow.
Microsoft's Metered PC Idea Is Not Greedy. In Fact, It's Almost Brilliant
December 30, 2008
i don't know where you buy PC's for $1300 now a days. or why, when that's nearing Apple's territory... MS will sell it at $450? you can get that now at nearly any electronic box stores! and Dell always has fantastic laptop on sales with tricked out specs at rock bottom deals. here's a sale MicroCenter just had: $1299 Core 2 Duo, 2GB, 160GB, superdrive, 13.3" MacBook. yup. a MAC.

oh!!! i get it now. that guy was writing, "it's brilliant for Microsoft to convince people to not buy MACs and instead buy a PC with windows on it which will cost you $50 a month. and in 4-6 years time, you've just paid $2400-$3600 for that $450 PC." (btw, those are his numbers too.)

watta bargain. stupid @$$. not very cost effective if you ask me.


i guess you can't fault microsoft looking for new revenue sources. so how about one more for the road:
Microsoft's new vision: a computer in every... coffee maker?
January 12, 2009
yup, they are doing fine. windows is only good enough to power your coffee maker. you'll need to pay a yearly license to use it now. unless they forget to update their own certificate.

Tuesday, January 20, 2009

ASSERT() does not fix crashes

Windwos BSoD

A problem has been detected because coders always say, "this should never happen".

The problem seems to be caused by the use of: ASSERT()

#if DEBUG
#define ASSERT(x) assert(x)
#endif
#if RELEASE
#define ASSERT(x)
#endif

If this is the first time you have this stop error screen, restart your computer. If this screen appears again follow these steps:

Check to make sure you've bullet proof the code. If this is a new application, ask your fellow coders why you are stupid to only use asserts instead of writing the code to gracefully handle the error condition.

If problems continue, also check for other piss poor lines of code giving lazy programmers a bad name. If you need to use a Safe Mode like try{}, throw() and catch(), you're an idiot. The end user doesn't care about your error codes. Restart your computer and DEL all of your files because crashes aren't useful.

Tech information:

*** STOP: 0x00000050 (0xDEADBEEF, 0x0000001, 0xBAADF00D, 0x00000000)

*** ASSERT() - Address 1F0CED17 base at F0C17F0C, DateStamp 80fca82


first a few articles to get my point across. the following are error messages made by microsoft engineers.
Best Windows Error Ever May Rip Time-Space Continuum, Destroy Reality
Dec 6 2007

Windows Vista Error?
Jun 3 2007
and i'm pretty sure everyone on the planet (who's a nerd) has seen this great PR shot:
Blue Screen of Death Strikes Bird's Nest During Opening Ceremonies Torch Lighting
Aug 11 2008
first, a sad program just pooped out. the second one a funny accidental icon enumeration selection. and that last BSod could have been a microsoft bug. but then again, maybe not.

with what it is essentially equivalent to a kernel panic -- it pretty much rests on the lowest level of the OS where everyone can point and laugh at the main player. not the application or program.

was it a driver? or the video playback program? who else is responsible for these?
when people start to make fun of spectacular crashes on a giant projector, it's hard to remember that it's sometimes the idealistic coder that broke the application and that windows had nothing to do with it. take the following articles:
Microsoft Arcade Fail
Jan 18 2009

We Interrupt This Program With a Windows Error
Jan 1 2009

Jesus Tries to Save Your Soul But Windows Stops Him
Aug 28 2008
that isn't to say that microsoft should be absolved from all of their own problems. patch tuesdays, red ring of death and zunes freezing at new years to name a few examples.
Cause of ZUNE leapyear problem - Freescale date routine
Dec 31, 2008
now, what basically happened here was that a coder probably had a brain fart and just didn't think through of all of the permutations. it happens to every coder.
this is when i was reminded of the absolute absent mindedness of using ASSERTS();

normally, asserts and exception conditions are pretty useful for developers to announce (NOT TEST FOR) those "this should never happen" situations. to this day, i still see coders do something equivalent to the following:
my_data_block = get_some_piece_of_data();

ASSERT( my_data_block, "data block is empty" );

my_data_block->do_something_with_it();
for those who do not know what the assert() function normally does, is this:
test the first parameter and see if it is valid.
if it is OK, continue on with the next line.
if it is NOT valid, halt the program here.
sometimes, coders will have a second parameter to "provide more information" on what just happened. and sometimes, these ASSERTs are macros that get compiled out during a RELEASE build (versus a DEBUG build). in other words, they are "scrubbed out" of the code automatically when making a version of the application/program for public deployment.

here's why i can't believe people still code just like the example above. if my_data_block did not receive a valid chunk, the program will continue (in a public release build) and crash when we try to do_something_with_it... this is when you'll see one of those error message box.
like i said before, the end user doesn't really care about (let alone know what to do with) your error codes or exception messages you happen to catch. you should NEVER code like that. here's one example to code it properly:
my_data_block = get_some_piece_of_data();

ASSERT( my_data_block, "data block is empty" );

if ( my_data_block )
my_data_block->do_something_with_it();
else
tell_user_whats_going_on();
// instead of terminating the application
// all of the sudden
there are other ways to do this. but essentially, you need to make sure your code will not just die on you. any time you see an application freeze or see an error message box -- it's the mark of a n00b coder.

if you see your CPU usage spike outta control - then the coder is mediocre. something got locked in an infinite loop. these are sometimes a surprise to find. but that's when testing will make you a good coder. (yes, i still see people submitting stuff in with out testing their work. we normally call them artists. but once in a while, coders do this too.)

what's an expert coder, you ask? that's someone who stopped reading this article right after my little BSoD sample at the top of this article.

courtesy of XKCD

the only time you should terminate a process is a user supplied add-on/plug-in. keep your application running. i'm always surprised to find piles of CRAP javascript code, but am extremely impressed that web browsers will ignore malformed code. too bad not all applications are designed like this.

time and time again, i see high end applications that costs $#!t loads of $ $ $ such as Maya and 3DStudio Max -- crash. the artist constantly complaining, stOOpid editor... when i am willing to bet 95% of the crash is because of a plug-in "one of our" coder wrote to extend the exporter, importer, utility, attach-this, or do-whatever to the 3D editor. if those "scripts" were validated as well as the results they generate - i bet applications would seem much more "stable" to the end users even when shotty (or absent-mindedness) programming are applied to them.

yeah, there'll be a trade off in speed - but if it comes down to the stability of the application - this is something that might need to be considered. otherwise, it's pretty much planned, "let's ruin the user's experience..."

PLEASE DO NOTE: to the independent / individual / or just starting off developer(s); i completely understand that there is a difference with a handful versus a team of 10, 20 or 100 people that might be physically impossible to code every possibility and know all the permutations with little time (or encounter the occasional brain fart). but if your project is a rockin, and you get piles of people to work on it - please take out the "temporary" assert reminders (or use an alternative "messaging" mechanism), keep your application running and put in actual functions to gracefully handle those unfortunate cases.

Monday, January 5, 2009

the Rape of Midway Games

a long time ago, in a city far far away (at least from where i'm at right now), the Chief Monkey Officers sought to bleed as much money as they can from the company before high tailing it out of town to escape the destruction they left behind in the wake of:

i have come to the realization that douche nozzles with MBAs (and marketing veeps) who goes into a company who knows nothing about that industry - only takes the job to make out like a bandit not caring about all the peons who work there.

Work Work Work

Me Not That Kind of Orc
and anyone who plays RTS games knows that you can't do $#!t with out the humble peon worker. (images courtesy of battle.net)

note: i started writing this article dec 1st, so this article may sound a bit dated. also, i thought against publishing this since it didn't seem nice to comment on the people who used to be with my former employer (i left more than a year ago -- the writing was on the wall -- and it wasn't hard to see this coming. i gave the company 5 years left instead of just one). anyways, in light of the following articles, it was time to add my 2 cents:
Midway execs get rich while company crashes
joystiq.com - Dec 23rd 2008

Midway Execs Raked In Big Bucks While Company Foundered
ign.com - Dec 23, 2008

let's take a look back at Midway Games when the sith began to take control of the senate.
David F. Zucker Named Midway's Chief Executive Officer and President
may 07 2003

Midway Games Acquires "Area 51" Developer Inevitable for $2.1 Million
October 11, 2004

Midway Games Acquires "Mortal Kombat" Developer Paradox Development
November 30, 2004

Midway Games Acquires Aussie Developer Ratbag for $5.6 Million
August 4, 2005

Midway Games Acquires U.K.-Based Pitbull Syndicate for $3.1 Million
October 4, 2005
more than $11 million so far (ongoing salaries and the cost for paradox, etc.). but first, in light of this whole financial market disaster the whole world is currently in, a snapshot of Midway's stock at the time Mr. Zucker started to the day he filed his fire sale [businessweek.com].

MWY - Midway Games historical price
March 07, 2003 to December 09 2005
a healthy 662.67% gain. nice.
(chart from Google Finance)

this is where it dawned on me, that everyone in the financial sector are also only there to take your money. more on this a little later.

continuing, there was businessweek.com interview "Sumner Redstone, Video-Game Whiz" that has a few juicy tidbits.
...the media mogul,... sat down and explained why he's such a fan of the video-game industry -- even though he has never played such a game [ Mortal Kombat ] himself.

"this company [ Midway Games ]-- which was hardly known a year ago..."

"I don't have any information that is not public. I have told David to never give me any material inside information."

on Paramount making an Area 51 movie:
"I have absented myself completely. [Because Redstone also owns a 70% stake in Viacom, he has recused himself from Viacom discussions concerning Midway to avoid conflicts of interest. ...]
redstone has absolutely no idea what it takes to make a video game. he was someone who had a big bag of money, looking for a project to see if he can get into the video game market. the chiefs smelt blood. here's where the raping begins.
Midway Games to Sell $75 Million in Convertible Notes
May 24, 2006

Video Game Publisher Midway Faces Investor Lawsuits
July 23, 2007

Midway Games CEO David Zucker Resigns
March 20, 2008

Redstone Sells Majority Stake in Midway Games
December 1, 2008
MWY - Midway Games historical price
December 09 2005 to March 31 2008
(chart from Google Finance)
note: this chart does not include the 2008 global market meltdown numbers - only to the day zucker has resigned (almost an 88% drop)

how can redstone keep tabs on a company, that was "hardly known a year ago" (NFL blitz, NBA jam, ... mortal kombat... whatever...), let alone take a no hands approach to running the company is beyond me. he hires some guy who also knows nothing about making video games, and basically "talks the company up, just to drive it into the ground". the guy also plays the moronic "increase market share by buying your smaller competitors" bull $#!t rule.

a whole bunch of peons in the studio were perplexed at the decisions to buy studios (all over the world) only to shut them down in a matter of months (and no, no technology was ever gained from buying these studios - a sequel or 1 was sometimes done... and that's it...). and instead of reappropriating resources on projects that clearly didn't show progressive results, more money was poured into sinking boat anchors. wtf.
image courtesy of ibdeditorials.com

as for the cash infusion, there was no rhyme or reason for it at the time (other than to take more money from these "investors"). did redstone benefit from the convertible notes sales to cover his enormous loses? probably not. but i don't think the company burned through all of that cash on day to day expenses either.

zucker has managed to leave the company with a lower stock value and a humongous debt. the day before he was hired, midway was trading at $3.57 (and at around $8million in debt at the end of 2002). and on the day he left: $2.01 (and a $250million debt).


the following should be in a separate article (since it's getting a little long already - but i don't want to revisit this in a future article).

back to the money people. these dirty wh*res would lie, cheat and basically steal the money that should have been given to the people who are actual making the products. i don't know what were they thinking when they basically cut all of the bonus/royalty numbers, adjusting the payout program or renege on reserves (scheduled retention bonuses) and expect the developers to stick around.

it got so bad that there was a major meeting with the team and the finance department to explain their actions. no answers were ever given to the peon workers. the money monkeys would constantly repeat "the payout equations are complicated". i would love to see who can tell me the answer first, the finance department to rotate a point around a line in 3D space or if the coders can figure out how "complex" the royalty equations really are.

i was going to go on and on about how a bunch of brand new cars (M5's M3's and other 5series vehicles) all of these execs suddenly showed up literally on the following monday right after the theft-fest meeting - all in all, the peons got the shaft.

anyways, what's left of Midway Games right now? everyone who has nothing to do with video games are gone. that's finally a good thing. but, a lot of people i knew are also no longer there. and the ones who are still there... can finally enjoy their down time after crunching for this winter's holiday season releases (maybe permanently, too). it was pretty interesting seeing how many linked-in profile updates were fired up right after this meltdown.

it sucks that matt booty got left in the path of destruction with more than a quarter billion dollar debt to figure out. but i trust him more than any of the other "CEOh-nos" to run a video game company. an actual game developer with experience. but i would actually recommend to leave this disaster and start a brand new studio. leave the legacy of the old studio to the former board of directors and past CEOs. there is no away to keep this studio running anymore except to sell off the assets and IP for the new "owner". basically, a reset like atari did is needed.

i would like to leave this post with a pretty interesting interview with Eugene Jarvis who made a lot of arcade games that many of you may have dropped hojillion quarters in.
The Making of…NARC
edge-online.com - September 16, 2008
“The company was screwed up, like their worst competitor had staffed the upper management. The guys they hired could not have done a better job of destroying everything. A guy with no knowledge about videogames says: ‘What’s wrong with this company is we need more schedules and managers’.”

Friday, December 19, 2008

angels and humanity, i mean humility


this wonderful documentary was on the history channel. (note: i'm the kind of person that would rather watch the movie than read the book.) they didn't just talked about how angels came to be and where and when they were conceived - but also how some angels were present across some of the most prevalent religions of the world and proceeded to explain how they all pretty much came from one; from Judaism to Christianity and Mohammedanism. it was the link with the heavenly and demonic angels that got me thinking.


first, just a few things from the show that i never knew before. eve (from adam and eve) was the second women created (after lilith/adamah) to be more submissive for man? the old testament was written in a period of over 800 years? angels were influenced from egyptian and greek mythology that made it's way over to scriptures found in the 3 religions above (with near identical sounding names as well). very interesting stuff.

then, the most amazing thing i got out of the show was where a lot of angels originated from. many were first written when the "old testament" was being put together, but were "cut" from the "final edit" of the hebrew bible. and then someone decided to put them together in a book called the Apocrypha - a.k.a. the "Secret Books". to which i LOL when i thought to myself about the age old question of "why do people still fight wars in the name of the LORD" - was it because "my stories are better than yours?"

w-w-wait, bear with me on this. let's take, for example, the mythos of star wars or the tolken universe and find people who want to believe in those so much that they want to eat, sleep and breath the life.
Force strong for new Jedi church
bbc.co.uk - 21 January 2008

Darkon - A LARP Documentary


"Star Trek" Fan Documentary "TREKKIES"
it is nothing short of amazing how far people will go defending their "way of life" loosing sight of the some of the basic principles of living harmoniously many of these "universes" are trying to teach.

i mean, let's take another example, this time from south park's episode: Christian Rock Hard


All right, guys, this is gonna be so easy. All we have to do to make Christian songs is take regular old songs and add Jesus stuff to them. See? All we have to do is cross out words like "baby" and "Darling" and replace them with Jesus.
spscriptorium.com
and now as an exercise, let's see how many parallelism can be drawn from the seven sins if you replaced LORD with a pronoun, a person's name or even a demon. let's use cartman now, shall we?
"For great is cartman and most worthy of praise; he is to be feared above all gods"
"Praise be to cartman."
hmm... not very friendly is he? is cartman's ego so fragile and in need of constant attention to boost his level of self awareness he requires daily offerings, daily prayers or else incur the wrath of cartman? i count at least 5 here. i guess he really doesn't want to be forgotten if anything. the LORD is nowhere and everywhere within the Matrix. oops, different article.

so, how about we bring this back to the nerds because you're still reading this.




happy holidays!

Wednesday, December 3, 2008

microsoft, the dying patient

a few months ago i wrote why Microsoft needed to kill OLPC and touched on how add-on perks gave the perception of what's a better value. it seems now, that they have succumbed to the near unlimited developer resources in the open source communities and have begun to accept them.

Microsoft: We're all 'mixed source' companies
cnet.com - October 17, 2008

Microsoft starts distributing open-source Drupal
cnet.com - October 16, 2008
i guess the nerds at redmond figured out how easy it is to become a package distributer, repository pointer or what ever you want to call it; even though there already was one for the windows platform. cygwin is one of the most important must haves on a windows box. it basically gives me all of the tools, utilities, apps -- everything including the kitchen sink that i have always had on my *nix box.

and really, providing any of the many wonderful projects out there is probably one of the most easiest thing they could have done to enhance their existing product line. the kids on the mac platform already does this too. fink seems to be the favor of choice. (dunno what happen to the whole open darwin project though.)

but it is interesting to see how long microsoft has come since their first tirade when the whole open source software movement became a huge thorn on their side. at first:
Microsoft denies Linux threat
original denial: 03.11.98
followed by a long line of dissemination of FUD statements and money funneling scheme to take ownership of the *nix kernel via patent suits through their SCO cronies.
Halloween_Documents - wiki
December 1998 - June 2004

but they will acknowledge linux during 1999 when the DOJ started looking into their monopoly in the software market and then go right back to attacking the viability of these alternative OS with the virtual limitless amount of add-on software packages.

Microsoft rooting for Linux?
12 Mar 1999
next, the interoperability initiative is launched to lure developers back to the windows platform. as well as deals made in lieu of disclosing what patents were supposedly violated.
Microsoft makes Linux pact with Novell
November 2, 2006
and now, it seems they went and skipped the depression stage and right into acceptance by freely distributing software that was once shunned
and called too complex not but a few months earlier:
Microsoft: Open source is too complex
August 07, 2006
anyways, these behaviors show nearly all five stages in the psychology of a dying patient to the tee:
  • Denial
  • Anger
  • Bargaining
  • Depression
  • Acceptance
does this mean they are dying? well, if another one of my past article, never gonna buy Microsoft hardware again, is any indication, far from it. they have a gazillion dollars to ride this out.
when i say i the command line interface, i really mean all of the tools, utilities, applications, scripts and executables that many, if not all, had their start from the important initiatives of the GNU project.