Software developer at a big library, cyclist, photographer, hiker, reader. Email: chris@improbable.org
24126 stories
·
215 followers

The Alternative Implementation Problem

1 Share

In this post, I want to talk about a dynamic that I’ve seen play itself over and over again in the software world. In fact, I would venture a guess that this kind of situation probably happens in the hardware world as well, but I’ll speak about software systems since this is where my experience lies. This discussion is going to touch a bit on human psychology, and outline a common trap so that you can hopefully avoid getting stuck in it.

Most of my career, both in academia and industry, has been spent trying to optimize dynamically-typed programming languages. During my master’s I worked on a simple optimizing JIT for MATLAB. For my PhD I worked on a JIT for JavaScript. Today I’m working on YJIT, an optimizing JIT for Ruby which has now been upstreamed into CRuby.

During my PhD, while working on my own JavaScript JIT, I read many papers and blog posts about JIT compilers for other dynamic languages. I read about the design of HotSpot, Self, LuaJIT, PyPy, TruffleJS, V8, SpiderMonkey, and JavaScriptCore among others. I also had the chance to interact with and meet face to face with many of the really smart people behind these projects.

One of the things that struck me is that the PyPy project was kind of stuck in a weird place. They had developed an advanced JIT compiler for Python which could produce great speedups over CPython. By all accounts many people could benefit from these performance gains, but PyPy was seeing very little use in the “real world”. One of the challenges that they faced is that Python is a moving target. New versions of CPython come out regularly, always adding many new features, and PyPy struggles to keep up, is always several Python versions behind. If you want you Python software to be PyPy-compatible, you’re much more limited in terms of which Python features you use, and most Python programmers don’t want to have to think about that.

Reading about LuaJIT, I found that it was and still is highly regarded. Many people regard its creator, Mike Pall, as an incredible programmer. LuaJIT offers great performance gains over the default, interpreted Lua implementation, and has seen some decent adoption in the wild. However, I again saw that there are a number of Lua users who do not want to use LuaJIT because the Lua language keeps adding new features and LuaJIT is several versions behind. This is a bit strange considering that Lua is a language that is known for its minimalism. It seems like they could have made an effort to slow down the addition of new features and/or coordinate with Mike Pall, but this wasn’t done.

Almost 4 years ago, I joined Shopify to work on Ruby. For some reason, the space of Ruby JITs has been particularly competitive, and there had been a number of projects to build Ruby JITs. The TruffleRuby JIT boasted the most impressive performance numbers, but again, had seen limited deployments. There were some practical reasons for this, the warm up time of TruffleRuby is much longer than that of CRuby, but I also saw a similar dynamic to that of PyPy and LuaJIT, where CRuby kept adding features, and TruffleRuby contributors had to work hard to try and keep up. It didn’t really matter if TruffleRuby could be quite a bit faster, because Ruby users would always view CRuby as the canonical implementation, and anything that wasn’t fully compatible wasn’t seen as worthy of consideration.

Hopefully, at this point, you see where I’m going with this. What I’ve concluded, based on experience, is that positioning your project as an alternative implementation of something is a losing proposition. It doesn’t matter how smart you are. It doesn’t matter how hard you work. The problem is, when you build an alternative implementation, you’ve made yourself subject to the whims of the canonical implementation. They have control over the direction of the project, and all you can do is try to keep up. In the case of JITted implementations of traditionally interpreted languages, there’s a bit of a weird dynamic, because it’s much faster to implement new features in an interpreter. The implementers of the canonical implementation may see you as competition they are trying to outrun. You may be stuck trying to ice skate uphill.

Almost 4 years ago, with support from Shopify, two dedicated colleagues and I started a project to build YJIT, yet another Ruby JIT. The difference is that we made the key choice to build YJIT not as an alternative implementation, but directly inside CRuby itself. This came with a number of design tradeoffs, but critically, YJIT could be 100% compatible with every CRuby feature from the start. YJIT is now the “official” Ruby JIT, and is deployed at Shopify, Discourse and GitHub among others. If you’ve visited github.com today, or any Shopify store, you’ve interacted with YJIT. We’ve had more success than any other Ruby JIT compiler so far, and compatibility has been key in achieving this.

You may read this and think that the key lesson of this post follows the old adage that “if you can’t beat them, join them”. In some ways, I suppose it does. What I want to say is that if you start a project to try and position yourself as an alternative but better implementation of something, you are likely to find yourself stuck in a spot where you’re always playing catch up and living in the shadow of the canonical implementation. The canonical project keeps evolving, and you have no choice but to follow along with limited decisional power over where your own project is headed. That’s no fun. You may have better luck trying to join up with the canonical implementation instead. However, that’s only part of the answer.

In the Ruby space, there is also Crystal, a Ruby-like language that is statically compiled with type inference. This language is intentionally not Ruby-compatible, it has chosen to diverge from Ruby, but has still seen limited success. I think this is interesting because it gives us a broader perspective. Rubyists don’t like Crystal because it’s almost-Ruby-but-not-quite. It looks like Ruby, syntactically, but has many subtle differences and is very much incompatible in practice. This just confuses people, it breaks their expectations. Crystal probably would have had better luck if it had never marketed itself as being similar to Ruby in the first place.

Peter Thiel has a saying that “competition is for losers”. His main point is that you shouldn’t put yourself in a position where you’re forced to compete if you don’t have to. My advice to younger programmers would be, if you’re thinking of creating your own programming language, for example, then don’t go trying to create a subset of Python, or something superficially very close to an existing language. Do your own thing. That way, you can evolve your system at your own pace and in your own direction, without being chained by expectations that your language should have to match the performance, feature set, or library ecosystem of another implementation.

I’ll finish with some caveats. What I said above applies when you have a situation where there is a canonical implementation of a language or system. It doesn’t apply in a space where you have open standards. For example, if you want to implement your own JSON parser, there is a clearly defined specification that is relatively small and doesn’t evolve very fast. This is very much something you can achieve. You also have a situation where there are multiple browser-based implementations of JavaScript. This is possible in part because there is an external standard body that governs the JS specification, and the people working on the JS standard understand that JIT-compiled implementations are critical for performance and guide the evolution of the language accordingly. They are not in the game of adding many new features as fast as possible.





Read the whole story
Share this story
Delete

Shining a light on the development at 1st and Kennedy Streets NW

1 Share

by Sacha Haworth

Long reported and long awaited, the property on the northeast corner of 1st and Kennedy Streets NW in the Manor Park neighborhood – the now-called “71 Kennedy” – will soon be developed. This is despite community concerns about the proposed development changes, such as the developer’s decision to remove the promised first-floor retail component. Neighbors have been scarred by the treatment of La Coop Coffee, when Coloma River LLC and its owner Charles Paxton Paret had tried to illegally evict the locally owned shop on election night 2020.

In a recent community meeting with ANC 4B, held to assuage these concerns, current property owner Mel Negussie of Developer RE1 LLC asserted that “Coloma River has nothing to do with this property.” Alison Brooks, the Chair of ANC 4B and whose single member district 4B08 is where the development is slated to occur, said at the meeting, “We don’t want to work with Charles Paret.” And while the ownership of 71 Kennedy appears to have moved on from Coloma River on paper, the shadow of its previous owner remains.

A review of DC corporate filings, property and deed records, as well as interviews with Negussie and people familiar with both Paret’s and Negussie’s projects, reveals that Negussie and Paret until recently worked together on a series of joint projects up and down the Kennedy Street corridor, including 5505 1st Street, 71 Kennedy St, 423 Kennedy St, 429 Kennedy St, 201 Kennedy St, and 4910 Georgia Ave. Each of these projects involved their own LLC (in some cases multiple LLCs), and some resulted in lawsuits where both men were named as co-defendants.

In 2017, the lots that now make up the 71 Kennedy project, previously 5501 1st Street, 5505 1st Street and 67-71 Kennedy Street NW, were purchased by “5505 1st Street Holdings LLC” and “71 Kennedy Street Holdings LLC,” — both owned by Coloma River Capital.

Satellite view of 1st and Kennedy Streets NW (Apple Maps)

In late December 2021, a year after the attempted La Coop eviction, Paret transferred ownership of these LLCs to Negussie. Paret had allegedly been telling people for years he was short of cash and was going to be filing for bankruptcy.

Using choreographed dance steps only real estate developers and their attorneys seem to understand, Coloma River, through its various holding companies for the different projects, transferred the ownership of 5505 1st Street Holdings and 701 Kennedy Street Holdings to Negussie (as they did similarly with other projects found in the DC database).

Negussie, who had been the general contractor for La Coop Coffee House and Paret’s partner on other development projects, then transferred the deed to a company he appears to have created three weeks earlier, called Developer RE1.

Limited Liability Corporations (LLCs) owning properties and deeds is nothing out of the ordinary in our neighborhoods, especially in a city like DC, where properties in many neighborhoods targeted for investment are bought up by developers. But the seemingly sudden decision to change the proposal and remove the retail, the lack of transparency in the reasoning, and what some consider the lack of satisfying answers from the decision makers, makes many in the neighborhood feel as though they’re having the proverbial wool pulled over their eyes.

Mel Negussie is the Registered Agent for 19 LLCs in the District of Columbia. A registered agent is a person designated as the official point of contact for a company and is often (though not necessarily) an employee, and indeed Negussie is at least co-owner in many of these companies. Of those, four have been revoked and two have been dissolved, and eight are in some way connected with Charlie Paret. All but two have been set up since 2016, and most of them appear to be involved in real estate investment and development.

Negussie’s oldest venture is the NT Group (sometimes referred to as NT Construction or NT Global Tech), which, according to his LinkedIn, he has led since 2004. On its website, NT Group offers an “end-to-end client experience” and guarantees to deliver “quality projects on-time, fully meeting or exceeding the value proposition.” According to their website, NT Group is integrated with CR Studio Architects, an architectural design firm. At the March 2024 community meeting and in an interview with Petworth News, Negussie said he had bought CR Studios “100%” from Paret, but the website declares that Negussie founded it in 2019. Negussie told me he “doesn’t know what the website says,” but that he “first owned 50% of it and then when [Paret] ran out of money, I took 100%.” Negussie said he needed to keep the CR Studios architects after Paret lost money because they were the “architects of record” on the projects.

Some of the projects NT Group/CR Studios boasts of on its site appear to be leftovers from Coloma River. Artist renderings of 201 Kennedy and the “Kennedy Residences” both feature named retail on the first floor. A bustling La Coop Coffee is shown at 201 Kennedy, and ANXO Cider takes up the entire ground floor of “Kennedy Residences.”

Screen shot of rendering of 201 Kennedy Street NW featuring La Coop Coffee on the ground floor, from NT Construction website.

In reality, La Coop is building out a new location at 500 Kennedy Street, and it’s unclear where “Kennedy Residences” is, but ANXO currently operates out of 711 Kennedy St NW, which Paret used to own but sold in 2021.

These renderings appear to suggest the firm is involved in projects that do not exist.

Screen shot of rendering of “Kennedy Street Residences” featuring ANXO on the ground floor, from NT Construction website.

Interestingly, in a September 2023 ANC 4B meeting, Negussie showed a different version of 201 Kennedy than what can be seen on his website, depicting a coffee shop called “Idido’s Coffee” on the ground floor. Negussie is the registered agent of Idido’s Coffee, according to DC corporate filings, but he told me does not receive any compensation for that role.

Negussie’s reasons for building a site with a coffee shop on the first floor just one block away from 71 Kennedy are confusing and seem to be at odds with other statements. When asked why directly, he said he wasn’t “sure they could attract the right commercial space,” despite there having been a thriving coffee shop on that site for the past four years.

He also said, “There’s plenty of other retail space along Kennedy.” (Negussie said that he had offered the 201 Kennedy space to La Coop, but people I spoke to who were familiar with the offer told me it was a massive increase from what they had been previously paying and could afford.)

At the September meeting, Negussie told ANC 4B that the reason for eliminating retail was the parking requirement, yet the DC Zoning Board only requires parking if the retail space is larger than 3,000 square feet. The current plan for 47 residential units requires 15 parking spaces, without the retail. If there were less than 3,000 square feet of retail and 44 residential units, the parking requirement would be only 14 spaces.

At the March 2024 meeting, Negussie told the crowd that he was a “small businessman” who had been “hoodwinked” by Charles Paret. He told Petworth News, “I wish I had never met Charlie Paret,” and called himself a victim.

When asked why, he wouldn’t elaborate, although he did say he last spoke with Paret a few months ago. But perhaps it’s because, according to DC court records, over the last three years Negussie was named as co-defendant in three lawsuits based on properties he and Paret were working on together, all of which involved improperly using investor money. Negussie and his companies were dismissed from these, leaving the soon-to-be-bankrupt Paret on the suit alone. Negussie said he “never should have been sued at all.”

5501 Kennedy Street NW

As a Commissioner for ANC 4B, Alison Brooks’ single member district includes 71 Kennedy. She and the rest of ANC 4B support the 71 Kennedy project, as it provides much-needed housing for the area. Brooks told me the difference between working with Paret and Negussie has been night and day.

“Mel Negussie has presented himself as someone who cares about constructing a building. That was not the case with Charles Paret. He’s been forthright in his communications, [201 Kennedy] is actually being built, and he’s doing what he said he was going to do.”

When asked whether their previous business relationships and the lawsuits concerned her, Brooks said she can’t defend Negussie, but she has “to take him at his word.”

“The same way I can see who Charles Paret is, I think I am using the same judgment in evaluating Mel Negussie.”

While it’s true that the development would bring housing units to the neighborhood, it’s also true that when Paret went to the DC Zoning Board to apply for the permit in 2019, he touted the first-floor retail as a huge asset to the community and referenced the ground floor coffee shop multiple times to the Board. It’s impossible to know how much of a role the promised retail played in BZA’s decision to approve the original proposal, but the city has targeted the Kennedy Street Corridor with a Revitalization Plan. The Plan’s Area 3, from Kansas/Missouri Avenues to North Capitol Street, is to “create a vibrant, dynamic district for residents and others, with activities spilling out of buildings and onto sidewalks.” The plan specifically calls for using “the area’s larger lots and building types to attract destination retailers.” The presentation by Paret on the development to include retail matches that plan – and now the removal of the retail, after the presentation and approval by the Zoning Board, goes against the broader goals of the Revitalization Plan.

There seems to be no hope for any of that now for 71 Kennedy.

The notice posted on 5501 Kennedy Street NW.

On Wednesday, April 24, 2024 the Board of Zoning will consider the new plan, which does not and is not required to mention the removal of the retail space. It only concerns two “minor modifications” to the rear yard and closed court requirements. A Change.org petition has been circulating in the community in protest, but it’s unclear what if anything can be done at this point. Residents can submit Party Status Requests to provide written and/or oral testimony at a public hearing, but submissions have to be completed two weeks in advance and follow a rather long and demanding list of requirements.

Whatever the real reasons are for removing the retail, and whether or not the Zoning Board approves the application on Wednesday, neighbors feel they have been stiffed. Community members who attended the meetings say they are not opposed to housing — they want housing. But they also want the retail they were expecting and desire along with that housing — what the ANC and Zoning Board originally approved — and what they had for four years before the new plan and new(ish) developer came along.

“It feels like we were all promised a vision of Kennedy with vibrant retail and affordable housing, and there was a ton of excitement,” said Maddie Benderev, who lives nearby with her family. “But now it feels like the rug was just pulled out from under our feet.”

There is a question of why ANC 4B — and the DC Zoning Board — is so quick to support the redevelopment of this property as it is now defined, when past behaviors and lawsuits, discovered in a pretty quick search of the DC database, might otherwise cause a reasonable person to question the future behavior of the developers. Even if the new team are honest operators, their murkiness and lack of dedication to the spirit of the original plan have been frustrating. All the community wants is honesty, transparency and to be heard.



Read the whole story
Share this story
Delete

On having no visual memory

2 Shares

I have aphantasia—no ability to create images in my mind, or to remember things in a visual way.

For well over half of my life I lived under the assumption that suggestions to visualize things were entirely metaphorical, and also that I was incredibly stupid in certain ways, finding things that everyone else seemed to find easy a challenge. I struggle to learn graphical interfaces, I’ve mixed up speakers and their talks at conferences, I spend a lot of time staring at icons on my phone—as far as I’m concerned every blue icon leads to the same app.

I store information as lists. For people I see a lot, I could probably draw a reasonably accurate picture of them, based on the list of data I’ve collected. However that information can never be as detailed as being able to recall an image could be. For example, perhaps you are someone I work with. I see you several times a week on video calls. I know lots of things about how you look, including that you wear glasses. However, your glasses were unremarkable to me and so I’ve not stored any particular information about them. You could dramatically change your style of glasses, I’d not notice. I’m not comparing a visual memory of you from a few days ago, I just know you wear glasses.

If I’m visiting a new place and I go for a run, I collect data points along the way to navigate back. I will not remember how the route looked. This means that I can be incredibly good at taking people somewhere that I’ve only been once, I’ve got turn by turn directions. However, if I am walking with someone and talking, or for some reason don’t actively collect information, I’m doomed. The other week I lost an entire car park, never mind my car, due to having been distracted by a message after leaving the car park and failed to collect any information about what it looked like.

I dream, but not in pictures. For example, I have a recurring dream where I’m back in a theatre, putting on pointe shoes. I know it’s a theatre because of the smell, I feel the roughness of the shoes as I put my feet into them, the creak of the leather sole as I roll through my foot. I can feel that dream as I write about it, but there’s no image involved.

When I learned about aphantasia about ten years ago, suddenly so many things made sense. It’s harder to remember certain types of things if you have no visual memory of them. I’m not an awful person because I didn’t remember that I’d met a person before, there was no way for them to look familiar to me. However, I also think it’s at the root of some of the things I’m really good at.

My lists of information, are closer to a relational database than just a set of lists. It’s no surprise to me now that I always enjoyed working with databases and could design a complex schema without needing to sketch out a diagram. I’m constantly making connections between these bits of information. Many of these connections are just amusing to me, but other times they bring up interesting paths to investigate.

I context switch very easily, I can jump between these information sets without losing my train of thought.

I can write entire articles, documents, or conference talks in my head while out for a run. It’s usually quicker for me to create content in this way than sit at a computer and think about it. I can come in from a run and type out 2,000 words, transferring what I’ve written in my head to the document.

Having discovered this about myself, I’ve found plenty of other people who experience the world in the same way, probably unsurprisingly as people with aphantasia tend to be drawn to computing and science. I find it fascinating that we are all experiencing the world so differently, and how that can so fundamentally impact the things we find easy, or difficult.

Read the whole story
Share this story
Delete

The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions

1 Share

The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions

By far the most detailed paper on prompt injection I've seen yet from OpenAI, published a few days ago and with six credited authors: Eric Wallace, Kai Xiao, Reimar Leike, Lilian Weng, Johannes Heidecke and Alex Beutel.

The paper notes that prompt injection mitigations which completely refuse any form of instruction in an untrusted prompt may not actually be ideal: some forms of instruction are harmless, and refusing them may provide a worse experience.

Instead, it proposes a hierarchy - where models are trained to consider if instructions from different levels conflict with or support the goals of the higher-level instructions - if they are aligned or misaligned with them.

The authors tested this idea by fine-tuning a model on top of GPT 3.5, and claim that it shows greatly improved performance against numerous prompt injection benchmarks.

As always with prompt injection, my key concern is that I don't think "improved" is good enough here. If you are facing an adversarial attacker reducing the chance that they might find an exploit just means they'll try harder until they find an attack that works.

The paper concludes with this note: "Finally, our current models are likely still vulnerable to powerful adversarial attacks. In the future, we will conduct more explicit adversarial training, and study more generally whether LLMs can be made sufficiently robust to enable high-stakes agentic applications."

Via @_akhaliq

Read the whole story
Share this story
Delete

TikTok and YouTube Shorts push misogynistic videos to young male watchers, study finds | Euronews

1 Share

A new study looked at how long it took for TikTok and YouTube Shorts to recommend misogynistic content to the accounts of young men.

ADVERTISEMENT

It takes on average 23 to 26 minutes of video watching for TikTok and YouTube Shorts to recommend toxic or misogynistic content to the accounts of young men, according to a new study.

The study from Dublin City University tracked the content recommended to 10 “sockpuppet” TikTok and YouTube Short accounts created by the researchers on new smartphones.

The accounts were all directed to show the search interests of 16 and 18-year-old boys either with regular content, like sports or video games, or to replicate those that purposely look for misogynistic content online.

The research found that it took roughly 23 minutes of video watching on both TikTok and YouTube Shorts for the algorithms to start recommending “toxic” content and 26 minutes to recommend “manfluencer” (male influencer) content across the different accounts.

The recommended videos could sometimes come as soon as after two minutes of viewing on YouTube Shorts and 10 minutes on TikTok for accounts that showed some interest in learning more about manfluencers – videos that are widely considered to be promoting alpha male and anti-feminist ideas.

“The findings of this report point to urgent and concerning issues for parents, teachers, policymakers, and society as a whole,” the report reads.

‘Monetisation of male insecurity’

The researchers watched nearly 29 hours of video over the 10 accounts to analyse the content of the videos that were being recommended.

The vast majority of content being suggested after two to three hours, or 400 video watches, was problematic or toxic, according to the researchers.

Once one manfluencer video was recommended and then watched by the young male account, it became a lot more likely to be recommended.

The report identified three major themes of these manfluencer videos: crisis narratives, like masculinity and the “nuclear family” are under threat; motivational videos that convince men that feeling emotions or depression can be emasculating; or debunked gender science videos that show concepts from evolutionary psychology that men and women are “hardwired” for different gender roles.

The study suggests there is also a link between manfluencer videos and right-wing conspiracy content: 13 per cent of all recommended content on TikTok and five per cent on YouTube for these accounts included these concepts.

“This monetisation of male insecurity not only serves to mainstream anti-feminist and anti-LGBTQ ideology, but may also function as a gateway to fringe Far-Right and other extreme worldviews,” the report reads.

One of the limitations of their study, the report continued, is the lack of transparency from social media companies about how their algorithms work.

That means they are missing critical information about how the platforms craft personalised content suggestions based on their previous viewing history.

Study not ‘reflective’ of TikTok user experience

YouTube Shorts was the platform to push the highest amount of "toxic content", at about 61 per cent compared to 34 per cent of TikTok’s recommendations.

The platform also fed manfluencer-curious accounts more toxic content than accounts that searched for "generic" topics.

YouTube did not respond to a request for comment.

TikTok said in an emailed statement that the Dublin City University report does not reflect how their user base would experience videos on their platform. The statement also noted that the sample size in the study is extremely limited, both in the number of accounts used and the amount of video viewed.

ADVERTISEMENT

They say toxic content makes up 34.7 per cent of what users would see on their feeds.

TikTok also says they do not allow hate speech or hateful discourse, like misogyny and transphobia on their platform and remove content that violates their community guidelines.

“If we become aware that any such actor may be on our platform, we will conduct a thorough review – including off-platform behaviour – which may result in an account ban,” TikTok’s community guidelines webpage reads.

The company says they do the same thing with their recommended videos in the “For You” feed, where the recommendation system will substitute less similar content into a person’s feed if they find two videos are a little too similar.

Users can also curate what they see by noting that a type of video does not interest them, by refreshing their feeds or filtering out certain keywords.

ADVERTISEMENT

TikTok is currently under two investigations under the EU's Digital Services Act dealing with “the protection of minors” and “addictive design” for the platform’s new TikTok Lite, which recently launched in France and Spain.

Last November, YouTube was asked by the European Commission to provide information on how it is protecting minors online under the new Digital Services Act.

Account-based content moderation needed

The report highlights some key recommendations for schools, parents, and social media companies.

It suggests that social media companies not only do content moderation based on the videos but also regulate what accounts are able to post.

Ireland has a new media regulator, called the Coimisiún na Meán, which the report suggests social media companies work with to "highlight illegal, harmful and borderline content".

ADVERTISEMENT

For schools, the report suggests promoting positive male role models in the classroom should be prioritised as a way to “promote an educative rather than punitive response to boys’ behaviours”. It also suggests schools focus on promoting critical digital literacy skills.

Parents could also open discussions with their teenage boys to understand why they idealise certain influencers and encourage them to “engage with relatable resources”.

TikTok said in their statement that they have parental resources to help with those conversations.

Read the whole story
Share this story
Delete

AI Is Poisoning Reddit to Promote Products and Game Google With 'Parasite SEO'

1 Share

Advertisement

A market for manipulating Reddit using AI have emerged.

Read the whole story
Share this story
Delete
Next Page of Stories