profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/kornelski/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Kornel kornelski @ImageOptim United Kingdom https://kornel.ski Rust, image compression, web performance.

ImageOptim/ImageOptim 7345

GUI image optimizer for Mac

imazen/imageflow 3617

High-performance image manipulation for web servers. Includes imageflow_server, imageflow_tool, and libimageflow

cloudflare/boringtun 3609

Userspace WireGuard® Implementation in Rust

kbknapp/cargo-outdated 700

A cargo subcommand for displaying when Rust dependencies are out of date

cloudflare/lol-html 671

Low output latency streaming HTML parser/rewriter with CSS selector-based API

3Hren/msgpack-rust 633

MessagePack implementation for Rust / msgpack.org[Rust]

ImageOptim/libimagequant 375

Palette quantization library that powers pngquant and other PNG optimizers

kornelski/7z 339

Because 7-zip source code was in a 7z archive [mirror]

ImageOptim/mozjpeg-rust 47

Safe Rust wrapper for the MozJPEG library

frewsxcv/rust-crates-index 27

Rust library for retrieving and interacting with the crates.io index

PullRequestReviewEvent

Pull request review commentcloudflare/cloudflare-docs

Merge images and image resizing tile - new

 const products = [     icon: "http3",   },   {-    title: "Cloudflare Images",-    path: "images",-    icon: "images",+    title: "Cloudflare Image Optimization",

Could we use "Cloudflare Image Optimization" in user-visible text, but keep the previous short /images path?

marciocloudflare

comment created time in 3 hours

PullRequestReviewEvent

issue commentrouterify/routerify

Is it possible to use with non-TCP connections? (e.g. UDS)

I haven't figured it out, and switched from Routerify to my own router implementation.

kornelski

comment created time in a day

pull request commentfrewsxcv/rust-crates-index

Allow building without an openssl dependency

Nice trick for passing thought default features!

UebelAndre

comment created time in 2 days

push eventfrewsxcv/rust-crates-index

UebelAndre

commit sha bc72a0fec430c043d1dadb8539b192e663e7ea7e

Allow building without an openssl dependency

view details

Kornel

commit sha 0a79562358b44ffb96129e430ae4b9d11d4fb86e

Merge pull request #68 from UebelAndre/nossl

view details

push time in 2 days

PR merged frewsxcv/rust-crates-index

Allow building without an openssl dependency

With this change, users can depend on this crate and disable default features to avoid a dependency on OpenSSL

[dependencies]
crates-index = { version = "0.18.0", default-features = false }
rust-crates-index % cargo tree --no-default-features | grep openssl

vs with default features enabled

rust-crates-index % cargo tree | grep openssl
│   │   │   └── openssl-sys v0.9.67
│   │   └── openssl-sys v0.9.67 (*)

closes https://github.com/frewsxcv/rust-crates-index/issues/64

+2 -1

0 comment

1 changed file

UebelAndre

pr closed time in 2 days

issue closedfrewsxcv/rust-crates-index

Building without OpenSSL

Is it possible to build this crate without any requirement on openssl? I'm looking for something that can parse a local crates index and has no need to access the network. Is this currently possible or if not is that something that would make sense to support?

closed time in 2 days

UebelAndre

starteddivvun/bidiff

started time in 3 days

pull request commentkornelski/rust-security-framework

Expose kTLSProtocol13 for TLS 1.3

This PR just added a constant. No guarantees about Apple's implementation :)

mehcode

comment created time in 4 days

issue openedrust-lang/rust

By-reference variables in closures may have wrong aliasing information

A check for division by zero is not optimized out, despite assert_ne!(0, div); outside of the loop if the closure captures by reference rather than by move.

pub fn closure_alias(div: u32) -> Vec<u32> {
    let mut out = Vec::new();        
    assert_ne!(0, div);
    out.extend((0..100).map(|x| x / div));  // a branch to "attempt to divide by zero" panic exists here
    out
}

The same code with a move closure optimizes as expected:

pub fn closure_alias(div: u32) -> Vec<u32> {
    let mut out = Vec::new();        
    assert_ne!(0, div);
    out.extend((0..100).map(move |x| x / div));  // Now LLVM knows that div != 0
    out
}

I expected both to optimize the same, because the captured variable is not mutated.

godbolt link

When the loop is unrolled, the first iteration does not have a div/0 panic branch, only later ones have. Perhaps LLVM gets incomplete aliasing information? (&out aliasing &div?)

Meta

rustc 1.55 and rustc 1.57.0-nightly (e1e9319d9 2021-10-14).

created time in 4 days

issue commentmmstick/cargo-deb

Override revision instead of whole version at command line

If you're interested in trying Rust, I recommend giving it a shot. You can start by copy-pasting existing version option. Appending a suffix can be done with format!(). If you want to remove any old suffix, that may need some wrangling with str.rsplitn or such.

2rs2ts

comment created time in 5 days

issue commentmmstick/cargo-deb

Override revision instead of whole version at command line

Sounds useful. Can you make a PR?

2rs2ts

comment created time in 5 days

PR opened image-rs/image-gif

Crates.io release

This bugfix #106 is waiting to be released

+1 -1

0 comment

1 changed file

pr created time in 5 days

push eventkornelski/image-gif

Kornel

commit sha f71ccf3e1ae8627a229485a4af4ed2e0884e331a

Bump version

view details

push time in 5 days

push eventmozilla/mozjpeg

Ash Kyd

commit sha 5552483db96d9c5c18ae60a7e3bff2be99d78247

Fix typo in readme

view details

push time in 5 days

PR merged mozilla/mozjpeg

Fix typo in readme

:)

+1 -1

0 comment

1 changed file

AshKyd

pr closed time in 5 days

issue commentmozilla/standards-positions

Request for position: JPEG XL

WebP wasn't better enough, which is why non-Blink engines ignored it for as long as they could, until Chrome-only websites serving WebP only became a web-compat problem.

What I'm wondering about is: Is it possible to retire AVIF? Could vendors that shipped AVIF commit to un-shipping it at some later date? (e.g. when JPEG XL becomes an option, or when AV2 ships making AV1-based AVIF obsolete)

Maybe even "grease" it by not always supporting for AVIF, so that websites are forced to always support content-negotiation and have a non-AVIF fallback?

saschanaz

comment created time in 6 days

issue commentImageOptim/gifski

API gifski_add_frame_rgba(*** double presentation_timestamp) cannot handle last frame with arbitrary duration

I recommend adding a duplicate frame at the end. gifski will recognize the pixels are the same.

robin2046

comment created time in 6 days

issue closedImageOptim/ImageOptim

Sketch Plugin Broken

Looks like th eSketch plugin is broken with their release of Sketch 76

closed time in 7 days

custa1200

issue commentImageOptim/ImageOptim

Sketch Plugin Broken

Reportedly fixed in 78

custa1200

comment created time in 7 days

issue closedImageOptim/Sketch-plugin

Plugin broken in latest Sketch

I wrote up the initial bug over on the Mac App Issues list. Probably should have been here. I have at least linked to it as it has images etc already.

https://github.com/ImageOptim/ImageOptim/issues/352

closed time in 7 days

custa1200

issue openedwhitequark/rust-xdg

Outdated dirs dependency

This crate uses dirs 1.0, but the current dirs version is 3.x.

created time in 8 days

pull request commentImageOptim/ImageOptim

Add a preference to preserve creation and modification dates.

Nice. Thanks.

lgarron

comment created time in 9 days

push eventImageOptim/ImageOptim

Lucas Garron

commit sha 09ba212c4ebce59874b377499b50ecfcd766a5fd

Preserve the original creation and modification dates. This is an attempt to tackle https://github.com/ImageOptim/ImageOptim/issues/133 , although I still can't build the whole app locally yet.

view details

Lucas Garron

commit sha e53fc002b30ff6df7f6a6d28c7a157b63ce66a48

Update the `pngout` download. Also adds `-L` in case the URL udpates in the future.

view details

Lucas Garron

commit sha a50a3a421fc56cb89e06b6135c223ee952e05ba6

Add file date preservation to prefs.

view details

Lucas Garron

commit sha 8b5d1743d30c5522359c8566a1f79a7af9d62c3c

Fix spacing.

view details

Kornel

commit sha da1dae6494a190b66ae5ad50963206dda50113ca

Merge pull request #355 from lgarron/preserve-dates-pref

view details

push time in 9 days

PR merged ImageOptim/ImageOptim

Add a preference to preserve creation and modification dates.

Fixess #133.

I have worked very little with Objective C, but I managed to get it running and it definitely seems to be working as intended.

Unfortunately, I don't know anything about XIB constraints and all I could figure out was how to squish a checkbox into the existing space. So I need help fixing that up:

Screen Shot 2021-10-10 at 03 09 40

+34 -1

0 comment

5 changed files

lgarron

pr closed time in 9 days

PR closed mmstick/cargo-deb

Appended application with --no_release argument.

--no-build assumes that a package is build in release mode. added a flag that will load binaries/libs from the debug path.

You could explicit set the debug path in the "assets" option to work-around cargo-deb looking in the wrong folder. However this doesnt scale nice, if you have a lot of different compile targets. You would have to create a variant for each output target. Instead, pass a flag, --no-release, to look in the /target/debug output-dir.

Chose this solution over an fallback solution. e.g. when files dont exist in the target/release folder, try target/debug

+25 -11

3 comments

3 changed files

svenrademakers

pr closed time in 11 days

pull request commentmmstick/cargo-deb

Appended application with --no_release argument.

Cargo is a bit messy with its naming. target/debug is for development only (maps to [profiles.dev]). It's distinguished not by presence of debug information, but by unsuitability for releasing binaries.

"Debug binary" in Debian sense maps to Cargo's --release build with [profile.release] debug = true setting.

I haven't tested, but Cargo documents that you can also use CARGO_PROFILE_release_DEBUG = 1 env var instead of modifying Cargo.toml.

So I'm going to close this pull request. This limitation in cargo-deb exists on purpose, specifically to stop users from misusing target/debug for adding debug information to executables.

svenrademakers

comment created time in 11 days

issue commentImageOptim/Sketch-plugin

Plugin broken in latest Sketch

So we have an impasse here. The fact that I haven't changed in the plug-in since 2017 to me means that I couldn't have broken anything recently.

If the plug-in worked in v75, and doesn't in v76, that means Sketch has broken something. Maybe they have dropped support for some old API, but the problem is: Sketch has not documented any breaking changes in v76. Their docs end at v72. So by Sketch's documentation, every plug-in that works with v75 is supposed to work with v76.

I'm happy to change what they want, but they need to document what needs to be changed.

custa1200

comment created time in 11 days