Giter Club home page Giter Club logo

jsx-md's Introduction

Follow on Twitter

Hi there 👋!

I'm Daniel. If you read this, it might well be that I sent you the link so you can learn more about working with me. Or you might just have stumbled upon this page, in which case: Nice to meet you! :)

This is my Personal User Manual. If your experience with me is different or you think there is a way this document might be more useful, feel free to open an issue or suggest a change.

Who am I?

I'm a Berlin based founder, manager and developer. I have a faible for technology, data and self management. Currently my focus is on making it easy to solve business problems with TypeScript based web technology.

My professional history

You can find my professional exploits on my LinkedIn profile.

Where to find me online

It is easiest to reach me via email, but you can also follow me on Twitter. From time to time I also write blog articles.

Understanding me

My believes and how they manifest

  • No one is intrinsically bad. Therefore I always believe in good intentions until proven otherwise.
  • Caring about each other makes life better for everyone. Therefore I try to take care of everyone in my sphere of influence.
  • We should all in principle follow the same rules and therefore I have a hard time with rules that don’t apply universally.
  • Working in a group where everyone gives their best is more pleasant and effective than everyone "just doing their job". This doesn't mean spending every wake hour on the job, or not having off days. It is about attitude. Therefore I try to hold everyone including myself up to the highest standards.
  • Transparency and candor both make working more pleasant and effective. Therefore I like to discuss ideas openly and get feedback from others.
  • Making mistakes and learning from them is an important part of life. Therefore I always look for what to learn from mistakes, never for punishing anyone involved.
  • The only way to find out something is to actually try it. Therefore I am usually looking for an experiment that allows to get feedback with the least energy required. It makes sense to learn from what others have learnt to find the right experiments, but then skipping the experiment all-together is dangerous.
  • Handover of work is the biggest source of waste I’ve seen at companies. Therefore I set up teams that are responsible end-to-end for customer value, and the farther end-to-end this stretches, the better.
  • Especially in software development we tend to plan too much ahead. Therefore I prefer just-in-time optimization: Not too early where I don't know yet what to optimize for, but only when the optimization actually becomes necessary.

What people tell me I'm good at

  • Building and coaching teams and individuals to achieve great things while having fun.
  • Meaning well and deeply caring about the people I work with.
  • Helping others to be successful.
  • Rapidly understanding complex problems by probing with questions and thinking through topics.
  • Forcing decisions not to do things instead of wasting time on something that might not be the most effective way to go forward.

My quirks

  • I can be very direct. Please let me know if I am too direct. Feel free to be direct and open with me yourself to let me know.
  • It can be hard to read my emotions. Sometimes this means that I don’t seem appropriately concerned, but me remaining calm does not mean that I do not care or do not take the situation seriously. If you are unsure about my emotions, feel free to just ask.
  • I'm a big fan of being organised digitally. I might sometimes put too much focus on having a clean todo list, an empty inbox ("inbox zero"), or similar. If in doubt, just ask me if something really needs to be cleaned up, and I will reflect on whether there is actual merit to it or it's just my personal preference.
  • Entertaining large groups of people isn't my strong suit. I prefer to meet one-on-one and in smaller groups.
  • I'm especially bad at remembering things. This is one of the reasons why I prefer written communication where I can just look things up.
  • Following orders can be hard for me. Specifically it is hard for me to do things without understanding the reasoning behind it, or at least why there is no time to understand that reasoning right now. This also sometimes leads me to interfere with other people's responsibilities.

Handling stress

I am not easily stressed and will remain calm even in situations where others might freak out. Should I ever get stressed out, the symptoms are that I withdraw and become even more silent. If you feel I no longer openly and transparently communicate, please privately tell me so I can reflect and bring back communication.

Working with me

Productive times

My productive times can vary by day. I tend to be more productive later in the day, though, and usually prefer not starting work before 09:00 am.

Communicating with me

Feel free to be direct with me. I am not easily offended.

For communication I usually prefer written communication above talking as it gives you the time to optimize your message (e. g. using a top-down structure) and me the ability to understand in my own time and potentially include others into the conversation where beneficial.

I feel confident in my triaging skills. If in doubt, you can include me in written communication and I will take care of sorting out what is important for me and what is not.

If you would prefer personal communication, feel free to schedule something into my calendar. My calendar is usually well-managed.

Emergency communication

If you need an immediate response from me, please send me an SMS or call me on the phone. Due to the nature of my work I'm trying to manage my time in larger, uninterrupted chunks where possible and might not check e. g. email or Slack for longer amounts of time.

If you don't have my phone number but think you might need it, just let me know.

Other

Preferred pronouns

My preferred pronouns are they/them, but I'm also comfortable with he/him/his.

How to pronounce my name

Daniel can either be pronounced Daniel in German or Daniel in English. Bartholomae is pronounced as ˈbatolome. I don't really care though as long as I know that you are talking about me.

Dietary restrictions

  • I don't eat cheese, don't drink alcohol and don't drink coffee. Weird combination, huh? :)
  • I try to avoid meat, or at least to buy organic, but I'm not very good at following through with this yet.
  • If in doubt, Thai or Vietnamese cuisine is always fine.

My favorite business books

You can find my professional book recommendations on Goodreads.

Obligatory fun fact

I once managed to forget my own first name for a couple seconds when asked to introduce myself.

jsx-md's People

Contributors

dbartholomae avatar dependabot[bot] avatar kwanjunwen avatar mergify[bot] avatar semantic-release-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

jsx-md's Issues

Make render async

At the moment, the full rendering process is synchronous. This prevents us from writing components that fetch data asynchronously, e. g. via a web request. Since markdown is only used for one-off rendering without any interactivity, we don't have to worry about loading states. Therefore we can find a simple solution for asynchronous rendering.

Describe the solution you'd like

Make render asynchronous, so that it renders the existing components as before.

Describe alternatives you've considered

React uses hooks and state to manage asynchronous rendering. This seems to be too complicated for this usecase, though.

Additional context

This is preparation for #2

feat(Task): Create a Task Component

Sometimes we would want to write a check list in markdown. Having a TaskList component allows users to create task list using JSX.

Would you be willing to help with a PR?

[X] Yes, absolutely
[ ] Yes, with some guidance
[ ] Unfortunately no time :'-(

Describe the solution you'd like

The markdown element could be created with the following

<TaskList tasks={tasks}  />

Each task should have a boolean that indicates whether if the task is checked.

Additional context

Refer to this for additional context.

feat(Heading): Add optional ID support

Sometimes we would want custom ID for the generated header. The Heading component does not support custom ID at the moment.

** Would you be willing to help with a PR? **
[X] Yes, absolutely
[ ] Yes, with some guidance
[ ] Unfortunately no time :'-(

Describe the solution you'd like

Add an id optional prop to Heading component to generates the correct markdown syntax for custom heading id.

Additional context

Refer to this for additional context.

The automated release is failing 🚨

🚨 The automated release from the main branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this 💪.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Invalid npm token.

The npm token configured in the NPM_TOKEN environment variable must be a valid token allowing to publish to the registry https://registry.npmjs.org/.

If you are using Two Factor Authentication for your account, set its level to "Authorization only" in your account settings. semantic-release cannot publish with the default "
Authorization and writes" level.

Please make sure to set the NPM_TOKEN environment variable in your CI with the exact value of the npm token.


Good luck with your project ✨

Your semantic-release bot 📦🚀

feat(Table): Add alignment options for body

The current table component does not seem to support text alignment yet. We could improve the component by adding the alignment option.

Would you be willing to help with a PR?

[X] Yes, absolutely
[ ] Yes, with some guidance
[ ] Unfortunately no time :'-(

Describe the solution you'd like

Probably have to add another props that defines the alignment for the table body. Will default to current rendering if alignment is not provided.

Additional context

Can refer to this for more context.

Add Promise element

At the moment, each element is created synchronously. This prevents us from writing components that fetch data asynchronously, e. g. via a web request. Since markdown is only used for one-off rendering without any interactivity, we don't have to worry about loading states. Therefore we can find a simple solution for asynchronous rendering.

Describe the solution you'd like

Add a new md-promise element which accepts a Promise as children. Please add a Promise element similar to how Fragment wraps md-fragment.
This should render by resolving the promise. If the promise rejects, reject with the same error.

If you get stuck working on this, I am available for pair programming.

Describe alternatives you've considered

React uses hooks and state to manage asynchronous rendering. This seems to be too complicated for this usecase, though.

Additional context

This is based on the breaking change done in #1 so that this change itself no longer is breaking.

When this issue is resolved, we can add additional functionality to jsx-readme that uses information from the GitHub API to e. g. add an up-to-date list of contributors.

refactor(Emphasize): Emphasize API refactor proposal

The Emphasize component renders italic style by default, and bold if strong prop is set to true. When we want to render a bold and italic text, we have to wrap Emphasize component twice, with each set to strong and another without.

** Would you be willing to help with a PR? **
[X] Yes, absolutely
[ ] Yes, with some guidance
[ ] Unfortunately no time :'-(

Describe the solution you'd like

Instead, Emphasize component will not do anything to the text by default, set strong prop to true to wrap the content with **, and set italic prop to true to wrap the content with *. Since _ shouldn't be used in the middle of a word, it is safer to only use *.

Additional context

Best practices references.
Bold
Italic

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.