What are the benefits of a tracing JIT?
Friday, April 23rd, 2010Firefox uses a tracing JIT. Adobe’s been using it for a while. A Python interpreter uses tracing. Microsoft is also researching its possibilities. So what’s the big deal?
Firefox uses a tracing JIT. Adobe’s been using it for a while. A Python interpreter uses tracing. Microsoft is also researching its possibilities. So what’s the big deal?
PyPy is a Python interpreter written in Python. It claims to be faster than CPython for certain benchmark tests. How can Python — not particularly known for its speed — interpret Python source code faster than an interpreter written in C? Also, an interpreter written in Python sounds like a neat exercise, but what’s the point of doing this?
PyCon 2010 was in Atlanta this year. It wasn’t quite as warm as I hoped it would be, but definitely an improvement over the 2-3 feet of snow we got in the DC region. I do feel a little smarter after attending PyCon, but also infinitely humbled by the creativity, energy, and raw intelligence in the Python community. Here are some notes I took from the talks I attended…
Picture a fully developed CRF. The form layout is pristine, the validation rules are working exactly the way you want them to, and the field data maps directly to your database tables.
What more can you ask for?
Unfortunately, forms hardly ever stay the same throughout the course of a clinical trial or a research study. Forms frequently need to adapt to new data points that were unforeseen during the protocol definition phase. So how can we handle this?
Although operator overloading is possible in C# (just like in C++), overloading the array square bracket operator is by definition not possible. However, C# provides an alternative called indexers. This is directly from the Microsoft C# Reference for the [] Operator:
Okay, so you’re sold on a Tablet PC, but what should you watch out for when developing a Tablet PC application in health care?
Below is a list of common mistakes for developing a Tablet PC application. All are avoidable early in the project’s life-cycle. Some of these mistakes I own, and others I’ve seen from other project managers and developers. Hopefully, this list helps others avoid these common mistakes.
In a comment for a previous post (Top 10 differences between Java and C#), John P. Wood wrote:
As a (primarily) Java developer, I’ve also noticed that C# handles abstract classes that implement interfaces differently. In Java, an abstract class can implement an interface, and not provide implementations of all of the interface’s methods. It is the responsibility of the first concrete class that has that abstract class as an ancestor to implement all of the methods in the interface.
How do you systematically make use of the varied Tablet PC screen resolution dimensions using C#?
Designing a CRF specifically for a Tablet PC can be a challenging experience, but it can also be one of the most rewarding.
The Tablet PC is very similar to a traditional desktop computer or a laptop. As I write this entry, most Tablet PCs are running some variant of Windows. Whether it’s Windows XP Tablet PC Edition or Vista (which has built-in support for Tablet PC specific functionality), you’re basically dealing with a Windows machine and you can pretty much treat it as such… almost.
While designing a CRF, little short-cuts can save you lots and lots of time. This time-saver is straight-forward code-wise and should fit right into your C# code without much modification.
During CRF design time, I often have CRFs that have dozens and dozens of input controls (radio buttons, dropdowns, listboxes, textboxes…). I’d like to add OnChange handlers to all of these input controls so that I know when a change has been made. Basically, what it comes down to is I want to know when the form is dirty, but I don’t want to add all the handlers by hand. Fortunately, I didn’t have to and neither do you!
My latest transition from Java to C# left me scratching my head and scrambling to find the differences. Don’t get me wrong — they are very similar, but some key syntax and philosophical differences set these two languages apart. Below are my top 10 differences that I wish someone told me before I pulled out yet more hair.