This is Solaris 10 (SysV curses, with a hand-imported xterm-color terminfo entry). :-)
432 karma · joined September 2, 2010
This is Solaris 10 (SysV curses, with a hand-imported xterm-color terminfo entry). :-)
https://existentialtype.wordpress.com/2011/03/17/parallelism...
(The whole blog is worth reading; Harper is basically giving a blow-by-blow as CMU rolls out it's new functional-programming-first CS curriculum.)
I've been using prompt for a day now, and so far it feels better than the others. The app design feels really clean, the method of expanding the keyboard to handle modifier keys and frequently-used non-alpha keys works well without grabbing too much screen real estate (this is clearly visible in the screen shots for what it's worth).
Finally, the terminal emulation has been flawless for me so far. Emacs runs well (and is quite usable with Prompt's modifier key placement, unlike in other iOS ssh clients I'd tried; remember, folks, ESC is Meta, Meta is ESC). touchTerm had some screen lag/partial refresh issues for me with Emacs -- these may have been fixed in later versions, though, as I gave up at some point.
In short, I like it.
obDisclaimer: I don't know the developers. I don't have a dog in this fight. I do like the app. I'm not the only one who likes it though -- see the daringfireball take here:
I suspect that in another few decades, GLS will, with Alan Perlis, Don Knuth, and perhaps Edsger Dijkstra, begin to take on the CS equivalent to the pop cultural role now played by Mark Twain, Abraham Lincoln, and Ben Franklin -- a figure to which half-remembered quotes or anecdotes are routinely ascribed.
But that's no excuse for my own half-memory here. Thanks for the correction.
Immutability does require different data structures; a (singly-linked) list is easy to make immutable in most cases -- many lists with the same tail part can share that tail, without copying when a new list starts sharing that tail. Arrays, not so much.
Objects, on the other hand are... a tool to provide a behavioral view of state which is environmental in imperative languages. An object is set of state, presented as a data structure, with behavior provided by fields in that data structure (one view) or by the way in which functions taking that data structure as an argument dispatch on its type (another). In an immutable world, such an object would have methods which return a new object with some modification made.
Without some mechanism (these are two) to wrap up related state into a passable/returnable datum, its hard to talk about dealing with such state being made immutable.
In other words, I don't think there's anything particular to OO about the mutable/immutable point the article is making; the important distinction is between operations on data structures vs. operations on the environment. The article is thus too hung up on objects as somehow `different' when it comes to immutability, but I don't think they are.
As a side note, for an example of an OO language more recent than Smalltalk which favors objects with immutable operations, look at Scala or Ruby.
The venerable master Qc Na was walking with his student, Anton. Hoping to prompt the master into a discussion, Anton said "Master, I have heard that objects are a very good thing - is this true?" Qc Na looked pityingly at his student and replied, "Foolish pupil - objects are merely a poor man's closures."
Chastised, Anton took his leave from his master and returned to his cell, intent on studying closures. He carefully read the entire "Lambda: The Ultimate..." series of papers and its cousins, and implemented a small Scheme interpreter with a closure-based object system. He learned much, and looked forward to informing his master of his progress.
On his next walk with Qc Na, Anton attempted to impress his master by saying "Master, I have diligently studied the matter, and now understand that objects are truly a poor man's closures." Qc Na responded by hitting Anton with his stick, saying "When will you learn? Closures are a poor man's object." At that moment, Anton became enlightened.
From:
http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/m...
I'm about 2/3 of the way through the book, and I highly recommend it to anyone looking to learn the language in a more or less rigorous way. It won't make you a production Prolog programmer (any more than SICP will make you a production Schemer), but it starts with a firm grounding in the theory of logic programming, and works that up to a good grounding in Prolog step by step, before spending the latter half of the book working through idiomatic Prolog solutions to a bunch of standard (once-standard?) problems (a shell, an interpreter, a compiler), as well as problems more in line with Prolog's traditional uses (ELIZA, an expert system).
The book is here:
http://www.amazon.com/Art-Prolog-Second-Programming-Techniques/dp/0262193388
``The Craft of Prolog'', which this post mentions is in the same series, and provides somewhat of a more pragmatic view of the language. I may get to that next. Meanwhile, ``The Reasoned Schemer'' provides the entry of ``the Little Schemer'' series into the field of logic programming, using the MiniKanren logic programming system for Scheme.Since the AppleScript instructs the terminal to change _the current session_'s theme, if ssh exits while you're in another tab (say due to a disconnect), the tab which is currently frontmost will have its theme changed to 'Solarized Dark', while the tab you had run ssh in will stay as 'Solarized Light'.
Of course, this won't show up in testing -- and will be rather surprising when it does show up. :-)
The upcoming Ada 2012 standard even includes versions of Ada 2005's collection classes which are allocation-free (read: pre-allocated to a size specified at creation time, and guaranteed not to perform allocation after that point).
Ada's generic programming was a big influence on Stepanov's design of what became the STL (the first versions were a port of work he had done under Ada). Ironically, the Ada standards process moved so slowly that by the time Ada grew standards-mandated generic collection classes (previously this was something all vendors provided as an extension), it had time to learn the lessons of STL.
(Not a knock on STL, by the way -- STL's implementors have learned a lot over the life of the standard as well.)
In any case, are their any methodological problems with this study that you can point to? Any other studies you can point to that give a different result?
I'm also curious about your anecdotal evidence, which you seem to give more weight than this study. Do you routinely ask people you meet whether they were home schooled? Do the ``intelligent, thoughtful'' people you meet routinely come out and tell you that they are not home schooled?
Almost three percent of the current US student population is home schooled[1]. You've probably met a lot more home schoolers than you realize...
[1] Study (pdf) as of 2007 at
http://www.nces.ed.gov/pubs2009/2009030.pdfI'm also not sure what you mean by `scaling issues'? Many districts here in New York State avereage 45-50 students per teacher. We have a large family by the national or local averages, and our five kids have one homeschooling parent all to themselves...
This doesn't mean that homeschooling is affordable for everyone -- especially given that every parent (and non-parent, for that matter) is paying (directly if they own, indirectly if they rent) for the public school system, whether they use it or not.
Though as for actually counting LoC, I agree with Bill Gates that "Measuring programming progress by lines of code is like measuring aircraft building progress by weight." :-)
http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2011-Januar...
This doesn't mean BCrypt is unsound. It does mean that I would want to see such analysis before using it.
Again, an example of this is the 3DES encrypt/decrypt/encrypt process vs. a more naive encrypt/encrypt/encrypt process. One is substantially stronger than the other. One is a secure way to use DES, and one is not.
There's a long history of ``clever new ways'' to use existing crypto algorithms turning out to have serious flaws -- a good example is early attempts to improve the strength of (56-bit key) DES by encrypting three times with three keys. This turns out to introduce enough non-randomness to make the result much weaker than one might expect; standard 3DES works by encrypting with the first key, decrypting with the second, and encrypting with the third, which results in very different properties of the output cyphertext.
I'm not saying BCrypt has the same sort of issues, but I'd like to see some cryptanalysis of this before trusting my users' data with it. Notably, there seems to be no links to such analysis on the BCrypt home page -- not even an argument from the author as to why this code should be cryptographically sound.
Joke aside, Host: is optional in HTTP/1.0 (it's mandatory in HTTP/1.1). I would not be surprised if blocking on this cut out some set of proxies and spiders out there as well (whether these are customers you can't afford to block is another question).
http://ftp.netbsd.org/pub/NetBSD/misc/repositories/git/autho...
Amazon has every right to turn WL away. That they chose to do so is, IMO, unfortunate, for the reasons laid out here:
http://www.eff.org/deeplinks/2010/12/amazon-and-wikileaks-fi...
but that's their choice to make.
And if people who wish Amazon had done otherwise want to spend their dollars elsewhere, well, that's their choice to make, too.
I've tried encouraging my children to remember and write down their dreams, and my impression (they might disagree!) is that the ones which struck them the most are those which were unlike reality in some small, but important way; not those which were simply bizarre.
What happens if you do have shared logic to put in the abstract base class's destructor? It can't be pure virtual, and you're back to being able to instantiate your 'abstract' base class...