Hacker Newsnew | past | comments | ask | show | jobs | submit | crznthndr's commentslogin

This is a bit like robbing Peter to pay Paul.

Yes, it brings in more income for the government at the expense of universities.

It’s a great way to remove h1b fraud and abuse but you do burn down a bit of your garage in the process of getting rid of the rat.


Is it really at expense of universities? From what I understand, most are getting Master Degrees but very few are doing research. I've seen plenty of H-1B coworkers with Master Degrees but very few did research, it was just extra computer science courses.


Majority of CS/EE/MBA type grad programs across all universities are heavily enrolled by foreign students. Most of them end up paying out of state fee.

This is a significant chunk of revenue for many colleges to keep their budget in shape.

Even in conservative states, lots of colleges are reliant on this stream of income. A loss of this stream is going to put a strain on them to balance their budget, or seek more help from govt.


"At the expense of universities" may not be the plan for this one, but to the current administration, it's certainly a bonus.


Just like tariffs and the tax cuts


Additional limitations if your household wages are more than $125,000

You can’t use Direct File if:

If your wages are more than $200,000 ($168,600 if you had more than one employer).

You file as Married Filing Jointly, and your spouse’s wages are more than $200,000 ($168,600 if your spouse had more than one employer).

You file as Married Filing Jointly, and you and your spouse's wages are more than $250,000.

You file as Married Filing Separately, and your wages are more than $125,000.


Why are these restrictions in place?


Eyeballing it, I bet those specific restrictions are in place because:

$168.6k is suspiciously the same as the (2024) social security cap, so they probably didn't handle that edge case.

$250k is the start of NIIT, so they probably didn't handle that case either.


Thanks for the actual answer!


Direct File was rolled out gradually as a pilot program. It was also only available for taxpayers in 12 states.

My guess: since the tax code is so complicated, they probably wanted to support the simplest and most common filing cases in the first release. Handling all the edge cases would delay the launch, and prevent them from collecting feedback. If the feedback and demand was positive for v1, they could expand the surface area in the future.

Unfortunately, it didn't last long enough


Assuming I am reading this Census table correctly, 2023 Table A-2 [0] says 76% of the US has a household income under $150k. So as an initial deployment, covering 3/4 of the country as the first filter is not terrible.

[0] https://www.census.gov/data/tables/2024/demo/income-poverty/...


Tax industry lobbyists


YC became valuable because of the ecosystem. YC enables so many varieties of exit options and inherently lowers the risk for the investors across various stages in the lifecycle of the startup company. If the only options are such that the companies have to become profitable in isolation or go IPO, starved off private capital otherwise then the risk is much higher. That’s why it may very well be impossible to create another YC that’s successful., unless you can replicate the entire ecosystem along with it.


I use radio (nrf24l01) instead of wifi for talking between the arduinos and the centralized rpi, to save power and for convenience. I also use the standard atmega328 microcontroller chip. Atmega runs on a coin cell for well over 8 months.


Even in 2020, I was pleasantly surprised that my kids school teaches Logo at the elementary school level! However, I had a hard time convincing parents who were suggesting it to be replaced with Python or a more modern programming language :(


You lucky! My kid's school teaches Delphi/TurboPascal (8. grade, first programming language course), which they replaced with Lazarus unable to install Delphi on modern PCs.


On one hand, Lazarus and Free Pascal are great so it is nice to see it being used as an introduction to programming.

On the other hand... Lazarus is way too complicated for someone's first foray into programming, IMO. The IDE throws at you a barrage of windows, buttons, lists, etc that can be almost as overwhelming as an airplane's cockpit :-P.

I always maintained that Free Pascal should either ditch the text mode IDE (outside of looking weird to anyone who didn't grew up with Turbo Pascal, almost no terminal/console works reliably enough for it and even in cases where it works, the IDE itself is very buggy - especially in the recent versions) and develop a simple GUI-based one akin to Turbo Pascal for Windows (ie. something that focuses only on small-sized programs) and have Lazarus as the "next step". Hell, it could even be based on Lazarus since most of its functionality is in the form of reusable components.


> I always maintained that Free Pascal should either ditch the text mode IDE

Why not fix the bugs instead? And it shouldn't look weird to anyone who has used TUI programs. In fact, we really should have support for these TUI features (stackable text windows, mouse-controlled menubar and widgets, context-sensitive status-bar) right inside emacs, or some other generic editor. They have stood the test of time wrt. intuitiveness and ergonomics, and it's weird that we still lack them in terminal-like environments.


For the other reasons besides the bugs. I have used the text mode IDE a lot to write smaller programs and it is always a PITA (just not enough of a PITA to open Lazarus, create a brand new project, etc). And some of that is outside FP's control, like Linux terminal emulators being universally broken when it comes to complex shortcut keys that involve function keys and modifiers. Add to that the the Windows console window now also tries to behave more like a Linux terminal (though even before you still had to manually modify the shortcut to not create a 200 line buffer or whatever that causes the IDE to try and use all those lines as its 'screen' - which is especially annoying when it also decides to display a dialog, which is centered at that 'screen' and you have to scroll to see it, usually after pressing a few keys like Alt+F to open the menu and noticing that nothing happens) and you get even more issues.

Honestly the only environments where the FP seems to work (outside other bugs not related to the UI) is DOS and Linux's own console/terminal when running by itself without a window system.

In any case i submitted that message too quickly, that "either" part should have been followed with the alternative to keep it around as a fallback for the platforms where a GUI isn't available or in case someone wants it (though considering how broken it is, i doubt anyone is actually seriously using it).


There's some merit to both sides. As a kid in the eighties, I remember being annoyed by Logo -- it seemed a toy, and even as I child I wanted to learn the tools with which "real programs" (mostly games) could be written.


Berkeley Logo has higher order mapping functions like "cascade" and "crossmap" which I miss in modern Emacs Lisp with its countless packages for example.

If you want something more fancier, NetLogo provides agent based parallelism which is more suitable for games.

The only thing I miss in (Berkeley) Logo is a better fill function.


> The only thing I miss in (Berkeley) Logo is a better fill function.

Thanks for volunteering! :) The code's at

https://github.com/jrincayc/ucblogo-code


Snap! has the full power of Scheme (first class functions, user defined blocks, recursion, closures, continuations, JavaScript integration, etc), with a visual block syntax and playful graphical environment with turtle graphics like Scratch.

The following post is a couple years old, but maybe somebody can provide some updates and recent info!

Edit: I should have RTFA first, which is totally up to date, just published in 2020, from the turtle's mouth:

https://escholarship.org/uc/item/1623m1p3

>Brian Harvey’s Personal Narrative on Snap!: Scheme Disguised as Scratch

>In 2009, the University of California, Berkeley, was one of several universities developing a new kind of introductory computer science course, meant for non-CS majors, to include aspects of the social implications of computing along with the programming content. Scratch wasn’t quite expressive enough to support such a course (it lacked the ability to write recursive functions), soProf. Daniel Garcia and I thought “What’s the smallest change we could make to Scratch to make it usable in our course?” After 20 years teachingStructure and Interpretation of Computer Programs[Abelson et al.1984], the best computer science text ever written, I knew that the answer to “what’s the smallest change” is generally “add lambda.” I joined forces with German programmer Jens Mönig, who had developed BYOB (Build Your Own Blocks), an extension to Scratch with custom (user-defined) blocks, including reporters and predicates. [...]

https://news.ycombinator.com/item?id=17594403

DonHopkins on July 23, 2018 | parent | favorite | on: Ask HN: Best Lego Mindstorms alternative for fun p...

One of the coolest ways to learn programming I've ever seen is the Snap! visual programming language, which is written in JavaScript and runs in the browser. https://snap.berkeley.edu

It's the culmination of years of work by Brian Harvey and Jens Mönig and other Smalltalk and education experts. It benefits from their experience and expert understanding about constructionist education, Smalltalk, Scratch, E-Toys, Lisp, Logo, Star Logo, and many other excellent systems.

Snap! takes the best ideas, then freshly and coherently synthesizes them into a visual programming language that kids can use, but is also satisfying to professional programmers, with all the power of Scheme (lexical closures, special forms, macros, continuations, user defined functions and control structures), but deeply integrating and leveraging the web browser and the internet (JavaScript primitives, everything is a first class object, dynamically loaded extensions, etc).

Y Combinator demo:

https://i.imgur.com/cOq8tvR.png

https://snap.berkeley.edu/snapsource/snap.html#present:Usern...

Here's an excellent mind-blowing example by Ken Kahn of what's possible: teaching kids AI programming by integrating Snap! with existing JavaScript libraries and cloud services like AI, machine learning, speech synthesis and recognition, Arduino programming, etc:

AI extensions of Snap! for the eCraft2Learn project

https://ecraft2learn.github.io/ai/

>The eCraft2Learn project is developing a set of extensions to the Snap! programming language to enable children (and non-expert programmers) to build AI programs. You can use all the AI blocks after importing this file into Snap! or Snap4Arduino. Or you can see examples of using these blocks inside this Snap! project.

https://github.com/ecraft2learn/ai

http://lntrg.education.ox.ac.uk/presentation-of-ai-cloud-ser...

Use devices with Snap!:

Orbotix Sphero guide by Connor Hudson and Dan Garcia:

https://docs.google.com/document/d/11wR53OTnofRtTtxZCmxnCUjI...

Lego NXT package by Connor Hudson:

https://github.com/technoboy10/snap-nxt

Nintendo Wiimote package by Connor Hudson:

https://github.com/technoboy10/wiisnap

Finch and Hummingbird robots package by Tom Lauwers:

https://www.hummingbirdkit.com/learning/snap-programming/

Parallax S2 robot package by Connor Hudson:

https://github.com/blockext/s2

LEAP Motion by Connor Hudson:

https://github.com/technoboy10/snapmotion

Speech synthesis by Connor Hudson:

https://github.com/technoboy10/snap2speech

Arduino package by Alan Yorinks:

https://github.com/MrYsLab/s2a_fm

Arduino package by Bernat Romagosa/Citilab:

http://snap4arduino.rocks/

Fischertechnik ROBOTICS TXT Controller by Richard Kunze:

https://github.com/rkunze/ft-robo-snap

Snap! for Raspberry Pi by rasplay.org:

http://downloads.rasplay.org/pisnap/

More Snap! extensions for CS education:

snap-apps.org provides Edgy for graphs, Cellular for multi-agent simulation, and more.

http://snap-apps.org/

http://www.snap-apps.org/edgy.html

http://www.flipt.org/#cellular

Netsblox for multiplayer networking.

https://netsblox.org/


Thanks for the kind words both about Logo and about Snap!. That article is in fact not yet officially published, but if I'm reading the ACM legalbol correctly, authors are allowed to put an "author's last draft" version on their institutions' web archives, so that's what you found.

The article has eight authors, and of course the time required to write something is \Theta(n^2) in the number of authors, so it was a long slog, although worth it because in between yelling at each other we had some great conversations about education and computers and Logo technology.

I am inordinately proud of Snap!, which is almost entirely the work of Jens Mönig. My big contribution was to talk him into lambda. (Coming in the next version: APL-style vector and matrix operations. After that we just have to find a way to shoehorn in Prolog and we'll be the unification (pun not intended) of all the good programming languages.)


Hey, how about throwing in a perverted, fetishistic, masochistic programming language like FORTH, too? ;)

Where do you think Logo and Snap fit into the three basic mental structures of psychosis, perversion, and neurosis, as W Watson describes in "The Pervert's Guide to Programming Languages"?

https://news.ycombinator.com/item?id=22910702

https://www.youtube.com/watch?v=mZyvIHYn2zk

https://s3-us-west-2.amazonaws.com/vulk-blog/ThePervertsGuid...

I have hope that Snap! has transcended the self-indulgent Turing Tarpit of Melancholy Languages like Scheme, Lisp (which spawned Scheme during a hysterical event), Smalltalk, and languages that never were, as described on the penultimate page. ;)

Snap! strikes me more as a Hysterical language, frantically pursuing the object of desire, in pursuit of the perfect syntax.

>Hysterical Languages: Hysterical development lends itself to languages that facilitate endless refinements in the code base. The delivered code is never good enough, not merely because of pragmatic reasons but often because of ascetic reasons. The final goal of capturing the elusive domain jargon [59] seems just around the corner, where just one refinement may perfectly represent the domain. Within the hysterical languages there can be two extremes. One extreme is to work towards the capability to easily represent any aesthetic. In this extreme the work and enjoyment are in the development of the language itself [60]. The other extreme is to consciously implement the aesthetic using the language as is [61]. This extreme bends the language to look more aesthetically pleasing. Somewhere in between are refinements to extremely large code bases that must stay available.

>[59] “The overhead cost of all the translation, plus the risk of misunderstanding, is just too high. A project needs a common language that is more robust than the lowest common denominator. With a conscious effort by the team, the domain model can provide the backbone for that common language, while connecting team communication to the software implementation. That language can be ubiquitous in the team’s work.”, Evans, Eric (2003-08-22). Domain-Driven Design: Tackling Complexity in the Heart of Software (Kindle Locations 829-832). Pearson Education. Kindle Edition.

>[60] “Also, I’m a great fan of evolving as opposed to just starting out new. You might fall in love with one particular idea, and then in order to implement it, you go create a brand-new language that’s great at this new thing. Then, by the way, the 90% that every language must have, it kind of sucks at. There’s just so much of that, whereas if you can evolve an existing language — for example, with C# most recently we’ve really evolved it a lot toward functional programming — it’s all gravy at that point, I feel.”, Biancuzzi, Federico; Chromatic (2009-03-21). Masterminds of Programming: Conversations with the Creators of Major Programming Languages (Theory in Practice (O'Reilly)) (Kindle Locations 7017-7021). O'Reilly Media. Kindle Edition.

>[61] “A big part of the modus operandi of the Ruby community is a more fluent approach— trying to make interacting with a library feel like programming in a specialized language. This is a strand of thinking that goes back to one of oldest programming languages, Lisp.”, Fowler, Martin (2010-09-23). Domain-Specific Languages (Addison-Wesley Signature Series (Fowler)) (Kindle Locations 473-475). Pearson Education (USA). Kindle Edition.


Regarding hysterical languages and aesthetics there is the school of thought that small yet very expressive kernels are the most aesthetic. I recall a discussion in the early 1980s with Alan Perlis who claimed APL was a diamond and Lisp was a ball of mud. But it is easier to make things out of mud than diamonds. I also recall a discussion with Seymour Papert (circa 2005) about the next generation Logo. He claimed that one first needs to decide if the design should be driven by engineering or mathematical aesthetics. Sadly, there never was much progress designing the next Logo.

People's taste in programming languages is coloured by their first language(s). But Logo was designed to be a first language, so it shouldn't suffer from people's expectations that it do things like other languages.


According to the wayback machine the last successful snapshot of snap-apps.org was made in June 2018. Everything after is 404, and the domain is inactive, pending delete.

https://web.archive.org/web/20180629001523/https://snap-apps...

They are now here: http://snapapps.github.io/


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: