This!!! "Prestigious" colleges aren't mostly about the course material, which after all must be learned and re-learned throughout life (at least in my case). The more important part of the experience is communicating with and learning from your fellow students. How do they approach problems? In what kinds of thinking do they generally succeed where you fail? How do /you/ deal with failures and stumbles when they occur? Truly, I think that the idea of online courses replacing the value of attending and living at an institution like CalTech, Yale, or Harvard is beyond laughable.
Why is it so trendy these days to forecast that human relationships and interaction don't matter outside of the internet anymore? Who wants to live this isolated hermit life anyways?
Hiring good people and keeping them happy is enormously difficult, time consuming, and expensive. Finding the right person can easily take a month or more--and the process must be repeated each time you lose your employee. The better and more qualified the employee, the more likely he or she is to go on to better things. If you can find a good person for $48K yearly, then you will also need to pay benefits, bringing the cost closer to $72K. To keep your employee happy, he or she will need time off, probably during times that he or she would be most useful to you. Your assistant will need to sleep, too, perhaps during times that you may be awake and hungry. You will also need to pay your employee for many hours in which they are not engaged in helping you because you haven't asked for help.
In short, I cannot imagine having the kind of wealth that would be needed to hire and maintain a group of employees that could assist me around the clock--and would do all of this without imposing a significant additional burden on my life. But I and probably many others can imagine paying a few hundred dollars for assistance with burdensome tasks.
> People who say this don't have a lot of friends, or don't care about their friends
I just wanted to add another voice saying that this isn't remotely true. I have a large and close-knit circle of friends, who work in technical fields, but Facebook isn't our thing. A few of my friends use Facebook a lot, but many use it rarely, and many don't have an account.
Sure, if you are looking for a beverage, then buy cheap wine, have a soda, or drink some water. All are tasty and thirst quenching!
If you are fascinated by wine as art, though, you are going to be looking for something /interesting/-- unique and handcrafted. And those qualities always cost money, because you are paying for somebody's effort and talent. If you love good cooking, for example, you don't eat instant ramen every night. You go out to have fun and see what the most inventive chefs are doing.
Bare Bottle is a startup trying to bring this creative aspect to the fore, by pairing great winemakers and designers (http://barebottle.com). Both artists involved are "great" because they are creative originals who make something unique, not merely because they produce something acceptable to wash down your ramen.
I find it interesting to read about this "taboo" because, as a scientist at a public university, the issue is...nonexistent! If you are a scientist writing grant applications with other people (the norm), then you need to know their exact salaries in order to fill out the application. This includes the salaries of people above and below you in the food chain. There is no mystery or taboo in it whatsoever. Working at a public university, the mystery factor is even lower, if possible, because all the higher salaries are published online.
I remember dimly when I thought this complete transparency was strange and it made me uncomfortable. Now I don't usually give it a second thought.
Isn't it sort of taboo here too, though? I've seen people being told to fuck off for asking that question, or at least politely declined. Even my close family have always been reluctant to divulge their exact income to me, with a few exceptions. It's not a thing that I would ask someone without feeling pretty certain they wouldn't mind.
Yes, you can even order complete records over your region where you see everyone's income tax as well as their capital gains tax in Sweden.
As far as I know, there's no completely open lookup service on the Internet - all of them are pay-walled. None the less, they're public.
I'm fairly confident that this is common amongst the Nordic countries - albeit not looking exactly the same, they share the same spirit of openness.
That said, in Sweden (Which is the only one I have anecdata from) - it's still frowned upon to ask someone what they earn. Talking about what you earn or how much of a raise you got is also socially awkward.
I don't feel talking about what kind of benefits/subsidy is as socially awkward. I'd say it's more accepted.
Something that is completely socially accepted and frequent each year is talking about how large of a tax return you got.
It's the same for Norway, all information is public. It does lead to salaries reaching some sort of equilibrium for the the same role, as it is much harder to argue against an employee, when he points out all his peers are making more money for the same work.
No. Tax information is public in anonymized form. That is different from wages, and the effect is absolutely not the same as if you knew exactly what your peers are making.
I'm trying to encourage talking wages at work, and have gotten my division to disclose theirs, but there's a lot of "oh, but it could lead to discontentment" in the rest of the company. And if you know Norwegians, being mildly at unease is the worst thing that can happen.
Here in Australia, the majority of academics and university staff fall under union agreements with publicly available pay scales, so you can work out at least an approximate pay grade based on minimal information about the people involved. I also happen to live in the capital, where about a third of the working population is employed by the federal government, the vast majority of whom are covered by union agreements on standard pay scales. It's fairly normal to talk openly about being an "APS5" or an "APS6" knowing that many people around here wouldn't even need to look up the pay scales to know your salary from that.
I get the impression though that in general Australia has a fairly similar level of taboo-ness about salaries as the US, it's not something you really talk about with co-workers.
I've had WiFi problems for many moons on 10.9: long latencies when pinging the router and complete dropouts for periods of 2-10 seconds every 3 minutes or so. The problem seems only to happen with certain routers. I was hopeful that my problems could be explained by the AirDrop issue (i.e., maybe I was only having problems when in proximity to certain computers using those troublesome routers).
Sadly, I don't even have the awdl0 interface. I tried taking down p2p0 but that didn't help either. Any other ideas?
Yes, it is that simple! I have found the experience of calling my congresspeople to be very rewarding and impressive. In general I have been connected to a very knowledgeable and intelligent staffer with minutes of calling. I explain why I am calling and say that I hope the Senator will support my position and the staffer generally replies with a few questions, clarifications of the Senator's position, etc., and says that he/she will relay my comments.
Truly, I cannot recommend this experience highly enough. Call! It only takes a few minutes and you'll be glad you did.
I need to learn 3D graphics for some of my scientific projects. Specifically, I want to rotate clouds of points just as shown here. I have no idea where to start with doing this, however. Can somebody point me to a good tutorial or other resource in 3D graphics?
I don't know of a good one, so I'll write one here. This focuses on how things work, rather than how to use existing APIs, because I've basically never used GL. What's below is short and doesn't have much math, but it should be enough to allow someone who knows linear algebra and 2-D graphics to both understand and rederive most of 3D graphics.
To rotate a point cloud, you multiply each point by a rotation matrix to get the rotated point. A rotation matrix that rotates around the X-axis looks like
[[1 0 0]
[0 c s]
[0 -s c]]
where s and c are the sin and cos of the angle you want to rotate. Then you can do an orthographic projection by just dropping the Z coordinate, leaving just X and Y coordinates (which you may need to scale to your screen), or a perspective projection by dividing X and Y by Z. (Be wary of division by zero.)
The usual approach is to maintain the original points unrotated and make a rotated copy of them for every frame, instead of overwriting them with a rotated version every frame, so that numerical errors don't accumulate and you can get away with single-precision floating-point. Also, conventionally, positive Z coordinates are in front of the camera and negative Z coordinates are behind it.
If the above isn't sufficiently clear, there's some code I wrote to generate an ASCII-art animation of a perspective-projected point cloud (the corners of a cube) at http://lists.canonical.org/pipermail/kragen-hacks/2012-April.... It's 15 lines of code and the only library it depends on are Python's functions to sleep for a fraction of a second, output stuff to stdout, and round to integer.
EXTRAS:
DISTANCE: For things that aren't points, you might be interested in how far away they are from the camera, too, like to scale them or figure out which ones are in front. That's the Z-coordinate after you rotate into camera space.
TRANSFORM COMPOSITION: If you want to rotate around two axes, it's probably better to multiply the two rotation matrices together, then multiply each point by the resulting transformation matrix, rather than doing two matrix multiplies for each point. You can also scale camera space to screen coordinates this way.
TRANSLATION: If you want to move the camera, you probably want to translate your points so the camera is at the origin before rotating them. If you represent your transformations as 4x4 matrices, with a possibly implicit fourth element in each point vector that is 1, you can represent translation in your transformation matrices too.
MULTIPLE SEPARATELY MOVING OBJECTS: A point cloud is a single rigid object. But whether you're drawing point clouds or something more complicated, it's often interesting to be able to move multiple objects separately. The usual way is to go from two coordinate systems, camera and world, to N: camera, world, and one for each object. Each object has a transformation matrix that maps its object space into world space. You move the object by changing its transformation matrix.
POLYGONS: If you're drawing polygons, straight lines are still straight lines when you rotate them, and in either perspective or orthographic projections, so you can just rotate and project the corners of the polygons into your canvas space, and then connect them with 2-D straight lines (or fill the resulting 2-D triangle).
FLAT SHADING: The color resulting from ordinary illumination ("diffuse reflection") is the underlying color of the polygon, multiplied by the cosine of the angle between the normal (perpendicular) to the surface and the direction of illumination; it's easiest to compute that cosine by taking a dot-product between two unit vectors, and to compute the normal by normalizing a cross-product between two of the sides. If you have more than one lighting source, add together the colors generated by each lighting source. You probably want to treat negative cosines as zero, or you'll get negative lighting when faces are illuminated from behind.
BACKFACE REMOVAL: if you're drawing a single convex object made of polygons, you can do correct hidden surface removal just by not drawing polygons whose normal points away from the camera (has a positive Z component). This is a useful optimization even if your object is more complicated, because it halves the load on the heavier-weight algorithms below.
HIDDEN SURFACE REMOVAL: If your polygons don't intersect, or only intersect at their edges, you can use the "painter's algorithm" to get correctly displayed hidden surfaces by just drawing them in order from the furthest to the closest; if they do intersect, you can either cut them up so they don't intersect any more, or you can use a "Z buffer" which tells you which object is closest to the camera at each pixel --- as you draw your things, you check the Z buffer to see what's the currently closest Z coordinate at each pixel you're drawing, and if the relevant point on that object has a lower Z coordinate, you update that pixel in both the Z buffer and the canvas.
SMOOTH SHADING: you can get apparently smooth surfaces out of quite rough polygon grids by storing a separate surface normal at each vertex, and then instead of coloring the whole polygon a single flat color, interpolate. You can either compute the colors at the corners of the polygons and interpolate the colors at each point you draw (Gouraud shading) or you can interpolate the normals and redo the lighting calculation for each point (Phong shading), which gives you dramatically better results if you have specular highlights.
SPECULAR HIGHLIGHTS: The diffuse-illumination calculation explained in "FLAT SHADING" above is sufficient for things that aren't shiny at all. For things that are somewhat shiny, you want "specular highlights", and the usual way to do those is to do the lighting calculation a second time, but instead of directly using the cosine of the angle between the light source direction and the surface normal, you take that cosine to some power (called the "shininess" or "Phong exponent") first. The 5th power is pretty shiny.
FOG: Faraway things fade exponentially. That is, you take the density of the fog (a fraction slightly less than 1) to the power of the Z coordinate of the point on the object, and multiply that by the color of the object.
TEXTURE MAPPING: If you want your surfaces not to be a single solid color, you can use a raster image (called a "texture") to map colors onto the surface. You just figure out where you are on the surface (by doing a matrix multiply from your surface point into "texture space") and figure out which texture pixel ("texel") you're at, or which ones you should interpolate between. (You can also use some other function to generate the color, rather than having an explicitly stored texture. The important thing is that it maps a 3-D point in object space to a color.) This is the start of the whole universe of "shaders", which represents a big part of current 3-D work. Another application of shaders is bump mapping:
BUMP MAPPING: If you're doing Phong shading, you can get apparent texture (in the usual sense: something you could feel if you could touch the object) on your surfaces without having to transform more points by simply perturbing the interpolated surface normals you're using to do your shading calculations. It's helpful if you perturb them in a deterministic way so that the texture moves with the surface.
I've lived in this world: it was San Francisco about 15 years ago. People there used to leave their networks open (60%?) and now they don't (99%). It is an amazing change and I don't understand it. What has changed? I think it is the population using WiFi, which used to be more technology people and is now just...everybody.
My network is still open, though, and will remain so. Less than once a year I have to throttle a heavy user.