HNHacker News
TopNewBestAskShowJobs

MJSplot_author

104 karma · joined December 8, 2014

submissionscomments
MJSplot_author··on Self Host a Wiki or Knowledge Base for Your Team
Zim desktop wiki seems to fit you requirements. It's local and designed for a single user, but if coupled with Syncthing works across devices nicely.
MJSplot_author··on Show HN: ConvTools – generates Python code of conversions, aggregations, joins
Just my initial response.

Maybe fine a better first example? It is quite code dense:

    conv = c.aggregate({
       "a": c.reduce(c.ReduceFuncs.Array, c.item("a")),
       "a_sum": c.reduce(c.ReduceFuncs.Sum, c.item("a")),
       "b": c.reduce(c.ReduceFuncs.ArrayDistinct, c.item("b")),
    }).gen_converter()
    conv(input_data)
when compared a trivial native python equivalent:

    conv = lambda data:{ 'a': [el['a'] for el in data ],
                    'a_sum' : sum( [el['a'] for el in data ]),
                    'b': list(set( [el['b'] for el in data ])), }
    conv(input_data) 
which appears to have the same functionality. This is quite off putting and it took me a while to dig down to find why convtools can offer more than just an extra abstraction layer to learn. Perhaps pick an example that shows off the non trivial functions like joins or GroupBy?
MJSplot_author··on Show HN: Web pages stored entirely in the URL
Similar to this [0] from a few years ago. That one also had some basic encryption included. Some previous discussions[1,2] of that tool highlights that this can easily be abused for xss or distribution of illegal materials which you may not want to find yourself the focus of.

[0] https://davidpartson024.github.io/no_host/encryptedPageMaker...

[1] https://www.reddit.com/r/programming/comments/47gjbv/experim...

[2] https://www.reddit.com/r/InternetIsBeautiful/comments/4o76gn...

MJSplot_author··on Show HN: Observable Notebooks
I like the idea, I've even written something similar myself, but for me a few things were not clear.

How would I load in data that is stored on my harddrive (not web addressable) without having to run my own server or go through the file selector popup box each time. User JS can't just read the harddisk (a requirement for web security). If I have to run my own server then a major selling point of this is gone.

I work with large tabled data and very often use vectorised functions using numpy or pandas, working on entire columns with a fantastically simple interface. A = B * x, for arrays B, scalars x returning a new array A. Is there something as beautiful available, working around the lack of operator overloading in JS? I've only seen string abuse like p('A') = p('B*x'). Auh.

MJSplot_author··on Deep-copying in JavaScript
But it is also true that:

    let a = {key: 'a'};
    
    function foo( a ) {
      a['otherKey'] = 'b';
    }
    
    foo( a );
    
    console.log( a ); // {key: 'a',otherKey: 'b'}
MJSplot_author··on High quality graphics for Latex documents: The Matlab route
There is another solution for having citations and references in figures: use Inkscape as suggested in the OP. In particular the save to pdf+latex feature. Any text elements in the figure are generated using latex. This means the correct font and the ability to write any latex you want as text. I still like hand editing figures to add complex annotations so I like being able to use Inkscape's GUI.
MJSplot_author··on Txt.fyi
I just want to chime in and say that I've had a look and a quick play with mypost.io and think it looks awesome. Like many of the links on this HN thread, but with way more feature.

As you are allowing HTML entry, how are you protecting against Javascript inside user created pages?

MJSplot_author··on Island in the Sun
I think it would be interesting to read about the decision process that decided on the 1.4MW of power generation to 6MWh of storage ratio. This is around 1:4.2h. Is this ratio very specific to Ta’u island, with their usage patterns, or can this ratio be used as a guide for future installations? I'm guessing that Ta'u has not as much technology that stays on overnight, and a more realistic ratio would be 1:6h or more.

Anyway, this is a great proof of tech.

MJSplot_author··on Plottable.js – Flexible, interactive charts for the web
If you are plotting using a canvas - not building a SVG or on the dom - then even 50000 points is fine, no need to filter even on mobile devices.

A 100,000 data point file would be about 500kb transfered to the client. This is still a tiny amount of data to play around with in JS. It is possible to build an array of image tiles, and zoom around like google maps. But keeping the image tiles in memory could be worse than just replotting if the plot function is fast and optimized enough.

MJSplot_author··on Plottable.js – Flexible, interactive charts for the web
It uses SVG on D3. So I don't think so.

If you need 10000> points and interactivity you could try my own: http://generalsarsby.github.io/mjs_plot/

MJSplot_author··on 20 lines of code that beat A/B testing (2012)
The fact that on the summary page there isn't a number showing the significance is very worrying. As the whole reason for it is to make a binary choice, there could be a 2 line chuck of js that just says "B might be better (60% probablity)".
MJSplot_author··on 20 lines of code that beat A/B testing (2012)
Running their numbers:

Assuming the usual sqrt(n+1) error on a count, as n is low. Combining the uncertainties from 83/66 [0] gives 1.258 +- 0.231 (1sd). It's only just likely that it is an actual improvement, but there is about a 30% chance that the orignal was better.

[0] (((1+66^0.5)/66)^2+((1+83^0.5)/83)^2)^0.5x83.0/66

EDIT

If we also include the errors on the total counts and use the fraction 83.0/66/6362x6392, then the error is:

(((1+66^0.5)/66)^2+((1+83^0.5)/83)^2+((1+6362^0.5)/6362)^2+((1+6392^0.5)/6392)^2)^0.5x83.0/66/6362x6392

which shows an improvement of 1.264+-0.234. Stastically nout.

MJSplot_author··on Show HN: Experimental URL abuse
HN protects itself quite well from very long URLs. But reddit[0] will happily host 20kB.

https://www.reddit.com/r/programming/comments/47gjbv/experim...

MJSplot_author··on Using the Best Date Format
I like YYYY-MM-DD as it is also sortable and doesn't require any escaping as a file name on windows or Linux. It's part of ISO8601.
MJSplot_author··on Reddit shell
I remember someone built it, they abused self posts for storage. My google-fu is failing and I can't find it.
MJSplot_author··on Show HN: A resource for drawing complex primitives in JavaScript
Go for it!
MJSplot_author··on Show HN: A resource for drawing complex primitives in JavaScript
If you know what you are doing it's fine, but it might cause incompatibility issues from namespace collisions.

You can rearrange the code to accept a context as the first argument if you are worried.

MJSplot_author··on Show HN: A resource for drawing complex primitives in JavaScript
Yes, but this is as simple. It's not really my maths, it's quite standard stuff.

I'm more excited about Path2D[0] becoming adopted by more browsers.

[0] https://developer.mozilla.org/en-US/docs/Web/API/Path2D

MJSplot_author··on Show HN: QuadTree with finite sized objects
I wrote this for a small game I'm updating, which has about 30 objects colliding. However in my situation because it has so few objects the overhead is greater than the time saved. This system works really well when there are many objects.

See if you can use a regular quadTree if you can find a way to do it. It'll be faster than this.

I don't know about the _most_ efficient method. That is a field of research bigger than my weekend project.

Good luck.

MJSplot_author··on Show HN: QuadTree with finite sized objects
If anyone want to use it, I've put it out under the MIT License (available now in the updated source).

However I think most people will look at the ideas involved and implement it in there own way as I've made a few assumptions about the structure of the objects being put in the tree.

MJSplot_author··on HUSL – A human-friendly alternative to HSL
I've added HUSL support to the "Colour Picking by Simulation" program.

http://xqt2.com/p/colours_sim_HUSL.html

You can toggle between normal HSL and HUSL. I find that the greens are too suppressed for my liking.

MJSplot_author··on Rust Playground
I think I would be good. They are using the ace text editor, so something simple like:

on pageload: var t = localStorage.getItem("textbackup"); if (t){ __editor.setValue(t); console.log('restoring from backup'); } else { __editor.setValue(document.getElementById('basic_intro').innerHTML); console.log('putting in the intro'); }

and on any action: var text = __editor.getValue(); localStorage.setItem('textbackup', text);

It's the approach I've taken in my version a playground for a different program. http://xqt2.com/mjslab/mjslab.html

MJSplot_author··on Colour Picking by Simulation
Thanks!
MJSplot_author··on Colour Picking by Simulation
My original plan was to use results from this to pick colours for my other project (a graphing program). But I really just ended up with a toy that I found fun to play with. I probably could get a 3D version for HCL, that will be another weekend project.
MJSplot_author··on Tinychart – simple, ready-to-go charts
If I may propose my own solution [0]. It has no dependencies and is quite interactive for analysis (regression, measurements, and predictions). However not very customisable and lacks a good method for handling date/time data.

[0] http://www.lancaster.ac.uk/pg/sarsby/MJSplot/index