Older blog entries for vicious (starting at number 340)

More GNOME gripes

Since I could install new enough Ubuntu to easily install GNOME 3.8 and hence use Classic mode, I am now for the last month or so using GNOME shell at work.  Now I just got a wonderful new computer with two screens that I just installed the same setup on.  And I have to say that there were several things that drove me absolutely crazy yesterday.

  1. I can’t tell a difference between focused window and unfocused window in the default theme.  I kept typing into the wrong window leading to all sorts of bad things happening (sucks having what should go in a terminal being typed into your grant proposal, and then having to hunt it down, or perhaps typing something into your grant proposal and instead typing it into gmail with keybindings turned on and hence archiving a few unread emails that you have to hunt down without actually knowing what they are.)  I found a different theme that does the only sane thing of making the title bar really blue when focused and really gray when unfocused, bad thing is, that such a usability issue is only in the tweaks, and that the theme is ugly.  Good thing I value actually working over how nice the thing is.
  2. Printers!  I can’t add the printer.  Instead of easily adding a printer I get presented with a dialog where I can’t do anything, it lists some random printers usually in other people’s offices.  The “community printer” on this floor is not listed.  Hmmm … what is the address … I go to the old computer (also with GNOME 3.8) look into printers and I can’t find detailed info about the printer.  After about 5 minutes of fussing around I remember to look into the cups text config file.  Ahhh …  now I have the address of the printer.  OK, so how to add it.  On the new computer, click “Add printer” and then where do I put in that address.  Putting it into the search bar yields nothing useful, pressing enter adds someone’s personal printer.  OK fail … After further number of minutes I give up on the gnome printer thingie as totally and utterly useless.  OK, but where is the good old (or bad old, but at least somewhat usable) printer setting application.  Now my memory is still what it used to be: bad.  So I can’t remember it.   It doesn’t appear in the gnome-shell, typing “printers” into overview mode only brings up the totally useless gnome version.  OK, have to google, after a few minutes I find it.  I have to start “system-config-printer” from the command line.  There although the interface is also bad, I can actually add the printer.  Damnit, about a decade ago in GNOME I could do all this with just mouse clicking.  With this new really simple-to-use GNOME I can’t, I have to use command line.  To add a printer!  This went from bad UI to unusable UI.  Not only that, I can’t get to the usable UI from the UI even though it is installed.
  3. Multiple monitors:  GNOME shell does something weird with multiple monitors.  It treats the second monitor as sort of “scrap space” that you don’t really use, so there are no multiple desktops, there is no bar on top …  I know there is a setting in tweak (the fact that tweak exists is a failure of design to begin with), but the setting doesn’t seem to work.  All it does is to make the extra monitor slide around, but there is still just one desktop on the extra monitor.  It feels like this was designed by somebody using the second monitor as a presentation display for a laptop or some such.  It doesn’t really make sense for a two display workstation.
  4. The status menu is now easy to miss and skip by mistake into the second monitor.
  5. The overview mode active corner is really damn annoying.  I keep going into it when wanting to press the back button on the browser.  Fitts law fail!
  6. No more categories in the shell overview.  Good thing there is the menu on top in classic mode.  I don’t search!  I click!  Mostly because I can’t remember what to search for.  Looking through a list of ALL application sorted by alphabet is rediculous.
  7. evince keeps crashing, and the dbus interface seems to have changed again so my synctex script no longer works.  This is really annoying when you have to get something done.

All in all, I am very unhappy so far, and getting unhappier and grumpier by the minute.  I think XFCE, for all its suckiness will end up being my work desktop too.


Syndicated 2013-09-26 15:45:24 from The Spectre of Math

MAA reviews, HTML versions, new sections in RA book …

Reviews

MAA has done reviews of both of my books: see here and here.  By the way, now they have been downloaded (at least the PDF) each from over 40k distinct addresses (approximately 83k together now).  Since it seems the web version of the diffyqs book is probably more popular than the PDF, there is probably another as many people who’ve used that.

HTML version of the DiffyQs book

Speaking of the HTML version.  After last release of the diffyqs book, I’ve worked a bit on the HTML conversion.  The result is using tex4ht for conversion and then a Perl script to clean up the HTML.  This is very very hacky, but of course the main point is to make it work rather than do it cleanly.  One of the things I’ve done was to render all math at double the resolution and let the browser scale it down.  Then to make things go a bit faster I’ve made the code detect duplicate images of which there are quite a few.  I’ve also been testing with data URIs for very small images, but they don’t quite work right everywhere yet.  They would cut down on the number of requests needed per page and surely eventually I’ll do that.

The supersampling has both positive and negative effects.  Printed version of the HTML now looks a lot better.  Not totally great since I currently have things render at around 200dpi rather than perhaps 300dpi, but it’s a reasonable compromise.  Also high resolution displays give nicer rendering.  The downside is that on a regular display the equations are fuzzier due to lack of hinting.

Of course MathJax would be the ultimate answer to the math display and that’s the ultimate goal, but I can’t make it work with tex4ht reasonably nice.  I am very picky about the display being 100% correct even if uglier, over being 90% correct and pretty.  Every suggestion I’ve tried so far was very subpar on output.  I can’t make tex4ht not touch all math.  Even then MathJax does choke on a few expressions I have in the file so things would require more tweaking to make it all work.

The requirements for math display I have is 1) I want to make sure that the same font is used on all math (that’s why I render all math as images).  2) I want the output to be correct and readable (which totally disqualifies MathML since even newest versions of all browsers do terrible jobs on all but the simplest equations, and even there).  3) I want the thing to be usable on as many browsers as possible.

I think eventually the solution would be to write my own tex parser that can read the subset of latex I use for the book and output HTML pages using MathJax.  This sounds simpler than it is.  That is, getting this to work on 90% of the input is easy, then things like figures, and certain math constructions get in the way.

Another possibility is to output svg instead of png for math using dvisvgm.  This keeps the problem of fuzziness on standard displays, but is really pretty when printed or on high resolution displays .  The downside is bad support (only very new chrome and firefox support this somewhat and even they have issues, and it crashes my android phone).  I think MathJax is a better long term solution, but it will take some work and probably a move away from tex4ht.

New sections in the analysis book

Something I have not mentioned here when it happened is that the analysis book got a bunch of new sections recently (the May 29th version).  These are all extra optional sections to fill up a longer version of the course (dependencies if any are marked in the notes at the beginning of each section).  There is a section on

  • Diagonalization argument and decimal representation of real numbers (1.5)
  • More topics on series (2.5)
  • Limits at infinity and infinite limits (3.5)
  • Monotone functions and continuity (3.6)
  • Inverse function theorem in one variable (4.4)
  • The log and exp functions (5.4)
  • Improper integrals (5.5)

I am currently working on multivariable chapter(s) that would come after chapter 7.  This will take some time still, I have about half of the material in a very rough draft, having massaged bits of my Math 522 notes into something that more fits this book.  My plan is for the book to be usable for a standard one year course on real analysis.


Syndicated 2013-07-12 19:54:15 from The Spectre of Math

New Genius out (1.0.17)

Release a new Genius version (1.0.17) today.  See the website.

Main new thing is that it is using Cairo to draw now thanks to update to new GtkExtra.  At some point I should package up and document all the fixes/changes I’ve made to GtkExtra and submit them upstream, it seems that GtkExtra is now alive again.


Syndicated 2013-06-25 21:18:27 from The Spectre of Math

Windows 8.1 innovations

I’ve just briefly glanced at what’s new in Windows 8.1, probably because I am procrastinating right now, not because I am actually interested, not having any plan of ever using Windows ever again in my life.  It was really amusing that new features are apparently that you can open more than two applications at once and also resize them on screen.  So maybe Windows 8.1 will finally catch up to Windows 1.0.

I feel I’m taking crazy pills here, because almost everyone is really into this trend.  First make the interface really bare (but graphically intensive) to make it look like a smartphone.  Then reintroduce very restrictive versions of these features and tout them as great achievements.  Chrome OS also at some point caught up with the 80s and added stacking windows.  I wonder when Windows will finally get into the 80s.

And while basic features like window management appear an insurmountable challenge in the new “iphone app” mentality, putting up a clock on your screen eats more CPU/GPU and memory than it would take to guide a spacecraft to Mars and back.  Not even that long ago did a calculator application not require 3D acceleration to reasonably run.

Good thing I’m using XFCE here.  Let’s see how I start a calculator: My non-accelerated desktop means that if I press Ctrl-Alt-R (which is my shortcut for terminal … R used to stand for rxvt long time ago) I immediately get a terminal.  Then I type “genius” press enter, and I’ve optimized the startup so I get a prompt immediately, there is essentially zero wait.  I type in a calculation, and out pops the answer.  Now if I attempt to do this on my phone, or in GNOME using the native calculator, there are several long waits either when some random nonsense is loading just for me to start the app and then there are these useless animations taking up time.  So for example if I have a student in my office and want to just quickly (note the word quickly) calculate something about their grade, I would definitely not do it on my phone.  Even try starting the native terminal in GNOME, it’s a few seconds wait on my machine from the time I get to start it (click a button, or whatnot).  So much for accelerated desktop. Just trying to phone someone on my phone is often a lot longer process than it used to be in the 90s when I got my first cellphone.  There is hardly a lack of power in the phone, it is just that it is so skillfully wasted.

This younger generation today must be really really patient (compared to us old fogies … you know 35 is old when it comes to technology) to put up with this.


Syndicated 2013-05-30 16:35:48 from The Spectre of Math

Computation update

On the scale of length of computations I’ve done, this probably counts as the longest so far.  If you look down a bit in the blog you’ll find the details.  I can now report that there is no degree 21 polynomial p(x,y) with positive coefficients, with exactly 12 monomials (the least it can have), such that p(x,y) = 1 whenever x+y=1, and such that xy is one of the monomials.  Now the conjecture is that there is only one such beast (up to switching variables), dropping the condition about xy, and the computation is well on its way to prove that.  That one monomial is a bit special since it appears in these sharp polynomials for a bunch of smaller degrees.  Anyway, a few more months and we’ll have the answer.


Syndicated 2013-05-28 16:45:05 from The Spectre of Math

Math is a series of trivial observations

Mathematical proof is essentially a series of completely trivial observations wrapped in complicated-sounding notation (not complicated on purpose hopefully). The trick is not to understand the proof once it is written, but to notice those trivial observations to write a proof in the first place. I think this is what’s sometimes discouraging people from research mathematics. You work for two weeks on something that feels like a very hard problem, and then the solution seems trivial once found. In my case there are two operations and a limit involved. And the things you are trying to bound are not continuous with respect to that limit, so you flail around trying to do all sorts of complicated schemes. Then last night I think … hey why not do these two operations in reverse. I get rid of the limit and the problem becomes almost trivial after a bit of linear algebra. It feels good. But on the other hand it feels like: Why didn’t I think of this two weeks ago.


Syndicated 2013-03-29 16:38:56 from The Spectre of Math

Moving to Oklahoma

So, moving to OSU in Stillwater in the fall. This entails for the first time in my life quitting a job before it sort of naturally ends. The consulting gigs don’t really count I don’t think, and Eazel laid me off in the process of going under, so that counts as natural end of a job. At Red Hat it was just a summer gig, so there was no expectation of staying longer. Then at SDSU and UCSD I was a grad student, so any employment also ended when I graduated. In Urbana, they did make me send a “resignation letter”, but my appointment ended anyway as I stayed the whole 3 years I was hired for. At UCSD then I was hired for 1 year and stayed for one year. So now … I was hired for 3 and I am leaving after 2. Six years of postdoc in 3 different places are enough I think. One can always keep changing jobs every few years, but it’s nice to know I don’t have to now, I just can if I want to.


Syndicated 2013-03-11 20:06:18 from The Spectre of Math

The computation

So the computation has finished (actually a few days ago) for degree 19. I’ve only yesterday gotten around to finishing a short paper (addendum) to post to arxiv, which I’ve done yesterday, see arXiv:1302.1441. The really funky thing is that there are so many sharp polynomials in degree 19. Up to symmetry there are 16 in odd degrees up to degree 17, yet there are 13 in degree 19. And two of the new ones are symmetric, which is actually surprising, that seems it should be hard to achieve if you think about how they are constructed. There’s probably a bunch of interesting number theory that appears here. It should be fun to figure out what’s going on there.

This was the first time a paper of mine got reclassified to a different archive on arxiv. I put it into algebraic geometry because well, the motivation comes from geometry, but it got stuck into comutative algebra. Which actually makes a lot more sense. Especially since none of the motivation from geometry appears in this writeup.

Degree 21 has been running for about a week. It will probably be running for the next year or so at which point I really expect it to just spit out only one polynomial which is the group invariant one we already know about. Which would be also kind of funky since then there would be two degrees with as few polynomials as possible and in between there would be a degree with the most polynomials we have found so far in any degree.


Syndicated 2013-02-07 16:47:48 from The Spectre of Math

The correct finite field does wonders

So the computation I was running since thanksgiving was getting nowhere (finding degree 19 polynomials which are equal to 1 on x+y=1, which have fewest possible terms (11) and which have only positive coefficients, we know that there are finitely many, the trick is to find them). My code didn’t really have good status updates. Well it does tell you exactly where it is, but it takes a bit of computation to really see how it’s progressing, so I didn’t do that until a few days ago since I thought it was going way too slow.

And low and behold, it was going way too slow. I computed that it should take another 3-7 years or so (different parts of the search space take different times so it’s a bit hard to estimate). That was a bummer. That was about 10 times longer than I thought it should be. At first I was a bit resigned to this reality, but the next day I started to look into it, and one thing I figured out after running a bunch of tests was that one shortcut I was using was never triggered. The idea is that we need to find when a certain matrix with integer coefficients has 1 dimensional nullspace. Doing the integer row reduction is done with gmp, and is reasonably fast. But since we do this many times over and most of these matrices are simply full rank (no null space), we don’t really need to do the whole computation. So what we can do (and this is a useful trick to know), is to first do all computation in some small finite field, e.g. do everything mod p for some small prime p. If a matrix is full rank mod p, it is full rank. The computation can be done rather quickly this way and you don’t even have to involve modulo computation, since all the possible computations you can just precompute first and just build up a big table, so instead of two multiplications, an addition, and finding the remainder, you just look up in a table. Anyway, that gets us quite a bit of a speed up.

Now the thing is that I was using mod 19, since that worked for lower degrees. One thing I forgot when I started the run (remember this was a few years since I looked at this code and ran it last time), is that the modulus cannot be the same as the degree. The matrices we need to work with have most terms divisible by the degree. So moding out by 19 essentially always made the matrix all 0 (except for a few 1s scattered around). So these matrices were essentially always singular and the shortcut never triggered. So after doing a useless mod 19 calculation we had to do the actual integer arithmetic. That’s why it was slow. Damnit!

Well the calculations were not wrong, I just did a lot more computation than needed. After a small amount of testing it seemed that mod 23 was a good finite field to proceed in, so I restarted the code. Suddenly 3-7 years turned into first estimating 90 days and after running things for a day, that turned into an estimate of 30 days.

Then I noticed one more thing (and Danny pointed this out too), that his code used symmetry and just threw out half of the nonsymmetric polynomials, since the computations are the same. I remembered that my code didn’t do it. It didn’t make much sense if the longest run we did was 5 days on one core (for code that is only ever run once or twice, small speedups are somewhat pointless). I implemented this idea and it seems to achieve 33% reduction in time (there’s still the checking for symmetry, and there are of course symemtric polynomials, so that’s probably close to where we can get). So anyway, I guess within 20 days we should have the answer.

After it finsihes, I still have one more speedup up my sleeve. It could be that I can do the row reduction really fast mod 2 by using binary operations (each row would be an unsigned int). Not sure what speedup I can achieve though, at best 90%, since that’s how many cases mod 2 catches. While mod 23 or so catches essentially everything. So the idea is to do mod 2, then mod 23, and only then if the matrix is still singular do the integer arithmetic. If the speedup is another 50%, and my most optimistic estimates hold, that would put degree 21 within the realm of possibility, though at least half a year on 4 cores. That’s is, within something I’d be willing to run.

So, the mood went from “I’ll probably give up n d=19 soon” to “maybe d=21 is possible”. All this just by using a different prime :)


Syndicated 2013-01-21 17:26:57 from The Spectre of Math

331 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!