Inspired by CS1004’s Game of Life assignment, I’ve been playing around with different rule sets for various cellular automata. One of the CAs I came up with, what we might call the “Goldilocks game”, produces some really nice-looking results. It’s defined as follows:
A couple of my favorites are shown below. Click inside the applet to start/stop.
A=100, B=90, C=6, D=7
A = 255, B = 300, C = 10, D = 7. Note the marquee-style blinking dots that grow along the horizontal and vertical pathways.
Source code is available at http://projects.jacobandreas.net/cellular/src. I may try to put together an interactive version as well.
Columbia’s Casa Italiana, as part of the Festival della Matematica in Rome, will be hosting what may be the most mind-blowingly awesome series of lectures every conceived. The program:
Tuesday, March 10th
11 a.m. at the Italian Academy
The unreasonable effectiveness of mathematics, Lecture by the Nobel Laureate in Physics Sheldon Glashow
2.00 p.m. at the Italian Academy
The (mis)behaviour of financial markets, Lecture by Benoît Mandelbrot
5.00 p.m. at the Italian Cultural Institute
Press conference
6.00 p.m. at the Italian Cultural Institute
Imaginary interview with Galileo Galilei, Reading by Claudio Bartocci and Piergiorgio Odifreddi
Wednesday, March 11th
9.00 a.m. at the Italian Academy
Statistical thinking is hard, causal thinking is easy, Lecture by the Nobel Laureate for Economics Daniel Kahneman
11.00 a.m. at the Italian Academy
The early days of game theory in Princeton, Lecture-interview with the Nobel Laureate for Economics John Nash and Harold Kuhn
2.00 p.m. at the Italian Academy
The elegant mathematical universe, Lecture-interview with Brian Greene
6.00 p.m. at the Italian Cultural Institute
Movie projection
Flatland. A journey of many dimensions: The movie edition
Director Jeffrey Travis, animator Dano Johnson
Edwin A. Abbott with Thomas Banchoff and the Filmmakers of Flatland
My existence has just been validated.
Out of what can only be described as idle curiosity I decided to run a port scan on IP addresses near mine to see if anything interesting turned up. Pretty straightforward: nmap OS and service detection on the /21 CIDR block containing my dynamically-assigned IP as of two nights ago.
Counts after the colon denote the number of hosts with a match, i.e. “upnp : 2″ means that 2 computers had Universal Plug-N-Play ports open.
The operating system names listed represent nmap’s best guess about what was running on each host and are not guaranteed to be accurate. Note that on the OS list the individual operating system counts don’t necessarily add up to the class total; sometimes the vendor could be identified but the specifics of the operating system couldn’t.
Some interesting results:
And a couple of other things you can’t see from these lists:
embedded : 68 NetBSD 1.5.2, Lanier LS232c multifunction printer : 1 Captor Omni-Clock (employee timeclock) : 1 IBM BladeCenter management module (firmware BRET85L) : 1 Lantronix Xport-03 embedded serial device server (firmware 6.1.0.3) : 1 APC AP9319 Environmental Monitoring Unit or Smart-UPS 1000 RM UPS : 1 Linksys WET54G wireless bridge : 5 Windows : 54 Microsoft Windows Longhorn : 3 Microsoft Windows Server 2003 SP2, SP3, or SP4 : 1 Microsoft Windows XP SP2 or Windows Server 2003 SP0/SP1 : 3 Microsoft Windows XP Home SP2 : 1 Microsoft Windows 2000 SP4, or Windows XP SP2 or SP3 : 4 Microsoft Windows Vista Home Basic : 2 Microsoft Windows Server 2008 Beta 3 : 1 Microsoft Windows Vista : 32 Microsoft Windows 2000 SP4 or Windows XP SP2 : 4 Microsoft Windows 2000 Server SP4 : 1 Mac OS X : 38 Apple Mac OS X 10.4.10 (Tiger) (Darwin 8.10.0 - 8.11.1) : 5 Apple Mac OS X 10.5 - 10.5.2 (Leopard) (Darwin 9.0.0b5 - 9.2.0) : 26 Apple Mac OS X 10.4.8 - 10.4.11 (Tiger) (Darwin 8.8.0 - 8.11.1) : 6 Apple Mac OS X 10.5 (Leopard) (Darwin 9.1.0) : 1 CatOS : 5 Cisco Catalyst WS-C6506 switch (CatOS 7.6(16)) : 4 FreeBSD : 2 FreeBSD 5.2.1-RELEASE : 2 Linux : 3 FON La Fonera WAP running OpenWrt w/Linux kernel 2.4.32 : 2 Linux 2.6.17 - 2.6.23 : 1 NetBSD : 11 NetBSD 4.99.49 (x86) : 8 NetBSD 4.99.4 (x86) : 2
admdog : 1 kdm : 1 zannet : 1 dlswpn : 1 kerberos-sec : 13 msrpc : 16 globe : 2 rtsp : 5 eklogin : 3 domain : 1 netbios-ssn : 26 ftps : 1 ipp : 4 iasd : 1 dpsi : 1 vnc : 6 upnp : 2 aol : 1 abyss : 1 IIS : 1 nfsd-status : 1 jetdirect : 1 ms-term-serv : 1 https : 10 afp : 15 bbn-mmc : 1 printer : 23 http : 17 landesk-cba : 1 iad2 : 1 iad3 : 1 airport-admin : 3 rendezvous : 27 auth : 2 remoteanything : 1 advocentkvm : 1 telnet : 4 ssh : 4 alta-ana-lm : 1 X11 : 1 microsoft-ds : 25 snet-sensor-mgmt : 3 sql-net : 1 dna-cml : 1 svrloc : 1 NFS-or-IIS : 2 java-or-OTGfileshare : 1 netbios-ns : 1 realserver : 2
More games with red gloves and a webcam.
As always, it’s dead simple: regions of the image are cut off at a specified threshold and the contours are identified. A very small (and rather poorly implemented) physics engine then bounces the ball off the identified contours. It’s surprisingly fun to play with.
Collision detection algorithm cribbed from http://blitzbasic.com/codearcs/codearcs.php?code=998, and the angle of reflection calculation was accomplished with a little help from http://www.gamedev.net/community/forums/topic.asp?topic_id=61069.
Since I’m feeling organized, the code is already available here
Enjoy!
I took the opportunity the other day to ditch my mandatory security lecture in favor of a talk given by one Roy Den Hollander, a NY lawyer crusading against the feminist movement in defense of men’s rights. Bwog discussed this speaking engagement before.
The topic of his talk was nominally a discussion of what he calls his “trilogy of anti-feminist lawsuits”; while he did spend a lot of time talking about these I thought it was fairly clear that he was here primarily to promote his larger agenda, which evidently has something to do with women’s campaign to enslave the minds of men and the armed uprising that men (lead, presumably, by Hollander himself) will form to reclaim what is theirs.
I imagine that many men (or “guys”, as Hollander would say; he talked about “guys” and “girls” throughout the talk) feel that feminism has gone to far, perhaps even a few to the same extent that Hollander himself does, so what I find much more interesting is the manner in which he proposes to address the issue. So, the lawsuits:
This was the easiest of his arguments to break down. Hollander has two theories. The first, which he himself admits is extremely tenuous and will probably get thrown out in Court, is that feminism is a religion (evidenced by its practitioners belief in information unsupported by fact and their participation in self-detrimental behavior as a result of the religion, though he was unable to provide any serious examples of either), and thus teaching it in a school violates the Establishment Clause, which he quoted incorrectly. As Columbia already offers a number of religion classes, it is not obvious why finding feminism to be a religion would render it unteachable.
The second argument hinged on Title IX, which mandates equal opportunity for men and women in schools receiving federal funds. Because Columbia offers Women’s Studies, it must either also offer Men’s Studies or (preferably) abolish the Women’s Studies program. I pointed out to him that Columbia does not offer a women’s varsity football team without violating of Title IX, and by extension it should not be necessary for there to be Men’s Studies provided that men at Columbia receive equal educational opportunity across the board. He insisted that the existence of Women’s Studies means that men cannot receive an equal education because women derive more benefit from the class than men do, for instance in networking opportunities. I noted that networking was possible in other classes and asked if he could suggest any other benefits, to which he replied that there were many more that I could look up on his website at my leisure. Then (this was the most gratifying moment of the talk) the thoroughly-prepared members of the Women in Science Council, who hosted the talk, handed him a paper copy of the website and invited him to read that section to the audience. There were no other examples. I just remembered that he also mentioned the opportunity to interact with academics in the field of Men’s Studies, of whom there is (according to Hollander himself) one. Ultimately, I think it was made fairly clear that that argument had little substance.
The second lawsuit asserts that the Violence Against Women Act (VAWA) unconstitutionally allows alien women to acquire citizenship by making false accusations of violence against their husbands. In short, foreign women who divorce their husbands before becoming naturalized can retain the opportunity to become citizens if they have been abused. This (at least according to a woman in my NSOP group whose father is an immigration lawyer) is indeed true; what doesn’t check out is Hollander’s description of these proceedings. Apparently the accusations are made without the knowledge of the husband, who is given no opportunity to rebut them; that testimony is then entered into a government record which is supposedly accessible to anyone except the accused. I have been unable to find any evidence of this.
This is the tricky one, but I still disagree. The bars are sued for letting women in free while making men pay, based on an early lawsuit in which two women successfully sued a club for denying them entry. I’m uncomfortable assuming that denial of entry is equivalent to differential pricing (Hollander makes absolutely no distinction between the two). While a friend pointed out to me that if Ladies’ Nights are acceptable than so is charging minorities extra (or discounted) rates to get in, I am resolutely in favor of affirmative action and consider this to be a necessary, if admittedly uncomfortable, side effect.
The reaction that Hollander’s talk ultimately provoked was not anger or indignation, but pity. He is a man who clearly feels trodden upon by the rest of society, who at some level obviously understands that he will never win any of his fights. While I don’t agree with what he says it is hard not to feel sympathy, if not empathy, for a man who has exhausted his fortune in a fight he cannot possibly win.
The trees here have never looked so beautiful.
It still hasn’t completely sunk in that at this time tomorrow I will no longer live in Piedmont. My bedroom will not be the room I’m sitting in right now but a closet somewhere in Manhattan–my bed will no longer my bed. From now on I will always be a guest in my own home.
As much as I railed against growing up in Pleasantville since I first realized that this place is not like most places, I am (finally) coming to appreciate how lucky I am to have grown up where I did. Sheltered–yes, but I sometimes a little shelter can be a good thing. Privileged, and I understand now that privilege is exactly that: not a reason to complain about being isolated from the real world or getting soft and spoiled, but a quality of life for which I should be genuinely grateful.
And the trees. This is a gorgeous city. My lasting memory of Piedmont will be of walking up the hill from the bus stop watching the sycamores burn green and gold as the sun sinks in to the bay. I will be higher up than the trees next year, looking out over a busy street rather than the green lawn I complained about so much. A beautiful view as well, but not the same.
I have been resolutely un-nostalgic about leaving this place, but that broke down at about 3:00 this morning as I was getting ready to make my final goodbyes. A little regret actually feels good; as I zip the last of my bags I’m finally able to admit to myself that I really love it here.
Some firm produce, a good webcam and a new era of Fruit-Computer interaction.
A few days ago I was looking for a v4l2 wrapper and stumbled across OpenCV. I’ve been hooked ever since. It’s an open computer vision library that provides a simple interface to a lot of sophisticated image processing.
As a little test of the system I hacked the sample blob tracking application to send signals to Compiz over DBus when the tracked object moves to the side of the screen. The tracking can be a little flaky so I needed a brightly colored object that would stand out against the background. We happened to have some tomatoes lying around in the kitchen, and thus was born CompizTomato.
As you can see from the video, the recognition is not perfect but certainly seems to get the job done. I can use it with only slightly diminished accuracy while sitting right in front of my computer against a busy background. Further testing has also revealed that I can also track my head and wobble from side to side, but it’s not quite as fun and considerably harder on the neck.
Without further adieu, the video:
I’ve had a hard time finding comprehensive information about setting up an extra monitor with my laptop; I’m collecting everything I’ve figured out here. If you have other tips, experiences or suggestions please post them.
These instructions assume you are using the beta drivers 169.04 or better (available here). It’s possible that they will work for other driver sets as well, but I haven’t tested them.
This program a swiss army knife for all of your display settings. It is installed with the driver and invoked as nvidia-settings from a CLI or in System Tools > NVIDIA X Server Settings. Of particular use is the X Server Display Configuration Page, which allows you to set up your monitors in any arrangement you want.
None of the following instructions do anything that you can’t do using this tool, but it can be a hassle to have to page through all the settings when you just want to turn on another monitor, and I’ve found that it generates xorg.conf files unintelligently and can mess up some of your other system settings. However, when all else fails you can always use nvidia-settings.
XRandR (X Resize and Rotate) is an X extension that allows you to dynamically change the size and orientation of your desktop. It can be used to make on-the-fly changes to your resolution and monitor setup.
TwinView is NVIDIA’s system for allowing your desktop to span multiple monitors. TwinView is not Xinerama (the standard X “big desktop” solution), but it can pretend to be in order to pass correct information to your window manager.
I have found a very simple xorg.conf setup to produce the most useful multimonitor configuration. To your “Device” section, simply add:
Option "TwinView" "1"
Option "TwinViewXineramaInfoOrder" "DFP-0"
Option "MetaModes" "CRT: nvidia-auto-select, DFP: nvidia-auto-select"
This tells the driver to:
With this setup, your desktop will automatically extend across onto an external monitor if one is connected, and keep your display limited to the laptop’s LCD if there is no other screen. With this setup, all you have to do is plug in your new screen and restart X to get a good TwinView configuration
If, for whatever reason, you don’t want to restart X every time you change display configurations, the driver also makes a “Dynamic TwinView” extension available. If you plug in the new monitor after X has started, the computer won’t know that the screen exists and so can’t extend on to it. There are two ways of forcing a re-scan of available displays: using the previously mentioned nvidia-settings tool, or by using a smaller command-line utility called nv-control-dvc that comes with the nvidia-settings-source package.
To get nv-control-dvc, download the nvidia-settings source package (‘apt-get source nvidia-settings’ on Debian-based distros) and run ‘make’ in the samples directory. You can then make a launcher that calls ‘nv-control-dvc –dynamic-twinview’ that will give you access to new monitors whenever they are connected.
After a new monitor has been detected, you can enable it by opening your favorite resolution-changing program and selecting the resolution that is the combined size of the combined desktops.
A note for compiz-fusion users: this will incorrectly broadcast the size of your screen, and compiz will end up trying to maximize your windows across two desktops. You can manually set your screen configuration with gconf-editor in ‘/apps/compiz/general/screen0/options/outputs’.
Compiz users can use the “clone” tool to mirror one display on another; at the moment I don’t know of any other way of doing this without setting the other screen’s position to “Clone” in nvidia-settings.
The recent focus on making GNU/Linux accessible to the average desktop user, and in particular the efforts of the Ubuntu distribution, have created a flood of new Linux users. I really believe that this a wonderful thing for the Linux community, but one of the unfortunate consequences has been that not everybody really understands how to use their computer anymore – it’s not uncommon now to find postings on support forums where users say things like “i rly rly want my computer to do teh pretty thing but i dont no how and im scared of the black screen with the blinky white line what do i do?”
Naturally, this is a bit of an extreme case, but the computer literacy of the average Linux user does seem to be declining. While this is an inevitable consequence of making the OS more widely available, it’s also one that is easily remedied – most of the basic skills people lack can easily be picked up with a little exploration.
What follows is a list of useful tweaks and projects that are also instructive in the fundamentals of operating a Linux desktop. This list is not meant to be a full tutorial, but rather a jumping-off point for each of these projects—after all, the point is to learn by doing these things. Similarly, many tutorials discovered in the course of trying to do these will provide lists of command or bits of code; rather than mindlessly typing them in it’s worth making an effort to understand what they do.
Feedback, as always, is greatly appreciated. Enjoy! (more…)
All content in public domain unless otherwise specified. Powered by prgmr, FreeDNS, Wordpress and vim.