Link
For my notebook..
1 note
·
View note
Text
Emacs Key bindings on Gtk
To enable emacs key bindings in gtk (i.e., all windows, forms etc.) run:
gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"
To switch back:
gsettings set org.gnome.desktop.interface gtk-key-theme "Default"
They only thing I find hard to get used to is that c-w does not work for closing tabs! But again..
0 notes
Photo
yay! Any screenshots/tunes?
I basically use OS X now. Fresh install of Elementary to use Renoise, SunVOX, BitWig, Seq24 and PureData. Music production Linux style.
10 notes
·
View notes
Text
XML vs JSON
http://lemire.me/blog/archives/2010/11/17/you-probably-misunderstand-xml/
http://blog.jclark.com/2010/11/xml-vs-web_24.html
http://visitmix.com/writings/the-rise-of-json
0 notes
Text
Node Labs
Interesting: Node Labs.
Other stuff:
http://shapeshed.com/command-line-utilities-with-nodejs/
http://stackoverflow.com/questions/2353818/how-do-i-get-started-with-node-js
0 notes
Text
Parameter directions in Vala
A method in Vala is passed zero or more arguments. The default behavior when a method is called is as follows:
Any value type parameters are copied to a location local to the method as it executes.
Any reference type parameters are not copied, instead just a reference to them is passed to the method.
This behavior can be changed with the modifiers 'ref' and 'out'.
'out' from the caller side: you may pass an uninitialized variable to the method and you may expect it to be initialized after the method returns
'out' from callee side: the parameter is considered uninitialized and you have to initialize it
'ref' from caller side: the variable you're passing to the method has to be initialized and it may be changed or not by the method
'ref' from callee side the parameter is considered initialized and you may change it or not
Example:
The treatment of each variable will be:
"a" is of a value type. The value will be copied into a new memory location local to the method, and so changes to it will not be visible to the caller.
"b" is also of a value type, but passed as an out parameter. In this case, the value is not copied, instead a pointer to the data is passed to the method, and so any change to the method parameter will be visible to the calling code.
"c" is treated in the same way as "b", the only change is in the signalled intent of the method.
"o" is of a reference type. The method is passed a reference to the same object as the caller has. The method can therefore change that object, but if it reassigns to the parameter, that change will not be visible to the caller.
"p" is of the same type, but passed as an out parameter. This means that the method will receive a pointer to the reference to the object. It may therefore replace the reference with a reference to another object, and when the method returns the caller will instead own a reference to that other object. When you use this type of parameter, if you do not assign a new reference to the parameter, it will be set to null.
"q" is again of the same type. This case is treated like "p" with the important differences that the method may choose not to change the reference, and may access the object referred to. Vala will ensure that in this instance "q" actually refers to any object, and is not set to null.
An example of how to implement method1 is shown above. When setting the value to the out argument "b", Vala will ensure that "b" is not null. So you can safely pass null as the second argument of method_1() if you are not interested by this value.
0 notes
Text
Computer Scientists with a Sense of Humor!
It is often said that, in order to be successful, above all, one needs to have a good sense of humor. Here are some excellent examples of the practice by Donald E. Knuth.
The delivery speech delivered by Herbert S. Wilf at the birthday conference (2002) in honor of Don, at Stanford, contains many such instances:
http://www.math.upenn.edu/~wilf/website/dek.pdf
There is also his (indirect) response on a stackoverflow question:
http://codehaus.blogspot.com/2012/03/note-from-donald-knuth-about-taocp.html
Haven't gone through TAOCP yet, but his sense of humor and personality shine pervasively through other manuscripts I've seen.
0 notes
Quote
...It would hardly be a waste of time if sometimes even the most advanced students in the cognitive sciences were to pay a visit to their ancestors. It is frequently claimed in American philosophy departments that, in order to be a philosopher, it is not necessary to revisit the history of philosophy. It is like the claim that one can become a painter without having ever seen a single work by Raphael, or a writer without having ever read the classics. Such things are theoretically possible; but the 'primitive' artist, condemned to an ignorance of the past, is always recognizable as such and rightly labeled as naïf. It is only when we consider past projects revealed as utopian or as failures that we are apprised of the dangers and possibilities for failure for our allegedly new projects. The study of the deeds of our ancestors is thus more than an atiquarian pastime, it is an immunological precaution.
― Umberto Eco's witticisms are fully applicable in the realm of academic research in computer science and engineering. As scientists, being aware of great (and not so great) works of the past is of paramount importance. It is the tool we rely on as enabling force for future synthesis and broader impact. Of course, there are people who believe that reading old work may have the opposite impact; in particular, it hinders creativity and out-of-the-box thinking. However, I firmly believe that aspiring researchers need to make sure they combine both: on a daily basis, strive to spend some time digesting, familiarizing with or analyzing ideas from the past, and time synthesizing, creating, or expressing new ideas. When people don't invest time to study the classics, as Eco describes them, they are condemned to reinvent ideas from the past, and, to paraphrase Henry Spenser, they usually do so very poorly. This is completely independent of whether one's focus is on art expressions, engineering artifacts, research ideas or athletic achievements.
Excerpt is from Eco, Umberto: The search for the perfect language. Oxford: Blackwell, 1995.
#umberto eco#witticisms#research#computer science#ideas#invention#the search of the perfect language#classics#cs
1 note
·
View note
Audio
#music#little people#mickey mouse operation#beats#bleeps#downtempo#electronic#instrumental hip hop#samples
23 notes
·
View notes
Link
From Matt Might! I am curious to hear what other people think.
#cs#computer science#computer science education#computer engineering#undergraduate#knowledge#matt might
3 notes
·
View notes
Text
Proof General, 24-yr-old Emacs and a Rooster Go To..
Well.. they actually crash the party...
(alternate titles were (1) how to install emacs 24 + Proof General + Coq (2) how to make emacs24 + Proof General + Coq not crash!)
And a screen capture of he final result, just to tease you out..
I mainly kept this for my future reference (Posts of this title usually include a setup so specific that is not useful!). Before we start, if there is anything I can do to make this article clearer, please let me know. I use apt-get as a package manager under debian-based elementary, but we will not rely heavily on it (i.e., you can install emacs and coq from other sources as well).
Install emacs 24 on an emacsen 23 box.
To install emacs 24, you need to add cassou's ppa from launchpad:
| sudo add-apt-repository ppa:cassou/emacs | sudo apt-get update | sudo apt-get install emacs24
Now remove all emacs23 packages
| sudo apt-get purge emacs-snapshot-common emacs-snapshot-bin-common emacs-snapshot emacs-snapshot-el emacs-snapshot-gtk emacs23 emacs23-bin-common emacs23-common emacs23-el emacs23-nox emacs23-lucid auctex emacs24 emacs24-bin-common emacs24-common emacs24-common-non-dfsg
Of course, a
| dpkg --get-selections | grep emacs
might prove useful for you to see what packages you actually have installed. Anyway, even with the above, you can't un-install something you haven't installed, so you're good.
You don't need to install any other packages, since emacs24 comes with its own lovely package manager built in! To fire it up, just hit Meta-X and run
| package-list-packages
(Our clever reader notices the lack of modules in emacs lisp, and the need to prefix functions of a specific "module" with the module name itself, i.e., package-.. !)
Install Proof General
For the case of Proof General, we would need the development snapshot. Head to your favorite personal library directory (mine is in ~/Projects/tools) and fetch the latest snapshot:
| wget http://proofgeneral.inf.ed.ac.uk/ProofGeneral-latest.tgz | tar -xpzf ProofGeneral-version.tgz | ln -sf ProofGeneral-4.0 ProofGeneral
We are not exactly done yet. Usually, Proof General comes compiled for a different *minor* version of emacs (i.e., 24.2 is different from 24.3), so we need to recompile it. Just head into the top level directory of proof general:
| cd ProofGeneral | make clean; make
Finally, edit your emacs startup file to include a reference to the proof-site.el file of generic subdirectory of ProofGeneral -- in particular, add the following line:
| (load-file "./<whereitis>/ProofGeneral/generic/proof-site.el")
Install Coq
A simple apt-get install should do the trick:
| sudo apt-get install coq
If everything wend well, running coqtop --version should give you something close to
| The Coq Proof Assistant, version 8.3pl4 (April 2012) | compiled on Apr 03 2012 10:32:56 with OCaml 3.12.1
Your executable should be in /usr/bin, but just to make sure execute which:
| which coqtop
Head back to your emacs startup file (~/.emacs) and add the following line for coq (under the previously added for Proof General)
| (setq coq-prog-name "/usr/bin/coqtop")
This tells Proof General where to look for Coq executable. Note, in the past, you had to append --emacs after coqtop, but this has changed to later versions of Proof General! If you add this, Proof General won't be able to launch coq to interact with it!
Happy Proving!
ps. First time you launch emacs with a coq file, it's cool to see the Proof General splash screen, but after a while, you want to disable it. Here's how: add the following line to your emacs startup file (~/.emacs).
| (setq proof-splash-enable nil)
ps. ps. You might also find the emacs toolbar for ProofGeneral/Coq eeh.. how to put it.. ungly! You can hide it by
| (setq proof-splash-enable nil)
3 notes
·
View notes
Video
vimeo
The Beale ciphers are a set of three ciphertexts, one of which allegedly states the location of a buried treasure (Wikipedia citing a 2011-worth of over USD$63 million). The history is interesting, since we know only some information about the origin of the cyphertexts. Notable efforts include UNIVAC's Carl Hammer, who leveraged supercomputers of his era but did not find interesting patterns, and James Gillogly of Kryptos and Voynich fame , who debunnked them as hoaxes.
0 notes
Video
vimeo
Peter Purgathofer, an associate professor at the Vienna University of Technology, used legos to hack Amazon’s Kindle e-book security!
3 notes
·
View notes
Video
vimeo
A journey from Edinburgh to Skye where Danny finds some of the most unique and remote 'street' riding along the way.
0 notes
Photo
July 30, 1956: After the Stockholm, a Swedish liner, collided with the Andrea Dorea, an Italian cruise liner, killing 51, the damaged ship was dry-docked for repairs while its only Spanish seaman visited Linda Morgan, a 14-year-old American girl he rescued who spoke Spanish and was initially reported dead. In the crash, she had been “transferred from her berth on the Italian liner by the twisted steel of Stockholm.” Photo: Carl Gossett/The New York Times
124 notes
·
View notes
Video
youtube
Growing a language by Guy Steele. Incredible talk!
0 notes