HN user

Jakobeha

414 karma
Posts0
Comments101
View on HN
No posts found.

I am a PhD student looking for a summer internship, my research area is programming languages and compilers

    Location: West Lafayette IN USA
    Remote: yes
    Willing to relocate: no
    Technologies: Java/Kotlin, Rust, C/C++, JavaScript/TypeScript (Node.js and web), Swift (iOS), Coq (formal methods)
    Résumé/CV: https://jakobeha.github.io/Resume.pdf (https://jakobeha.github.io is my personal site with more info)
    Email: jakobeha at gmail dot com

I am a PhD student looking for a summer internship, my research area is programming languages and compilers

    Location: West Lafayette IN USA
    Remote: yes
    Willing to relocate: no
    Technologies: Java/Kotlin, Rust, C/C++, JavaScript/TypeScript (Node.js and web), Swift (iOS), Coq (formal methods)
    Résumé/CV: https://jakobeha.github.io/Resume.pdf (https://jakobeha.github.io is my personal site with more info)
    Email: jakobeha at gmail.com

Location: Indiana, USA

Remote: Yes

Willing to relocate: No

Technologies: Rust/C++/C (Unix/Linux), python (numpy/pytorch/huggingface), Kotlin/Java, Swift (iOS), Lua, HTML/CSS/JS/TS (node.js and web), PostgreSQL, Git, Bash, Excel

Résumé/CV: https://jakobeha.github.io/Resume.pdf

Website: https://jakobeha.github.io/

Email: jakobeha@gmail.com

Bio: 3rd year PhD student looking for a summer internship. Most of my research experience is in PL, I also have some experience in SE and ML.

It's another bare-bones OS.

I've taken the class at Purdue. The way the class works it was divided into 4 "projects" where you had to add features to Xinu. In my semester those were: a more advanced scheduler, locks, process permissions, and a file-system.

A UI can be represented as a set of concurrent/asynchronous prompts. UI takes the model and possible next actions, presents this to the user, gets a response, and returns this as an action which is then applied to update the model.

Alerts and login forms are clearly prompts. But so is an complex editor: it constantly prompts the user for the next action, e.g. enter text or change existing text’s formatting. Or a social-media site: possible actions are “login”, “view post”, “create post”, and so on.

Even an FPS can be warped into a prompt-based UI, where the model is the game state (or what the player sees of it), and the prompts are “move, turn, shoot”. But you probably shouldn’t do that. Asp bad examples: a weather or stock viewer where your options are null, and the model is the weather or stock which you can’t change.

Nonetheless prompt-based UI is really useful for many otherwise-ordinary cases. It lets you write a UI like a CLI and automate your UI very easily; it tells you which state is truly part of the “model” and which is just part of the UI; it’s composable spatially (more elements) and temporarily (series of steps). I don’t know if it’s been explored much.

In prompt-based UI, the UI is sort of a pure function of the model. It’s an asynchronous function which takes the model and returns a stream or future of the next action(s).

I think this is more of a thing for college students who are getting their first job.

IME I've heard a lot more people interested in side projects than the other commenters. But I'm also a lot younger, and heard this usually in different universities.

Once you actually get a job, you put that on your resume and it's better than a side project.

How to Work Hard 5 years ago

Honestly I consider my running and other forms of exercise as "work", even when they're fun.

Exercise maintains physical health, which IMO is more important than any amount of career success.

Duolingo S-1 IPO 5 years ago

I should've mentioned that I actually took Spanish classes a few years before Duolingo. Those classes taught me the grammar and why the rules exist, but I didn't memorize many words (or I forgot) and I had serious trouble understanding actual Spanish speakers.

Duolingo "teaches" alternate tenses weirdly and IMO too late. But it does well for memorizing words, and it has people speaking with actual Spanish accents and forces you to understand them. So it's particularly helpful for me.

Not quite, but I experience very bad logic and logical inconsistencies in dreams. For example:

- Can't even do basic math, or I solve it wrong (e.g. 2 + 3 = 7) - Impossible (non-euclidian) spatial arrangement - Leave out big gaps of details, which I have to fill in if I remember the dream. Not that I'm forgetting stuff, I just never thought of it in the first place - Misremember stuff from the past

Duolingo S-1 IPO 5 years ago

I use Duolingo to learn Spanish. It's very simple but the streak system has kept me making slow progress. I've only gotten to "Checkpoint 3" (of 7) but it seems to be working well - I don't speak fluent but I can usually read signs etc. in Spanish and actually understand them.

The main issue I can see them facing is: it's very simple, so easy to clone. And Duo has its flaws, so I wouldn't be surprised if of those clones are a lot better. I like Duo, I use it now, but I could switch to another service in 1 second.

This looks a lot like existing co-op programs, where undergraduate students are hired as (typically paid) interns and take a break from classes while they work. AFAIK these programs usually work really well, to the point where my undergraduate college became very competitive and popular solely because of its co-op.

Co-op work is not classwork, so it removes the incentive for students to submit lazy contributions for bad grades. Yet co-op students actually benefit their companies because said companies continue to hire them.

Of course, the main difference with open-source is that nobody is paying the student. But still - either investors in FOSS can "hire" students to work on various open-source projects, or the students can choose to work unpaid (perhaps for less tuition, or part-time work on the side, to make ends meet). But I really think adopting a co-op model would be easier and more effective than trying it in the classroom.

This seems to be what Apple Arcade is doing. You pay a subscription to Apple and get access to curated games with no ads or microtransactions. Apple pays the developers, although I don't know how.

AFAIK it's going pretty well. I don't actually own Apple Arcade, but the games all look really nice, and no ads or microtransactions. Maybe someone who knows more can comment.

I really wish internet games were the future. Both from the producer and consumer side - as someone who tried to make games before, and currently owns a low-end mac (great for productivity but bad for gaming) - I really believe the ideal is web-games that are easy to start and work everywhere.

The issue is that at least in my experience web game engines suck. JavaScript is slow and awful for large-scale software, even today. Frameworks which compile into JavaScript and WASM (e.g. libGDX) compile incorrectly, leading to obscure awful bugs, and they're still slow because JS. Your best bet is a general-purpose game engine like Unity or Godot which can export to web, but still, the web export is often broken, missing features, and just slow. Even tiny games I've played on itch.io either don't load or play super slow, and sometimes that might be the dev's fault, but often I think it's the state of web-gamedev in general.

I'm probably missing something - some of these APIs I get, but some just seem useless.

Why do I need an API to convert images? Find emojis? Convert "John" to "Hello John"? (ok the helloworld service is just a demo.) I can do that on the client using Javascript.

Moreover, why this instead of something like AWS Lambda, where you code your own service? Instead of prebuilt APIs, why not make it more general?

Don't get me wrong, this seems like a great service and I can see some niche use cases. Also basic APIs for things like database operations and authentication which can actually get pretty complex, and like getting the weather which you can't do yourself. But I can't really see the benefit to some of these APIs, and a custom lambda-style service-creator seems better than a lot of niche APIs and "submit a form if you want your API here".

I heard (from a research professor!) that the best way to learn real-world large-scale design patterns is to work in industry. Because at a big company, you are working on a real-world large-scale system. So I would recommend, if you have the opportunity, try getting an internship before grad school.

Of course not all companies have the best practices, but in my experience most do. If you decide to find an internship, ask about design patterns / code reviews in your interviews.

Alternatively, you could read up on good design patterns and practice. I've heard people recommend Uncle Bob's "Clean Code" and "How to Design Programs". Also see https://news.ycombinator.com/item?id=25299547.

This reminds me of Northeastern's CS undergrad curriculum. First semester we learned Racket (a basic functional Lisp language). Then second semester we learned Java, but in a strange functional way (kind of like writing Java "as if" it was Racket, often using one-line functions and recursion). Afterwards you learn more traditional Object-Oriented development and algorithms, then branch off into (optional) web-dev, distributed systems, embedded systems, ML, etc. or go back into higher-level functional / OOD-style classes.

At least from my understanding, this doesn't seem to affect students when they gradate, e.g. they aren't programming any different then any other college. Although, Northeastern grads are supposedly known for being good developers. Maybe that's just the rigorousness of the curriculum itself.

Any other recommendations for CLI tools?

I've gotten kind of familiar with the Git CLI. But it took a lot of wasted hours and headaches to do so, and even now it takes headaches and extra time / effort to do certain things like rewrite history and "good" commits. I still prefer CLI to GUI but I wish it was more intuitive.

I always wanted a tool like this, and wondered why it didn't already exist. Many others have tried this before (code + visual editor, albeit not necessarily React). I'm interested in what challenges the developers faced to make this and how they overcame them.

If this works well, it will be amazing and I'll almost definitely use it for my next webapp.

There is ultimately some underlying thing that you want to make changes to, but you often want to be able to make those changes from different viewpoints (or in different contexts) depending on the types of changes you want to make

This is something I thought a lot about and really hope to see more in programming. Everything - every object, every concept, every program - has multiple representations, and in order to understand that thing you need to see it in multiple representations. But code is one representation, static text. Having other representations (like the laid-out website), especially that you can not just view but also edit, makes your project a lot easier to understand.

I'm patiently waiting for a game which lets you play in real-life environments. Like an FPS or racing or sim game that lets me play in my favorite cities, or better yet, my favorite towns.

Doesn't even have to be accurate, although it probably needs to look realistic. Like I really only need the aesthetics, not the specific placement / distance of buildings. As long as I get the "feel" of familiar cities / nature that would be awesome.

Geoguessr is already a popular game, and all you do is travel around a location and guess where it is.

Sometimes when I access a webpage I think to myself "what if I do X and the whole website crashes?" Or if the webpage crashes I think "heh, what if I brought down the whole server?"

It looks like this guy did just that. And for Fastly. Wow.

"So, did I just hear three distinct light switch clicks?"

When I first picked up Factorio I loved it for about ~12 hours. Then I just felt, everything is too hard and there isn't a sense of purpose.

For me, I think it would me a fun game if there was more strategy or something else to do besides build the factory. It seems to me the progression system is actually really linear.

I get bored in the monotony of the early game, and I'm too stupid to keep things going in the mid game.

This is my other big issue. I don't like putting in much effort when playing video games. It seems like just getting blue science takes hours of work, and those hours were fun for the first factory, but now it's just repetitive.

I've gone on super long runs (10+ miles) through cities, parks, and other beautiful environments.

These runs can be transcendental. During them, I felt like I was at peace and all my problems almost went away. Now I think back on them and feel nostalgia, also I appreciate nature and architecture a lot more. For me, runners high is very real.

I've never taken drugs or psychedelics, but I would be interested in hearing people who've done both compare the two. I really think it's a similar experience.

I've used both Instacart and Walmart delivery because I don't have a car and live ~3miles from the nearest supermarket.

In my experience, Instacart has worked very well: the only issues (2-hour delivery window, tip for delivery) are upfront, but I rarely get messed up / late / bad orders. The website is also great.

The only time I used Walmart, my delivery was rescheduled to the next day, something which never happened with 50+ Instacart deliveries. And the website sucks.

My experience with surgery was actually pretty good. The sedation worked well, and although surgery messed me up for a bit, what brought me into the office was much worse.

Mental asylums, suicide treatment, etc. - those are the doctors / nurses that should experience being patients. Fortunately I've never been committed, but I've heard horror stories even in modern times. Not to say I believe those places aren't necessary - they definitely are, and have helped / saved people lives to the point where they're thankful for being involuntarily committed - but those in power should have empathy for the people being treated.