What constitutes indie is one questions (and AAA is even harder to come to a consensus, even among my work peers) but that said...
As a child of the 80's, who adamantly played video games (e.g., Apple ][, arcade, 2600, NES, etc...) and got into professional game development over 10 years ago (I work for a AAA studio and my have my own gig for nights/weekends) I'd agree with those who say now, 2014, is the best time for indie game development.
The internet, as-is, provides indies with a way for - distance-collaboration (Skype, E-mail, Groups, etc...) - community building (Twitter, CMSs, Facebook, etc...) - fundraising (IndieGogo, Kickstarter, HumbleBundle, Paypal, custom web-based donation system, etc...) - advertising (game communities, news outlets, etc...)
Organizations, such as the International Game Developer's Association (IGDA, http://igda.org/ ) and events like the Global Game Jam, PAX (IndieMegabooth), and MAGFest also contribute to the community of indie game developers.
It is a great time to be an indie game developer in terms of accessibility and ability to achieve a sustainable income.
I have FlashBuilder on my Mac, I only use it when deploying a project to iOS - it is awful. One example: With the latest version (4.7) I deleted a project through the OS X Finder on my hard drive, that I had previously built with FlashBuilder. Afterwards it refused to start up, immediately crashing/closing, even after a reinstall of the entire Adobe suite (a recommendation on various forums.) It took a few hours combing through posts to find a helpful one that mentioned some obscure user data directory that had to be deleted.
Who writes an IDE that crashes when a project on disk is gone?
It's for this, and various other reasons, I continue to use the free, open-source alternative FlashDevelop ( http://flashdevelop.org/ ) for my Flash IDE. It's the only reason I keep a Parallels partition on my MacBook Pro.
Re:Great player missing some key things though
on
VLC Reaches 2.1
·
· Score: 1
Thank you, you are correct, in haste I posted a bug which appears to be related to screen rotation but not the one iPhone users have.
IIRC the post was in the forums, and it was answered in a similar manner as these bug reports, e.g., it's not a standard so VLC doesn't consider it a "bug", if a user requires this extra functionality they need to take the appropriate steps to manually change the rotate transform in settings.
Just searching through the forum brings up various threads related to users asking for this functionality (searched on "rotate iphone"):
Great player missing some key things though
on
VLC Reaches 2.1
·
· Score: 4, Interesting
VLC is a fantastic free program, but the attitude some/one of their devs have towards it's users is disheartening for the project as a whole.
A friend recorded a video with her phone, and held it so the video was taken in "portrait mode" vs. "landscape mode". On a PC I was surprised when VLC was unable to correctly orient itself as I was use to my Mac's native application always orienting properly.
Essentially users are told this is not a bug in VLC because the videos use a non-standard way of marking the video as rotated. Further they go on to say if a user wants to look at it, as it was shot, they need to manually tweak the rotation on the transform for playback. After a 7 step menu navigation process, this has the side effect of having to change the transform back for the next video you wish to play if it was shot in landscape mode. Essentially this has to be done on a video-by-video basis.
I'm hoping there are some Open Source projects that actually implement this correctly, but from the few I've tried so far, they all seem to have the same bug as VLC when it comes orientation. Standard or not, ignoring this rotation bit is rendering the program as crippled for 100,000's of people shooting videos this way. Coincidentally, I haven't found a commercial program that is subject to the bug, everyone I've tried (e.g., Quicktime, Adobe Premier, etc...) renders it properly.
I can always hope that, eventually, someone on the team will see the value in implementing this fix.
Maybe it's semantics, but I see "complain" to be different than "disagree". To that end there is a difference between having the "right" to complain vs. being "justified" in complaining.
So sure, you have a "right" to complain whether you bought it or not; but you're not really justified in that action unless you put money down for it. But you can disagree with the product either way.
I havent' bought an EA game that uses Origin because I disagree with the service, restrictions, and how some vocal (complaining) players have lost access to their catalog. I fear any company having that power; that as I purchase more games I have more to lose if I speak up against something I find to be an injustice (such as DRM).
If enough sales are made, a publisher is initially not interested in the voice of those who did not purchase the game until the long tail starts and new market segments have to be tapped. As of today, EA is focusing only on those who purchased the game, because they actually fronted money to play. From everything I've seen, they've been doing an excellent job to, as quickly as possible, fix a really crappy situation; namely failure by their own success.
Now if the game was never initially purchased by the target market, and the reason gamers gave on surveys was "DRM", the studio would remove it, or at the very least scale back on how pervasive it acts. The fact is: the wide majority of gamers hate DRM, talk a good talk about how it's evil, but still shell out money because, as sconeu writers in a thread below, their mentality when told they should just abstain from purchasing it is, "'But then I can't play my shiny!!!!'"
So to the OP, no; we don't need a "Gamer Bill of Rights" because we have one right now: it's our wallet. Only purchase games that you believe in. If the DRM, ethics behind a company, or anything else that has to do with a game/publisher/etc... is disagreeable with you, simply don't buy their product. That's what I do. I look forward to seeing what indie makes a SimCity-like game that compares on it's level of fun; that's where I'll be putting my money, but until then I'll wait and find other games to play.
Years ago, I left a contracted programming job at a startup that paid about $150k annually, to pursue AAA game development, starting in the low $40k. Whether working the 40 hr/week or in crunch, I was doing something I absolutely loved. It was both one of the riskiest and best decisions I ever made, and would do it again in a heartbeat.
...Here's an idea, how about we start running Slashdot stories when something from Kickstarter goes from rendering to shipping actual products.
I'd rather hear about promising emerging techs we'll see in the future than press releases when these are out to the mass public; near future projects (consumer or otherwise) is one of the reasons I read Slashdot daily.
I'm sure in the process some items will be vaporware, but I'd expect the majority of these editor approved stories will make it to consumers.
I think VB5 also supported COM. (Unsure of this.) MFC was around long before VB6. We were looking to leverage it at the project's inception but found ATL (with WTL) to provide a lite-weight alternative without the bloated class inheritance. Looking back, as good as ATL was, I don't think we would have survived using it without the WROX books and great samples from CodeProject and similar websites.
The problem is both MFC and ATL are essentially just wrappers to a high procedural, highly struct-passing Win32 API. I prefer them to straight Win32 calling, but they are complex and I'd be surprised if there was a way they could be simplified without losing the flexibility offered.
As for VB6, I believe the EXE's it generated were inherently COM enabled. Each program would support IUnknown and IDispatch. If you wanted a C++ program to talk to it, you needed the IDispatch. Inside of the VB6 world, types were great because they were abstracted, but you are right in that once you marshalled a type out of VB6 into the C++ COM space, it was a bit of a pain to have to work with types like a SAFEARRAYS instead of C array (or STL container.)
So for simple communication, it wasn't too bad. For complex interactions (like the ActiveDocuments we implemented) a crippled object model wasn't required but I would agree that it was a complex setup.
VB6 is simple, but there is a surprisingly large amount of power to be tapped from it, if you understand the underlying infrastructure.
Having done some hard core COM programming 10 years ago, for a Computer Based Testing "test driver", our team learned we could spend 2 days to get up a "ActiveDoc" in C++ using ATL, and WTL, or we could do the same thing in VB6 within an hour. Considering how fast it was to implement ActiveDocument and custom COM interfaces, I changed my mind on how weak I perceived VB6 was. (Unfortunately many of the VB trained, customer-based implementors of our interface were not as astute, and even in a VB6 environment didn't understand what they needed to do to create a component that would properly talk to the rest of our system.)
Still, knowing how quickly VB6 would let one get up an interface, I was able to help a room mate of mine create a level editor for our own rolled version of Zelda. It was a little cumbersome to learn how to read individual bytes of the palette based sprite files, but VB6 had all the power there.
All that said, VB6 should die IMHO. After (C# / VB).NET came out, it became a lot easier to make object dynamically talk to each other and perform byte level manipulation.
While it doesn't specifically have to be Apple, it seems that none of the established brands really understand what consumers need in a great car stereo. The Alpine model I mention in the above post included: a remote? Required holding a button for a few seconds to active a feature... in a car Has no way to fast scroll mp3 artists or songs, etc....
The only reason I settled on it was because it could connect to my iPod and play MP3s without a skip between the track. This was after calling up another manufacturer about their models of MP3 playing stereos and being told that gapless playback was "impossible". Thank you business man; you know jack about tech, but it doesn't matter because your company doesn't make a car stereo with a killer feature I need. (Although I could change the color of buttons; which was fun for about 1 day and I haven't touched since.)
I hate Apple's lock-in but vote for their products with my money because they really do care about design beyond what is in a device. It makes all the difference in the world when you have a product that "feels" right. Check out the Nest Thermostat, or Dyson Vacuums to see other companies who also match form and functionality.
I've witnessed writing documentation / seudo lines of code in comments on what a section is suppose to do is a quick way to ensure all pieces come together; frequently able to leave those comments afterwards to describe the following 1-N lines below it.
On the flip side, writing documentation after code can indeed point out bugs if the code is scanned as the documentation is written; it's not unlike a form of Rubber Duck Debugging https://en.wikipedia.org/wiki/Rubber_duck_debugging .
In the end, the only glaring weakness is rewriting the (more minuet) documentation when refactoring the code it's describing. But I'd argue the extra time it takes to rewrite the documentation is, again, Rubber Duck Debugging the refactored code.... a good thing.
Keep in mind that "used properly" is code for "has limitations". In particular, you have to use hot water slowly - no rapid filling of bathtubs or buckets, or hot water pressure wash.
Actually the water pressure for the (hot water in the) showers has increased since the tankless system. It wasn't awful with the old one, but one could tell the difference if two people were taking showers at once. Now you cannot tell the difference. I don't interact with my house's water system any differently before; nor was I given instructions to.
The only limitation has been a slightly longer time for the hot water to start coming out.
I had mine installed last year (4/13/2011) because my traditional water heater was cracking and had started a leak. The plumber recommended it; said while they are relatively new to (residential) US, they have been used for awhile in Europe. I did do-diligence with Google and had it put in. The brand is: Noritz ( http://www.noritz.com/ )
So 1 year past its running well; if there is a follow up thread 4+ years down the road, I'll let you know how it's handling.
I haven't had a cold water sandwich effect. Only drawback is that it takes about 25 seconds for hot water to start coming out of the faucet (vs 10 seconds with the tank). Advantages: - Mounted on wall (above washer/dryer) in basement; just gained about 3'x3' space back where my old huge tank was sitting - I have seen a lower gas/electric bill since installed - Should I choose; I can take a ridiculously long hot shower (of course always doing this would negate energy savings)
Two items I can recommend that cost a bit upfront but do indeed save money down the road: - Nest Thermostat ( http://www.nest.com/ ) - Tankless water heater
A good tankless water heater will cost a few K (with installation, etc...) so perhaps just start with the Nest. There is currently a waiting list for them, but I was able to get mine about 3 months after waiting. It looks cool, and if used properly, will continually save you money over the life of the house.
I did listen to the full retraction, the dust incident is true and confirmed. Michael Daisey did not experience that on his trip. Is that a sign of poor factory conditions? Yes. Did the factories he visit have those issues? From the official reports it seems unlikely, beyond those we'll never know for sure because the bulk of Mr. Daisey's observation were lies; including the new lies NPR brought to light based on his first responses.
It's a shame because it would be great to hear a first hand account from a credible source. There are some good pro and con observations on the overall state of factory conditions (not just Apple factories) and overtime for workers at the end of the full retraction.
", while his work has been discredited, Michael Daisey wasn't inaccurate in his claims that working conditions are poor in iPhone and iPad factories."
That statement is nonsense.
Michael Daisey was discredited because working conditions were fine for iPhone or iPad factories; none of the horrible things he had reported on were true upon his visit. I've listened to original piece (when it aired) as well as the full retraction. He had to create lies based what he'd heard of previous (outlawed) practices of various Chinese manufactures as well fabricate people, events, and conversations in order to invoke an emotional response. Then he repeatedly, unapologetically used the theater as a scapegoat as to why he could tell people that he was telling a factual account, but in reality, was more lie than occurrence.
That said, the OP does have a good question about sweatshop free phones. I wish there was a list for all goods and services; seems internet searches pull up a lot of hits for clothing and apparel, but not so much for electronics.
Speaking as a current indie & AAA gamedev who has built game-related curriculum for 3 schools (middle school through college)...
Because of the diversity of student types (artist vs game designer vs programmer, etc...) I recommend teaching EPIC's Unreal Development Kit (UDK). The tools are mature and will immediately offer something to every role on a game project. As for yourself, the UDK uses Unrealscript which is based on a C++/C# syntax. There is a wealth of knowledge via books and internet tutorials. (e.g., Just typed in "UDK tutorial" in YouTube and received over 4500+ results!) A nice bonus is that learning UDK is something the kids can actually put on a resume and/or help them get an internship.
Milage will vary with other pre-built gamedev environments. Below are a few all-in-one-solutions that have editing features, based in a Windows environment:
I'm both a professional and hobbyist game developer.
For Flash / Actionscript content, there is nothing better than the open source FlashDevelop. It's only shortcoming is that it's built on tech that requires it to run on Windows based machines.
For C++ based content, nothing beats Visual Studio. All the devkits and engines (Wii, Xbox360, PS3, DS, Unreal, etc...) as well as middleware are pretty much expecting devs to be using a Visual Studio base environment; at the very least for programming. (Debugging on PS3 is another story...)
If Mac or Linux had a great open source IDE, I'd jump to it. The only mature option I know of is Eclipse, and in it current form its awful to use. There isn't a single game developer I know who would touch it with a 10 foot pole.
So the IDEs are keeping me on Windows; or at the very least on Windows in a virtual machine.
That's one piece of the puzzle. Two of a few examples that come to mind...
How did he get some of the best talent to work for Apple; especially in the late 90s when engineers knew it was nearing bankruptcy and the dot.com boom was paying top dollar for talent in a variety of interesting projects?
How did he get a good number of the consumer populous to think of Apple as being "THE" computer worth having; especially when it offered similar or only slightly better performance and features to what established big dogs (i.e., Dell, Compaq, and HP) were offering?
I grew up idolizing engineers like Woz & Carmack for their engineering skills; it wasn't until years of participating in group projects, and taking leadership positions on teams of 6 - 12 people have I realized how underrated amongst the technically proficient are the humanistic contributions that go into any project of a significant size. The larger the project, the more likely it will fail without stellar leadership. (e.g., Take a look at what Longhorn claimed and what it became when released as Windows Vista.)
I truly believe Steve cared about his products beyond the profit; he knew a great product, marketed the right way, would bring the profits. I wish more companies used this mentality.
I hope whatever qualities Steve possessed, that allowed Apple to be successful during his oversight, are able to persist amongst his successors.
I have tried it and have to disagree with you; a few devs on Civ5 were doing this so I rotated my 2nd monitor (a 16:10) to try it out and haven't gone back.
Great for FlashDevelop, VisualStudio (especially with Scott Hanselman'sfree RockScroll plug-in ). Also not too shabby for certain web-sites with lists (e.g., Grooveshark)
I had a fastfood job one summer, needed money for car insurance since I blew it all on a 386dx-40.
The job was okay, but I wouldn't say "fun" and I was reprimanded for my one attempt to liven it up by making smiley faces in mustard. (Burger King rules: 3 rings ketchup, 2 rings mustard; no smiley faces!)
Working full-time in the games industry is much more fun, even with crunch. Besides paying better (well less than other IT jobs) It's more creative, and you know you're making the world a better place... or at least a more fun place.
You raise valid concerns but I don't feel biased as my livelihood is dependent on C++, Unrealscript, and Flash right now.
I agree, a web of standards (HTML5, CSS, Javascript) would be a world better than one of any proprietary technology. While I love Flash because of how I can quickly produce great results, I don't believe it's the end-all, be-all solution.
13 years of web work is impressive. I've been tinkering with HTML/CSS since 1996 on various sites and have had about 7 of my 10+ years doing it on/off for a salary. The biggest problem I had wasn't Flash, but was how IE5.0 - IE6.0 handled CSS and the DOM. Its funny as it was because of Microsoft's apathy in implementing standards correctly which drove me to do the bulk of my web development in Flash. (One can only spend so many hours playing with the box model to get margins & padding to align).
The tech (HTML5) solves half the problem, I don't believe we'll see wide adoption on the web until better tools exist. Flash is great for designers & artists to make content. (CS4 is lacking for programmers.) I hope a killer app does emerge, as it will mean either a more standards-friendly, media rich web; or at the minimum a push to Adobe to keep innovating and not rest on their past success.
I'm not an "amateur" or "hobbiest", if labeling myself a "professional" is arrogant in your eyes, so be it.
If sufficient "bloat" existed in Java,.NET, and Flash then they would not be adopted by the industries as a whole. Today a web search on why these languages are great alternatives to previously "standard" languages such as C / C++, will turn up many articles.
The fact is that if C / C++ was a superior language for all situations, other languages would be left to fall into obscurity. But instead we see a majority of the Game Industry use script languages (lua, python, unrealscript, etc...) for game logic, Flash for UI (over 60% are using a single vendor's implementation), and the IT industry as a whole sink billions into.NET / Java applications.
The last non-game, full-time job I had involved me helping a team to port an enterprise-level C++ application to.NET. The.NET version was a huge success, more robust, easier to maintain, and suffered no "bloat". It was a huge improvement over the C/C++ in terms of speed and memory usage because of how easy it was to implement multi-threading and tie into the system API via.NET (instead of direct Win32 access). Given x10 the amount of time I'm sure the C++ could be made to be faster, maybe more memory efficient too, but then given x100 the amount of time I'm sure we could trump the bloat of C++ (those nasty vtables, etc...) by writing it in 8088 assembly. (The reality was we would all be out of a job if we had spent more than a few months past the deadline.)
So I gladly welcome the "bloat" that comes with Java,.NET, and Flash. In the end it will allow for feature rich, fast executing, and memory friendly programs to be written in a fraction of the time. And when I am given the time & need to write to the metal, I'll gladly use C++; the right tool for the right job.
From the amount of open source applications actively being developed in these languages, it appears I'm not alone on my views.
What constitutes indie is one questions (and AAA is even harder to come to a consensus, even among my work peers) but that said...
As a child of the 80's, who adamantly played video games (e.g., Apple ][, arcade, 2600, NES, etc...) and got into professional game development over 10 years ago (I work for a AAA studio and my have my own gig for nights/weekends) I'd agree with those who say now, 2014, is the best time for indie game development.
Powerful engines and Middleware tools are accessible with licenses that fit indie budgets (e.g., Unity3d, Unreal4, etc...) as well as a swatch of free software for development. (e.g. Phaser: http://phaser.io/ Blender http://www.blender.org/ Love https://love2d.org/ Flixel http://flixel.org/ Haxe http://haxe.org/ )
The internet, as-is, provides indies with a way for
- distance-collaboration (Skype, E-mail, Groups, etc...)
- community building (Twitter, CMSs, Facebook, etc...)
- fundraising (IndieGogo, Kickstarter, HumbleBundle, Paypal, custom web-based donation system, etc...)
- advertising (game communities, news outlets, etc...)
Organizations, such as the International Game Developer's Association (IGDA, http://igda.org/ ) and events like the Global Game Jam, PAX (IndieMegabooth), and MAGFest also contribute to the community of indie game developers.
It is a great time to be an indie game developer in terms of accessibility and ability to achieve a sustainable income.
I have FlashBuilder on my Mac, I only use it when deploying a project to iOS - it is awful. One example: With the latest version (4.7) I deleted a project through the OS X Finder on my hard drive, that I had previously built with FlashBuilder. Afterwards it refused to start up, immediately crashing/closing, even after a reinstall of the entire Adobe suite (a recommendation on various forums.) It took a few hours combing through posts to find a helpful one that mentioned some obscure user data directory that had to be deleted.
Who writes an IDE that crashes when a project on disk is gone?
It's for this, and various other reasons, I continue to use the free, open-source alternative FlashDevelop ( http://flashdevelop.org/ ) for my Flash IDE. It's the only reason I keep a Parallels partition on my MacBook Pro.
Thank you, you are correct, in haste I posted a bug which appears to be related to screen rotation but not the one iPhone users have.
IIRC the post was in the forums, and it was answered in a similar manner as these bug reports, e.g., it's not a standard so VLC doesn't consider it a "bug", if a user requires this extra functionality they need to take the appropriate steps to manually change the rotate transform in settings.
Just searching through the forum brings up various threads related to users asking for this functionality (searched on "rotate iphone"):
Reading through them now it appears that the issue, more specifically, is that EXIF tags are stored with the video clips that VLC is not reading.
https://forum.videolan.org/viewtopic.php?f=12&t=79068&p=260277&hilit=rotate+iphone#p260277
VLC is a fantastic free program, but the attitude some/one of their devs have towards it's users is disheartening for the project as a whole.
A friend recorded a video with her phone, and held it so the video was taken in "portrait mode" vs. "landscape mode". On a PC I was surprised when VLC was unable to correctly orient itself as I was use to my Mac's native application always orienting properly.
I spent the time looking for solutions on their forum and the devs responses is nothing short of arrogant:
https://trac.videolan.org/vlc/ticket/7766
Essentially users are told this is not a bug in VLC because the videos use a non-standard way of marking the video as rotated. Further they go on to say if a user wants to look at it, as it was shot, they need to manually tweak the rotation on the transform for playback. After a 7 step menu navigation process, this has the side effect of having to change the transform back for the next video you wish to play if it was shot in landscape mode. Essentially this has to be done on a video-by-video basis.
I'm hoping there are some Open Source projects that actually implement this correctly, but from the few I've tried so far, they all seem to have the same bug as VLC when it comes orientation. Standard or not, ignoring this rotation bit is rendering the program as crippled for 100,000's of people shooting videos this way. Coincidentally, I haven't found a commercial program that is subject to the bug, everyone I've tried (e.g., Quicktime, Adobe Premier, etc...) renders it properly.
I can always hope that, eventually, someone on the team will see the value in implementing this fix.
Maybe it's semantics, but I see "complain" to be different than "disagree". To that end there is a difference between having the "right" to complain vs. being "justified" in complaining.
So sure, you have a "right" to complain whether you bought it or not; but you're not really justified in that action unless you put money down for it.
But you can disagree with the product either way.
I havent' bought an EA game that uses Origin because I disagree with the service, restrictions, and how some vocal (complaining) players have lost access to their catalog. I fear any company having that power; that as I purchase more games I have more to lose if I speak up against something I find to be an injustice (such as DRM).
If enough sales are made, a publisher is initially not interested in the voice of those who did not purchase the game until the long tail starts and new market segments have to be tapped. As of today, EA is focusing only on those who purchased the game, because they actually fronted money to play. From everything I've seen, they've been doing an excellent job to, as quickly as possible, fix a really crappy situation; namely failure by their own success.
Now if the game was never initially purchased by the target market, and the reason gamers gave on surveys was "DRM", the studio would remove it, or at the very least scale back on how pervasive it acts. The fact is: the wide majority of gamers hate DRM, talk a good talk about how it's evil, but still shell out money because, as sconeu writers in a thread below, their mentality when told they should just abstain from purchasing it is, "'But then I can't play my shiny!!!!'"
So to the OP, no; we don't need a "Gamer Bill of Rights" because we have one right now: it's our wallet. Only purchase games that you believe in. If the DRM, ethics behind a company, or anything else that has to do with a game/publisher/etc... is disagreeable with you, simply don't buy their product. That's what I do. I look forward to seeing what indie makes a SimCity-like game that compares on it's level of fun; that's where I'll be putting my money, but until then I'll wait and find other games to play.
Years ago, I left a contracted programming job at a startup that paid about $150k annually, to pursue AAA game development, starting in the low $40k.
Whether working the 40 hr/week or in crunch, I was doing something I absolutely loved.
It was both one of the riskiest and best decisions I ever made, and would do it again in a heartbeat.
...Here's an idea, how about we start running Slashdot stories when something from Kickstarter goes from rendering to shipping actual products.
I'd rather hear about promising emerging techs we'll see in the future than press releases when these are out to the mass public; near future projects (consumer or otherwise) is one of the reasons I read Slashdot daily.
I'm sure in the process some items will be vaporware, but I'd expect the majority of these editor approved stories will make it to consumers.
I think VB5 also supported COM. (Unsure of this.)
MFC was around long before VB6. We were looking to leverage it at the project's inception but found ATL (with WTL) to provide a lite-weight alternative without the bloated class inheritance. Looking back, as good as ATL was, I don't think we would have survived using it without the WROX books and great samples from CodeProject and similar websites.
The problem is both MFC and ATL are essentially just wrappers to a high procedural, highly struct-passing Win32 API. I prefer them to straight Win32 calling, but they are complex and I'd be surprised if there was a way they could be simplified without losing the flexibility offered.
As for VB6, I believe the EXE's it generated were inherently COM enabled. Each program would support IUnknown and IDispatch. If you wanted a C++ program to talk to it, you needed the IDispatch. Inside of the VB6 world, types were great because they were abstracted, but you are right in that once you marshalled a type out of VB6 into the C++ COM space, it was a bit of a pain to have to work with types like a SAFEARRAYS instead of C array (or STL container.)
So for simple communication, it wasn't too bad. For complex interactions (like the ActiveDocuments we implemented) a crippled object model wasn't required but I would agree that it was a complex setup.
VB6 is simple, but there is a surprisingly large amount of power to be tapped from it, if you understand the underlying infrastructure.
Having done some hard core COM programming 10 years ago, for a Computer Based Testing "test driver", our team learned we could spend 2 days to get up a "ActiveDoc" in C++ using ATL, and WTL, or we could do the same thing in VB6 within an hour. Considering how fast it was to implement ActiveDocument and custom COM interfaces, I changed my mind on how weak I perceived VB6 was. (Unfortunately many of the VB trained, customer-based implementors of our interface were not as astute, and even in a VB6 environment didn't understand what they needed to do to create a component that would properly talk to the rest of our system.)
Still, knowing how quickly VB6 would let one get up an interface, I was able to help a room mate of mine create a level editor for our own rolled version of Zelda. It was a little cumbersome to learn how to read individual bytes of the palette based sprite files, but VB6 had all the power there.
All that said, VB6 should die IMHO. After (C# / VB).NET came out, it became a lot easier to make object dynamically talk to each other and perform byte level manipulation.
Spot on; I had a rant / post about this back in 2009 (that I had drafted years earlier)... hoping Apple would take over this market:
http://tronsterhartley.blogspot.com/2009/01/starting-to-clean-out-my-many-drafts-of.html
While it doesn't specifically have to be Apple, it seems that none of the established brands really understand what consumers need in a great car stereo. The Alpine model I mention in the above post included: a remote? Required holding a button for a few seconds to active a feature... in a car Has no way to fast scroll mp3 artists or songs, etc....
The only reason I settled on it was because it could connect to my iPod and play MP3s without a skip between the track. This was after calling up another manufacturer about their models of MP3 playing stereos and being told that gapless playback was "impossible". Thank you business man; you know jack about tech, but it doesn't matter because your company doesn't make a car stereo with a killer feature I need. (Although I could change the color of buttons; which was fun for about 1 day and I haven't touched since.)
I hate Apple's lock-in but vote for their products with my money because they really do care about design beyond what is in a device. It makes all the difference in the world when you have a product that "feels" right. Check out the Nest Thermostat, or Dyson Vacuums to see other companies who also match form and functionality.
I've witnessed writing documentation / seudo lines of code in comments on what a section is suppose to do is a quick way to ensure all pieces come together; frequently able to leave those comments afterwards to describe the following 1-N lines below it.
On the flip side, writing documentation after code can indeed point out bugs if the code is scanned as the documentation is written; it's not unlike a form of Rubber Duck Debugging https://en.wikipedia.org/wiki/Rubber_duck_debugging .
In the end, the only glaring weakness is rewriting the (more minuet) documentation when refactoring the code it's describing. But I'd argue the extra time it takes to rewrite the documentation is, again, Rubber Duck Debugging the refactored code.... a good thing.
Keep in mind that "used properly" is code for "has limitations". In particular, you have to use hot water slowly - no rapid filling of bathtubs or buckets, or hot water pressure wash.
Actually the water pressure for the (hot water in the) showers has increased since the tankless system. It wasn't awful with the old one, but one could tell the difference if two people were taking showers at once. Now you cannot tell the difference. I don't interact with my house's water system any differently before; nor was I given instructions to.
The only limitation has been a slightly longer time for the hot water to start coming out.
I had mine installed last year (4/13/2011) because my traditional water heater was cracking and had started a leak. The plumber recommended it; said while they are relatively new to (residential) US, they have been used for awhile in Europe. I did do-diligence with Google and had it put in. The brand is: Noritz ( http://www.noritz.com/ )
So 1 year past its running well; if there is a follow up thread 4+ years down the road, I'll let you know how it's handling.
I haven't had a cold water sandwich effect. Only drawback is that it takes about 25 seconds for hot water to start coming out of the faucet (vs 10 seconds with the tank). Advantages:
- Mounted on wall (above washer/dryer) in basement; just gained about 3'x3' space back where my old huge tank was sitting
- I have seen a lower gas/electric bill since installed
- Should I choose; I can take a ridiculously long hot shower (of course always doing this would negate energy savings)
Two items I can recommend that cost a bit upfront but do indeed save money down the road:
- Nest Thermostat ( http://www.nest.com/ )
- Tankless water heater
A good tankless water heater will cost a few K (with installation, etc...) so perhaps just start with the Nest. There is currently a waiting list for them, but I was able to get mine about 3 months after waiting. It looks cool, and if used properly, will continually save you money over the life of the house.
I did listen to the full retraction, the dust incident is true and confirmed. Michael Daisey did not experience that on his trip. Is that a sign of poor factory conditions? Yes. Did the factories he visit have those issues? From the official reports it seems unlikely, beyond those we'll never know for sure because the bulk of Mr. Daisey's observation were lies; including the new lies NPR brought to light based on his first responses.
It's a shame because it would be great to hear a first hand account from a credible source. There are some good pro and con observations on the overall state of factory conditions (not just Apple factories) and overtime for workers at the end of the full retraction.
", while his work has been discredited, Michael Daisey wasn't inaccurate in his claims that working conditions are poor in iPhone and iPad factories."
That statement is nonsense.
Michael Daisey was discredited because working conditions were fine for iPhone or iPad factories; none of the horrible things he had reported on were true upon his visit. I've listened to original piece (when it aired) as well as the full retraction. He had to create lies based what he'd heard of previous (outlawed) practices of various Chinese manufactures as well fabricate people, events, and conversations in order to invoke an emotional response. Then he repeatedly, unapologetically used the theater as a scapegoat as to why he could tell people that he was telling a factual account, but in reality, was more lie than occurrence.
That said, the OP does have a good question about sweatshop free phones. I wish there was a list for all goods and services; seems internet searches pull up a lot of hits for clothing and apparel, but not so much for electronics.
Also add "HaXe / NME":
http://www.haxenme.org/
Speaking as a current indie & AAA gamedev who has built game-related curriculum for 3 schools (middle school through college)...
Because of the diversity of student types (artist vs game designer vs programmer, etc...) I recommend teaching EPIC's Unreal Development Kit (UDK).
The tools are mature and will immediately offer something to every role on a game project.
As for yourself, the UDK uses Unrealscript which is based on a C++/C# syntax.
There is a wealth of knowledge via books and internet tutorials. (e.g., Just typed in "UDK tutorial" in YouTube and received over 4500+ results!)
A nice bonus is that learning UDK is something the kids can actually put on a resume and/or help them get an internship.
Milage will vary with other pre-built gamedev environments.
Below are a few all-in-one-solutions that have editing features, based in a Windows environment:
App Game Kit (AGK) - http://www.appgamekit.com/
Construct2 - http://www.scirra.com/construct2
Game-Editor - http://game-editor.com/
Game Maker - http://www.yoyogames.com/make
Game Salad - http://gamesalad.com/
Scratch - http://scratch.mit.edu/
Good luck!
As a video game geek, a few recommendations:
This summer (2012) the Smithsonian Museum in Washington D.C., will be hosting "The Art of Video Games".
http://americanart.si.edu/exhibitions/archive/2012/games/
In New Hampshire, there is one of the largest (if not the largest) arcade of classic video games: "Fun Spot"
http://www.funspotnh.com/
If thirsty and heading through NJ, there is always the semi-famous "Barcade":
http://barcadejerseycity.com/directions/
I'm both a professional and hobbyist game developer.
For Flash / Actionscript content, there is nothing better than the open source FlashDevelop.
It's only shortcoming is that it's built on tech that requires it to run on Windows based machines.
For C++ based content, nothing beats Visual Studio.
All the devkits and engines (Wii, Xbox360, PS3, DS, Unreal, etc...) as well as middleware are pretty much expecting devs to be using a Visual Studio base environment; at the very least for programming. (Debugging on PS3 is another story...)
If Mac or Linux had a great open source IDE, I'd jump to it.
The only mature option I know of is Eclipse, and in it current form its awful to use.
There isn't a single game developer I know who would touch it with a 10 foot pole.
So the IDEs are keeping me on Windows; or at the very least on Windows in a virtual machine.
That's one piece of the puzzle.
Two of a few examples that come to mind...
How did he get some of the best talent to work for Apple; especially in the late 90s when engineers knew it was nearing bankruptcy and the dot.com boom was paying top dollar for talent in a variety of interesting projects?
How did he get a good number of the consumer populous to think of Apple as being "THE" computer worth having; especially when it offered similar or only slightly better performance and features to what established big dogs (i.e., Dell, Compaq, and HP) were offering?
I grew up idolizing engineers like Woz & Carmack for their engineering skills; it wasn't until years of participating in group projects, and taking leadership positions on teams of 6 - 12 people have I realized how underrated amongst the technically proficient are the humanistic contributions that go into any project of a significant size. The larger the project, the more likely it will fail without stellar leadership. (e.g., Take a look at what Longhorn claimed and what it became when released as Windows Vista.)
I truly believe Steve cared about his products beyond the profit; he knew a great product, marketed the right way, would bring the profits. I wish more companies used this mentality.
I hope whatever qualities Steve possessed, that allowed Apple to be successful during his oversight, are able to persist amongst his successors.
I have tried it and have to disagree with you; a few devs on Civ5 were doing this so I rotated my 2nd monitor (a 16:10) to try it out and haven't gone back.
Great for FlashDevelop, VisualStudio (especially with Scott Hanselman'sfree RockScroll plug-in ).
Also not too shabby for certain web-sites with lists (e.g., Grooveshark)
I had a fastfood job one summer, needed money for car insurance since I blew it all on a 386dx-40.
The job was okay, but I wouldn't say "fun" and I was reprimanded for my one attempt to liven it up by making smiley faces in mustard. (Burger King rules: 3 rings ketchup, 2 rings mustard; no smiley faces!)
Working full-time in the games industry is much more fun, even with crunch. Besides paying better (well less than other IT jobs) It's more creative, and you know you're making the world a better place... or at least a more fun place.
You raise valid concerns but I don't feel biased as my livelihood is dependent on C++, Unrealscript, and Flash right now.
I agree, a web of standards (HTML5, CSS, Javascript) would be a world better than one of any proprietary technology. While I love Flash because of how I can quickly produce great results, I don't believe it's the end-all, be-all solution.
13 years of web work is impressive. I've been tinkering with HTML/CSS since 1996 on various sites and have had about 7 of my 10+ years doing it on/off for a salary. The biggest problem I had wasn't Flash, but was how IE5.0 - IE6.0 handled CSS and the DOM. Its funny as it was because of Microsoft's apathy in implementing standards correctly which drove me to do the bulk of my web development in Flash. (One can only spend so many hours playing with the box model to get margins & padding to align).
The tech (HTML5) solves half the problem, I don't believe we'll see wide adoption on the web until better tools exist. Flash is great for designers & artists to make content. (CS4 is lacking for programmers.) I hope a killer app does emerge, as it will mean either a more standards-friendly, media rich web; or at the minimum a push to Adobe to keep innovating and not rest on their past success.
I'm not an "amateur" or "hobbiest", if labeling myself a "professional" is arrogant in your eyes, so be it.
If sufficient "bloat" existed in Java, .NET, and Flash then they would not be adopted by the industries as a whole. Today a web search on why these languages are great alternatives to previously "standard" languages such as C / C++, will turn up many articles.
The fact is that if C / C++ was a superior language for all situations, other languages would be left to fall into obscurity. But instead we see a majority of the Game Industry use script languages (lua, python, unrealscript, etc...) for game logic, Flash for UI (over 60% are using a single vendor's implementation), and the IT industry as a whole sink billions into .NET / Java applications.
The last non-game, full-time job I had involved me helping a team to port an enterprise-level C++ application to .NET. The .NET version was a huge success, more robust, easier to maintain, and suffered no "bloat". It was a huge improvement over the C/C++ in terms of speed and memory usage because of how easy it was to implement multi-threading and tie into the system API via .NET (instead of direct Win32 access). Given x10 the amount of time I'm sure the C++ could be made to be faster, maybe more memory efficient too, but then given x100 the amount of time I'm sure we could trump the bloat of C++ (those nasty vtables, etc...) by writing it in 8088 assembly. (The reality was we would all be out of a job if we had spent more than a few months past the deadline.)
So I gladly welcome the "bloat" that comes with Java, .NET, and Flash. In the end it will allow for feature rich, fast executing, and memory friendly programs to be written in a fraction of the time. And when I am given the time & need to write to the metal, I'll gladly use C++; the right tool for the right job.
From the amount of open source applications actively being developed in these languages, it appears I'm not alone on my views.