Our Blog

Scientific Programming “Don’ts” – Badly Named Variables

By Itay Zandbank

I once knew a software engineer who gave birth to identical triplets.  Since no one could tell the babies apart, she named them all X and planned to assign a string to each one later. For various reasons, she never did.  Since she and her husband never did learn to tell them apart, they continued…

Scientific Programming “Don’ts” – Don’t leave confusing code undocumented

By Itay Zandbank

Sometimes your code does something not trivial to fix a problem that isn’t obvious. For example, in one place someone was having some rounding issues, so we found this gem in the code: double *pf = &f; (*(long long *)pf) += 8; The only comment there was “solve rounding issues”. We’ve encountered this code when…

Scientific Programming “Don’ts” – Not Using Source Code Repositories

By Itay Zandbank

Scientific Programming “Don’ts” – is the first in a series of blog posts created from the nightmares of the The Research Software Company’s top developers.  We encourage you to heed our warnings! As developers,  we are often called upon to consult only after something has gone horribly wrong.  For example, sometimes we are handed code…

New version of pyexistdb released

By Itay Zandbank

We have released a new version of pyexistdb, the Python interface to the eXist-db database. This is a minor update containing the following additions: Tells requests to ignore the `charset` property of the content-type field, and use the encoding passed to the `ExistDB` constructor. This is used to circumvent the bug described here. eXist-db version…

eXist-db, UTF-8 and a bug

By Itay Zandbank

Here at the Research Software Company, we currently have a big corpus of TEI-encoded Hebrew songs we are working with. (If you have Hava Nagila playing in your head now, we apologize, but we promise Hebrew music is much richer and more complex than that tired Bar Mitzvah standard. But I digress.)  Since we don’t…

What’s the Best Language for Academic Programming? (Hint – it isn’t C++)

By Itay Zandbank

As consultants to academics, we are often invited to join a project “already in progress.” Sometimes we’re called in to assist after a student has graduated and left the team, or to help a team that has hit a speed bump. In such cases we usually have the project’s programming language dictated to us by…

CUDA Premature Optimization

By Itay Zandbank

One of our projects – a system that performs lengthy calculations with CUDA – started exhibiting strange behavior. It is one of those physical simulations that nobody without a masters degree in physics understands. The code was originally developed by PhD candidates in the lab, and was transferred to us when they were in the…

Introducing pyexistdb

By Itay Zandbank

We are proud to announce the release of a Python 3 interface to eXist-db. eXist-db is an XML document database. It is a natural choice for storing a corpus of TEI documents. It does not come with built in Python support, so Python users had to resort to 3rd-party libraries. The most advanced library was…

A Case Study: Part II – Switching from C++ to Python

By SiteAdmin

In Part I of this blog series we introduced you to our project CSM: Continuous Symmetry Measure. If you missed it, you can catch up here. Here in Part II, we’ll begin to explain the programming decisions we made, including the rationale behind our decision to switch the coding language from C++ to Python. If you’ve read…

A case study: CSM, Continuous Symmetry Measure

By SiteAdmin

Part I – Introduction Several years ago, we were approached by a research lab at The Institute of Chemistry at Hebrew University with a request to help with a project called the Continuous Symmetry Measure (CSM). Like many projects on which we are asked to consult, the code had been written and maintained by a…