This “blog” is a collection of notes mostly for myself. They might be useful for you too.

CS Papers

v0.0.1, 2020.03.08

Keeping up to date with latest in tech is difficult. Keeping up to date with the latest academic research is even more difficult, as the volume of published papers is huge. Furthermore, the content of academic papers is usually information dense, i.e. it is not possible for the reader to simply glance over each and every paper to see if it contains something interesting.

Journals, conferences and blogs can help filter and summarize the latest and most significant papers. Especially reading blogs like the “The Morning Paper” is a convenient way to digest the papers without being overwhelmed.

In this post I share a couple of resources for finding current papers.

Archives

Archives just collect all published papers for an organization. Thus, they contain vast numbers of different contents.

arXiv

arXiv is probably the papers archive. Use arxiv-sanity.com for a better searching and browsing user experience. Use arxiv-vanity.com for reading in a browser (turns PDFs into HTML).

dblp

The dblp computer science bibliography provides open bibliographic information on major computer science journals and proceedings.

Google Scholar

Google for scholarly writings.

Microsoft Research

Microsoft research produces excellent computer science research.

Facebok Research

Another corporate research facility.

Paper “Charts”

Most of the times we want to know what are the “best” papers in a field. “Best” can be measured by the impact the work has (number of citations, awards, selection for conferences, etc.)

arXiv top papers

Allows you to sort by time span (day, 3 days, week, month, year, forever).

SciRate

Grouped by subject and ordered by number of citations.

Google Scholar

Grouped by subject and ordered by number of citations.

Best Paper Awards in Computer Science (since 1996)

Grouped by conference and ordered by year.

Reading list by Subject

There are already reading list for certain subject that collect all the useful literature.

The Definitive Security Data Science and Machine Learning Guide

Last updated in 2017.

Services Engineering

A reading list for services engineering, with a focus on cloud infrastructure services. Last updated in 2015.

Blogs

There are blogs with semi frequent posts that present and summarize popular and interesting papers.

The Morning Paper

A random walk through Computer Science research by Adrian Colyer.

Two Minute Papers

A YouTube channel that present the results of papers (usually in the computer graphics field) in a 3 to 5 minute video.

IntelliJ Customizations

v0.0.1, 2020.02.28

Even though IntelliJ is already pretty great, I like to customize it for my needs. If you are going to spend hours every day using a tool, you should learn and customize it.

Plugins

AceJump Bien

Move the cursor around without using the mouse or arrow keys.

Tab Shifter

Jump between my split panes and move a pane.

String Manipulation

Who wants to manually Switch cases, Capitalize, To lower case, Invert case, Encode/Decode, Increment/Decrement, Sort, Align, Filter Strings?

Key Promoter X

Nags at you if you use the mouse instead of the keyboard.

Apparence

I don’t like distractions while coding. Thus, I remove most visual elements which can easily be accessed by shortcuts. I removed:

  1. Tool Windows

    Click the icon at the bottom left to disable. Tool windows can be access with alt+1 to ctrl+9 or alt+E.

  2. Main Menu

    Everything can be accessed with ctrl+shift+A or shift+shift. Disable with ctrl+shift+A and search "Main Menu" to toggle.

Bash Tricks

v0.0.1, 2020.02.26

Bash has some nice shortcuts. Here are a few I like and use frequently. Some are from ostechnix.com.

Moving the cursor

  1. ctrl+A - Go to the beginning of a line.

  2. ctrl+E - Go to the beginning of a line.

  3. ctrl+B - Move cursor back one step.

  4. ctrl+F - Move cursor forward one step.

  5. alt+B - Jump to the beginning of the current/previous word.

Swap/Change content

  1. ctrl+T - Swap char to the left with the one to the right.

  2. alt+T - Swap the last two words.

  3. ctrl+W - Delete the word before cursor.

  4. ctrl+U - Delete all words before the cursor.

  5. ctrl+K - Delete all words after the cursor.

  6. ctrl+Y - Undo last deletion.

  7. ctrl+H - Same same as backspace

  8. alt+U - Uppercase all chars after cursor.

  9. alt+L - Lowercase all chars after cursor.

Finding past commands

  1. !+! - Repeats the last command.

  2. ctrl+R - Reverse searches commands

  3. ctrl+P - Show the last command (repeatable)

  4. alt+. - Use the last word of the previous command

ConEmu shortcuts

I use conemu as my console window with git bash as my default shell. All keyboard shortcuts can be found here.

  1. ctrl+¨ - Focus/Open/Close window.

  2. ctrl+G - Open new git bash tab.

  3. alt+enter - Distraction free mode.

  4. ctrl+shift+E - Duplicate active shell, split to right.

  5. shift+menu+left / right - Move splitter left- or rightward.

  6. ctrl+shift+O - Duplicate active shell, split to bottom.

  7. shift+menu+up / down - Move splitter up or down.

  8. menu+arrow - Move focus to different pane.

  9. menu+shift - Move focus to next pane (cyclic).

Blogception

v0.0.1, 2020.02.23

Some blogs I enjoy reading.

Java

  1. Adam Bien

    German, Java EE (Jakarta EE) consultant with a pragmatic approach to software development.

  2. innoq

    German/Swiss consulting company.

  3. Spring Blog

    Keeping up with the Pivotals.

  4. Vlad Mihalcea

    Everything related Java persistence and databases.

  5. Thoughts on Java by Thorben Janssen

    My JPA cheat sheet.

  6. Codecentric en/de

    German consulting company.

  7. JOOQ (java and other languages / thoughts on programming)

    Mostly entries by Lukas Eder, the creator of the JOOQ persistence library. He also writes posts on jOOQ, jOOλ and SQL

Miscellaneous Geek stuff

  1. Julia Evans

    All kinds of different interesting CS related stuff.

How to hold a meeting

v1.0.0, 2020.02.02

Most meetings are useless as they are unnecessary, badly prepared, badly executed and rarely followed up upon.

The following article contains some notes on how I like to hold meetings.

Preparation

The invitation should contain:

  1. Title

  2. Date, start time, end time

  3. Location (check if room is available and equipment is working)

  4. A quick description of what the meeting is about

  5. Agenda items

  6. Goals

  7. Eventual preparations that individual participants must make

Meeting

  1. Greet the participants.

  2. Summarize the goal of the meeting.

  3. Discuss each agenda item.

    Somebody has to keep meeting minutes.
  4. At the end summarize what was decided and what the next action items are, so everybody can agree.

Meeting protocol

  1. Title, Date, Meeting Type (Kick-Off, status, etc.)

  2. Subject

  3. Date and time

  4. Place

  5. Participants

  6. Protocol author

  7. To whom the protocol has been sent to

  8. Protocol items in chronological order

    1. Title: Subtitle

    2. Who did what and who said what

    3. What was decided

  9. Action items: Who has to do what until when? == Report Writing Tips v1.0.0, 2020.02.01

These are mostly notes I took from the thesis guide of the Institute for Dynamic Systems and Control at ETH Zurich.

Where to start?

  1. Understand the assignment. It is the responsibility of assignee and supervisor to agree on the assignment → project agreement.

  2. Research study (literature search). Goals:

    • Fully understand the given problem

    • Identify potential solutions that have not been investigated yet.

      Keep track of relevant sources and the infos they contain.
  3. Goal of the report/thesis should be clear → work can start.

    During work the focus of the project may change.

    Solving problem → better understanding → new questions → new answers

  4. At project half-time, work towards thesis statement with supervisor. Statement should:

    • Reflect the main idea of your report.

    • Summarize what you want to show in your report.

      Remaining time is used to investigate the unresolved issues that are implied by the thesis statement.

  5. Before starting to write the report, create an outline of the content. This will keep the text together. Important information is separated from unimportant. The contents of every chapter and section are connected with a common thread.

Common Grammatical Mistakes

  1. Transitionsword such as therefor, however, as a result, etc. at the beginning of a sentence are always followed by a comma.

  2. A compound word is a combination of two or more words that function as a single unit of meaning. Check whether the meaning of the sentence is ambiguous without the hyphenation.

    We must use compound words when we create single adjectives with past participles such as well-known, so-called, model-based, etc.

    Furthermore, compounds that are created with the with -ly adverbs are never hyphenated.

    Closed compounds are written as single words, e.g. footpath, railway, smalltalk, etc. They are used when the first part of the word acts only as a modifier of the second part. Examples:

    e-book

    everlasting

    ever-recurring

    full-length

    object-oriented

    online

    on-screen

    nonlinear

    northeast

    offline

    one-half

    self-learning

    self-sustaining

    test bench

    three-way path

    web page

  3. Avoid neglecting words in series of smiliar things, but rather write out the complete expression multiple times. Likewise, avoid supsended hyphens.

  4. The expression yield to does not exist. Either use leads to sth. or yields sth. Similarly, the expression allow to cannot exist without a noun.

  5. Use a comma in a series of items, even before the last item, which is usually preceeded by and or or. In addition, use a comma after certain introductory words or terms, such as namly, that is, i.e., e.g., and for instance, when these are folled by a series of items.

  6. Place a comma to separate sentences with independent clauses that are joined by connectors such as and, or, but, etc. If the subject is neglected in the second clause, a comma is usually not required.

  7. The abbreviations “i.e.” and e.g. have different comma rules.

    “E.g.” should generally be followed by a list of examples. Therefore, “e.g.” usually requires a subsequent comma to delimit the beginning of that list.

    “I.e.” is typicaly only followed by a clause describing a singular entity, and so does not require a subsequent comma. Do not use them at the beginning of a sentence.

  8. Technical reports are always written in present tense. The past and future form should only be used occasionally when the action is related to a specific point in the past or future.

  9. Avoid passive voice

    ☒ It is useful to…​

    ☒ One can think of…​

    ☑ The result in Figure XY indicates…​

    ☒ In Figure XY it can be seen…​

    ☑ Figure XY shows…​