ghh
I've been self-hosting Sentry for over 10 years: Sentry is installed by running `git clone`, editing one or two configuration files, and running ./install.sh. It requires 16GB RAM if you enable the full feature set. That includes automatically recording user sessions on web or mobile for replay, and support for end-to-end tracing (so seeing which database queries your api asks for in response to a button tap in your mobile app).
Sentry has a wonderful self-hosting team that's working hard to make Sentry's commercial feature set available, for free, to everyone that needs a mature error tracking solution. You can talk to them on discord and they listen and help.
One would have to check the resulting code carefully to see if the meaning is still as originally intended, or replaced with code that is more probable to be correct (but no longer working).
For instance, it replaces this:
if dataset == 'animals':
if dataset == 'turtle':
x_train, y_train, x_test, y_test = datasets.load_turtles(with_bowtie=False)
elif dataset = 'formal_turtle':
x_train, y_train, x_test, y_test = datasets.load_turtles(with_bowtie=True)
else:
with this: if dataset == 'turtle':
x_train, y_train, x_test, y_test = datasets.load_turtles(with_bowtie=False)
elif dataset == 'formal_turtle':
x_train, y_train, x_test, y_test = datasets.load_turtles(with_bowtie=True)
The before-code responds to dataset='animals' with `load_turtles(...)` and to dataset='turtle' or 'formal_turtle' with an error; In the after-code this is reversed, although the apparent logic error and the assignment/equals sign error are resolved. git clone https://github.com/zed-industries/zed
cargo run --releaseThey passively record what you do, on computer and phone, and at the end of the day (or when invoicing is due) allow you to link what you did to projects.
Use ManicTime if you're mostly on Windows, Timing appears to be good if you're mostly on OS X, and ActivityWatch takes the same approach in an open-source cross-platform project.
I have ManicTime set to record a screenshot every 15 seconds, and record window title and document paths on every app switch. Invoicing still takes time, but knowing what you did and when helps to take all the guesswork out of it, especially for chaotic days.
[0] https://www.manictime.com/ [1] https://timingapp.com/ [2] https://activitywatch.net/
Why is it good for consultants (e.g. people working for multiple clients on the same day)?
- Takes a screenshot every X seconds,
- Records window titles, document paths, urls,
- Records phone location, foreground phone app (Android only)
This way, you can focus on making your clients happy, and at the end of the day (or week, or month), still accurately assign time spent on each project.It's more like Heap Analytics, in that it collects user clicks and other events from your site (or app) and allows you to retro-actively define "actions" based on these events.
For instance, if you decide today to keep track of how many users click your sign-up button on page X, PostHog can graph this metric for you for every moment since you first installed it on your site.
You can combine actions into funnels, graph nearly everything, the GDPR support is first-class, there's support for heatmaps, feature flags (rolling out new features to just a percentage of your visitors), and user cohort analysis.
[1] https://github.com/valeriansaliou/sonic
[2] https://docs.meilisearch.com/resources/comparison_to_alterna...
- ChartIO
- 'WagonHQ, Modern SQL Editor' [1] (now aquired by Box)
- MetaBase [2,3]
- Redash [4]
MetaBase is the only one that I know of that is
- fully open source,
- mature (graphing options, permission model),
- still actively maintained, and
- both friendly to non-technical users and expert sql'ers alike
[1] https://news.ycombinator.com/item?id=9792464
[2] http://www.metabase.com [3] https://news.ycombinator.com/item?id=10425959
- Erase your history.
- Go to HN, click any link you haven't clicked before.
- Wait for it to load.
- Erase your history. Make sure you see the notification "Your browsing history has been erased".
- Go to HN again, and see the link you've just clicked still highlighted as 'visited'.
That is to introduce a preliminary type definition. Instead of:
const oldVar: any = { field: 1, ... }
function foo(bar: any) { ... }
You can write: declare type OldVarType = any
const oldVar: OldVarType = { field: 1, ... }
function foo(bar: OldVarType) { ... }
This way, you can signal that it's not just any kind of any, but a particular kind of any, which is now trackable in your codebase.When you're ready, you can gradually update the OldVarType declaration and solve the compiler type check warnings from there. Union types [1] can be quite useful then too.
[1] https://www.typescriptlang.org/docs/handbook/advanced-types....
The Dutch government also has its 'own' typeface [1,2], used on everything from the official weather reports to tax forms and road signs. Dutch people recognize anything written in it as something meant to be taken seriously.
[1] https://www.rijkshuisstijl.nl/bouwstenen/lettertype
[2] http://designworkplan.com/typography-fonts/rijksoverheid-san...
An open source Slack clone written in Golang and React
For the Amsterdam map there appears to be a large part of what I know is water that is rendered green? Why is that?
- It's hosted by the government - the equivalent of the DMV [1]
- It's based on RFID tags placed INSIDE the frame, so serial numbers can't be filed or welded off. You have to physically destroy part of the frame to get to the tag.
- Tags are installed by bike manufacturers on the more expensive theft-prone bikes, and registered by the bike dealer, so you yourself don't have to do any registering.
- Police have scanners that they use to scan public bike parking lots randomly [2]. Try google image search for 'amsterdam centraal fietsenstalling' for a picture of a parking lot.
[1] https://fdr.rdw.nl/ [2] https://translate.google.nl/translate?sl=nl&tl=en&js=y&prev=...
I might be reading this the wrong way, but this helps explain the Not-Invented-Here syndrome [1]. Why not just re-use some other code? Because it's not just about the code, but about the programming team's understanding of how the software tackles the problem.
Want to steadily improve on non-production code? Try codewars.com: you're asked to solve 5-30min coding exercises and after can immediately browse the solutions of your peers. The short feedback loop helps you understand how you could've improved while the code is still fresh in your head.
[1] http://www.osnews.com/story/19266/WTFs_m
[2] http://www.amazon.com/Clean-Code-Handbook-Software-Craftsman...
[1] http://www.indiegogo.com/projects/gravitylight-lighting-for-...
[1] http://rubenvandervleuten.com/contact.html [2] http://rubenvandervleuten.com/AtoB1.jpg
At http://shootout.alioth.debian.org/, an up-to-date list of the most popular languages are benchmarked. Tests are standardized, and code is optimized for the tested language and particular benchmark. Also, for each benchmark, not only execution speed, but also memory consumption and code size are measured, and the processor architecture is taken into account too.