dawidloubser | 3 years ago | on: What are you doing, WordPress.com?
dawidloubser's comments
dawidloubser | 4 years ago | on: Vuescan – Software support for 6500 abandoned scanners
About 6 years ago, however, I switched exclusively to the open-source XSane [1] and it operates my old scanner(s) beautifully, with all features including the transparency unit.
Try it out if you don't have a highly unusual scanner with driver issues. My workflow involves:
1. XSane for scanning (to 16bit TIFF)
2. exiftool [2] to tag my images with full metadata from my notes: camera, lens, aperture, film, datetime etc just like your digital camera would
3. Darktable [3] to manage my library, cropping, sharpening, adjustments, and tagging
It's a little bit of work - but nowhere near as much as taking and processing 4x5in photographs, and the "digital end results" are very satisfactory.
If I may, an example image: https://www.flickr.com/photos/dawidloubser/35944112383
[1] http://www.sane-project.org/ [2] https://exiftool.org/ [3] https://www.darktable.org/
dawidloubser | 7 years ago | on: Ask HN: Who is hiring? (December 2018)
The official high school esports league platform -
We work with game publishers and high school governing bodies to build and operate sanctioned leagues across the country. The challenges we solve on a daily basis are exciting and relevant. We’re looking for top talent to help us create the world’s first full-stack sports platform.
React, Redux, Ramda, Node.js, Web sockets, Redis.
https://www.playvs.com/careers or send your resume and examples of your work to: [email protected]
dawidloubser | 7 years ago | on: OpenAI Research
dawidloubser | 8 years ago | on: U.S. judge says LinkedIn cannot block startup from public profile data
If a web server, on other other hand, willingly serves content to both a browser being operated by a human, as well as screen-scraping software, then it shouldn't try to prescribe how the screen-scraper uses that information.
It would be the equivalent to, every time, asking somebody that works in the museum if you can take a picture, and them saying "yes", and then wanting to complain (or sue) afterwards.
dawidloubser | 8 years ago | on: U.S. judge says LinkedIn cannot block startup from public profile data
What is actually happening, is that somebody is walking into the store, asks a question about the stock or the price of the products on sale, which the store employee willingly answers.
Then, all of the sudden, the store wishes to control what you do with the answer that was willingly given to you.
This is clearly absurd - and so too is wanting to control what people do with publically-available HTTP data. If it's public, it's public.
I personally do feel that LinkedIn is within their full rights to attempt to detect and restrict content being served to screen-scraping agents, but they must then accept that screen-scraping agents must be allowed to use any means necessary to impersonate a "normal" user browsing the (public) information that they publish.
This can't be a one-sided freedom.
dawidloubser | 8 years ago | on: Javascript Arrays and Functional Programming
I really like another poster's recommendation that it be called "combinator-oriented programming". Because, while ES, Java, and even Rust, supports rich combinator-oriented programming, I wouldn't dare call any of them functional programming languages.
Though, one has to admit, with ES6 now even supporting elegant currying, coupled with a good functional programming library like Ramda, and immutable data structures (Immutable JS), ECMAScript comes pretty close if you really want it to.
The difference is, any code anywhere can "drop out of" the functional world, whereas a functional language like Haskell enforces functional purity throughout.
Good times to be a software engineer, nevertheless!
dawidloubser | 8 years ago | on: A hacker stole $31M of Ether – how it happened, and what it means for Ethereum
Writing provable, secure software is difficult, and highly unlikely if your environment doesn't force the correct mindset. Solidity (poorly named) was made with the primary goal of being easy for JavaScript / Node hackers to use.
The cost of this is now illustrated through the repeat 'hacks' of bad 'smart contracts'.
dawidloubser | 8 years ago | on: Making Photos Smaller Without Quality Loss
But it's extremely computationally-intensive, taking over a minute to compress a single web-resolution image on my i7 laptop.
I can't see it being practical in a high-volume server scenario.
dawidloubser | 9 years ago | on: The Hundred-Year Language (2003)
Haskell. He's talking about something like Haskell - but with whatever additional powers of abstraction and simplification mankind manages to dream up.
I say this, because I have yet to find such an elegant way of expressing computation. But, on the other hand, I have yet to find a "serious" language with as many performance land-mines, which possibly might just not matter given orders of magnitude more memory and computing power.
Given a couple of orders of magnitude, who cares that String = [Char]. It's damned elegant.
For everything else, I'll bet we will use the "C" of the 21st century - Rust :-)
JavaScript will probably continue tracking functional languages like Haskell for many years, albeit remaining without the type system that make them truly useful.
Thank you for re-posting this long-forgotten essay, and taking me down memory lane...
dawidloubser | 9 years ago | on: Why WebAssembly Is Faster Than Asm.js
If you embrace only the good / modern parts of ES6/ES7, you can really write elegant, modern, functional-style code. Not sure there is much left to complain about, other than the lack of built-in type system, which many others (but certainly not me) argue is a good thing.
dawidloubser | 9 years ago | on: Why WebAssembly Is Faster Than Asm.js
Unfortunately, writing Rust is an order of magnitude more difficult thatn writing ECMAScript, so hopefully it doesn't create a negative response from hordes of ES developers that want to check out this WASM thing.
But it's so much more suited than C/C++ (the other obvious candidates). In a nutshell, WASM is not really intended for higher-level languages with garbage collectors, etc. For that kind of work, I'd stick with ECMAScript.
dawidloubser | 9 years ago | on: Why WebAssembly Is Faster Than Asm.js
I've always been deeply into it, and using it for years at work, so no good off-hand reference. I'd be picking one as random as any web search that you'd perform, sorry!
I should never have learnt Haskell. It messes with your mind [1] whenever you write in any other programming language, yet you can hardly ever use it in practice. Well, certainly here in South Africa.
[1] Obligatory link: http://www.xent.com/pipermail/fork/Week-of-Mon-20070219/0441...
dawidloubser | 9 years ago | on: Why WebAssembly Is Faster Than Asm.js
It's meant to provide plug-able, high-performance functions for heavy computational tasks - crypto, game rendering, heavy in-browser data analysis, etc etc.
I double JVM in WASM makes sense at all - though somebody will probably do it in anyway. WASM is not meant to be good at Garbage Collection, etc. It's not a design goal at all.
dawidloubser | 9 years ago | on: Why WebAssembly Is Faster Than Asm.js
The silver lining, is that many things usually get better the second time around. Let's see what WASM hold - it's pretty limited in its current form.
dawidloubser | 9 years ago | on: Why WebAssembly Is Faster Than Asm.js
I wanted to point out, however, that Java 8/9 has excellent support for basic functional programming features, with an equally-nice syntax for lambdas, but with a good type system (via Functional interfaces) to boot.
The thing that I get hung up time and again, with ES6/7, is lack of a type system. We write some complex ES6/7 + Immutable JS apps (e.g. in the financial services domain), and haven't managed to extract full value from Flow or TypeScript just yet, due to library constraints etc.
dawidloubser | 9 years ago | on: Why WebAssembly Is Faster Than Asm.js
dawidloubser | 9 years ago | on: Facebook’s code quality problem (2015)
The problem with design, in software, is not that most people forget to do it. It's that they never learn to do it. It always comes back to bite you.
I don't want to start a discussion on design, and how most people mess it up because of lack of skill or experience therein. But hacker culture seems to be allergic to design, and hacker culture seems to be what everybody strives for these days.
dawidloubser | 9 years ago | on: Show HN: React-Most – Declarative Monadic Reactive State Container for React
Of course, https://cycle.js.org/ is one of the original attempts at a pure and simple implementation, and if you haven't studied it yet, it's wonderfully enriching to understand and play with - even if you don't end up using it in a project. (you may use Cycle.js with React, but it is agnostic of UI library)
As a software engineer in the third world, doing work mostly in the corporate space, I observe a near un-crossable chasm between the mindset required to understand and use Functional / Functional-Reactive platforms, and the mindset of your typical developer - doing .NET, Java EE or Spring. I fear it may be some time before we see adoption of libraries like these in the mainstream "day job" software world.
I don't mean to say that FRP is always "better" - but rather that it is beyond the comfort zone of typical corporate devs, despite the simplification its adoption may entail. Don't know if engineers outside of South Africa encounter the same problem?
dawidloubser | 9 years ago | on: MicroG Project: A re-implementation of Google's Android apps and libraries
I'm trying to run a totally open-source android installation, and have opted-out of Google entirely. It's worked out fairly well so far, but the app choices are fairly limited, of course.