profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/kevodwyer/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.

ianopolous/JPC 335

JPC - The fast x86 PC emulator in 100% pure Java

kevodwyer/sandbox 2

sandbox

kevodwyer/chasm-java 0

Port of chasm to java

kevodwyer/gl4es 0

GL4ES is a OpenGL 2.1/1.5 to GL ES 2.0/1.1 translation library, with support for Pandora, ODroid, OrangePI, CHIP, Raspberry PI, Android, Emscripten and AmigaOS4.

kevodwyer/gwt 0

GWT Open Source Project

create barnchPeergos/web-ui

branch : ui/newsfeed-open

created branch time in 3 hours

PullRequestReviewEvent

issue closeddanoon2/Boxedwine

File access errors in web version using Emscripten 2.0.25

Hi!

I can't seem to compile a functional version of Boxedwine for Emscripten... every time I try and launch it I get a bunch of file access errors ultimately leading to Javascript exception in console.

I've tried compiling the Emscripten version of this project using Emscripten 2.0.26 and 2.0.25 (in case #27 was the cause of my issue, compiling with the lower version gave me different error messages but still failed to initialize).

Console output from the 2.0.25 build:

Unable to delete:/lib/wine/wineboot.exe.so error:Error: ENOENT: No such file or directory., '/lib/wine/wineboot.exe.so'
creating: root/base/opt/wine/lib/libwine.so.1.link
FATAL ERROR: Error: FS error
FATAL ERROR: Error: EEXIST: File exists., '/'
FATAL ERROR: Error: Error: EEXIST: File exists., '/'

I've been trying to launch Boxedwine HTML using an instance hosted on a local HTTP server using http://localhost:8000/boxedwine.html?root=debian10.zip&overlay=Wine-5.0.zip.

What am I doing wrong?

closed time in 4 days

tech234a
PullRequestReviewEvent

create barnchPeergos/web-ui

branch : ui/redesign-newsfeed

created branch time in 4 days

push eventPeergos/web-ui

kevin odwyer

commit sha 68b841b6fe2c364c85de6c7a9404438548197532

fixed timezone bug

view details

kevin odwyer

commit sha 35f61326be9effb643ee0f75591707146c79bbab

pass theme to calendar

view details

push time in 5 days

create barnchPeergos/web-ui

branch : ui/redesign-2

created branch time in 5 days

push eventPeergos/web-ui

kevin odwyer

commit sha cd8220b6affb17ddaa953ec2c700e5792a0b929e

misunderstood calendar component usage.

view details

push time in 6 days

push eventPeergos/web-ui

kevin odwyer

commit sha 23878cab698d01ddd5a35e00f6eb35d1715712a3

improve iframe communication

view details

push time in 6 days

PullRequestReviewEvent

push eventdanoon2/Boxedwine

kevin odwyer

commit sha 05255b8f95c9fe6e2a839e4f3156abeaf9777ad5

non-working emscripten build with opengl-es

view details

push time in 9 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentPeergos/Peergos

Implement 3rd party identity proofs

+package peergos.shared.user;++import jsinterop.annotations.*;+import peergos.shared.cbor.*;+import peergos.shared.crypto.*;+import peergos.shared.crypto.asymmetric.*;+import peergos.shared.crypto.symmetric.*;+import peergos.shared.io.ipfs.multibase.*;+import peergos.shared.user.fs.*;+import peergos.shared.util.*;++import java.util.*;++public class IdentityLinkProof implements Cborable {+    public static final String SIG_PREFIX = "\nsig: ";++    @JsProperty+    public final IdentityLink claim;+    public final byte[] signature;+    // This allows us to post proofs to other services that reveal nothing to someone without this key+    public final Optional<SymmetricKey> encryptionKey;+    @JsProperty+    public final Optional<String> postUrl;++    public IdentityLinkProof(IdentityLink claim,+                             byte[] signature,+                             Optional<SymmetricKey> encryptionKey,+                             Optional<String> postUrl) {+        this.claim = claim;+        this.signature = signature;+        this.encryptionKey = encryptionKey;+        this.postUrl = postUrl;+    }++    @JsMethod+    public boolean hasUrl() {+        return postUrl.isPresent();+    }++    public byte[] signedClaim() {+        byte[] body = claim.serialize();+        return ArrayOps.concat(signature, body);+    }++    public boolean isValid(PublicSigningKey peergosIdentity) {+        byte[] unsigned = peergosIdentity.unsignMessage(signedClaim());+        IdentityLink signedClaim = IdentityLink.fromCbor(CborObject.fromByteArray(unsigned));+        if (! signedClaim.equals(claim))+            throw new IllegalStateException("Signature invalid!");+        return true;+    }++    @JsMethod+    public String encodedSignature() {+        return Base58.encode(signature);+    }++    public String postText(String urlToPeergosPost) {+        return claim.textToPost() + SIG_PREFIX + encodedSignature() + "\nproof: " + urlToPeergosPost;+    }++    public String getFilename() {+        return claim.usernameB + "." + claim.serviceB.name() + ".id.cbor";+    }++    public String getUrlToPost(FileWrapper proofFile, boolean isPublic) {+        if (isPublic) {+            String pathToProof = claim.usernameA + "/.profile/ids/" + getFilename();+            String path = "/public/" + pathToProof + "?open=true";+            return "https://beta.peergos.net" + path;

extract beta.peergos.net out somehow?

ianopolous

comment created time in 15 days

PullRequestReviewEvent

Pull request review commentPeergos/Peergos

Implement 3rd party identity proofs

 public static final void poststrap(Args args) {             ).collect(Collectors.toList())     ); +    public static final Command<Boolean> LINK_IDENTITY = new Command<>("link",+            "Link your Peergos identity to an account on another service.",+            a -> {+                try {+                    Crypto crypto = Main.initCrypto();+                    String peergosUrl = a.getArg("peergos-url");+                    URL api = new URL(peergosUrl);+                    NetworkAccess network = Builder.buildJavaNetworkAccess(api, ! peergosUrl.startsWith("http://localhost")).join();+                    LinkIdentity.link(a, network, crypto);+                    return true;+                } catch (Exception e) {+                    throw new RuntimeException(e);+                }+            },+            Stream.of(+                      new Command.Arg("peergos-url", "Address of the Peergos server to migrate to", false, "http://localhost:8000"),

wrong text for arg

ianopolous

comment created time in 15 days

Pull request review commentPeergos/Peergos

Implement 3rd party identity proofs

+package peergos.server;++import peergos.server.util.*;+import peergos.shared.*;+import peergos.shared.crypto.asymmetric.*;+import peergos.shared.crypto.hash.*;+import peergos.shared.crypto.symmetric.*;+import peergos.shared.io.ipfs.multibase.*;+import peergos.shared.user.*;+import peergos.shared.user.fs.*;++import java.io.*;+import java.nio.file.*;+import java.util.*;++public class LinkIdentity {++    /** Link a peergos account to an account on an external service,+     *  where you can post textual content up to 280 characters long.+     *+     * @param a+     * @param network+     * @param crypto+     */+    public static void link(Args a, NetworkAccess network, Crypto crypto) {+        String username = a.getArg("username");+        Console console = System.console();+        String password = new String(console.readPassword("Enter password for " + username + ":"));+        UserContext context = UserContext.signIn(username, password, network, crypto).join();+        String usernameB = a.getArg("service-username");+        String serviceB = a.getArg("service");+        boolean encrypted = a.getBoolean("encrypted");+        boolean publish = ! encrypted && a.getBoolean("publish", false);

Is that logic correct?

ianopolous

comment created time in 15 days

Pull request review commentPeergos/Peergos

Implement 3rd party identity proofs

 public static final void poststrap(Args args) {             ).collect(Collectors.toList())     ); +    public static final Command<Boolean> LINK_IDENTITY = new Command<>("link",+            "Link your Peergos identity to an account on another service.",+            a -> {+                try {+                    Crypto crypto = Main.initCrypto();+                    String peergosUrl = a.getArg("peergos-url");+                    URL api = new URL(peergosUrl);+                    NetworkAccess network = Builder.buildJavaNetworkAccess(api, ! peergosUrl.startsWith("http://localhost")).join();+                    LinkIdentity.link(a, network, crypto);+                    return true;+                } catch (Exception e) {+                    throw new RuntimeException(e);+                }+            },+            Stream.of(+                      new Command.Arg("peergos-url", "Address of the Peergos server to migrate to", false, "http://localhost:8000"),+                      new Command.Arg("username", "Your Peergos username", true),+                      new Command.Arg("service", "The other service, e.g. Twitter", true),+                      new Command.Arg("service-username", "Your username on the other service", true),+                      new Command.Arg("publish", "Whether the identity proof file should be made public", false, "false"),+                      new Command.Arg("encrypted", "Whether the identity proof should be private", false, "false")+            ).collect(Collectors.toList())+    );++    public static final Command<Boolean> VERIFY_IDENTITY = new Command<>("verify",+            "Verify an identity link post from another service.",+            a -> {+                try {+                    Main.initCrypto();+                    String peergosUrl = a.getArg("peergos-url");+                    URL api = new URL(peergosUrl);+                    NetworkAccess network = Builder.buildJavaNetworkAccess(api, ! peergosUrl.startsWith("http://localhost")).join();+                    LinkIdentity.verify(a, network);+                    return true;+                } catch (Exception e) {+                    throw new RuntimeException(e);+                }+            },+            Stream.of(+                      new Command.Arg("peergos-url", "Address of the Peergos server to migrate to", false, "http://localhost:8000"),

incorrect text

ianopolous

comment created time in 15 days

PullRequestReviewEvent

create barnchdanoon2/Boxedwine

branch : emscripten/gl4es-experiment

created branch time in 16 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentPeergos/web-ui

Add an identity proof viewer

+<template>+    <div class="modal-mask" @click="close">+        <div class="modal-container" @click.stop style="height:95%;width:95%;overflow-y:auto;max-width:800px;">+            <spinner v-if="showSpinner"></spinner>+<div>+    <h2>Identity Proof</h2>+    <div v-if="proof != null">+        User {{ proof.claim.usernameA }} on {{ proof.claim.serviceA.name() }} owns account {{ proof.claim.usernameB }} on {{ proof.claim.serviceB.name() }}.+        <br/>+        Signature: {{ proof.encodedSignature() }}+        <br/>+        <label>Proof: </label>+        <br/>+        <a v-if="proof.hasUrl()" v-bind:href="proof.alternateUrl.get()" target="_blank">{{ proof.alternateUrl.get() }}</a>+    </div>+</div>+</div>+</div>+</template>++<script>+module.exports = {+    data: function() {+        return {+            proof: null+        };+    },+    props: ["file", "context"],+    created: function() {+        this.updateCurrentFileData();+    },+    methods: {+        downloadCurrentFile: function() {+            this.downloadFile(this.file);+        },+        close: function() {+            this.$emit("hide-identity-proof");+        },++        updateCurrentFileData: function() {+            if (this.file == null)+                return;+            if (this.file.isDirectory())+                return;+            var props = this.file.getFileProperties();+            var that = this;+            this.showSpinner = true;+            this.file.getInputStream(this.context.network, this.context.crypto, +                props.sizeHigh(), props.sizeLow(), +                function(read) {})+                .thenCompose(function(startReader) {

This seems overly complicated. Shouldn't it just read the entire file?

ianopolous

comment created time in 16 days

Pull request review commentPeergos/web-ui

Add an identity proof viewer

 module.exports = { 		this.showCodeEditor = true; 	    else if (app == "hex") 		this.showHexViewer = true;+	    else if (app == "identity-proof")+		this.showIdentityProof = true;

what file icon is used?

ianopolous

comment created time in 16 days

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

push eventPeergos/email-bridge

kevin odwyer

commit sha 08102d17a907d47ef67c67119beedd00a44a72b8

add config file

view details

push time in 18 days

issue commentsimd-everywhere/simde

Make sure SIMDe's x86 headers work as well on WASM as Emscripten's

Just to chime in that we use SIMDe to good effect in an emulator project[1]. It would be great to see it take advantage of same from emscripten/WASM. [1] - https://github.com/danoon2/Boxedwine

nemequ

comment created time in 23 days

PullRequestReviewEvent