CodeCraft & Beyond

Throughout more than 6 years working as a researcher in academia, me, my friends, and colleages, have increasingly been faced with issues to focus on what really matters to us: doing research.

Now, if we look back (you chose the extent in time), it’s clear that the world is becoming more and more complex, and it’s always been like that, it isn’t new. What’s new is the speed with which all these changes are taking place in modern society. I think many of us would agree that, nowadays, in order to be competitive in any field, people must have much more skills and competences than those in the same positions 20 years ago.

In the context of science, researchers no longer must dedicate themselves only to their research, but also to administrative procedures, teaching courses, training students, learning new software, learning new technologies, the need for an ever-increasing online presence, among many other “shallow” but important tasks. And, of course, thare is also a good share for the students too. All these satellites surrounding us consume energy that could otherwise be used to advance our research.

In the past, the specialization of work made possible the development of expertise and consequently the rapid progress of social and economic advances. Today, it would seem the world moves towards multipotentiality.

If you feel like that too, then seek no more, you have come to the right place.

What is CodeCraft & Beyond ?

CodeCraft & Beyond is a project whose mission is to help in the development of science through support, assistance, and training to both young and established researchers.

So you can do the scientific innovations, we propose the tools, and even take care of what goes on behind the scenes.

What do we
offerproposedo
?
Training on methods and toolsJust like nobody taught you how to manage money once you have it, nobody thought you how to manage information, nor to leverage tools to be more efficient, neither to present your work. We can help.
Polish and publish your codesDo you have a home-made code in the storage room? We help you to give it the final paint coat, document it, and open it to the world. Valorize and share your work, so others can use it too.
Data analysisIf you have used laboratory equipment lately, we could agree an Excel spreadsheet starts to be inadequate to manage the ammount of data. We can help, with personalized Python code. (This service is not active at the moment)

Polish and publish your code

Everybody knows a colleague who has this surprising code which does an analysis we need. He developed it for personal use, but over the years it has become increasingly capable, and interesting. However, the code is not documented, it’s not user-friendly, and requires a very specific environment to run on.

Three possibilities open at this point:

  • The owner of the code teaches you how to use it, sitting side-by-side.
  • The owner of the code documents it, makes it usable to others, and designs a webpage to publish it.
  • Everybody moves forward, and the code slowly dies.

The first possibility limits the use of the code to the closest environment of the developer. The second is very unlikely, as this requires time. And personally, I wouldn’t like to see the third happen to such amazing works. Therefore, we propose to closely work with the researchers, and provide finishing touches to their jobs, so these codes can be widespread. How do we do that?

  1. We set up a public or private Git repository where all the modifications to the code will take place. This way, if the developer wants to add something in the meantime, he is free to do so. Also, we all can keep track of the progress made.
  2. We write the needed subroutines, so the code can read user-friendly input files, checking for data validity, and initialization. This will make possible other researchers can use it by themselves without headaches, with a nicely formatted input file.
  3. We write a concise documentation on how to use the code, based on the information acquired during the development of the input file subroutines. This way, everybody can see how to actually use the code.
  4. We set up a webpage with a presentation of the code, how to obtain it, the documentation, etc.

FAQs


But that would mean that, as the code is open to the world, I would receive a huge amount of email asking for bug fixes or help in specific situations.

Finally, you will have the possibility to receive fixes from other developers who engage with your code, or even from students, as long as you decide to make the Git repository public.

How can you write documentation, if you don’t know the code?
Do I have to make public my code?

Training on methods and tools

Rough estimates from 2009 reported that the average US resident consumed 34 GB and 100 000 words of information per day. This number has clearly augmented during the years following that report.

Undoubtedly, the increased flow of information and responsibilities perceived by new doctoral students, and in general by all those who start a position as knowledge workers, is a real challenge. In addition to study and/or research, we now also have to do administrative paperwork, lab work, write publications, prepare presentations for conferences, prepare meetings with supervisors, etc. All while trying to maintain personal relationships and an extracurricular life. Those who succeed do so because they have managed to develop over time a personal methodology for capturing, organizing and processing information. Sometimes, however, this personal methodology is to work from 8h to 00h.

To manage the flux of information, to prevent declaring the mail inbox in bankruptcy, to avoid 20 open tabs in the web browser, etc., new methods and technologies have emerged. Notably, Artificial Intelligence and Personal Knowledge Management seem to have found a sweet spot of public acceptance, but not without their drawbacks.

At CodeCraft & Beyond we believe that solid foundations make people advance much more peacefully and longer. Therefore, those starting a profession with strong knowledge of the methods and technologies available to complement their expertise, and successfully overcome the barriers they may find on their endeavors, will certainly have a more fluent, pleasant, and productive career. This is why we propose formations in basic, but foundational topics, such as:

Personal Knowledge Management

If you identify with situations like the following, then you may benefit from Personal Knowledge Management.

  • You have been reading an article and found an interesting reference. In most cases, you would open it in another browser tab and plan to come back to it later. But you never did, and eventually lost it.
  • You have always stored the information you found interesting somewhere where it seemed logical to look for it in the future. But you never find it when you need it most.
  • You’ve done work in the past that you might as well reuse for new projects, but you never do.
  • You have forgotten tasks, meetings, or exactly how you did a certain project. Often we go back to a job we did some time ago, and we don’t know what we did, why we did it, or how we did it.
  • You catch yourself thinking about tasks you have to do while in the shower, trying to sleep or just walking around. And the very same tasks come over and over again till you do them.
  • You have so many things to do you don’t even know where to start.
  • You don’t find the time for personal projects, and they always get displaced for work.
  • You find yourself reacting to the environment, and not acting towards your objectives.

Learning how to effectively manage information and knowledge is a mid-term investment. You will probably need to spend some time figuring out what works best for you, but it will help you organize, prioritize, and do everything you already did in a shorter window of time.

At CodeCraft & Beyond, we propose and explain methodologies and tools to develop a personal knowledge management system, with the right approach.

Python for data analysis

But how does this interest me? You may ask. Well, if you find yourself struggling with crashes on huge Excel spreadsheets, or with repetitive analysis you need to manually do over and over again, then a small code in Python could solve those issues.

Studying a programming language for these purposes is a long-term investment. You will need to dedicate time to understand Python’s syntax, and to compose the script, but once it’s done, you can use it forever.

Linux, Bash, Git, etc
  • Linux as a free (as in money, and as in freedom) operating system you could hugely benefit from. It has regular office tools, but also advanced ones like the Bash command processor, which grant you with high effectiveness.
  • Git is a free distributed version control system designed to handle everything from small to very large projects with speed and efficiency. It’s the technology GitHub is based on, but note that GitHub is not Git, GitHub is a service which uses Git. Once you start using it, you can forget about those folders named “article_v2”, “article_v3”, “article_final”, “article_final_v2”, etc. It’s the perfect tool for version control and collaboration.
LaTeX

LaTeX can be used for the confection of reports, presentations, postsers, etc., but when it really excel is in long form documents like thesis and books. It basically manages the formatting and placement of the content for you, so forget about a Word document crashing, hand-made bibliographies, missing figures and tables, and broken hyperlinks.

It perfectly works with Git locally, but if you are more of a web-based person, then services like Overleaf will be the icing on the cake. They have extensive documentation on how to use LaTeX, and even a 30 minutes complete beginner course. Check them out and see what you could do with this porcelain.

Where is CodeCraft & Beyond at?

CodeCraft & Beyond is in a conceptualization stage.

In this webpage you can find the main ideas we propose and the services we are capable to provide for the moment. If you think any of them is interesting for you, if you would like to know more about the project, if you are interested in any of our services, if you think something should be added, removed, or treated differently, or simply to get in touch, let us know writing to contact@poview.org. We are always eager to hear your oppinions and thoughts about our work.

Also, feel free to subscribe to the mailing list below (no spam ever). We would appreciate it very much. By doing so, you will exclusively get all news on the adavances we are doing, and therefore will have the posibility to be exactly in sync with our development. But most importantly, we could all have an idea whether this initiative is interesting to young and established researchers or not, and act consequently. We count on your vote!



If you don’t see the subscription form, directly checkout the Newsletter.