I'm honestly curious, not fishing for a job. It's part of why I created the poll. I have felt boxed in doing just what you're deriding, and I want to know what others here are finding interesting.
The people who do best in security are the ones who understand computer science. They are:
* Very solid C programmers, or
* Understand compiler design, or
* Know a thing or two about signal processing, or
* Know how to implement compression algorithms, or
etc etc etc.
That's exactly the issue I have with this poll. The cart appears to be dragging the horse. You write web applications to solve problems. What problems are you solving? Very few people will put money up against the problem of "need a better web framework".
I think that tptacek's point is that he wants someone that "digs deeper".
Looks like you will soon. :)
"We're hiring a Rails/jQ developer. NYC or Chicago."
You can build web frameworks on top of NodeJS (and lots of people are,) but that's kind of boring to me. NodeJS is particularly good at handling lots of open connections that it can read from and write to whenever it gets around to it. This means writing chat servers is trivial, writing a "socket server" for a game is trivial, push notification for websites is easy, and on and on.
Because of how little it does, it is a lot easier to get my head around than any of the other big evented frameworks (twisted, eventmachine &etc.)
- Computational neuroscience (I have vague ideas for a Ph.D thesis)
- World history (I've come to realize the breadth of my ignorance)
- French (I studied it in school from age 7 to 14 and still struggle to hold basic conversations)
- Driving (I'm 24 and don't have a license... that has to change)
I don't know about your specific situation, but in general driving is overrated. It's a stressful activity that provides no exercise, and owning a car is expensive (more so than most people realize). I think you're best off if you can find a place to live where walking, biking and public transit are all you need. That's what I hope to do.
So if you're feeling self-conscious for going so long without a license, don't. You really haven't missed out on much.
And being able to drive is really useful :-)
I do have a car; it's fairly cheap to run and it means I can travel at weekends etc. Freedom.
I don't enjoy _having_ to drive somewhere, however.
I am planning on getting a pilot's license this summer, however. Unlike driving, flying is actually fun.
Also my contact info is in my profile.
Went through a long divorce and am getting to redefine how I want to be. I think it is going to be a great year.
Good luck!
Very useful for writing web frameworks, sure - but not a web framework in itself.
Arc community is small right now, but the people left are brilliant. I've learned so much by listening to what they have to say, and they've been remarkably friendly to me as a newb.
[1] Please note that I haven't tried Haskell, Erlang, OCaml and some other formidible languages yet. Am I'm totally missing out?
It's understandable why you'd say that, of course. Clojure has more libraries, more users and is probably more complete. But is the core language as elegant as Arc's?
try the labrepl, really really nice tutorial + gentle install
http://groups.google.com/group/clojure/browse_thread/thread/...
halloway's pragmatic Clojure book is still quite worth reading, but describes a slightly pre-1.0 release (if you can borrow or browse Halloway's book in a bookstore, i would do that).
- scala: 2.8 beta is out, people want reliable eclipse, intellij and netBeans plugins, and more time to figure out type system; I think next couple years, a lot of developers are going to be "upgraded from java" via their VP's of engineering; s/b interesting;
- clojure: users are pretty happy; language, compiler and toolset evolving at warpspeed
- F#: people want Vis Stud 2010 out April 12 and 100% bug-free, ;-}
- haskell: people want lots more time to understand it
- erlang: users are pretty happy
It really depends on what were your prior languages.
I was C/Pascal/C++/Assembly type of programmer, and Scheme (or video lectures of Structure and Interpretation of Computer Programs) have blown my mind.
Erlang was interesting and useful, but not revolutionary (to me). I should say that hot swapping is something that no other language, as much as I know, currently has. And is cool :)
I'm now learning Haskell, and I like it. First, I understood little, mostly stuff from Scheme. And few weeks ago I had flash and most stuff was easy... (Monads/Functors/MonadicTransforms) It's probably worth the energy I have spent. IMHO some time has to pass for everything to come in place.
[edit] Bunch of other languages have hot swapping: Pike, Lisp, Smalltalk, and Java
I'm also applying one of the principles from Sun Tzu's Art of War (related to misdirection) and looking for it in Chess, Go and some RTSs. I may end up picking up Poker and learning some things from it.
(which tie nicely into FP languages and doc store databases/DHT's)
and typography (I consider it an important part of copywriting, not just touchy-feely stuff)
Also, ocarina.
Feel free to ask me anything if you get stuck.
javascript
The standard example is quicksort. Sorting requires N^2 relations to be enforced, but quicksort does it with N * log N operations (on average).
Matrix exponentiation is another simple example. Take M^N, where M is a square matrix and N is an integer. Directly calculating that takes a lot of arithmetic. So instead you calculate M^2, M^4 = (M^2)^2, M^8 = (M^4)^2, and so forth. Then M^N is simply the product of at most log(N) those binary powers. (Since iterated linear systems can be written as matrix math, this lets you easily calculate their Nth iteration. Want the trillionth Fibonacci number? No problem.)
The fast Fourier transform (FFT) is a much less obvious example. It computes an N-element frequency spectrum of N data samples in O(N * log N) time. This is impressive because every input contributes to every output, so the naive algorithm takes O(N^2), which is intractable for real-time signal processing.
Even less obvious are the various algorithms based on the FFT. For example, the primary school method for multiplying two N-digit integers requires N^2 operations, which is intractable for large values. However multiplication is equivalent to the digit-wise convolution of the integers followed by carrying the digit overflows, and there is an FFT theorem for convolving in O(N * log N) time. So you can multiply in O(N * log N) time! See http://en.wikipedia.org/wiki/Sch%C3%B6nhage%E2%80%93Strassen...