I've been using tesseract for a few years on a personal project, I'd be interested to know how they compare in terms of system resources, given that I am running it on a dell optiplex micro with 8 gigs of ram and 6-th gen i5 - tesseract is barely noticeable so it's just my curiosity at this point, I don't have any reasons to even consider switching over. I do however have a large dataset of several hundred gbs of scanned pdfs which would be worth digitalizing when I find some time to spare.
My mom has this very interesting theory: A parent needs to be by a child's side for the first 6-7 years of their life and devote all their time to it. Which is what she did with me. My dad stepped up for the challenge and provided for both of us. My mom had one goal: to make sure that I'd stay curious. She taught me how to read at the age of 4, signed me up for piano lessons(I haven't played piano at all nearly 3 decades later but I can still read notes), she made sure I'd be interested in different cultures, which subsequently pushed me to learn a few languages(which is the biggest contributor to the fact that I am doing very well for myself by a huge margin, forget software engineering, speaking English was the one thing that truly opened up the gates for me). Which on a slightly lower level did exactly what the article says. For contrast, I was old enough to witness and evaluate the extreme opposite - my mom's brother and his wife, who had children when a dog would have sufficed their needs. Their children were pushed aside, no one ever spent any time with them, whenever they started crying, someone jumped over to the toy store, get a bag of toys and shove them in their face so they would shut up. To such an extent that their rooms were filled with unopened toys and I'm not talking about 1 or 2 in a box, I'm talking dozens if not hundreds of toys still in their boxes. Last time I saw these children, they were >10 years old and they had no clue how to use a fork and a knife.
> Last time I saw these children, they were >10 years old and they had no clue how to use a fork and a knife.
Shoutout to the adults like myself that grew up like this. On the one hand, you develop outside the box thinking, because you had to learn everything via trial-by-eroror - no one taught you how to think inside the box. On the other hand, it's tough to trust or ask anyone for help.
Well I'm no champion of this theory.. bit skeptical TBH having been shown during some parenting coaching BUT the idea is kids who have a loving, trusting and attentive relationship with their primary care giver will be more likely to trust and seek help from others later in life and vice versa.
> a loving, trusting and attentive relationship with their primary care giver
If you grew up without this, you would not be able to avoid noticing how seemingly effortlessly the people around you have adjusted to adulthood when it can sometimes be a struggle to get over your fear of interacting with other people when you go to the grocery store. Not saying your skepticism is invalid but I would suggest to consider that perhaps the above is a privilege that not all enjoy and what injurious effects its absence may have. You may wonder about those close to you who seem to have trust issues: did/do they have a good relationship with their childhood care givers?
Speaking only for myself, I had a loving, trusting relationship with my parents. It was my peers who taught me not to trust (edit: also school administrators).
I think your mom did a great job, and that’s the whole point of the post. We need to focus on bonding with our kids and building trust with them. I’m actually a father of three, and being a father to my youngest while being much older is an entirely different experience. I pay attention to all the small details with my kids (which is actually why I wrote that post! ).
> Your father is a parent and didnt parent 6 years by your side.
I don't think you can imply this from parent. My wife is the parent who spends most of the time by my children's side. Meanwhile I am working to support and provide for the whole family. Still I am lucky and able to spend quite a lot of time with my children.
> Why didn't your mother step up to support that?
She was probably already busy being a mother. It's a full-time job.
> If a mother can replace a father in this role, why can't a teacher?
Nowhere it is implied that the mother is replacing the father. Both have a different role to fulfil.
> Why doesn't a child need some freedom and independence to discover their own internal motivations and creativity?
Again, all sorts of assumptions. There can be guided freedom, protected independence... etc. Even if you decide to throw your kid into the swimming pool to 'encourage' them to learn how to swim, you won't leave them there on their own, will you?
Cause they sat down, discussed it like rational adults and came to some logical conclusions: my dad was more entrepreneurial and a bigger workhorse whereas my mom has a much wider scope of interests and knowledge, which is to say, more knowledge to share, even if they ultimately graduated the same university. And now that I'm an adult (and have been for a long while now), I do appreciate the sacrifices they made and can safely say that they genuinely did the absolutely best job they could have done with very limited resources and a lot of compromises on their end. Something which I did not see when I was a child or a teenager, even though it was in front of my face.
To the second question - for most teachers, looking after a child is their job. 18:00, work's over, adios. To most teachers, children are just that: work. Which is not the same as rising your own child. I don't have children to say that with certainty and the closest thing I have to a child is a dog. I love all(most) dogs but I'll walk the extra mile for my own dog. Also, welcome to eastern Europe, where the biggest struggle in the 90's was having food on the table, so tough luck having a teacher.
I'm also a prime example that being near a child does not mean that the child will follow your path: my parents: artists. Me - software engineer, who can't draw a straight line even if my life was on the line. My parents - terrified of fast speeds or extreme sports. Me - well I have double digit scars all over my body from skateboards to bicycles to head butting a flower pot.
Maybe she wasn't fortunate to have the level of education required to support a family and the father did. Don't be so judgemental - people have complex lives and come from all sorts of background.
I did something similar but using a K80 and M40 I dug up from eBay for pennies. Be advised though, stay as far away as possible from the K80 - the drivers were one of the most painful tech things I've ever had to endure, even if 24GB of VRAM for 50 bucks sounds incredibly appealing. That said, I had a decent-ish HP workstation laying around with 1200 watt power supply so I had where to put those two in. The one thing to note here is that these types of GPUs do not have a cooling of their own. My solution was to 3d print a bunch of brackets and attach several Noctua fans and have them blow at full speed 24/7. Surprisingly it worked way better than I expected - I've never gone above 60 degrees. As a side efffect, the CPUs are also benefiting from this hack: at idle, they are in the mid-20 degrees range. Mind you, the noctua fans are located on the front and the back of the case: the ones on the front act as an intake and the ones on the back as exhaust and there's two more inside the case that are stuck in front of the GPUs.
The workstation was refurbished for just over 600 bucks, and another 120 bucks for the GPUs and another ~60 for the fans.
Edit: and before someone asks - no I have not uploaded the STL's anywhere cause I haven't had the time but also since this is a very niche use case, though I might: the back(exhaust) bracket came out brilliant the first try - it was a sub-millimeter fit. Then I got cocky and thought that I'd also nail it first try on the intake and ended up re-printing it 4 times.
> Be advised though, stay as far away as possible from the K80 - the drivers were one of the most painful tech things I've ever had to endure, even if 24GB of VRAM for 50 bucks sounds incredibly appealing.
I thought the problem was that those cards have loads of RAM but lack really important compute capabilities such that they're kind of useless for actually running AI workloads on. Is that not the case?
I'm running P41s in one of my test boxes. These don't have support for BF16 but they do support F16 and F32 and those are accelerated to a certain degree, they're lacking kernels that are as optimized but its not terribly hard to adapt other ones for the purposes.
You don't get great out-of-the-box performance but it only took me three work days or so with no experience writing these to adapt, test, and validate a kernel using the acceleration hardware that was available (no prior experience writing these kernels).
They're not as powerful as others but still significantly better than running on a CPU alone and I'd bet my kernel is missing more advanced optimizations.
My issue with these was the power cable and fans. The author touches on the fans and I did try a 3D printed shroud and some of the higher pressure fans but I could only run the cards in short stints. I ended up making an enclosure that went straight out of the case using two high pressure SAN array fans I harvested from the IT graveyard per card and making a hole with an angle grinder.
The power cable is NOT STANDARD on these. I had to find a weird specific cable to adapt the standard 8-pin GPU connector and each card takes two of these bad boys.
friend you shouldn't make comments like this unless you understand the definitions of the words. Deepseek wrote some parts of their kernels using PTX. newsflash: PTX support for features is lockstep with CUDA support for the same features ie the fact that CUDA doesn't support it means you couldn't write the PTX to use those features either.
The PTX hack is for backend runner and training infra, the public weights are often executed using existing backends. Especially R1-distill-* models are.
the two things (weights and kernels) have nothing to do with each other in the slightest. again i wish people would take a beat before commenting out of their depth and consider whether their comment adds to the conversation or not.
Funny story, right around the time the first one was published(a bit after but I didn't know about it), I was at my first job and I was tasked with doing a bunch of drivers for fiscal printers for linux. Saying that their documentation was crap would be a huge understatement. I.e:
0x4e -> next
0x03 -> cursor
And around 2 pages of addresses and single word descriptions. That was it. It took me 2 months of non-stop brute forcing to figure them out but eventually I figured them out. One of the things they could do is play sound and the test to check if they work when the technicians were installing them was to play the imperial march. When I showed it to the technicians, one of them said "Oh, you copied the floppy drive guy?"
I had no idea what he was talking about until he showed me. Lesson learned: it's the internet, you are never the first.
One little known feature of linux is that there are ANSI sequences you can send to the console that turn off and off the PC buzzer and alter the frequency.
One innocent use I used for this once was when I set up an on-demand modem system using ISDN for the office. If it detected a packet for off-site, it'd start the modem dialing and when the link was up, it'd make a series of ascending tones and after a minute or so of inactivity, it'd take down the link and play some descending tones. People tried not to use the internet unless they heard the ascending tones, so we only used a couple of hours of dial-up per day.
One not so innocent use for this was trolling the phone engineers who were tasked with installing something in the rack in the corner of the office. Every time they went round the back of the rack and touched anything, I'd make one of the servers beep, but always a different one and only when they touched a wire. Occasionally I also ejected and then tried to mount the CDROM, so they'd just hear a thud every now and then too. They literally had no idea what was going on and got quite paranoid every time they went to touch anything.
From a personal perspective, my view on ads has done a complete 180 over the past decade. 10 years ago, I was massively in favor of ads: they were a nice way to indirectly show support to those who produced high quality content. And while I acknowledge that cloud providers have astronomical costs associated with the ability to provide so much data on request instantly, at this point the internet is borderline unusable without a hyper aggressive ad blockers - both on browser level and DNS level. Everything in the article is completely true. Especially the common characteristics: take any video for instance. I'm perfectly fine with watching a 5 second ad or endure a few banners. But much like untreated cancer, those minutes spread to the point where the vital functions get cluttered with crap. Even with the browser based ad blockers, pihole blocks almost 10% of requests. Sure, some of them are trackers, some of them are services owned by comrade elon musk which I've blacklisted but a large chunk are still ads.
I got a ton of hate last time I said it, primarily from comrade musk's simps but I'll say it again: a former boss of mine(also musk worshiper) bought the top of the range tesla model s. We were going out of the Hague(where the company was headquartered) and I was in his car. It was brand new, like it barely had 6000km on the clock. My first impression was "how the hell is my 10 year old mid-range BMW offering a wildly better ride and build quality than something that just got off the production line". Plastic squeaking, you could feel every pebble on the road in your spine. And this is the Netherlands we are talking here, and those are by far the best roads in Europe by a considerable margin - when you see a tiny crack in the asphalt anywhere, it sticks out like a sore thumb from the horizon. We had to stop and charge it, the charger got stuck, fob was working 60% of the time, it refused to start on several occasions - all in the span of a single 10km trip. "It will get fixed with a future update, musk knows what he's doing" was what my boss kept telling everyone. Mmyeah, no thanks, I'm fine with my BMW.
I doubt it. Historically, most government agencies around the world have had appalling security and each iteration is just as bad as the previous with a few half-assed patches on top to cover the known holes.
I am really struggling to find ways to approve anything if you don't have 100% control over it. Signal seems to be a solid choice generally and I do believe they are doing their absolute best to keep it airtight but this is software and some obscene, tiny little hole may very well exist.
Generally speaking, with people like comrade elon having so much say into everything, people rushing to pump out new features daily, most often not putting too much effort into security, I've been making a hard push to cut myself off cloud services and self-host everything I can myself.
I feel like take home tests are meaningless and I always have. Even more so now with LLMs, though 9/10 times you can tell if it's an LLM-people don't normally put trivial comments in the code such as
> // This line prevents X from happening
I've seen a number of those. The issue here is that you've already wasted a lot of time with a candidate.
So being firmly against take home tests or even leetcode, I think the only viable option is a face to face interview with a mixture of general CS questions(i.e. what is a hashmap, benefits and drawbacks, what is a readers-writer lock, etc) and some domain specific questions: "You have X scenario(insert details here), which causes a race condition, how do you solve it."
> I feel like take home tests are meaningless and I always have. Even more so now with LLMs
This has been discussed many times already here. You need to set an "LLM trap" (like an SSH honey trap) by asking the candidate to explain the code they wrote. Also, you can wait until the code review to ask them how they would unit test the code. Most cheaters will fall apart in the first 60 seconds. It is such an obvious tell. And if they used an LLM, but they can very well explain the code, well, then, they will be a good programmer on your team, where an LLM is simply one more tool in their arsenal.
I am starting to think that we need two types of technical interview questions: Old school (no LLMs allowed) vs new school (LLMs strongly encouraged). Someone under 25 (30?) is probably already making great use of LLMs to teach themselves new things about programming. This reminds me of when young people (late 2000s/early 2010s) began to move away from "O'Reilly-class" (heh, like a naval destroyer class) 500 page printed technical books to reading technical blogs. At first, I was suspicious -- essentially, I was gatekeeping on the blog writers. Over time, I came to appreciate that technical learning was changing. I see the same with LLMs. And don't worry about the shitty programmers who try to skate by only using LLMs. Their true colours will show very quickly.
Can I ask a dumb question? What are some drawbacks of using a hash map? Honestly, I am nearly neck-bearded at this point, and I would be surprised by this question in an interview. Mostly, people ask how do they work (impl details, etc.) and what are some benefits over using linear (non-binary) search in an array.
The drawback is that elements in a hashmap can’t be sorted and accessing a specific element by key is slower then accessing something in an array by index.
Linear search is easier to implement.
These are all trivial questions you ask to determine if a person can develop code. The hard questions are whether the person is the cream of the crop. The amount of supply of developers is so high most people don’t ask trivial questions like that.
That's OK. I wrote: <<And if they used an LLM, but they can very well explain the code, well, then, they will be a good programmer on your team, where an LLM is simply one more tool in their arsenal.>> If anything, I would love it if someone told me that they used an LLM and explained what was good and bad about the experience. Or maybe they used it and the code was sub-par, so they need to make minor (or major) changes. Regardless, I think we are kidding ourselves if people will not make (prudent and imprudent!) use of LLMs. We need to adapt.
"Drawbacks" was the wrong word to use here, "potential problems" is what I meant - collisions. Normally a follow up question: how do you solve those. But drawbacks too: memory usage - us developers are pretty used to having astronomical amounts of computational resources at our disposals but more often than not, people don't work on workstations with 246gb of ram.
I think the better word is tradeoff since there are no perfect data structures for each job. The hasmap has the advantage of O(1) access time but the drawback of memory usage, an unsorted nature and the depends on a good hashing function to minimize collisions. A vector is also O(1), but it has an upfront memory cost that cannot be avoided. A map has a O(Log(n)) access cost, but has less memory usage, is sorted by nature and the comparison function is easier to implement.
Three similar data structures, but each with its own tradeoffs.
Good point about collisions. When I wrote the original post, I didn't think about that. As a primarily CRUD developer, I never think about collisions. The default general purpose hash map in all of my languages is fine. That said: It does matter, and it is a reasonable topic for an interview!
If you really need to test them / check that they haven't used an LLM or hired someone else to do it for them (which was how people "cheated" on take-home tests before), ask them to implement a feature live; it's their code, it should be straightforward if they wrote it themselves.
If you are evaluating how well people code without LLMs you are likely filtering for the wrong people and you are way behind the times.
For most companies, the better strategy would be to explicitly LET them use LLMs and see whether they can accomplish 10X what a coder 3 years ago could accomplish, in the same time. If they accomplish only 1X, that's a bad sign that they haven't learned anything in 3 years about how to work faster with new power tools.
A good analogy of 5 years ago would be forcing candidates to write in assembly instead of whatever higher level language you actually use in your work. Sure, interview for assembly if that's what you use, but 95% of companies don't need to touch assembly language.
> ... LET them use LLMs and see whether they can accomplish 10X what a coder 3 years ago could accomplish...
Do you seriously expect a 10x improvement with the use of LLMs vs no LLMs? Have you seen this personally, are you 1 10th the developer without an LLM? Or is the coding interview questions you ask or get asked, how to implement quicksort, or something?
Let's make it concrete, do you feel like you could implement a correct concurrent http server in 1/10th the time with an LLM than what you could do it without? Because if you jut let the LLM do the work I could probably find some issue in that code or alternatively completely stump you with an architectural question unless you are already familiar with it, and you should not be having an LLM implement something you couldn't have written yourself.
In that case, could you begin proving that point by having it write an http request parser. Let's make it easy and have it require content length header and no support for chunked encoding at first. Csn pick any language you like but since thats such critical infrastructure it must export a C API. Let's also restrict it to HTTP 1/1.1 for the sake of time.
Concidering this would probably at most take a days work to get at least a workable prototype done if not a full implementation, using an AI you should be able to do it in a lunch break.
I think you are missing the point. To get things straight: llama.cpp is not hard to setup and get running. It was a bit of a hassle in 2023 but even then it was not catastrophically complicated if you were willing to read the errors you were getting. People are dissatisfied for two, very valid reasons: ollama gives little to no credit to llama.cpp. The second one is the point of the post: a PR has been open for over 6 months and not a huge PR at that has been completely ignored. Perhaps the ollama maintainers personally don't have use for it so they shrugged it off but this is the equivalent of "it works on my computer". Imagine if all kernel devs used Intel CPUs and ignored every non-intel CPU-related PR. I am not saying that the kernel mailing list is not a large scale version of a countryside pub on a Friday night - it is. But the maintainers do acknowledge the efforts of people making PRs and do a decent job at addressing them. While small, the PR here is not trivial and should have been, at the very least, discussed. Yes, the workstation/server I use for running models uses two Nvidia GPU's. But my desktop computer uses an Intel Arc and in some scenarios, hypothetically, this pr might have been useful.
> To get things straight: llama.cpp is not hard to setup and get running. It was a bit of a hassle in 2023 but even then it was not catastrophically complicated if you were willing to read the errors you were getting.
It's made a lot of progress in that the README [0] now at least has instructions for how to download pre-built releases or docker images, but that requires actually reading the section entitled "Building the Project" to realize that it provides more than just building instructions. That is not accessible to the masses, and it's hard for me to not see that placement and prioritization as an intentional choice to be inaccessible (which is a perfectly valid choice for them!)
And that's aside from the fact that Ollama provides a ton of convenience features that are simply missing, starting with the fact that it looks like with llama.cpp I still have to pick a model at startup time, which means switching models requires SSHing into my server and restarting it.
None of this is meant to disparage llama.cpp: what they're doing is great and they have chosen to not prioritize user convenience as their primary goal. That's a perfectly valid choice. And I'm also not defending Ollama's lack of acknowledgment. I'm responding to a very specific set of ideas that have been prevalent in this thread: that not only does Ollama not give credit, they're not even really doing very much "real work". To me that is patently nonsense—the last mile to package something in a way that is user friendly is often at least as much work, it's just not the kind of work that hackers who hang out on forums like this appreciate.
llama.ccp is hard to set up - I develop software for a living and it wasn’t trivial for me. ollama I can give to my non-technical family members and they know how to use it.
As for not merging the PR - why are you entitled to have a PR merged? This attitude of entitlement around contributions is very disheartening as oss maintainer - it’s usually more work to review/merge/maintain a feature etc than to open a PR. Also no one is entitled to comments / discussion or literally one second of my time as an OSS maintainer. This is imo the cancer that is eating open source.
> As for not merging the PR - why are you entitled to have a PR merged?
I didn’t get entitlement vibes from the comment; I think the author believes the PR could have wide benefit, and believes that others support his position, thus the post to HN.
I don’t mean to be preach-y; I’m learning to interpret others by using a kinder mental model of society. Wish me luck!
reply