Chronology Current Month Current Thread Current Date
[Year List] [Month List (current year)] [Date Index] [Thread Index] [Thread Prev] [Thread Next] [Date Prev] [Date Next]

[Phys-L] various amusing and/or technology-related things



First: Frog plays electronic game, wins big at the end:
http://www.youtube.com/watch?v=K9jq51Qnda4
Probably well worth half a minute of your time.

======================================

Secondly: In the context of:

We have a Chemistry Professor here who runs
her class (Organic) entirely from her Tablet. She sits on the stage,
writing on the tablet for the entire class. Yes she asks and takes
questions, but she is fixed in that seat.

On 05/01/2012 12:39 PM, I wrote:

I don't see that as a problem with the tool, but rather
with how it is being used. Being rooted next to the tablet
is just as bad as being rooted next to the board.

What I said is true as far as it goes ... but not as specific or
constructive as it should have been.

It suspect that her tablet is /hardwired/ to the projector (or other
big-screen device) that the class is watching. So here are a couple
of specific constructive suggestions on how to fix that, i.e. to
make it possible to walk around the room, carrying the tablet, while
still using the big screen.

1) Get a separate computer to control the screen. This can be a big
clunky desktop box, or rack-mounted server box, since it is not going
to be moving around.

2a) Use "VNC" so that the screen-machine can watch what is happening
on the tablet.
-- You can let it watch everything that is happening on the tablet, or
-- You can let it watch only one window or only one application, by
invoking some options on the vnc server

2b) There is also an app called "synergy" that allows you to control
the CPU, screen, audio, and other resources of one machine using the
mouse and keyboard of another.

Note that (2a) and (2b) distribute the computation and communication
load rather differently. In particular, (2b) puts much less of a load
on the communication link, but involves actually running applications
on the screen-machine.

Indeed, VNC and synergy are complimentary in an interesting way:
Imagine an old-style hardware-based KVM switch. Now re-implement
the functionality in software. VNC implements the "V" part of the
KVM function, while synergy implements the "K" and "M parts.

I believe both VNC and synergy are freely available for all the
common platforms, including Linux, Mac, and MS.

======================================

Thirdly, while we are talking about computer technology, heads up:
There is a new c++ standard, namely c++11

c++11, formerly known as c++0x, is the name of the most recent edition
of the of the c++ programming language standard, approved by ISO as of
12 August 2011, replacing c++03. The name is derived from the year of
the specification's publication.

++ Old-style c++ code compiles just fine under the new compiler, so you
can safely ignore the new features if you want.
++ Most of the c++11 features are implemented by the current g++ compiler.
++ Indeed, many of the c++11 features have been implemented for years.
+- You may need to say "pretty please" or "-std=c++0x" or "-std=c++11"
to enable the new features.
-- Alas, some of the features that I find most useful (such as initializer
lists) are not yet implemented by certain other compilers (such as MSVC),
so it is too early to start using the new features in code that needs to
be widely portable.

I mention this because you probably want to include c++11 in your planning,
maybe for the short term and certainly for the long term.

In particular, if you are teaching students to use c++, you might as well
teach them to use the new features. I reckon that by the time the students
get out into the real world, virtually all compilers will support the new
features. Some of the features make c++ code noticeably easier to write,
easier to read, more efficient, and/or more bug-resistant.

A small program that exercises a few of the new features is here:
http://www.av8n.com/computer/cat.cgi/c++11.c


// References: c++11 features:
// http://en.wikipedia.org/wiki/C%2B%2B11
// http://www.research.ibm.com/arl/seminar/media/stroustrup.pdf

// References:
// matrix showing feature status for various brands of compiler:
// http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
// matrix showing feature status for various g++ versions:
// http://gcc.gnu.org/projects/cxx0x.html
//
// Note: oneiric and precise use gcc 4.6
// natty uses gcc 4.5
// natty can be upgraded to 4.6 with minimal effort


=====================================

Fourthly: While we are talking about C++ ... I recently updated my
discussion of why modern programming language features are worthwhile:
http://www.av8n.com/computer/htm/modern-programming.htm

It contains a number of real-world examples that are easier and/or
safer using C++.

=====================================


Fifthly: Back on 03/30/2012 02:29 PM, I wrote in part:

Write the polynomial in standard form:

Σ k_i x^i = 0 [2]

then k_0/k_N is the product of the roots ...

Ooops, sorry, that's wrong.

Actually, for a polynomial of degree N, the product of the roots is

(-1^N) k_0/k_N
^^^^^^

... as you can easily verify by induction or otherwise.