Git Product home page Git Product logo

couleurbummel's Introduction

Hi. 👋

I'm a Software Engineer with Datadog, based in Munich, Germany. 🥨 Ex-Skyscanner.

Find me on these networks

Stack Overflow LinkedIn Twitter Meetup

Buy me a coffee

If you found any of my work useful, you might want to consider buying me a coffee.

Buy Me A Coffee

Blog posts

I occasionally write engineering blog posts. Sometimes my colleagues blog about our work, too.

Roll up to speed up: Improving OpenTSDB query performance

How to improve the query performance for Skyscanner's OpenTSDB cluster and enabling queries that previously were impossible to serve by reducing the resolution of historic data.

👉 Roll up to speed up: Improving OpenTSDB query performance

The problem that wasn’t there — and the Bosun alerts that were

By Annette Wilson

Annette blogged about phantom alerts that our alerting solution Bosun would fire every so often, paging on-call engineers, but turn out to be false every time. The alert condition which was met and triggered the alert, would recover on the next evaluation, only split seconds later. Subsequent investigation and resubmitting the exact same query wouldn't show any sign of a problem, let alone the alert condition being met.

It had been annoying us for two years, but it also happened infrequently enough that investigation any efforts were regularly abandoned without meaningful results until years later. It was mysterious and interesting enough to still blog about it, though. Also, we really wanted to sleep comfortably again without being woken up by a false alert looming. The blog post describes the problem and in an addendum how I finally found the root cause.

TL;DR - Expand here to show the root cause if you don't like exciting stories

Our initial suspicion of a bug in Bosun turned out incorrect. When our timeseries database OpenTSDB serves a query, it uses 8 scanners to return all the required data from HBase asynchronously and proceeds to merge them before returning the result to the client.

The scanners write the results to a map. The datastructure used to generate the key for tese results, however, wasn't thread-safe and in a rare race condition could return the same key for two scanners which meant that one overwrote the other's results. Bosun had incomplete data and the alert went into an unknown state, paging the on-call engineer.

The unspectacular fix can be seen in OpenTSDB/opentsdb#1754.

👉 The problem that wasn’t there — and the Bosun alerts that were

couleurbummel's People

Contributors

dependabot[bot] avatar jbreu avatar muffix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

couleurbummel's Issues

Und eine weitere Verschlimmbesserung

Is there an existing issue for this?

  • I have searched the existing issues

This is not a data update request

  • I am not requesting a data update

Is your feature request related to a problem?

No response

Describe the solution you'd like

Die vorherige Version funktionierte zwar rudimentär ohne Googlekrebs, man mußte lediglich auf die Karte bzw. Umgebungssuche verzichten, aber in der jetzigen Version funktioniert keine einzige Funktion des Programms.

Bei Freigabe von Googleverbindungen bekommt man eine Standardgooglemapskarte angezeigt, die anderen Funktionen bleiben weiterhin ohne Funktion.

Und zu guter letzt wird auch noch frech eine Sicherheitswarnung angezeigt, das Programm könne nicht verifiziert werden und man möge es doch aus dem Play Store herunterladen.

Eine Version ohne jegliche Googleabhängigkeiten wäre sehr ordentlich.

Alternatives considered

No response

Additional context

No response

Callout bubble in dark mode should have a dark background

Is your feature request related to a problem? Please Describe.

The bubble background should be dark, but is actually light.

Despite allowing arbitrary views, the callout bubble that drawn by react-native-maps does not seem to allow for a customisation of the border colour. It remains white even in dark mode. We can make the background dark, but it doesn't look right with a white border.

Describe the solution you'd like

Ideally, react-native-maps would allow us to customise the border colour.

Alternatively, we can completely replace the bubble with a custom view by setting the tooltip prop. This allows for completely custom views, including self-drawn bubbles.

Describe alternatives you've considered

Apply the (presumed to be) correct styling to the callout, but the border remains white.
Additional context

It seems that the colour is hard-coded and cannot be overridden in React: https://github.com/react-native-maps/react-native-maps/blob/c447dea5eb4551440b131e3003ac50e0c5709fa9/ios/AirMaps/Callout/SMCalloutView.m#L607

Improve test coverage

Is your feature request related to a problem? Please describe.

Test coverage is currently somewhat limited and focuses mostly on snapshot and additional manual testing. This makes it difficult to tell whether the app is working as expected.

Describe the solution you'd like

We should introduce further tests, especially around user interaction with the app. This will also make it easier to review external contributions.

Describe alternatives you've considered

N/A

Additional context

App funktioniert nicht mehr auf custom ROMS (CTS profile match failed)

Is there an existing issue for this?

  • I have searched the existing issues

Happening on the latest app version?

  • I have seen this on the latest version of the app

This is not a data update request

  • I am not requesting a data update

Explain what you did

Ich habe die App auf einen Custom ROM ( Google Pixel 5a mit Graphene OS) ohne SafetyNet ( CTS profile match failed) installiert.

Describe the bug

Leider kommt es dann zu einer Fehlermeldung, dass die Integritätsprüfung nicht erfolgreich sei und die App lässt sich nicht vollständig nutzen (nur die Map wird angezeigt).

Expected behaviour

Wenn die Safetynet überprüfung deaktiviert wird, sollte die App auch auf nicht offiziellen ROMs problemlos laufen. *

Safetynet selber ist selber auch keine starke Attestierung, da diese sich relativ leicht fälschen lässt. So ist es beispielsweise möglich bei einem gerooteten ROM mithilte von Magisk und dem Modul UniversalSafetynetFix die Safetynet API so zu manipulieren, dass Safetynet immer funktioniert.

Eine deutlich sichere alternative zur Integritätsprüfung bei Andorid wäre die hardware basierte Integritätsprüfung. Diese ist im Gegensatz zum Safetynet oder dessen Nachfolger der GooglePlay zertifizierung unabhängig von Google. So könnte man auch vertrauenswürdige ROMs von drittanbierten zulassen.
Link zum nachlesen

Da es sich hier um keine Banking oder Bezahl App handelt ( welche hohen Sicherheitsanforderungen erfüllen müssen), denke ich dass eine Integritätsprüfung des ROMs für die Couleurbummel App nicht notwendig ist.

* habe das gleiche Problem auf einem andern Custom ROM gehabt, nach dem die SafetyNet Prüfung gefälscht wurde, funktionierte die App ohne Probleme.

Steps to reproduce

.

Your device and OS

.

Screenshots

Screenshot_20230926-174544
Screenshot_20230926-174434

Selected item in the drawer defaults to wrong item

Is there an existing issue for this?

  • I have searched the existing issues

Happening on the latest app version?

  • I have seen this on the latest version of the app

This is not a data update request

  • I am not requesting a data update

Explain what you did

I restarted the app after previously navigating to a screen other than Map.

Describe the bug

The navigation drawer is highlighting the wrong screen. This is because we're persisting the state to storage:

case ActionKind.DrawerItemSelected: {
newState.uiState.screenName = action.payload.screenName;
return newState;
}

When restarting the app, we are restoring the state for the navigation, but aren't respecting it for the content. We should do one of the following:

  • remove the last selected screen from the persisted state and keep it only for as long as the app is running; meaning the app will always start on the Map screen
  • restore the state fully and start on the last selected screen

Expected behaviour

The navigation drawer should highlight the correct item for the screen shown.

Steps to reproduce

1. Start the app
2. Navigate to any screen other than Map
3. Force-close the app
4. Reopen the app
5. Open the navigation drawer
6. Observe that the app starts on the Map screen, but the previously selected screen is highlighted in the navigation.

Your device and OS

Affects all devices, e.g. iPhone 12 Pro, iOS 16.2

Screenshots

image

Inconsistent react versions

Is there an existing issue for this?

  • I have searched the existing issues

Happening on the latest app version?

  • I have seen this on the latest version of the app

This is not a data update request

  • I am not requesting a data update

Explain what you did

I tried to replace the component redefinition of the custom navigation with a reference to CustomDrawerContent directly. This works in the app, but the tests rendering the component are all failing with an "invalid hook call" message.

Describe the bug

Some project dependencies require conflicting versions of react. For example, react-native@npm:^0.70.6 requires [email protected], but we also have [email protected] in the package.json, which requires [email protected]. This can lead to inconsistent behaviour in tests because we have mismatching versions of react, potentially in use at the same time.

Expected behaviour

All dependencies should be unambiguous

Steps to reproduce

1. Replace `drawerContent={props => <CustomDrawerContent {...props} />}>` with `drawerContent={CustomDrawerContent}>`
2. Run tests
3. Observe the error

Your device and OS

Jest tests with the project Node version and dependencies as in 7d255154.

Screenshots

No response

Form to submit data update suggestions

Is your feature request related to a problem? Please Describe.

Currently, data change requests are submitted via e-mail and are applied manually. The data doesn't come in the right format and it's unclear what exactly is needed.

Describe the solution you'd like

We should provide a form in the app that allows users to submit data change suggestions to a backend. Submissions should be POSTed to a configurable endpoint. The submission must only include the object to be updated. If the request is to add a new corporation, it must contain all objects that are to be created. IDs for objects to be created must be included.

References (fields ending in ...Id) must be strings and must reference an object of the correct type.

Describe alternatives you've considered

A web form could be a good first step might be easier to achieve, but requires hosting.

Additional context

Verbindungsadressen

Is there an existing issue for this?

  • I have searched the existing issues

This is not a data update request

  • I am not requesting a data update

Is your feature request related to a problem?

Die App beinhaltet aktuell leider keine Funktionalität fürs Ändern der Daten mehr

Describe the solution you'd like

Hi, wo findet sich denn die Sammlung der Adressen, die den eigentlichen Content ausmacht? Liegt da irgendwo im Sourcecode ein store, der das beinhaltet oder zieht sich die App das von einem Server?

Ich würde gerne eine Änderung an der Adresse vom K.St.V. Eckart zu Mannheim et Ludwigshafen vornehmen. Wir sind umgezogen und unser neues Haus findet sich in der Mundenheimer Straße 216 in 67061 Ludwigshafen am Rhein.

Alternatives considered

No response

Additional context

No response

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.