What is Microsoft (or are they) Thinking?

First the news:

If you want to develop desktop applications—anything that runs at the command line or on the conventional Windows desktop that remains a fully supported, integral, essential part of Windows 8—you'll have two options: stick with the current Visual C++ 2010 Express and Visual C# 2010 Express products, or pay about $400-500 for Visual Studio 11 Professional. A second version, Visual Studio 11 Express for Web, will be able to produce HTML and JavaScript websites, and nothing more.

from Ars Technica

So basically, you now have to pay for Visual Studio if you want to do anything more than write Metro apps.

In addition to making a mockery of Microsoft's claim that the desktop is important to Windows 8, the move means that Windows is no longer a good platform for learning basic skills like "how to program." Few of us are born with the ability to write a program; most of us have to learn using a combination of books and online resources. Programming can be a complex task even on a good day, and to keep this complexity tractable, most beginner developers stick to simple, command-line programs without rich GUIs. This allows a much greater focus on mastering the programming language and core concepts.

But that's not the biggest problem.  As the article's author correctly notes:

Charging developers for Visual Studio is, in effect, making developers pay money for the privilege of making Windows worth buying. And yet, without third-party software, Windows itself has next to no value; it doesn't seem right to make programmers pay just to be able to make Microsoft's operating system valuable.

Let's step back and think about what it is that made Windows as ubiquitous as it is now: thrid-party software development.  And now Microsoft, the company with probably the best tradition of developer relations, is destroying Windows and Visual Studio (one of the most amazing IDE's ever created) as a developer-friendly platform.  Ok, so the counter argument: there are other tools for application development on Windows.  Yes, there are.  But have you tried using them?  They are not much fun to try and work with.  Also, development on other platforms already does not have the cost that Microsoft is now requiring (Linux is free, and Apple only charges something like, 5 bucks).  Unless I'm badly mistaken, I foresee a significant movement away from Windows as the development platform of choice in the not-so-distant future.  No, it probably won't really show for two, three, maybe even four years, but this is totally the wrong direction Microsoft should be taking.

It begs another question, too.  Why would Microsoft force developers to shell out $500 to develop for the desktop, and yet leave the tools for Windows Phone 7 and Metro app development free?  Are they that desperate to try and force developers to develop for them?  Sorry Microsoft, but this seems like a really stupid move for the future of your platform.

A "Synth" Google Doodle

In honor of Bob Moog's birthday, Moog being the developer of one of the earliest synthesizers, Google has unleashed another amazing doodle: an Moog synth!  Now go play some cheezy music (tip: the top row of keys - tab through "\" - play the white keys and the numbers play the black keys)!

Lines and Quads

It's summer break, and work hasn't started yet.  For a normal person, that means some time to kick back and chill.  But I'm not exactly normal.  Instead I've spent my break so far trying to figure out how to find the point of intersection of a line with a quad inside of Blender.  Now that I have figured it out and have it working, I'm going to explain where things started and walk to where they ended.

At first glance this appears to be a fairly simple problem: after all you can figure out fairly accurately where the two would intersect simply by looking at the line and the face.  A computer is not able to do that though.  Instead, a computer sees the coordinates of the geometry defining the shapes as vectors.  Does the line given by the points [-1.1, 0.3, 0] and [-2.8, -1.2, -0.4] intersect with the quad defined by the points [1.5, -0.6, 0.2], [0.7, 0.4, 1.2], [1.2, 0.7, -0.4], [1.3, -0.3, -2.2]?  If so, where do they intersect?  The picture below provides a visual of what the line and point would look like:

Do_they_intersect

As you can clearly see, they don't intersect.  But for a computer, there is no easy way to see that.  So instead we define the problem in a way that a computer can think in.  A computer requires defining the problem in terms of mathematical formulas that it can then put the coordinates into, calculate, and then get the answer from.  So how do we define the line and the face as formulas?  Enter linear algebra and vector math:

Linear algebra is the branch of mathematics concerning finite or countably infinite dimensional vector spaces, as well as linear mappings between such spaces. Such an investigation is initially motivated by a system of linear equations in several unknowns. Such equations are naturally represented using the formalism of matrices and vectors.

from Wikipedia

First, we shall treat the line as a vector.  As some may recall from their high school algebra or geometry, a line is defined by two points.  Skipping over some of the theory about adding vectors, we can think of the vector as being defined by two points also: its starting point, and its end point.  To find the value of the vector, we are going to subtract the coordinates of the start point from the end point.  If we say the starting point is called "a" and the end point is called "b", then this gives us the following base equation:

Line_01
There are two problems with this though: 1) a vector is assumed to start at the origin and 2) we have no control where on the line we are considering meaning we can't just look up any coordinates along the line.  To solve the first problem, we add the vector defining the starting point.  For the second we introduce a new variable, and call it "t".  This will serve to scale the vector with scalar multiplication  With simplification we get the following:
Line_02
This is called the "parametric equation" for a line in 3-space.  When "t = 0", we get the starting point.  When "t = 1" we get the end point.  "t = 0.5" is the point half way in between the two, and so forth.

We now have to create a formula for the quad.  After some investigation, it turns out that Blender has an interesting definition for a quad; Blender defines a quad as the set of all lines spanning two lines.  We're first going to define the two lines:

Face_01
Now the definition says that for those lines, there are lines going between them.  This means that the first point for our line will be on the first line and the second needed point will be on the second line.  "t" is that same for both lines, but cannot be the same for the line we're creating.  If it was the same, then we would end up with a diagonal line between the two lines.  So we need another "t" for that.  Putting it all together we get:
Face_02
Now defining our original point in terms of another "t" (because it cannot be the same one either used in defining the plane):
Line_03
Now since we are looking for the point of intersection, the two vectors should give use the same solution:
Equation_02
All we have to is solve for the three different "t" variables and we have created a system of equations that we can put out points into and get useful information back from.  If all three "t" variables are equal to or between 0 and 1, then they intersect.  By putting the resulting "t" values into the original equations, we can look up the point of intersection.  There happens to only be one small catch though: solving for the "t" values, it turns out, is no simple task.  Enter a symbolic solver.  In my case I used Mathematica, but there are alternate solutions out there.  The input and output has been reproduced in the following PDF.
Click here to download:
intersect_line_surface2.pdf (1.35 MB)
(download)

Because the goal is a solution that can be easily programed, there was some slight modifications to how I solved it.  I first had it solve for the entire system of three equations, three unknowns.  I then took the simplest and "calculated" the value; I assumed the simplest to be a known.  Then I solved the system again, this time as two equations and two unknowns.  Again, I assumed the simpler of the two as a constant and solved again as one equation, one unknown.  This produced the equations to solve for the three using previously calculated values (and thus saving computation time).

From that, I created the following Python code for Blender:

Formulas generated by MathML Central using MathML and powered by Wolfram webMathematica 3.  Code hosting provided by PasteAll.org.

Creating the Windows 8 user experience

In short, Microsoft is finally dropping Aero Glass infavor of Metro.  While some may not like this, I think it is a good step in unifying the feel of their various products:

Several bloggers have wondered about how much we would be changing the visual appearance of the desktop in Windows 8.

We have appreciated seeing people on various sites post screenshots of their proposed designs for “Metro-izing” the visual appearance of the desktop. It is exciting to see the interest and passion that goes into designing them!

We spent a lot of energy carefully considering how substantially to update the appearance of the desktop in Windows 8. We looked at many, many pictures, and considered hundreds of designs. Our primary goal was to bring visual harmony to Windows, while still preserving much of the familiar feel of the Windows 7 desktop and not sacrificing the compatibility of existing apps.

In the end, we decided to bring the desktop closer to the Metro aesthetic, while preserving the compatibility afforded by not changing the size of window chrome, controls, or system UI. We have moved beyond Aero Glass—flattening surfaces, removing reflections, and scaling back distracting gradients.

At the same time, they are working hard to ensure compatibility with design assumptions app designers have had for the life of Aero Glass:

Since the release of Windows Vista (which introduced Aero Glass), many desktop programs have integrated with glass, making assumptions that they should custom draw dark text with a cloudy “blur” texture behind it to make their text readable.

Some of you may remember the substantial compatibility problems that arose when the system colors changed from light on dark (Windows XP) to dark on light (Windows Vista.) It took many years for these to be fully sorted out. We would prefer not to reintroduce these compatibility issues again in the other direction. So, “color matching” the new design on the desktop is not entirely feasible.

Overall, it will be very interesting to see what the Windows desktop will look like when it goes RTM.

Student Makes Real-Life Portal Turret

A Penn State robotics student has gone to the effort of building a working, automated turret from the video game series Portal. Powered by a webcam, Arduino boards and hacked up USB-missile launchers, this is one serious piece of kit that is just as adorable as its in-game counterpart.

from Slashdot

You know, this really makes me want to make a real life sentry like Valve has, just of course with the whole tracking and firing part.  Well, sounds like another summer project!

More Floppy Music

I get a kick out of people using old technology in a way it was by no means intended: to make music.  So when it turns out that there are two YouTuber's out there, Sammy1Am and MrSolidSnake745 that have churned out a bunch of stuff using 8 floppy drives as their "instruments" including such tracks as Owl City's "Fireflies", Skrillex's "Scary Monsters and Nice Sprites", the end songs from both of the Portal games ("Still Alive" and "Want You Gone"), and even "He's a Pirate" from the "Pirates of the Caribbean" series.

Paul Miller: "I'm leaving the internet for a year"

Esteemed tech writer Paul Miller is going to go without the Internet for one year:

At midnight tonight I will leave the internet. I'm abandoning one of my "top 5" technological innovations of all time for a little peace and quiet. If I can survive the separation, I'm going to do this for a year. Yeah, I'm serious. I'm not leaving The Verge, and I'm not becoming a hermit, I just won't use the internet in my personal or work life, and won't ask anyone to use it for me.

from The Verge

As a tech writer, this is no small thing.  His lively hood basically depends on the Internet at this point.  So why do it?

I feel like I've only examined the internet up close. It's been personal and pervasive in my life for over a decade, and I spend on average 12+ hours a day directly at an internet-connected terminal (laptop, iPad, Xbox), not to mention all the ambient internet my smartphone keeps me aware of.

Now I want to see the internet at a distance. By separating myself from the constant connectivity, I can see which aspects are truly valuable, which are distractions for me, and which parts are corrupting my very soul. What I worry is that I'm so "adept" at the internet that I've found ways to fill every crevice of my life with it, and I'm pretty sure the internet has invaded some places where it doesn't belong.

I'm also interested in a sans-internet reality as a technology writer. There was a time when technological innovation didn't seem intimately linked to the internet. Most pre-80s sci-fi, for instance, explored those futures. Now I'd like to examine what modern technology looks like in a TCP/IP vacuum. Is the internet truly the oxygen of our electronics, or just an important piece?

from The Verge

Overall, this looks like a very interesting experiment, and as a techie it is one I am almost tempted to try (though definitely not as long) myself.  He will still be writing for The Verge, just doing it "the old fashioned way".

ASCII Art Signatures In The Wild

As a web developer/designer (amongst other things), I take pride in my craftsmanship and like to sign my work with an ASCII art signature in an HTML comment. I know I’m not the only one, since I was inspired by seeing others do it.

So, I had this idea: Wouldn’t it be awesome to scan through a chunk of the Internet and see who else is doing the same thing, and how their signatures look?

There is some really good ASCII art to be found.  Hit the GitHub source to see the best results.

Gideon Sundback, who did not invent the zipper, gets a Google Doodle

Gideon Sundback -- the man who did not invent the zipper but did perfect it -- is the recipient today of a giant, interactive Google Doodle zipper.

It's a doodle to add zip to your day, honoring the birthday of the man who helped introduce the fastening device into everyday clothing. Look around -- there's a good chance you'll see Sundback's handiwork in nearly every item of clothing you own, save shirts and blouses.

from LA Times

This has got to be one of the better doodles Googles done.

Ethics, Engineering, and Defense

One of the classes I'm working through this semester is Professional Ethics.  As a capstone for the class we had to write a term paper on a topic that pertains to both ethics and the engineering profession.  For my topic what I chose to analyze, based on Biblical principles, is if it is moral to work as an engineer within the American defense industry.

I have had several people request to read it but rather than just send them a copy, I figured there might be others that might also like to read it so hence why I am posting it here.

Unfortunately I cannot make the sources available.  I was also going to post an archive with the source documents for those that would like to read (a lot) more on the topic but they are all under copyright.  Instead, if you go to the reference page at the end of the document, they are linked to.  Most of the documents are from EBSCO Host, so you will have to have access to it to access those documents.  A couple are hosted in the public domain with JSTOR but are still under copyright, so anyone can access those.

Click here to download:
Designing_Death.pdf (232 KB)
(download)

If you just want the fast version, I conclude that yes, it is with the United States at this time.  Should national policy adopt a more aggressive view, then it is likely the conclusion would change.

I am pretty sure there are many out there that have vastly different views on the subject matter than I do.  Feel free to discuss your views, critiques, support, etc.  Just keep it civil.

Exercise bike connects to original Mario Kart

Canadian modder Brent Smith has managed to connect an aging exercise bike to Nintendo's perennial racer. Naturally, there's some Arduino involvement, but the whole setup plugs directly into an original SNES console -- no emulation necessary. Power-ups are accessed with a button in the center of the exercise bike's handles, each of which has a directional button for steering, while the pedals function as the acceleration button, accurate to one sixth of a rotation. According to Smith, "it's a lot harder than it looks" -- and we believe him.

from Engadget

I guess that's one way to get motivated to spend a few minutes . . . or hours . . . one the exercise bike.

Canceled 'Star Wars' Google Doodle Now a Comic Book

Unfortunately, Google thought that a Father's Day Google Doodle featuring Darth Vader and his son, Luke Skywalker, wouldn't work.

The good news is comic artist and writer Jeffrey Brown managed to sell publisher Chronicle Books on the concept as a comic book. Behold: Darth Vader and Son.

from PCMag via Twitter

A fun concept.  It portays Vader as a "normal" father with Luke as a "normal" 4-ish year-old.

Nest: "Honeywell is worse than a troll"

On Honeywell's lawsuit against thermostat start-up Nest:

[Nest] just filed its official answer to Honeywell's complaint today, and in addition to arguing that it isn't infringing Honeywell's patents, it also stridently argues that most of those patents are "hopelessly invalid." What's more, Nest also claims that Honeywell is misusing its patents to stifle innovation — a strategy Nest claims Honeywell has used to squeeze out new competitors for years. "Honeywell is worse than a patent troll," says Nest CEO Tony Fadell.

Nest's full answer to Honeywell's lawsuit reveals the same arguments in greater detail. (It also contains amazing legal zingers like "Nest denies that Honeywell is an innovator in the area of thermostat technology.")

from The Verge

Um, wow?  That is some really strong language against Honeywell.  Oh, and seeing as how Nest is being handled by some ex-Apple upper management and has companies like Google as backers, Honeywell might have stirred the wrong hornet's nest.

Spotify Play: Embedding Music One Website at a Time

Spotify announced earlier today Spotify "Play", an new way to embed music into a web site.  It works by pluggin into Spotify for songs, albums, artists, or even user created playlists.  There a catch though:  you'll have to have Spotify installed on your PC or mobile device:

Spotify's US Director of Product Charlie Hellman hit the announcement from a different angle, highlighting serious issues with artist compensation most people forget about. He told us, "We looked at streaming on the web, and it seemed like there was some room for improvement. There's no easy way to embed licensed content in a reliable way. Most music embedding leaves artist on the sideline in terms of compensation, so we're really excited about the fact that any time a song is played using the Spotify widget, a label gets compensated."

from The Verge via Twitter

So how does it work in practice?  To set it up, you first copy the Spotify URI from Spotify.  Then, using their developer website, you copy some generated emdedding code which you just add to the HTML of your page.  I've embedded a sample playlist of some music I like below to show how it plays out in the live web:

So is this MySpace Music 2.0?  I guess only time will tell.

The 4 inch iPhone 5

Since its induction in 2007, the iPhone has had exact same size of screen: 3.5 inches.  With Android and Windows Phone adopting larger form factors of 4.3", 4.65", and even the gargantuan 5.3" there are many that would like to see a larger screened iPhone.  However, there are several issues with increasing the screen size.  To maintain the "retina display" that they currently have, Apple would have to increase the screen resolution.  But this requisites that every app would have to be updated to support another screen resolution which leads towards fragmentation.  "modilwar" of the Verge forums has an excellent posting with a solution that actually just might work without to dramatic of an impact:

But then last week, while watching the Vergecast episode 24, came the Eureka moment. A caller named Colin (apologies if I got your name wrong) Timothy Collins mentioned how he thought apple could increase the iPhone screen size without effecting the external form factor or pixel density. I will elaborate on this now.

All iPhones have had a 3.5 inch display with 3:2 aspect ratio, and since the iPhone 4 they have had a resolution of 960 x 640. If Apple were to increase the diagonal screen size, what should it be? I think 4 inches is the optimal size. 3.7 isn't really a significant enough bump to justify a change and the earlier mentioned 4.3 and 4.65 inch sizes force the overall device to be simply too big.

His solution?  Change the aspect ratio:

Here's where the Verge reader Colin's Timothy's idea comes into play. Change the aspect ratio. As I mentioned above, all iPhones (and iPod touches) have had an aspect ratio of 3:2. Could Apple change the aspect ratio to increase the screen size while maintaining the same 326 ppi? What aspect ratio would need to be to hit that 4 inch mark? And most importantly how could app fragmentation be avoided?

Colin's Timothy's idea was to keep the shorter side of the iPhones screen the same, i.e. 640 pixels at 1.94 inches. With that in mind how much would the longer side need to increase so the that diagonal measurement was 4 inches. The answer, derived using simple algebraic rearrangement of Pythagorus's theorem, 1152 pixels and 3.49 inches. That leaves the the diagonal length measuring a little over 3.99 inches, I'm sure Apple PR could round this to 4.

For those of you who are good with numbers I'm sure you've noted that 1152 x 640 has an aspect ratio of 9:5 and the 1152 pixels is and increase of 192 from 960 and that's 20% more than on the iPhone 4 and 4S.

from The Verge via Twitter

He then has a series of excellent illustrations detailing how iOS 6 might change to accomodate the new screens.  Even more interesting is what John Gruber had to say on the speculation:

Methinks “Colin” wasn’t merely guessing or idly speculating.

If history is anything to go by, Gruber knows something.  He did not have any disclaimer on speculation, but he didn't actually confirm it either.  More of speculated on it.  But usually it means that he knows of something like it.  Maybe Apple has actually produced such a 4" screened phone, maybe as a prototype?  This could be an interesting summer/fall as the rumor mill kicks in leading up to the fall Apple announcement.

Noodle physics simulation – Blender and Bullet Physics

Quick noodle rigid body dynamics test using real-world relative scale. Details…: Pasta / spaghetti relative dimensions: 2.5mm dia., 250mm length, rigid bodies’ mass (and centers of) calculated based on material densities, gravity: 9.8m/s. Physics are to scale, but unfortunately my movements (external forces) in the virtual world were too fast relative to the scale (and impatience due to simulation running slow ;) this was made obvious after rendering the frames and playing them back at real-time speed. Therefore movements and playback speed are not quite to scale. That’s what tests are for… to learn from. The bizarre movements (using mouse): after dropping the fork in the glass I threw the glass, then threw the bowl, played with a noodle, then dragged the fork and threw it as well.

Fork, bowl and glass are compounded HACD convex decompositions. Noodles are capsule strings (no longer sticking with full radius as margin).

Step by step, we are slowly getting closer; one day we’ll be able to easily simulate real-world physics using any arbitrary rigid body shapes… one day…

Environment lighting was created by Vlad “SATtva” Miller.

by "Phymec" via BlenderNation

We're starting to see some pretty neat stuff coming out of baking physics with the BGE.  I'm so going to have to pick it up again. . . .

Raspberry Pi Passes EU Certification Testing

Good news! We just received confirmation that the Raspberry Pi has passed EMC testing without requiring any hardware modifications. . . . Given that we’ve had the chamber for the whole week, we’ve used the time to make sure that alongside the CE requirements, the Raspberry Pi also complies with FCC regulations (USA) as well as CTick (Australia) and what we’ve been calling “that Canadian thing”.

The Raspberry Pi has now passed the requisite testing for the CE/FCC certifications it was missing.  So now it is just a matter of time before the final paperwork is finished and filed before they start shipping!