News for hackers. Stuff that matters.

jaspervdj

Re:Keeping secrets out of logs (2024) on Monday September 08, 2025 @07:01AM (#45166831)
Limiting access helps, but if you are storing the logs on a 3rd party (e.g. DataDog, CloudWatch), you will still need to assume it can leak through that 3rd party and start rotating.
Re:Functors, Applicatives, and Monads on Sunday March 30, 2025 @04:56PM (#43527556)
This talk seems like exactly what you are looking for for:

Gabriel Gonzalez - “A bare-bones Twitter clone implemented with Haskell + Nix” @ ZuriHac 2020 https://www.youtube.com/live/Q3qjTVcU9cg

Re:The Evolution of a Haskell Programmer (2010) on Wednesday March 06, 2024 @11:11AM (#39617401)
You can use trace for that which is part of the base library:

https://hackage.haskell.org/package/base-4.19.1.0/docs/Debug...

Re:Leaving Haskell Behind on Thursday August 24, 2023 @06:02PM (#37255136)
If you wanted to log from fibonacci, you would pass a some logger instance down to this function. In Haskell, this could be a record or a typeclass instance. In other languages, it could be an object or a struct. There is no fundamental difference. All the layers above would still have to pass this through; explicitly or implicitly.
Re:Parser Combinators in Haskell on Wednesday December 22, 2021 @10:47AM (#29650826)
The builder interface has important performance benefits over working with lists: similar to e.g. concatenating many small Strings vs using StringBuilder in Java.

The builder interface indeed does not need to be monadic, you can simply append things using <> and get the same benefits.

The monadic interface is purely a syntactic enhancement on top of that, to reduce the number of operators you need.

Thanks again for the feedback, we've added a little "help" page now.
Yes, we considered it, but I'm not sure if and when that'll happen. However, we also added PWA features [1], so you should be able to add it to your homescreen and it should work fine offline that way. But we're not experts on this stuff, so definitely let me know if you run into issues with this.

[1]: https://developer.mozilla.org/en-US/docs/Web/Progressive_web...

Clicking and keyboard work on the computer, and tapping and swiping works on touch devices. I was hoping this would be clear enough since I don't want to take up people's time with tutorials. Maybe we can add a separate "help" button or add this to the about page?
I'm not sure if this is the same issue but we've heard from tons of people that the "undo" button should be at the bottom in order to make it easier to reach using a phone one-handed. We've now made that change. If you're referring to something else, please elaborate :-)
I second this as a great resource! Your game HyperRogue was also a big inspiration for this game.
Of course!
Re:Ask HN: What's your favorite elegant/beautiful algorithm? on Wednesday October 17, 2018 @08:14AM (#18238192)
Not really, if you wanted to do a version using only immutable arrays:

  import Data.Array
  
  fw :: Int -> Array (Int, Int) Int -> Array (Int, Int) Int
  fw 0 graph0 = graph0
  fw k graph0 =
    let fw' = fw (k - 1) graph0 in array (bounds graph0)
    [ ((i, j), min (fw' ! (i, j)) ((fw' ! (i, k)) + (fw' ! (k, j))))
    | (i, j) <- range (bounds graph0)
    ]
The only difference with a mutable implementation is that you use a new array for every k, whereas in a mutable version you would reuse these.
Slightly off-topic, a big part of seeing a painting in real life is seeing the structure and layers of brush strokes. It's a long shot but does anyone know if any work has been done to create depth maps of paintings and possibly combine them with scans?
Re:Tinc VPN: Secure Private Network Between Hosts on Wednesday February 07, 2018 @03:46PM (#16327849)
sshuttle does not tunnel UDP out-of-the-box. It only works on Linux and only if you are using the tproxy mode, which is not the default and a little more involved to set up. See: http://sshuttle.readthedocs.io/en/stable/requirements.html#l...
Re:BountySource suspended from GitHub on Tuesday November 21, 2017 @08:36AM (#15747736)
Explanation in this comment: https://github.com/bountysource/core/issues/1147#issuecommen...

  On July 27, we reached out to Bountysource in response to a complaint we
  received from a user. During our investigation and discussions with members of
  your team, we found that your organization does not have a mechanism for
  responding to removal requests from users, which is required by our Terms of
  Service. Specifically, Bountysource does not "respond promptly to complaints,
  removal requests, and 'do not contact' requests from GitHub or GitHub Users."
  Over two months later, you have not made any changes to your platform in
  response to our requests.
  
  Therefore, we have suspended your application until you create a process for
  actively responding to all personal information removal requests, including
  those related to projects and issues. In order for us to remove the
  suspension, we would ask to see two things:
  
  1. Confirmation from you that you have a process in place for responding to
  takedown requests about all areas of your website.
 
  2. Inclusion of a public notice to your users stating how to request the
  removal of information. That notice can be included in your documentation or
  other legal notices.
  
  Once you have that process and public notice in place, we'll be happy to
  review your site and consider lifting the suspension.
Sounds like it's (hopefully) not permanent.
Re:Show HN: Patat – Terminal-based presentations using Pandoc on Thursday October 06, 2016 @07:15PM (#12656922)
I haven't done any sort of profiling, but yeah that's a bit much. Unless Pandoc really needs that much memory to do the conversion, I can probably cut it down by quite a lot. I will look into it.
Re:Show HN: Patat – Terminal-based presentations using Pandoc on Thursday October 06, 2016 @06:31AM (#12651361)
I don't intend to make money with it, but yeah I found it to be pretty useful if I want to give quick-and-dirty presentations to other engineers or technical folks. It basically allows me to switch between the presentation and a demo (running in the console) more seamlessly.

For my particular use case: I work remotely and we use video conferencing all the time. Our video conferencing software allows you share a single screen which is neat, but annoying if you need to switch between a browser (or PDF viewer) and the terminal.

I wouldn't use it for "proper" presentations, or stuff that needs a lot of math (LaTeX beamer comes to mind for that).

Re:Static Site Generators on Thursday May 15, 2014 @07:20AM (#7748791)
Not sure, I assume so. I think it was part of a bunch of SSGs imported from another listing.

    https://github.com/jaspervdj/static-site-generator-comparison/commit/96f23ed30db97067feb42b2f9100ec48c2596eb6
Re:Static Site Generators on Thursday May 15, 2014 @06:20AM (#7748658)
I like the additional info on that site! Would you want to consolidate efforts and use:

    https://github.com/jaspervdj/static-site-generator-comparison/
as an underlying list, too? Maintaining a listing is pretty tedious with all the SSGs out there. I can set up web hooks and whatever to push to your servers if the listing changes.
Re:Static Site Generators on Thursday May 15, 2014 @05:49AM (#7748577)
You're right, thanks!

    https://github.com/jaspervdj/static-site-generator-comparison/commit/610b1b35742a281a84bfb18cf026842d1b92bf67
Re:Ask HN: What is REST exactly? on Monday February 10, 2014 @06:45PM (#7214625)
http://isitrestful.com/

I'd be interested to know what this site precisely checks for. Anyone got any ideas?

Re:Show HN: Lorem Markdownum, my weekend project on Monday November 11, 2013 @05:21PM (#6714498)

  GET jaspervdj.be/lorem-markdownum/markdown.txt?allow-headers=true&allow-code=true&allow-quotes=true&allow-lists=true&inline-links=true&hash-headers=true&asterisk-em=true&asterisk-strong=true
Let me know if you run into trouble. :-)

Older »