Snow leopard + wordpress + latex problem

Ever since I’ve upgraded to Snow Leopard I’ve been having problems with the webserver.

At first there were the ‘obvious’ problems : mysql-connection lost and php-error message. These were swiftly dealt with using the excellent Snow Leopard, Apache, PHP, MySQL and WordPress! advice from ‘tady’.

Right now, access to this blog is extremely slow (and often impossible), certainly via the admin-page. The problem appears to be that most of my CPU is used by lots of pdfetex-processes owned by www. Hence the conjecture that it is a problem with either LaTeXRender or WP LaTeX.

Anyone experiencing a similar problem, or knowing a trick to resolve it? Takk.

math2.0-setup : mysql and php+

Last time I wondered whether a set-up like WordPress.com meets FaceBook with add-ons (such as wiki- and latex-support) might be a usable environment for people working in a specific arXiv-topic.

I’ve used WordPressMU and BuddyPress to create such an embryonal environment. At first I thought I’d extend it a bit before going online but I fail to have the energy right now so I might as well make the link available. If you are into math.QA and/or math.RA you are invited to join the experiment. But, please use this site gently as I’ll have to drop it otherwise.

I’ve no desire to maintain this site indefinitely but would welcome others to set up something similar. For this reason I’ll write a couple of posts explaining how you can build it yourself when you’d have a free afternoon and a spare Mac around. Each post should not take you longer than 1 hour. Today, we’ll provide the boring but essential basics : we must get a MySQL-server and a WebServer running. Next time, I’ll take you through the WordPressMU (MU for multi-users) and BuddyPress installation. After that, we’ll add extra functionality.

We will start from a vanilla 10.5.6 installation. We will often need to edit files, so we’d better grab a good, free  texteditor : TextWrangler, drag it to Applications and place it in the Dock. We’ll also type in commands so we want the TerminalApp (to be found in Applcations/Utilities) in the Dock. SystemPreferences and Safari are already in the Dock and as we will need these tools a lot we might rearrange the Dock to look like



From left to right : the Finder, Terminal, Safari, TextWrangler and System Preferences. From now on we will mean by ‘Open …’ that you click on the ‘…’ icon. In the end we want our computer to become a web-server, so we don’t want it to go to sleep. Open SystemPreferences and look for the ‘Energy Saver’-icon, click on the ‘Show details’ button and set the ‘Put the computer to sleep when it is inactive for:’ to Never and unmark the ‘Put the hard disk(s) to sleep when possible’ at the bottom.

We will need to start or stop the WebServer so here’s how that’s done : open SystemPreferences and look for the ‘Sharing’-icon. Marking the ‘Web Sharing’ option is equivalent to starting your webserver (you can verify this by opening Safari and pointing it to http://localhost/ and you should see the default Apache-screen), unmarking it stops the webserver (check this by repeating the previous, now you should get a ‘Safari can’t connect to the server’ message).

All of this was probably trivial to you so let’s do something a bit more advanced : setting up a database-server. OSX doesn’t come with MySql, so we need to download and install it.

MySQL :

Get the latest version : choose the Mac OS X 10.5 (x86)-package and download it (they ask you to register but you can bypass this by clicking on the ‘No thanks, just take me to the downloads’-link). It is a 55.3 Mb file so this may take a couple of minutes. If all goes well this window should pop-up



Click on the mysql-5.0.67-osx10.5-x86.pkg icon and follow the instruction (defaults suffice, you’ll be asked to give your sudo password and in all it will take less than a minute). Repeat this procedure with MySQLStartupItem.pkg. Done!

To verify it, Open Terminal and type this to the prompt

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

You’ll get a scary warning message but type in your sudo-password and the Mysql-server will start. You can access it by typing

/usr/local/mysql/bin/mysql

and type exit to the mysql-prompt to leave.
In all, your interaction with the terminal should look something like this



Clearly, you do not want to type all of this every time, so we will add the mysql-location to our ‘PATH’. To do this, open TextWrangler and add this line to the blank document

export PATH=$PATH:/usr/local/mysql/bin

and save the file as .profile in your home-directory (the one with the ‘House’-icon, usually given your name). You will get a warning that .-files are reserved but go ahead anyway by clicking the use . – button). Now, open Terminal and type this

source ~./profile
echo $PATH

if all went well you should now see the mysql-location at the end of your path. From now on you’ll only have to type

mysql

to the terminal-prompt to open MySql. At the moment the root-user of your mysql has no password which isnt safe so we’d better set one. Open terminal and type

mysqladmin -u root password NEWPASSWORD

where, of course, you replace NEWPASSWORD with your choice (use only letters and numbers). From now on you can access your mysql-server by opening Terminal and typing

mysql -u root -p

and giving your password. Okay, so we’ve established our first goal, we have a working Mysql. Take a break if you need one.

better PHP

Mac 10.5 comes equipped with php5 but unfortunately it isn’t quite up to what we need. So, we need to install a better one and tell the mysql-server and the webserver to use the new one instead of the standard one.

Open Safari and grab the better php-version by going to

http://www2.entropy.ch/download/php5-5.2.5-6-beta.tar.gz

It is a 85.2 Mb file, so have a bit of patience. The file gets unzipped automatically and downloaded in the Downloads-directory. Open Finder and go there. At the moment your Downloads-directory will look like



Doubleclick on the php5-5.2.5-6-beta.tar file and a new directory will be created called php5. We will now move this directory and lay some symbolic links. Open a new Terminal window and type the following commands (and provide your sudo-password when asked)

cd Downloads
sudo mv php5 /usr/local
sudo ln -sf /usr/local/php5/entropy-php.conf /etc/apache2/other/+entropy-php.conf
sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Next, we have to tell the webserver to use this new php-version instead of the old one. This information is contained in the apache-configuration file : httpd.conf. Open TextWrangler and under ‘File’ choose the option ‘Open File by Name’. Type /etc/apache2/httpd.conf in the field that appears. The file will now appear in the main window. Under ‘Search’ choose the ‘Go to Line’ option and fill in 114 and hit the Go To button. The follwing line should now be highlighted

#LoadModule php5_module libexec/apache2/libphp5.so

immediately under it add the following line (TextWrangler will tell you that the file is owned by root and ask you whether you want to open it, click yes and make the changes)

LoadModule php5_module local/php5/libphp5.so

(observe that line 114 is commented out, that is, starts with a #, whereas your added line is not).
Save the file (Textwrangler will ask you to provide the sudo-password).

Next, we will have to tell php to communicate with the mysql-server. Again, open TextWrangler, under ‘File’ choose ‘Open File by Name’ and type in /usr/local/php5/lib/php.ini-recommended. When the file appears, under ‘Search’ choose ‘Go to Line’ and type in 810. It will read

mysql.default_socket =

Change it as follows (that is, add to it)

mysql.default_socket = /var/mysql/mysql.sock

and now choose under ‘File’ the ‘Save as…’ option. In the window change php.ini-recommended to php.ini and click Save. Done!

Testing…

Restart your webserver. Recall that this means: open SystemPreferences, choose ‘Sharing’, unmark ‘Web Server’, wait 5 seconds and then mark it again.

Open TextWranger, make a new Text document containing just one line (remove the white space between the ?-signs and the brackets) :

< ?php phpinfo() ? >

Choose ‘File’ and ‘Save as…’ and in the window that appears navigate to YourHardDisk/Library/WebServer/Documents, name the file ‘test.php’ and click the ‘Save’ button



Finally, open Safari and point it to http://localhost/test.php. Cross your fingers and if you get a screen like the one below treat yourself to something nice!



yet another math2.0 proposal

At present, some interesting experiments are going on exploring the potential of web 2.0 for mathematical research, that is, setting up a usable math 2.0 – environment.

The starting point is that math 2.0 should be something like blogs+extras. Most mathematicians are not that interested in the latest ICT-tools, but at least they are slowly getting used to reading blogs, so we should stick to this medium and try to enhance it for online-research.

Michael Nielsen has written a couple of posts on this : an after-dinner talk about doing science online aiming at a mathematics audience, building on an essay on the future of science.

Both posts were influential to Tim Gowers‘ dream of massively collaborative mathematics. He took an interesting problem, laid down a set of 12 rules-of-conduct and invited everyone to contribute. The project is still gaining momentum and Terry Tao is also posting about it on his blog.

Michael Nielsen compared Gowers’ approach to long established practice in the open-source software community.

Another interesting experiment is nLab, a knowledge-wiki set up by the reader-community of the n-category cafe. They describe it as : “In other words: this place is like the library, or alchemist’s laboratory, in the back room of the n-Category Café. You come here to work and go there to chat.
We are hoping to create here a space for presentation and archival storage of collaborative work of encyclopedic, didactic, expositional, but also original nature. This will include, but not be limited to, the subjects being discussed every day in the n-Café.”

Both experiments are working great, aided by the authority-status of the blogger, resp. the popularity of the blog, within the research topic. But, what about topics failing to have a blogger or blog of similar status? Should we all drop our current research-interest and convert to either combinatorics or higher-categories?

History taught us in case of failing authority we’d better settle for ‘manageable anarchy’. So, here’s my math2.0-anarchy-allowed-proposal :

  • per research-topic (say, an arXiv-topic) we’ll set up a seperate online-reasearch-environment
  • anyone interested in that topic is allowed to register and fill-out a profile linking to her list of publications, describe his research interests, her ongoing projects and other trivia
  • some may want to start a blog within the environment or join an already existing one, and should be allowed to do so
  • some may opt just to read blog posts and occasionally comment, and again, should be allowed to do so
  • some may want to set up a research-group to solve a specific problem. they may choose to do this in the open, or as a covert-operation, taking on new members only by invitation
  • some may use the environment mainly for networking or chatting-up with their friends
  • some research-groups may want to start a group-blog or knowledge-wiki to archive their finds
  • surely we’ll be not discussing math in ASCII but in latex
  • anyone will be able to follow specific sub-projects via RSS-feeds
  • anyone can see site-wide activity online, see who’s currently there and chat if they feel the need
  • anyone can do whatever sensible web2.0-thing there is I forgot by age and hence by ignorance

If this seems like a tall order to satisfy, a bit of research will show that we live at the fortunate moment in time when all the basic ingredient are there, freely available, to do just that!

Over the last weeks I’ve wasted too many hours googling for help, reading-up different fora to get it all working, but … somehow succeeded. Here’s a screen-shot of my very-own NSN (for : noncommutative-social-network) :



Please allow me a few more days to tidy things up and then I’ll make the link available so that anyone interested can experiment with it.

But then, I’ve no desire to spend my days web-mastering such a site. Perhaps some of you would like to take this on, provided you’d get it on a silver plate? (that is, without having to spend too much time setting it up).

So. I’ll run a series of posts explaining how to “set-up your own math2.0 environment”. I’m not aiming at the internet-savvy ones (they’ll probably do it a lot more efficiently), but at people like myself, who are interested to investigate web-based possibilities, but need to be told where to find the very basics, such as the location of their httpd.conf file or their php.ini and such.

I’ve zeroed my MacBookPro, re-installed OSX 10.5 from scratch, upgraded it to current 10.5.6 but no extras (say, vanilla 10.5.6). And I’ll guide you from there, in all gory details, with plenty of screen-shots as I would have liked to find them when I tried to set this up.

sporadic simple games

About a year ago I did a series of posts on games associated to the Mathieu sporadic group $M_{12} $, starting with a post on Conway’s puzzle M(13), and, continuing with a discussion of mathematical blackjack. The idea at the time was to write a book for a general audience, as discussed at the start of the M(13)-post, ending with a series of new challenging mathematical games. I asked : “What kind of puzzles should we promote for mathematical thinking to have a fighting chance to survive in the near future?”

Now, Scientific American has (no doubt independently) taken up this lead. Their July 2008 issue features the article Rubik’s Cube Inspired Puzzles Demonstrate Math’s “Simple Groups” written by Igor Kriz and Paul Siegel.

By far the nicest thing about this article is that it comes with three online games based on the sporadic simple groups, the Mathieu groups $M_{12} $, $M_{24} $ and the Conway group $.0 $.

the M(12) game

Scrambles to an arbitrary permutation in $M_{12} $ and need to use the two generators $INVERT=(1,12)(2,11)(3,10)(4,9)(5,8)(6,7) $ and $MERGE=(2,12,7,4,11,6,10,8,9,5,3) $ to return to starting position.



Here is the help-screen :



They promise the solution by july 27th, but a few-line GAP-program cracks the puzzle instantly.

the M(24) game

Similar in nature, again using two generators of $M_{24} $. GAP-solution as before.



This time, they offer this help-screen :



the .0 game

Their most original game is based on Conway’s $.0 $ (dotto) group. Unfortunately, they offer only a Windows-executable version, so I had to install Bootcamp and struggle a bit with taking screenshots on a MacBook to show you the game’s starting position :



Dotto:

Dotto, our final puzzle, represents the Conway group Co0, published in 1968 by mathematician John H. Conway of Princeton University. Co0 contains the sporadic simple group Co1 and has exactly twice as many members as Co1. Conway is too modest to name Co0 after himself, so he denotes the group “.0” (hence the pronunciation “dotto”).

In Dotto, there are four moves. This puzzle includes the M24 puzzle. Look at the yellow/blue row in the bottom. This is, in fact, M24, but the numbers are arranged in a row instead of a circle. The R move is the “circle rotation to the right”: the column above the number 0 stays put, but the column above the number 1 moves to the column over the number 2 etc. up to the column over the number 23, which moves to the column over the number 1. You may also click on a column number and then on another column number in the bottom row, and the “circle rotation” moving the first column to the second occurs. The M move is the switch, in each group of 4 columns separated by vertical lines (called tetrads) the “yellow” columns switch and the “blue” columns switch. The sign change move (S) changes signs of the first 8 columns (first two tetrads). The tetrad move (T) is the most complicated: Subtract in each row from each tetrad 1/2 times the sum of the numbers in that tetrad. Then in addition to that, reverse the signs of the columns in the first tetrad.

Strategy hints: Notice that the sum of squares of the numbers in each row doesn’t change. (This sum of squares is 64 in the first row, 32 in every other row.) If you manage to get an “8”in the first row, you have almost reduced the game to M24 except those signs. To have the original position, signs of all numbers on the diagonal must be +. Hint on signs: if the only thing wrong are signs on the diagonal, and only 8 signs are wrong, those 8 columns can be moved to the first 8 columns by using only the M24 moves (M,R).

iTouch warwalking

Four years ago I had a brief fling with wardriving. It went only as far as getting Ethereal to crack the security of our house-network. I simply couldn’t picture myself walking around the neighborhood with my laptop under my arm… However, jogging around with an iPod will attract far less attention.

Starting an iTouch in a network-rich environment you will be asked which network you want to connect to (see for example this wardriving video). However, if you need more information on the networks, there is a port of the OSX-tool iStumbler for the iPhone/iTouch : Stumbler (available also from the Install.app under Network). This morning I flipped open my iTouch in a generic street near the University and was surrounded by 12 wireless networks, 6 of them wide open…

One may then ask : what about less innocent wardriving tools such as Kismet or Ethereal itself? The problem with porting those seems to be that no-one knows whether the iTouch wireless driver can be put into ‘promiscuous mode’ (see for example this thread).

Once you have collected open networks at your favourite places or have passwords to closed networks, it would be nice if the iTouch would auto-detect these and connect to them without you having to remember the particular name or having to type in username/password combinations. Surprisingly, this is possible thanks to the people at devicescape.com. Create a free login, then get Devicescape Connect (available under Network) run it and write down the pincode you are given and follow the instructions to complete the installation. You can then edit your Wi-Fi list of desired hotspot or personal networks, together with all login-data. There is a nice TidBit article describing devicescape in full detail.

first things first : jailbreak

You may have surmised it from reading this post : Santa brought me an iPod Touch! (( or rather : Santa brought PD2 an iTouch and knowing his jealous nature ordered one for him as well… )) Ive used an iPodClassic to transfer huge files between home (MacBook) and office (iMac) as well as for backup purposes. I wanted to find out what new tricks this trio could play now that iPod can go online. Major disillusion : one cannot even enable DiskUse via iTunes at the moment. (( rumours are that Apple will enable DiskUse in firmware 1.1.3, coming up next februari… )) What’s wrong with Apple? They make this marvelous piece of technology and then do a Golem-act preventing anyone else from using their precious thing. I understand their business plan, but soon it will make more sense to buy Apple shares than to buy their computers…

Enters the 13-year old AriX writing iJailbreak to free the iTouch. So, before you put any music or video on your pod (( and frankly there’s not much else Apple allows you to put on it )), dare to void the guarantee and risk your new gadget being bricked (( but, if I can pull if off you certainly can.. )) by Jailbreaking it! There are plenty of good guides around, both for Windows and Mac, but most of them can be slightly improved. I’ve followed Let’s Jailbreak the iPod touch 1.1.2 with OS X but shortened his downgrade to 1.1.1 procedure which is the first (and hardest) step in the whole procedure. The moment PD2 will see I can use Maps and Weather she’ll want me to jailbreak her iTouch too, so mainly for myself I list here the procedure before I forget it.

Jailbreak 1.1.2 with Leopard on Intel, use at your own risk.

Get a decent browser such as Firefox or Flock (to prevent the download to selfexpand, so when given the choice to open it with iTunes or save it to Disk, save!) and download Firmware1.1.1 and place it somewhere (why not create a Folder called Jailbreak).

Connect your iTouch and fire up iTunes and select your iTouch in the left column. Hold down the option key and click in the summary pane the Check for Update button. This will open a Finder window allowing you to navigate to the downloaded file and open it. The iTouch will downgrade itself to 1.1.1. Just wait until it reappears in iTunes and disconnect it.

With Safari on the iTouch go to jailbreakme.com and scroll to the bottom and click on the InstallAppSnap button. Let it do its magic and afterwards there is a new Installer-icon on your ‘springboard’ (the opening iTouch page). Open it and refrain from installing all the goodies now, just scroll down to Tweaks (1.1.1) open and select “OktoPrep” and install it (button top right-hand corner).

Connect iTouch to mac, start iTunes and select your iTouch. Click on the update button and now iTunes will bring you back to Firmware 1.1.2. After finishing wait until your iPod reappears in the left column. (Do not panic if you fail to see the Installer-icon on springboard, it will reappear later on). Then, close iTunes (your iPod stays connected via USB to the Mac). Use any browser on your mac to download Jailbreak 1.1.2 and place it somewhere.

Find the Java-applet jailbreak.jar in the folder and double click it. Again, magical things are happening ending with the iTouch booting up several times and you performed the Jailbreak.

Let’s open up the iTouch to the world

So, what was the point of all this? We still have no DiskUse enabled nor can we speak to the iTouch directly. But all of this is going to change rapidly. Let’s make it available to our DeskTop.

With “install package xxx” I will mean : fire up Installer from your springboard, donate as quickly as you can to the guys making this available, then click on the “install” icon lower-left. This will open up lists of packages, scroll down to package xxx, click on it to read more about it, and then hit the “install” button top-right. That’s it. (If you ever want to unistall a package, do the same process now starting from the “uninstall” icon lower-right).

Install first BSD Subsystem (under System packages) and the AFPd (under Network). This will turn your iTouch into an AFP-server. By clicking on its icon in the Springboard you can turn the server on and off (remember to turn it off when not needed!) and turn on Broadcast if you want the iTouch to show up on your Desktop (in the Leopard-Finder under ‘Shared’). You can now connect to the iTouch by clicking on its icon in the Finder and hitting connect. The default user/password combination for a Jailbroken iTouch are
root/alpine. Change this as soon as you figure out how to do it. ‘Alpine’ must be the most popular password right now… The AFPd-page also contains the Wi-Fi IP Address of the iTouch and you will need it soon, so write it down.

For we are going to connect via ssh and sftp to and from iTouch/Mac. Install the OpenSSH package (under System) and the Term-vt100 package (also under System). From the Mac to iTouch you can connect via something like

ssh root@10.0.1.197

(change the number to the IP-Address of the iTouch) and login with the alpine password. You’re in! Conversely, open up the Term-vt100 icon in the springboard which give you a genuine *nix-Terminal. You can connect via ssh to your mac provided you know its IP and your login. That’s all.

Btw. you can also use your favourite file-transport program (mine is Transmit to connect to and from your iTouch via SFTP. Right, now that the iTouch is under control we might as well give it a voice of his/her own.

Install Apache (under System) and PHP (under Development) and follow the instructions from the iTouch Fans Forum (you will need to register, but if you’re not an iTouch-fan there’s little point in you reading this post anyway) and you will have turned your iTouch into a PHP-enabled webserver! On the left is a screenshot of the proof via the php-info testpage.

Finally, we can turn the world upside down completely. Before all of this we had no way to get control of the iTouch, now we can use the iTouch to take control of all our Macs serving VNC (Leopard comes with it, enable the password in System Preferences/Sharing/Screen Sharing/Computer Settings and you’re under iTouch control). To pull this off, just install the VNsea package (under Network). It really works well!

Oh, you’re only here to install the iPhone Apps…

Well, that’s easy enough. Just follow the instructions of the Install and use iPhone Apps in iPod touch from the excellent blog by Rupert Gee. The most difficult part is to get hold of the iPhone Apps if you don’t own an iPhone… Well, I’m happy to provide you with this secret information