Inkscape clipboard fix on mac

Inkscape is my go-to vector editing program and I’ve done many publication figures, exam questions, and other general work in inkscape on both mac and linux. I’ve always just resigned to use clone (ctrl-D) instead of copy/paste since on the mac, the copy/paste cycle results in a pixelated image being pasted into the document. After beating my head against a wall trying to create a pattern-on-path effect, I realized that there must be something wrong with the clipboard implementation on the mac. Sure enough, a quick search took me to the inkscape FAQ, and this section in particular:

Starting with XQuartz 2.3.2, X11 has some functionality to exchange the content of the clipboard with OS X. It currently does not know how to deal with vector images, so it just captures the screen, i.e., creates a bitmap copy, and then pastes that. You need to deactivate this functionality in X11 preferences > Pasteboard: uncheck “Update Pasteboard when CLIPBOARD changes”. However, this will also prevent copying text from any X11 application to Mac OS X ones. It will not prevent copying text from OS X to X11.

When you just want to make a copy of an object within Inkscape, you can also use duplicate (Ctrl-D) rather than copy/paste (Ctrl-C/Ctrl-V) — Duplicate does not interact with the X11/OSX clipboards. For other Inkscape commands involving the system clipboards (e.g.Paste StylePaste Size or Paste Path in path effects) there is no alternative workaround other than changing the X11/XQuartz preferences as described above.

On the bright side, I had found the suggested workaround, and was able to effectively duplicate items in my drawings. However, that doesn’t work when the effects are expected paths in the clipboard (and they weren’t there). Since inkscape is about the only thing I use X11 for on the mac, I went ahead and disabled the X11-mac clipboard sync. I will dive in the the nuanced solutions if I need to. It’s been a blessing to have access to many of the path effects and other cool tools in recent inkscape versions.

NSF Grant awarded to Photonics and Quantum Optics Lab at Pacific

I’m pleased to announce that my research group has been awarded a second NSF RUI grant to further support our research. The RUI (research at undergraduate institutions) program specifies resources for scientific research at colleges like Pacific and is a valuable funding mechanism for science research at smaller colleges. I feel very fortunate to continue to offer summer research opportunities to undergraduates for at least the next three years. Below is the public abstract that is posted on the NSF website.

As electronic devices reach their maximum processing speeds, the demand for high speed internet communications and data networks will require new technologies for storing and processing large amounts of data. Electronics are built on the use of the electron to carry and process information and in an analogous way the field of photonics is developing devices that use particles of light called photons to carry and process information. Individual photons obey the laws of quantum mechanics, so in order to fully understand the operation of photonic devices, quantum measurements must be performed on these new devices. One particularly essential component is a memory or information storage device. Many candidates for photonic memory exist but few have been characterized at the quantum (few-photon) level. This research program will apply new techniques for measuring the quantum properties of light to a variety of photonic memory devices. The result will be a deeper understanding of device operation that will lead to optimized devices for future applications.
Photonic memory devices have been demonstrated using slow and stored-light protocols based on electromagnetic-induced transparency (EIT) in Rubidium. The goal of this program is to measure the quantum state of light retrieved from several implementations of these devices in both warm and cold Rubidium vapor samples. The light stored and retrieved from such systems will be measured and analyzed using a highly efficient array of low-noise photodetectors. This technique can simultaneously measure multiple optical modes and will be used to correlate multiple modes and determine which modes (or combinations of modes) are most robust under different storage conditions. A full quantum-mechanical understanding of the optical signal retrieved from memory allows complete characterization of the device performance and will inform future work in the development of photonic memory devices.

Margin comments in Overleaf

I have started using overleaf a lot more these days and came across a nice way to add margin comments and notes (similar to MS Word comments). Simply include the todonotes package and then add a note where you want it:

\todo{Note text goes here}

Of course this works on any regular latex installation too (i.e. overleaf isn’t required). This can be especially important for shared projects and communication between authors.

IPython notebooks for a Quantum Mechanics course

I have finally published the IPython notebooks that I have worked up for our Quantum Mechanics course. This is a one-semester course for juniors and seniors. We use the book Quantum Mechanics: Theory and Experiment by Mark Beck. This is relevant because some of the notebooks refer to in-text examples and chapter problems. I use these notebooks during our weekly lab time for those students that are not working on the entangled-photon experimental apparatus for that week. We rotate through the experiment in groups of four. The students are responsible for the material in the notebooks, and have taken to using the notebook tools on their homework as well.

Chapter-specific notebooks and the lab activities are available on github. I have also created a web page that links to viewable (and downloadable) versions of the notebooks so you can see them before you install IPython or any other prerequisites. Please contact me with any questions. I continue to use these in my course and am happy to support them for others who are interested in using them.

The notebooks make heavy use of the QuTip package for python, a very useful set of functions and objects for quantum calculations and simulations.

Figure featured in PRA Kaleidoscopes

3d matplotlib image

Q-function figure (without labels) as presented in PRA Kaleidoscope

This figure, generated from our data and visualized using matplotlib, was selected to be featured in PRA’s Kaleidoscope listings. Figures are selected for aesthetics so we are naturally pleased to have this recognition.

For more on how this figure was created, see my earlier post on publication-ready 3D figures from Matplotlib. Finally, the source for this figure is available as an Ipython notebook in our github repository:

Multimode quantum state tomography – in PRA

The measured Q-function for a weak coherent state.

The measured Q-function for a weak coherent state.

The latest paper from my lab at Pacific appears this week in Physical Review A. Multimode quantum state tomography using unbalanced array detection describes a technique we have developed to measure the quantum state of multiple optical modes simultaneously. We are currently working to apply this technique to slow and stored light systems where it will help us characterize the fidelity of optical memory devices.

Abstract — We measure the joint Q function of a multispatial-mode field using a charge-coupled device array detector in an unbalanced heterodyne configuration. The intensity pattern formed by interference between a weak signal field and a strong local oscillator is resolved using Fourier analysis and used to reconstruct quadrature amplitude statistics for 22 spatial modes simultaneously. The local oscillator and signal propagate at an angle of 12 mrad, thus shifting the classical noise to modes that do not overlap with the signal. In this configuration, balanced detection is not necessary.

How do top students study?

This is excellent advice for students, especially the comment about starting homework alone. You don't have to do it all on your own, but if you start it alone (and early!) you will find what you know and what you don't know.

Answer by David Koh:

I did pretty well at MIT, and there's a few things that I did there that haven't been mentioned yet.

The most important thing is to keep track of how good your understanding is of the material.  I saw a lot of people thought that they understood what was going on in a class, but could easily get tripped up by the basics even after the class had moved onto more advanced topics.  Having a thorough understanding of the basics is particularly key, because most advanced material is really just an extension of the basics.

For most mathy, computer science topics, there's really two parts to understanding.  The first is intuition, which for me always meant being able to build a mental model of whatever I was studying in my head.  Usually, working out examples helps with the intuition.  The second is knowing how to formally reason about the topic, which usually involves being able to work through examples step by step using logic and/or algebra, and is especially key for proofs in math and algorithms.  Most good students learn the rules for formal manipulation fairly well, but without a good intuition it becomes harder to deal with more complex problems, where the correct path is not immediately clear.

Another important thing, especially at top schools, is time management.  If one class just clicks for you and you get it easily, and another class is really hard, you should be able to spend less time on the first in order to spend more on the second.  Good students study smart, not hard (great students usually do both).

Here's some tips broken down by part of the class:


  • I find that in lecture, one of three things happens for me: (1) Everything goes too fast and I get lost. (2) I can follow what the professor is doing and I understand what they're talking about.  (3) The professor is going kind of slow, and I can usually get a good idea of where they're going before they say it.
  • In case (1), it usually means that I'm going to need to do extra work beforehand and afterwards in order to get anything out of lecture.  This usually means doing the readings beforehand, and going over the lecture notes afterwards until I feel confident I know what the professor was talking about.  Office hours and recitation are also great places to ask to have something explained again, and hopefully this time in a way you can understand.
  • In case (2), I usually don't worry too much about doing readings beforehand, but I will go over the lecture notes, since usually there are some things I didn't realize I missed.  The key thing to know here is that I never really feel like I understand the material yet at this stage, since I usually know the 'how' but not the 'why'.  The 'why' typically comes with problem sets.
  • In case (3), I may skim the lecture notes, but otherwise I'm usually good.  Case (3) usually only happens when I've seen some of the material before anyway, so I usually have a pretty good idea of how well I know it.
  • One last tip that I think is really key for lecture is to try to understand how the professor thinks and where they're coming from.  For instance, my math professor for Real Analysis always thought of the concepts he was teaching in terms of metaphors and visuals, and he would always start with that, and then tie it into the rigorous math.  From that, I knew what the structure of the lecture would be and also that I would get good intuition from the professor (but he might leave out some of the rigor).  In contrast, I had another professor in Probability who did everything through equations, which meant I got most of my intuition about topics from the book.

Problem Sets

  • Problem sets are usually the best place to find out how well you actually understand the material.  Always start them alone, because if someone else gives you the key intuition for a problem right at the beginning, they've just prevented you from finding a hole in your own understanding you didn't know was there.
  • Here's how I typically do problem sets.  First, read the whole thing, and then start on the easiest looking question.  Work on it until you've either solved it, or you're stuck and not sure what to do next.  Then move to the next easiest question, and so on, until you've tried all of them.  Which questions you can do and can't do right off the bat are good indicators of how well you understand a certain topic.
  • Once you've done a first pass of the problem set, take a short break, and then double down again on the problems, one at a time.  If you get really stuck on a problem, skip it again, but I'll usually only do this if I spend more than half an hour without getting anywhere.  You may try lots of things and hit lots of dead ends while working on problems this way, but that is good, because you are learning what doesn't work, which is something you can't usually learn in lecture (and is very important on tests). 
  • Finally, once you've given all the problems a good, honest try, go and find help.  Friends and classmates, TAs and professors are all good options.  Hopefully, they can help you get unstuck on the problems you're still stuck on.  At this point, you should be able to understand the solution they gave you, and if not, keep bugging them until you can.

Studying for Tests

  • First thing I always did to get ready for a test: Find a practice exam, and do it cold, before you study at all, no notes or helpers.  This will give you a very good idea of how well you know the material, and is likely to be an hour or two well spent.  Make sure you skip things that haven't been covered yet, if the test is from an older version of the class.  If you can't solve a problem, note that down and move on.
  • Review the test and see what you didn't know.  These are the things that are most important to study.  The other key thing to do is see what topics weren't covered on the test, and make sure you study those as well.  If you can find another test that did have a problem on that topic, I suggest doing that problem as well, to test your understanding.
  • Another good technique is to make a list of all the topics on the test, and see how much the class has covered those topics.  This gives you a good idea of how hard the problems on those topics will be.  If you've had a lot of problems or lectures on a topic, the test will probably have more advanced problems about it, but probably fewer.  Conversely, if you've only covered a topic a couple times, the test will probably give you easier problems, but there might be more of them.  This is just a rule of thumb and is sometimes completely off, but it is often helpful to guide studying.
  • Non-trivial problems – I consider test problems that require an extra insight which was not necessarily taught in class to be a special class of problems.  There's not one good way to prepare for them, since you don't really know what's coming, but having a really solid intuition of the basics is usually really helpful.  Also, a good understanding of general related topics can be invaluable, which means just being a good all around student will probably help you on the hardest tests.
  • Help other people study!  Explaining concepts you think you understand is a great way to find out where the gaps in your knowledge are.  If you don't know anyone who needs help with the class, find someone who already knows the material and "teach" it to them.  They will be able to tell you what you didn't talk about, or things that you got wrong, and they may be able to ask questions you don't know the answers to (and then answer them for you)

Taking Tests

  • You can probably find tons of test taking tips elsewhere, so I'll stick to the basics here.  Read the whole test beforehand, start with the easiest problems first, followed by the ones that are worth the most points (if you know how much they're worth).
  • If you get stuck on a problem, make sure you show work up to where you are, and go to a different one.  Partial credit on everything is good.
  • If you get stuck on a non-trivial problem which is really hard (and you're done with everything else), trying something that you're not sure if it works usually doesn't hurt, and sometimes the professor might give you partial credit if you were kind of close.  If it feels good to your intuition but you can't justify it formally, you're probably not far off.

Finally, one last note: If you feel like you're starting to get overwhelmed by a class, don't lose hope!  Go back to the basics, and learn them again.  If the class is moving too fast for you, you have to go back, put in the time to learn it at your own speed, and build up your understanding piece by piece.  Often, advanced concepts are built up one simple step at a time from the basic concepts, and if you missed some of the steps in the middle, it's easy to feel like nothing makes any sense anymore.

How do top students study?