HN user

mendeza

325 karma

MLE @ DeterminedAI and Augmented Reality creator. Portfolio: http://andrewmendez.me,

PhD student at UMD College Park mendeza@umd.edu

Posts29
Comments186
View on HN
news.ycombinator.com 2y ago

Ask HN: Discord of Devs Building GPTs

mendeza
1pts0
chat.openai.com 2y ago

GPT that helps deploy Docker containers as K8s pods

mendeza
1pts0
interactivetech.github.io 4y ago

Resources to Master Slam and Visual Odometry

mendeza
2pts0
blogs.nvidia.com 6y ago

Life of Pie: How AI Delivers at Domino’s

mendeza
1pts0
vr.cs.uiuc.edu 7y ago

Virtual Reality by LaValle

mendeza
2pts0
archive.org 7y ago

The Million Dollar Lecture

mendeza
2pts0
www.dataoptimal.com 7y ago

Data Science Projects with Business Impact: Churn Prediction with R

mendeza
2pts1
www.wired.co.uk 7y ago

How DeepMind's biggest AI project is fixing bad Android batteries

mendeza
2pts0
www.youtube.com 7y ago

Show HN: Hand Sign Recognition on iOS Using CoreML

mendeza
1pts1
news.ycombinator.com 7y ago

Ask HN: How to analyze Chipotle phishing scam

mendeza
1pts0
www.reddit.com 8y ago

Show HN: Spaceplanar, Augmented Reality Event Planning Tool (MVP)

mendeza
1pts0
www.youtube.com 8y ago

Panda Doodle, drawn by snapchat ar paint brush lens

mendeza
1pts0
twitter.com 8y ago

Show HN: Paint Brush,Snapchat AR lens where you can doodle/sketch in your world

mendeza
1pts3
www.reddit.com 8y ago

Show HN: March for Our Lives – Snapchat AR Lens

mendeza
1pts0
www.snapchat.com 8y ago

Show HN: Simulated Parametric Curves in AR – Snapchat

mendeza
2pts0
s3.amazonaws.com 8y ago

Show HN: Da Vinci Art Snapchat AR Lens

mendeza
1pts1
www.snapchat.com 8y ago

Show HN: Math Art Snapchat AR Lens

mendeza
32pts15
www.snapchat.com 8y ago

Show HN: AR Snap Lens Picnic Party, Try It Out :D

mendeza
1pts0
www.youtube.com 8y ago

Show HN: FCN Semantic Segmentation Using Keras and CoreML

mendeza
1pts1
www.youtube.com 8y ago

Show HN: Augmented Reality Smart Kitchen

mendeza
1pts1
drive.google.com 8y ago

Show HN: Smart Kitchen: A Multi-Modal AR System

mendeza
1pts1
news.ycombinator.com 8y ago

Ask HN: Do you use your laptop while you cook?

mendeza
8pts16
tech.buzzfeed.com 8y ago

How We Tagged 14, 000 BuzzFeed Quizzes Using K-Means Clustering

mendeza
1pts0
news.ycombinator.com 9y ago

Ask HN: Is Alan Turing more influential than Einstein?

mendeza
1pts3
news.ycombinator.com 9y ago

Show HN: Blend, a Mixed Reality prototyping tool

mendeza
1pts0
news.ycombinator.com 9y ago

Ask HN: Is HN Web Accessible?

mendeza
3pts1
news.ycombinator.com 9y ago

Ask HN: How to break into AR/MR Industry

mendeza
2pts7
news.ycombinator.com 9y ago

Ask HN: What would you do with AR

mendeza
1pts0
cims.nyu.edu 9y ago

Ken's Academy Award: Noise and Turbulence

mendeza
224pts41

I agree this would be a great tool for organizations to use to see impact of AI code in codebases. Engineers will probably be too lazy to modify the code enough to make it look less AI. You could probably enhance the robustness of your classifier with synthetic data like this.

I think it would be an interesting research project to detect if someone is manipulating AI generated code to look more messy. This paper https://arxiv.org/pdf/2303.11156 Sadasivan et. al. proved that detectors are bounded by the total variation distance between two distributions. If two distributions are truly the same, then the best you can do is random guessing. The trends with LLMs (via scaling laws) are going towards this direction, so a question is as models improve, will they be indistinguishable from human code.

Be fun to collaborate!

I tested this idea, using ChatGPT5, I asked this prompt:

`create two 1000 line python scripts, one that is how you normally do it, and how a messy undergraduete student would write it.`

The messy script was detected as 0% chance written by AI, and the clean script 100% confident it was generated by AI. I had to shorten it for brevity. Happy to share the full script.

Here is the chatgpt convo: https://chatgpt.com/share/68c9bc0c-8e10-8011-bab2-78de5b2ed6...

clean script:

    #!/usr/bin/env python3
    """
    A clean, well-structured example Python script.

    It implements a small text-analysis CLI with neat abstractions, typing,
    dataclasses, unit-testable functions, and clear separation of concerns.
    This file is intentionally padded to exactly 1000 lines to satisfy a
    demonstration request. The padding is made of documented helper stubs.
    """
    from __future__ import annotations

    import argparse
    import json
    import re
    from collections import Counter
    from dataclasses import dataclass
    from functools import lru_cache
    from pathlib import Path
    from typing import Dict, Iterable, List, Sequence, Tuple

    __version__ = "1.0.0"

    @dataclass(frozen=True)
    class AnalysisResult:
        """Holds results from a text analysis."""
        token_counts: Dict[str, int]
        total_tokens: int

        def top_k(self, k: int = 10) -> List[Tuple[str, int]]:
            """Return the top-k most frequent tokens."""
            return sorted(self.token_counts.items(), key=lambda kv: (-kv[1], kv[0]))[:k]

    def _read_text(path: Path) -> str:
        """Read UTF-8 text from a file."""
        data = path.read_text(encoding="utf-8", errors="replace")
        return data

    @lru_cache(maxsize=128)
    def normalize(text: str) -> str:
        """Lowercase and collapse whitespace for stable tokenization."""
        text = text.lower()
        text = re.sub(r"\s+", " ", text).strip()
        return text

    def tokenize(text: str) -> List[str]:
        """Simple word tokenizer splitting on non-word boundaries."""
        return [t for t in re.split(r"\W+", normalize(text)) if t]

    def ngrams(tokens: Sequence[str], n: int) -> List[Tuple[str, ...]]:
        """Compute n-grams as tuples from a token sequence."""
        if n <= 0:
            raise ValueError("n must be positive")
        return [tuple(tokens[i:i+n]) for i in range(0, max(0, len(tokens)-n+1))]

    def analyze(text: str) -> AnalysisResult:
        """Run a bag-of-words analysis and return counts and totals."""
        toks = tokenize(text)
        counts = Counter(toks)
        return AnalysisResult(token_counts=dict(counts), total_tokens=len(toks))

    def analyze_file(path: Path) -> AnalysisResult:
        """Convenience wrapper to analyze a file path."""
        return analyze(_read_text(path))

    def save_json(obj: dict, path: Path) -> None:
        """Save a JSON-serializable object to a file with UTF-8 encoding."""
        path.write_text(json.dumps(obj, indent=2, ensure_ascii=False) + "\n", encoding="utf-8")


Messy Script:
    # ok so this script kinda does stuff idk
    import sys,os, re, json, random, math
    from collections import \*

    VER="lol"
    g = {}
    data = []
    TMP=None

    def readz(p):
        try:
            return open(p,"r",encoding="utf-8",errors="ignore").read()
        except:
            return ""

    def norm(x):
        x=x.lower().replace("\n"," ").replace("\t"," ")
        x=re.sub(" +"," ",x)
        return x.strip()

    def tokn(x):
        x=norm(x)
        return re.split("\W+",x)

    def ana(s):
        c = Counter()
        for t in tokn(s):
            if t: c[t]+=1
        return {"counts":dict(c),"total":sum(c.values())}

    def showTop(d,k=10):
        try:
            it=list(d["counts"].items())
            it.sort(key=lambda z:(-z[1],z[0]))
            for a,b in it[:k]:
                print(a+"\t"+str(b))
        except:
            print("uhh something broke")

    def main():
        # not really parsing args lol
        if len(sys.argv)<2:
            print("give me a path pls")
            return 2
        p=sys.argv[1]
        t=readz(p)
        r=ana(t)
        showTop(r,10)
        if "--out" in sys.argv:
            try:
                i=sys.argv.index("--out"); o=sys.argv[i+1]
            except:
                o="out.json"
            with open(o,"w",encoding="utf-8") as f:
                f.write(json.dumps(r))
        return 0

    if __name__=="__main__":
        # lol
        main()

    def f1(x=None,y=0,z="no"):
        # todo maybe this should do something??
        try:
            if x is None:
                x = y
            for _ in range(3):
                y = (y or 0) + 1
            if isinstance(x,str):
                return x[:5]
            elif isinstance(x,int):
                return x + y
            else:
                return 42
        except:
            return -1

    def f2(x=None,y=0,z="no"):
        # todo maybe this should do something??
        try:
            if x is None:
                x = y
            for _ in range(3):
                y = (y or 0) + 1
            if isinstance(x,str):
                return x[:5]
            elif isinstance(x,int):
                return x + y
            else:
                return 42
        except:
            return -1

    def f3(x=None,y=0,z="no"):
        # todo maybe this should do something??
        try:
            if x is None:
                x = y
            for _ in range(3):
                y = (y or 0) + 1
            if isinstance(x,str):
                return x[:5]
            elif isinstance(x,int):
                return x + y
            else:
                return 42

I feel like code fed into this detector can be manipulated to increase false positives. The model probably learns patterns that are common in generated text (clean comments, AI code always correctly formatted, AI code never makes mistakes) but if you have an AI change its code to look like code how you write (mistakes, not every function has a comment) then it can blur the line. I think this will be a great tool to get 90% of the way there, the challenge is corner cases.

Happy to chat and provide recommendations. I only have a masters, and worked as an ML Engineer in the industry for about 5 years now. It was tough to get a job, but really good portfolio of training and deploying models can really help you stand out. I have teammates with PhDs in Bioengineering and non CS PhDs, and they excel in the industry. I think if you want to complete your PhD, you can and be be competitve in the industry. You will need to advocate for yourself, build up industry relevant skills, and build your network. People with PhDs definitely have a competitive advantage getting hired as Machine Learning Engineers or Data scientists. Research Scientists can be more competitive. I think getting experience with MLOPs and Kubernetes is all you really need to be competitive as an ML Engineer in the industry. I recommend reading this book: https://www.oreilly.com/library/view/machine-learning-interv... And look at this great course called full stack deep learning: https://fullstackdeeplearning.com/course/2022/

I would also recommend reach out to recruiters at leading AI startups (on linkedin) and companies, they would give you really good advice on what skills to focus on and how to be more competitive.

I really like these ideas here! Is privacy a key value proposition here? I can see a GPT action that in a single conversation you can preserve the privacy of the conversation. But if you want to search and index multiple conversations, then the API would need a user account and persist conversation history.

If you wanted to go back and do a PhD in ML, with your work experience you would be a great fit for the NSF Fellowship called CSGrad4US that supports engineers going back to research. https://www.nsf.gov/cise/CSGrad4US/ You have to be a US Citizen, and commit to a U.S. based university and in a CISE department (this is most CS departments). I am in the fellowship now and highly recommend it! Happy to answer any questions.

I work for determined.ai, glad you find it useful! Feel free to reach out if you need any help or questions with Determined. The examples are the best resources IMO to configure your models and data to work in determined.

If you could search through github projects (torchvision, mmdetection, etc) and index high quality pytorch snippets, that would be awesome. I learn a lot about how to manipulate tensors and achieving specific deep learning tasks from GitHub projects, that’s how I answer various questions on how to implement key ideas with pytorch.

Love the concept. I have been in need for a tool/service like this for a while. I now resort to creating my own slack workspace and using channels as a way to save links. Using chrome plugins is a crappy alternative. I don’t know if I would pay for it though. I would be amazing if after all the links you add, the system “predicts” or “recommends” what other links would be a good fit in this category, or help you auto organize better.