Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

Comment Re: no (Score 1) 272

Yes, security only updates are a goo
d thing, but Microsoft is in this case mixing essential security updates with other things, such as new features, which ultimately makes the sysyems less deterministic and syable long term.

Critical bugs and security fixes should be seperated from feature updates, and any other updates that may have usability, stability, or privacy related consequences.

Debian stable is a great example. Lot's of security updates delivered very quickly when needed, but system remains the same apart from those necessart changes.

Optional feature updates are great to have available, but they need to be optional.

Comment Re:Codeword (Score 1) 479

Although much of what you say is true, I think it somewhat misses the point.

This is essentially a system hacking scenario. The idea being to find whatever methods get to the higher level support sooner, through their system for lower level support.

>> "but every single other customer think's their issue requires a T3 tech"

Yes, however, every other customer isn't going to apply strong research and reasoning skills towards finding the easiest way to get high level support. Also, generally speaking, the customers who will apply such problem solving skills to get higher level support are the same customers who would have already tried the simplistic solutions T1 tech support would provide.

The vast majority of people, will never apply any significant research or reasoning towards getting better support. However for some people, like the question submitter, it is worthwhile to find a solution.

I think similar questions quite a bit when faced with various life problems, and the system hacking strategy generally it works quite well. In general, these solutions just take advantage of the wider population's intellectual laziness. If everyone started "hacking" for escalation, then yes, it would be a problem, but most people won't.

Solutions will get shared however, and whenever a solution becomes widely known, the system creators will come up with protections against it, at which point further hacking is required.

In a world where most things are designed for very intellectually lazy people, anyone who wants to avoid such stupidity needs to find ways to beat the system, because the system wasn't designed with them in mind.

Considering how badly set up these systems are, I don't have any ethical problem with hacking them. Systems that are set up so badly needlessly inconvenience people, and they deserve to get hacked. After enough hack/fix/hack cycles, the system itself usually gets a lot better, and start to provide methods for accommodating people differently.

The alt text on the xkcd comic mentioned in this thread demonstrates the absurdity of the existing systems quite well:
"I recently had someone ask me to go get a computer and turn it on so I could restart it. He refused to move further in the script until I said I had done that."
Being XKCD/806-compliant sounds like a good strategy until that method starts getting overused. ;)

Comment VIdeo Games are Great For Teaching Code (Score 2) 175

I strongly suggest video games related material, in particular, Unity3D, Unreal 4, or for really simple intros, Scratch. All of these examples can be used to teach programming in a very interesting way that is fun for students and gives immediate feedback and results.

Unreal 4 is pretty amazing because the "blueprint" system is a visual block/node based programming langauge that can function as a complete programming language without much concern for codes/syntax.

Unity is better for direct coding. Boo is the easiest of the supported languages to teach, and very much like python, which is the 3D industry's standard scripting language, so I often start with that, and then some students move on up to C# coding. It's really about the same but with slightly different syntax, and of course the C# is less forgiving.

Another great method, although it isn't quite a full blown game engine, is Python programming in Blender. There's an interactive command line for working with the 3D scene. The great things about programming for 3D software and game engines is that stuff can be extremely immediate and visual, so concepts can be understood quickly. For games, often you can see what's happening in your "world" by pausing the game and interactively exploring the state of things. Blender actually has a built in game engine, although it's pretty basic and limited compared to Unity or Unreal 4.

If they are young, then you needn't focus on job skills just yet. What's more important is getting them interested so they start teaching themselves and getting into the habit of independent learning. You also don't necessarily *need* to do anything with hardware, focusing on software can work just fine as a intro for students.

In conclusion, I suggest that you should be successful using anything that gives very immediate visual feedback on the state of the world (without debugging or printing/logging), and which has the "oh wow, this is fun" factor, something that grabs children's attention and triggers their imaginations.

I can say with confidence that when teaching children, grabbing their attention and making it "fun" is a huge priority. I've been teaching this stuff for almost 20 years, and the games / VFX industry is full of my students. I've taught many adults, but also many children as well. If I can help at all, or if you would ever like to talk, feel free to contact me more directly. If you like, you can email me using: questions in the domain teaching3d.com (To avoid spam I didn't directly put the exact info there, but you can piece it together I'm sure!)

Comment Narrow definition of sharing used (Score 4, Insightful) 719

Overall I like the sentiment of the post made, but it falls apart at the point when it incorrectly defines sharing:

>> "Sharing: Willingly giving a portion of your possessions to another, denying you use or benefit thereof."

You have just redefined sharing for your own purpose. Your argument makes the same mistake it seeks to oppose, loading words for it's own purpose.

Sharing is not so limited in definition. I can "share" my knowledge with my students, and not be deprived of anything myself. In addition, I can share things that don't belong to me with others, although it might be illegal, it's still pretty clearly sharing. In particular, transferring information is definitely "sharing" and is not always illegal. I could be sharing information I created myself, perhaps my own artwork.

Even if your definition is copy pasted a dictionary definition, one particular dictionary definition does not suffice to fully define a word. Dictionaries are extremely simplified definitions written for quick reference. Etymology and semantics of words are much more complex. For example, even by just using other dictionaries I can find that a common definition is "to use or enjoy something jointly".

Specific types of copying can (and do) run afoul of particular laws, so "copyright infringement" meets your definition of it, but sharing simultaneously meets a definition of sharing that is more reasonable and widespread than that which you use. Copying itself, and in general, is not wrong. Whether particular copyright infringement is ethical or not depends on a lot of factors too complex to really get in to here (eg. the legitimacy of the laws in effect, the proper functioning of democracy, the consent of those governed, etc).

Comment Undo support yet? (Score 4, Interesting) 49

It's painful to see all these incredibly complex things, but not see the addition of basic undo support for native text editing widgets in Android.

Please Google please, make all native gui elements/widgets support undo. Pretty much every other platform/toolkit already does! (See Qt as one example, or perhaps iOS.) Get the basics right first, then go for the complicated stuff.

The issue tracker has this mentioned several times and it's just not getting the priority and attention it should be getting.

Comment Re:Python (Score 1) 465

>> Python and C++, because numpy/scipy can't do everything

Yes, definitely true, and it's actually pretty easy to use them together.

If you don't want to write C++ however, there are a couple other options:

Cython - basically let's you generate c/c++ by writing Python like code and is very easy to use interacting with Python. It keeps the Cython parts of your code super fast, like straight up C.

Pypy - a super fast version of Python. If you write Python code yourself, and don't use off the shelf Python stuff, Pypy is crazy fast. (About C speed in my own tests of doing C like things.) Pypy gets slower if you use a lot of other Python code that wasn't written with Pypy in mind, but even then it's still normally much faster than regular Python. Using Pypy, you might just be able to write all the code in it and not have to bother with anything else.

Both of these are easy enough that you can be up and running, writing/using new code, same day as downloading.

Finally, even if you are calling other code from C/C++, there's some new tools to make that easier. CFFI is a good example. It makes calling C/C++ pretty easy. I'm not sure how ready it is for a lot of real world use though.

Comment Why Unity Is Used (Score 4, Informative) 150

As response to the above I can confirm that Unity is very much used because of the development environment, ease of use for 3D artists, and an incredibly simple tool chain that lets you target many platforms with one codebase. Art assets can be shared between platforms as well, or specified per platform.

For these reasons, Unity is used a lot at small studios, particularly where gameplay is the main focus and the technology doesn't have to be cutting edge. Systems like Unreal and CryEngine are more powerful from a technology and graphics standpoint, but are not nearly as easy to use for small teams of developers.

In particular, Unity's documentation, specifically its scripting documentation, is outstanding. The documentation for other systems is extremely rough by comparison.

I have no affiliation with Unity3D, other than the fact that I've used the software in the past and like it. I know the facts I mention above because I've done consulting and training for many local game studios, many of which have used or are using Unity3D. Also, hundreds of my students currently work in the game industry (many in Vancouver BC) so I often hear about what's going on in local studios.

Comment Re:Python (Score 2) 530

I agree that Python is a great choice.

Python is perfect for someone in your situation because it is very easy to get into, and you have room to grow with it, since it can be made to work as fast as you need it to.

Keep in mind that there is a good chance that you will find you never need to code anything in C or C++ for speed reasons. Python could turn out to be "fast enough" for everything you want to do. You'll probably use libraries to do the heavy lifting, and they are probably already C or C++ based.

However, when Python isn't fast enough, it's pretty easy to write 95% of code in Python, profile your code, find the slow parts, and then write the really CPU heavy stuff in C or C++. Getting C and C++ code working with Python is pretty automated these days. In fact, Python even has "cython" available which is essentially C coding with a more python-like syntax. (It can compile to C).

For an IDE, you can use Eclipse and PyDev. Both are entirely free and excellent. There are plenty of other free tools as well.

For GUI development, you have easy access to the best GUI toolkit on Earth, QT. The Pyside project provides the official binding to QT, and the bindings are excellent. QT is used in incredibly complicated software such as Autodesk Maya, so it's not just for small stuff. At the same time, it takes about 5 minutes to write a fairly simple but useful application using QT and Pyside. (As an example, a GUI for wrapping the functionality of a command line program.)

Another great thing about Python as a language is that you pretty much never run up against a wall. "No, you can't do that" is something you almost never hear when people ask questions about Python. It's more often, "no, you *shouldn't do that.... but you can if you want".

You'll save so much time writing apps in Python that you'll have hours and hours of free time to spare optimizing the slow parts or adding new features. As a personal example, I'm comfortable in other languages as well, but I can make working apps about 5 times faster in Python than in C# or Java, just because there's less code to write. Assertions and test driven development can make the code just as robust as other languages with compile time type checking.

Comment Re:Disagree. (Score 2) 406

I second that. Wii works great for FPS games. Even if it's not as good as a mouse and keyboard, it's better than analog sticks, (since you can instantly point to where you want without overshooting) and it's *way* more fun. There's something about holding and pointing the Wiimote, as if it is a gun, that makes the experience far more gratifying. It made Golden Eye fantastic. Also, I've replayed Quake and Doom on the Wii Homebrew channel, and I've had much more fun than I did playing them the first time on PC.

Obviously it's very subjective and personal, but if you haven't tried it, it's definitely worth a shot.

Comment Re:I do think people need to understand that (Score 2) 663

Simply pass the request on to the OS's media layer. That way any format the OS knows how to play, you play.

A lot of browsers have been able to do this for years, and if every browser and OS had a free open standard that content browsers could bank on being present, then it wouldn't be a problem. The problem now though is that a content developer can't be sure that the codec used is installed on the end-user's system.

By requiring Flash, the developer gets around the problem since the developer can safely assume that Flash will have the same codec support everywhere. Of course, Flash is bad for the internet since it isn't a free and open standard, which is why we are dealing with all this WebM stuff now. We need a format for video that is equal to PNG/JPEG in term of freedom and openness.

*Imagine if there were no image standards for the net* if images were just left to the OS. We'd constantly be downloading new image codecs, or we'd run across images pages where we couldn't view the images. I think everyone can agree that would be awful. Video deserves a free and open standard just as much as images do.

Hopefully this is useful to someone. A lot of posts I read seem to come from people unaware or misinformed of these basic issues. (I probably should have included this in my last post but I hadn't thought of it yet!)

Comment Re:I do think people need to understand that (Score 1) 663

Free and Open Source software is fundamentally incompatible with "Free as in Speech" but not "Free as in Beer" standards. (At least from a distribution perspective.)

When people say we need a standard that is free and open they mean both "Free as in Speech" and "Free as in Beer". Anything else puts Free Software at a disadvantage.

Giving up on the argument that standards should be both open and free of charge means giving up on Free software as a whole, which I for one am unwilling to do.

Comment Re:Putting the snideness of the summary aside... (Score 1) 663

Chrome was created to make money *indirectly*. The Chrome browser itself will probably never actually make money, but if it encourages increased internet use and increased ease of development for the web through free open standards, then it will increase Google's core business.

Regardless, it shouldn't even matter if Google does somehow make money from this. A widely available free open standard for internet video is a huge net win for everyone. The only people it could possibly hurt are those who currently make money from licensing, or benefit from the disadvantage that Free Software has in not being able to legally incorporate patented technology. Every argument I've seen presented against WebM and for H264 is short sighted, and fails to take into account the long term implications. Once such argument being: "Devices support H264 and not WebM" when clearly, future devices could easily support WebM at no licensing cost. Another argument being that WebM isn't good enough, which fails to take into account its rapid pace of improvement, and the fact that since there are patent free legal open source implementations, new versions of the standard can continue to progress freely.

Arguments in favor of H264 also ignore the disadvantage that it imposes on Free Software. Such a disadvantage is not acceptable for an internet standard. Hopefully once enough support gets together for WebM, the W3C people will incorporate it into the official web standards.

My guess is that the people at Google realize that we're *never going to get* a ubiquitous high quality free open video standard for the web *unless* they really put their foot down on this issue. This action directly benefits me, and it benefits nearly all other web users long term. If the decision benefits Google too, I'm OK with that.

Comment I second this, OpenGL and QT are both great. (Score 5, Interesting) 331

I second the parent post. However, in my opinion, OpenGL only is pretty tough to use. It takes a lot of knowledge. (GLUT can help to get you started.)

Where OpenGL would require you to program too much functionality from scratch, I personally recommend QT, using OpenGL only where you need it. QT is easy to learn, easy to code for, provides *tons* of functionality, and it performs great. In fact it performs well enough for very heavy 3D animation software to rely on it. (Maya has now been rewritten to use QT, and it is a big improvement.) You can paint your own custom anything, and even easily integrate 3D into your project. I really can't say enough good things about QT. It is now available under the LGPL, so you can use it for open source or closed sourced projects.

As mentioned above by the parent, QT isn't lightweight, but it isn't a pig either. You can use as much or as little of the toolkit as you like, and it can run very fast and have very low overhead. It is light enough that Nokia is using it as their primary development framework for mobile apps with their upcoming Meego based phones. From my personal experience QT flies.

Also, I've had great results with PyQt and with PySide. PySide is the new, "official" binding for QT on Python. They have examples in their demo folder of custom canvas based applications, and they work great and are easy to follow. You can have your own similar program, written from scratch in Python, up and running in 10 minutes.

It should also be noted that because QT works so well cross-platform, it has a huge advantage over toolkits that are tied to a single operating system. (Particularly those from MS.) In my own work, I won't even consider using something that doesn't run on Windows, Mac, Linux, and potentially more operating systems. I use all kinds of devices, and I don't want to be tied down. QT makes cross platform development straightforward, and software like Autodesk Maya is proof that it works even for highly complex projects.

I know I'm starting to sound like a salesman, but my experiences really have been that positive. About the only downside is that there aren't current C# or Java bindings for it. This doesn't matter to me though, because I've got C++ where I need performance and Python where I want ease of use. (With Cython, you can easily have performance and ease of use at the same time.)

I hope that helps.

Nonsense. Space is blue and birds fly through it. -- Heisenberg