| Baiting the PL people |
[Jul. 12th, 2009|09:50 pm] |
I have several questions I'd like to ask the PL people out there (and really, anyone else who feels like giving their own answers, as I'm mostly soliciting opinions, scenarios and what-ifs rather than "facts"). I am posting them here because I would like to see some degree of lively debate. Anyway, here goes:
- Given how much the "standard programming languages we use" have changed over the years, and that many of the industry standard scripting languages today were based on research languages like Self, Smalltalk, Lisp, etc., what present-day research languages and features of present-day research languages do you see inspiring the industry-standard languages of tomorrow?
- Of the standard "functional favorites" (Haskell, SML, OCaml), which do you see used the most often for industrial CS applications? (I mean, come on, I know there is a small minority of people who do this) Which would you like to see used for industrial CS applications and why? Are some better suited and/or more widely used for web / mobile / other application domain?
- JCreed once had a post about the things he'd learned in programming that seemed silly at first and later turned out to be of fundamental importance. The list begin with things like "commenting your code" and "strong type systems" and ended with pieces of mathematical logic I'd never heard of and didn't understand. Of the things PL people deal with that I don't yet know or understand, which do you think are the most important/fundamental/general/practical? i.e., if I had a choice, which should I learn first?
Thanks.
P.S. This was all inspired by learning JavaScript... ...I shit you not. |
|
|
| Cool |
[Jul. 12th, 2009|02:12 am] |
Javascript...
I seem to have the basics down although I probably just used them to create a godawful bad UI...
I'm also guessing that for most of the things people use it for, they just end up copying one of a bunch of standard pieces of code...
... also what the hell is with firefox doing image scaling by point sampling. |
|
|
| CS etc |
[Jul. 11th, 2009|03:59 am] |
I'm slowly getting the impression that the field I knew of as "computer science" when I was an undergrad (remember when the undergraduate catalog listed a "scientific computing track"? CS majors don't do that shit anymore) is slowly schisming into a bunch of only-tangentially-related fields.
This frustrates me as I feel I should be able to work in all of them (okay, so I accept that I can't understand programming languages theory without an entirely different sort of math degree from the one I have) but its quite clear that only some skills from any given field will cross over into other ones.
I made a comment about wanting to catch up on "web programming" (actually a serious discipline now) in an earlier post, but even fields like "graphics and robotics" that should be quite close in many ways present this problem. For instance, 5 years of writing control algorithms and simulators for robot swarms has left me oddly unemployable in computer graphics. (I'm probably going to relearn this from the ground up sometime in the next 5 years, and its probably going to change a couple times as "graphics" starts to mean "shared virtual environments over something resembling modern web protocols" and phrases like "augmented reality" move from "things you name your research lab" to "things your mobile phone startup has to do")
I guess this is partly exacerbated by the fact that I did grad school in something most people don't really consider computer science. "Robotics" is only in the CS departments at a few schools (oddly the ones considered the best in robotics) and the conferences I go to are mostly populated by mechanical, electrical and chemical engineers, with the odd mathematician.
Also, dude, vision. That stuff keeps turning over faster than anyone but a vision PhD can keep track of. They seem to be able to do wonderful things with it though.
Oh yeah, and systems? My first 5 years in industry, the little bit of OS I'd managed to absorb was incredibly useful for writing graphics applications that ran on a single desktop. Now I'm kicking myself for not taking networks instead. It seems networks and databases are now the useful parts of systems, and knowing those would be well worth the trade for "only having a 15-213 level understanding of OS" Shit, there's totally going to be networks inside our computers, and our filesystems are going to look like databases. |
|
|
| (no subject) |
[Jul. 10th, 2009|03:50 am] |
|
Anyone know of a javascript tutorial which doesn't assume its my first programming language? |
|
|
| Looking for work |
[May. 12th, 2009|06:25 pm] |
The bad part about getting a PhD is you stop getting paid to be a "Grad Student Researcher"
I kinda (read "really") need some sort of temporary income between now and whenever I get my postdocs / real job.
Does anyone know where I can get temporary / contract work that I can do from Los Angeles County? |
|
|
| procrastination / graphics |
[Feb. 23rd, 2009|05:44 pm] |
Procrastinating from "writing papers" (and motivated by the fact that I might apply to graphics-related jobs using my very non-graphics-related grad school experience) I decided to fix most of the things that sucked about the graphics for my simulations.
Check out http://www.soe.ucsc.edu/~mds/cclsim |
|
|
| Perfect |
[Feb. 10th, 2009|04:59 am] |
http://www.processing.org/faq.html#java
The main rule when using Java code: You cannot use most of the AWT or Swing (which is built on the AWT), because it will interfere with the graphics model. If you want to add scroll bars and buttons to your projects, you should make them using Processing code, or embed your Processing applet inside another Swing or AWT application (see below). Even if they appear to work, such sketches will usually break when you try to run on other operating systems or other versions of Java.
Screw AWT and Swing
Also : Not so perfect
We currently only support Java 1.4 (and earlier) syntax. You cannot currently use 1.5 syntax in the Processing Development Environment. This means no generics, templates, enum, varargs, foreach, and the rest. If you want to use Java 1.5 (or later), take core.jar and develop your project with another Java IDE (again, see below). More about Java versions can be found on the platforms page. A couple of the syntax features in Java 1.5 are very useful (the enhanced for loop, some aspects of generics) so if you would like to use them in Processing, please give us a hand. You can start by visiting this bug which describes the obstacles to 1.5 support.
but workable... ...maybe...
Any advice? Anyone out there tried to tie a large simulation codebase in 1.5 java to a processing frontend (Processing.org front end is not written yet, but shouldn't be too hard...) |
|
|
| Science experiment / prison wine |
[Nov. 9th, 2008|01:58 am] |
Inspired by this article I tried the following experiment.
Take a container of orange juice, pour some out, pour in one container of "active dry baking yeast" and one packet of sugar.
close top, shake, let sit at room temperature for 8 hours.
Drink.
Result : One orange-flavored fizzy, slightly sweet, mildly alcoholic beverage.
Actually tasty -- from what I've read of "hobo wine" or "prison wine" I suspect the secret is drinking it fresh before fermentation is complete (note : this should be chock-full of yeast, not sure if such a high dosage of yeast is a good idea, but the small quantities in live-yeast beer [such as Sierra Nevada from a bottle] never seem to do any harm)
Side note : No wonder alcohol prohibition failed -- this stuff was really easy to make. Distillation must be the hardest thing about moonshine. |
|
|
| gender neutral pronoun |
[Oct. 30th, 2008|10:53 pm] |
If I am ever in a position where I have to use gender-neutral pronouns throughout the body of a long book, I am tempted to borrow pronouns from Cantonese.
I'd been wondering why a certain Cantonese-speaker I really like kept mixing up "he" and "she". I've decided not to correct koi on it, since its kinda cool that koi-dik speech doesn't reinforce the distinction. |
|
|
| What class would you teach? |
[Sep. 10th, 2008|01:53 pm] |
So when potential hires apply for faculty jobs, one of the questions they're asked is "If you could teach any class you wanted, what would it be?"
While I'm not sure I'm going this route, I do (finally) have a decent answer.
I'd teach "Controls for Computer Scientists"
The syllabus would look something like:
Review of linear algebra, linear regression, over and under-determined linear systems. Linear discrete time dynamical systems. Laplace transforms. Linear state-space control. Linearization of non-linear systems. Lyapunov stability. La-Salle invariance principle. Simple non-linear control based on the above. Applications primarily drawn from robotics. Heavy programming component in matlab. Students will write controllers for simulations of mobile robots in Java. Simulation platform provided by instructor.
Prereqs: 15-211, 15-251, Linear algebra, differential equations. Analysis strongly reccomended.
Not covered: Classical controls engineering (i.e. anything representing a control system with a drawing that looks like a circuit diagram. Most of PID control (except for a transformation which lets PID control look like proportional control in state space). Bode and Nyquist plots.)
Who should take this course : Computer scientists with solid math backgrounds who want to develop simple control systems for robotics. Anyone who needs to know a little bit of controls, but doesn't need to interact with classical control theorists.
The second semester version of this class (Controls for Computer Scientists II) will cover Dyanmic programming (and the Hamilton Jacobi Bellman equation) Bayesian statistics, machine learning, Markov Chain Monte Carlo, Particle filtering, and will introduce the Kalman filter as a simple extension of the idea of conjugate priors from Bayesian Statistics. Some adaptive control techniques will be introduced as an extension of the non-linear control techniques from the previous course. A prior course in statistics is required, mathematical statistics is strongly reccomended. Students will program in R, matlab and Java/C++/language of their choice.
Edit to add The machine learning component will focus on on-line learning and reinforcement learning. What will not be covered in course II: Any of the adaptations to the Kalman filter to make it more suitable for non-linear tracking. |
|
|
| (no subject) |
[Sep. 9th, 2008|11:08 pm] |
http://www.youtube.com/watch?v=q1xQv6GhNSs
It turns out that pretty much every soul song I like with a male singer was made by the same guy.
This is an interview with him. Its pretty good.
Although, to be fair, I watched it while sleep deprived, which makes everything more have more emotional impact than it would otherwise. |
|
|
| Fuck |
[Sep. 3rd, 2008|01:04 am] |
I think the university might not have paid me this september.
At least their payroll had no record of such when I checked online.
Not sure how accurate those things are. Will check the bank tommorow. |
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| [ |
go |
| |
earlier |
] |
| |
|
|